原文作者:ForesightVentures
0.为什么还需要看OptimisticRollup?
a)OP还是ZK?
尽管Vitalik早在几年前就认定了zkEVMRollup是未来,同时各家zkEVM(Scroll,zkSync,Hermez,Consensys)也如雨后春笋一般冒出来,但OptimisticRollup仍是目前Rollup生态的绝对主力,拥有80%Layer2的市场占有率以及前十Layer2方案的半壁江山.
zkEVMRollup的终局性扩容方案的存在,会让OptimisticRollup完全被淘汰吗?
OptimisticRollup和zkEVMRollup并非水火不容的存在,而是在长期内(甚至永久性的时间内)会是互补的方案.
对于App-rollup来说,Optimistic机制在开发与部署上仍然是最简洁易用的方案.
b)OP和ZK未成熟
OptimisticRollup的开发进度领先zkEVMRollup两年左右.但我们OptimisticRollup的标杆Arbitrum与Optimism都没有在主网完全上线开放的正式版FraudProof.
据Vitalik所说,以太坊基金会PSE的zkEVM电路有34469行代码.这庞大的代码量需要非常漫长的开发和持续的测试来进行打磨.我们在几年内都无法完全依赖ZK系统所带来的安全性.
c)OPZK
早在半年以前,Optimism的Kelvin就开始在推特上频繁地讨论Optimism结合zkVM的可行性.
他说Optimism的Bedrock不会只是OptimisticRollup的客户端,而是Rollup客户端.为了完全保证Rollup的整体安全性,客户端(或许和Arbitrum最近的收购有关系?)与证明的多样性(ValidityProof与FraudProof)才是Rollup真正的未来.
Vitalik则完善了Kelvin的方案,认为可以通过(OPZK)Governance的21组合来实现可靠的Rollup.
在zkEVM完全稳定和成熟前,工作流程如下:
发布区块
等待24小时
a)如果期间没有欺诈挑战,发布ZKP,完全Finalize区块.b)如果有挑战,则引入Governance通过2of3的模型来裁定最终结果.
在zkEVM稳定与成熟后:
发布区块
定期发布ZKP.
a)如果ZKP在指定期间正常发布,则依其为准.b)如果ZKP并未在期间正常发布(Proverfailure或有bug),则先引入Optimistic机制,直到ZK机制恢复.
这两种方案都需要Optimistic机制的存在,从而保证整个Rollup系统的liveness和safety.
因此Optimistic机制的发展仍然是Rollup宇宙版图中的重头戏.
1.第二代OptimisticRollup
第二代OptimisticRollup一词源于ArbitrumNitro的白皮书标题.略早与Nitro发布的OptimismBedrock也算是第二代OptimisticRollup.
两者的整体差异其实不大(如果你读Arbitrum和Optimism的blog,甚至会觉得是不是一样的),本质上都是与自己的一个新的majorrelease.第二代与第一代的差别也无外乎是如下优化:
开发者体验:更强的EVM等效性和兼容性,L1互操作性…
用户体验:更高的吞吐量,更低的gas…
但是在设计细节上仍然有取舍的不同,我们可以在这些差异上看到Arbitrum与Optimism在构建下一代OptimisticRollup上的推敲.
2.第二代OptimisticRollup设计选型对比
Arbitrum与Optimism的开发人员分别对两者的架构进行了比较和对比,这里我们就仅讨论与用户或应用开发者有关的点:
a)区块时间
区块时间设计的选择主要是两种:固定时间或者可变时间.可以理解成PoS和PoW的以太坊的区别.
Optimism:固定时间(2秒).
固定时间可以保证使用区块(block.number)来作为时间戳的合约的稳定性,比如Sushiswap的Masterchef合约.这些合约不用时间戳可能是考虑到矿工对时间戳有控制权(算是Selfishmining或者MEV?).
第一代的Optimism采用了可变时间1tx/block的设计,因此由于时间计算的问题,Stargate的奖励发放就出现了一些问题.
对于1tx/block的老设计,Optimism认为由于区块头的存在,存储链的开销太大了,除此之外状态根也需要频繁更新,成本过高.
Arbitrum:可变时间.
可变时间设计主要是为了减小tx确认的延迟.目前一秒最多可以创建4个区块,如果没有tx则跳过,因此是可变时间.
对于以block.number进行计时的合约,Arbitrum上block.number会直接返回以太坊的区块编号,因此不会有稳定性和适配上的问题.除此之外Arbitrum也提供了相应的预编译来提供L2的区块编号.
b)Geth的定位
Geth是以太坊的执行客户端,占据了约80%的节点总量.
Optimism:作为独立引擎.
将Geth作为独立执行引擎,而非库处理.好处就是可以完全重用之前的基础设施,同时可以无缝切换到其他执行客户端.
Arbitrum:作为库.
由于Arbitrum有更多的L2特定状态,例如L1和L2的gas定价,以及retryableticket,因此将Geth作为库处理,使用hooks进行调用.
c)L1-L2消息inclusion延迟
Optimism:~2分钟.
Bedrock的延迟是几个L1块的长度,最坏的情况是延迟十分钟.
Bedrock的架构更像一个L1,极端情况下可以通过reorg自己来应对L1的reorg.
超过10分钟没被L2包含的tx就直接被判定为无效了.
Arbitrum:10分钟.
Nitro延迟十分钟处理,如果超过十分钟,可以通过L1调用来强制包含tx.
Nitro的目标是为了用户体验,让L2永远不需要reorg.
两者都是在不同角度对用户体验进行了取舍.
d)L1-L2消息重试机制
消息重试机制主要就是为了解决L1-L2跨链过程中,L1确认了,L2失败的问题.
Optimism:合约中实现.
开发者可以参考L1OptimismPortal的实现,或者在合约内定义自己的重试机制.
Arbitrum:节点中实现.
重试机制在ArbOS节点中实现.
e)L2费用算法
L2的gas计算基本上就是L2executiongasL1calldatacost.
Optimism:重用EIP-1559.
好处就是钱包和其他基础设施可以无缝接入.
Optimism对L2gas的计算基本上是将L2executiongas的成本压到了最低(99%都是calldatacost).
Arbitrum:使用定制系统.
由于之前提到的可变区块时间设计,因此gas定价更加复杂,所以没有采用EIP-1559.
f)L1费用算法
Optimism:
L1gas水平到L2的传输几乎是即时的.目前Sequencer的收益基本完全来源于L1gas费用的乘数,EIP-4844后,它们的收入会来自MEV.
未来会通过L1-L2的消息传递来传输这部分数据,从而保证安全性(成为协议一部分,且可被挑战).
Arbitrum:
Arbitrum的L1费用算法通过L1gas的平均值来收取费用,且通过自己的控制系统来从实际支付的费用中来获取反馈,从而保证L1gas收取和支出的稳定.
整体策略中也包括,为了避免Sequencer过度收费,因此在gas价格低时才发布batch.
除此之外,两者也探讨了很多具体架构和技术细节上的区别,但内容过于domain-specific且与用户和应用开发者无关,因此大家可以自行观看.
3.Rollup的未来依然是Optimistic的
最近zkEVMRollup以及整个ZK生态的热度确实非常高(DevconBogota基本是ZKMEV其他),以至于大多数以太坊研究者或多或少忽视了OptimisticRollup的发展,以及在第二代中这些有趣的设计细节.
Optimistic作为Rollup的领头部队,正在L2UX和DX上进行试验性的开拓和开创性的创新.它们所做的可以为zkEVMRollup铺好地基.
在未来两到三年,甚至更长的时间内,zkEVMRollup完全可用之前,Rollup的主导地位仍会是由Optimistic占据,且80%的新Rollup(App-rollup)则会采用更为成熟和可用的Optimistic机制.
即使是在长期zkEVMRollup成熟后,为了Rollup的整体liveness和safety,Optimistic依旧会是整个系统中的重要基石.
Thefutureofrollupis(still)optimistic.
关于ForesightVentures
ForesightVentures押注加密货币未来几十年的创新历程,旗下管理多支基金:VC基金、二级主动管理基金、多策略FOF、特殊目的S基金「ForesightSecondaryFundl」,总资产管理规模超过4亿美元。ForesightVentures坚持“Unique,Independent,Aggressive,Long-term”的理念,通过强大的生态力量为项目提供广泛的支持。其团队来自包括红杉中国,中金公司,谷歌,比特大陆等顶级金融和技术公司的资深人士。
Website:?https://www.foresightventures.com/
Twitter:?https://twitter.com/ForesightVen
Medium:https://medium.com/@foresightventures-zh
Substack:https://foresightventures.substack.com
Discord:https://discord.com/invite/maEG3hRdE3
Linktree:https://linktr.ee/foresightventures
Links:
0:
https://hackmd.io/@vbuterin/zk_slides_20221010#/1
https://twitter.com/kelvinfichter/status/1553323106030260224
https://hackmd.io/@vbuterin/zk_slides_20221010#/7
1:
https://github.com/OffchainLabs/nitro/blob/master/docs/Nitro-whitepaper.pdf
https://medium.com/offchainlabs/arbitrum-nitro-one-small-step-for-l2-one-giant-leap-for-ethereum-bc9108047450
https://dev.optimism.io/introducing-optimism-bedrock/
2:
https://twitter.com/PlasmaPower0/status/1578804117027184641
https://norswap.com/bedrock-vs-nitro/
https://twitter.com/yaish_aviv/status/1555445520646250496
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。