Layer2扩展方案:为何OP-Rollup的挑战机制如此重要?
作者:Haotian,加密研究员 来源:X(推特)@tmel0211
大家或许注意到,OP-Rollup有7天的挑战期,问题是至今都没有有效的Battle-tested发生,原先只是假定乐观,没想到它却真“乐观”了?为啥OP-Rollup很少有挑战案例发生?若不挑战任由Sequencer作恶会发生啥?OP Stack是另一种弥补举措吗?Arbitrum的BOLD能发挥多大作用?读完这篇,你或许会对OP-Rollup有更深刻的理解。
简单来说,layer2链会把大量交易Batch给主网,主网确定L2的交易经过Validation验证阶段后才会变更状态,目前OP-Rollup的验证方式fraud-proof欺诈证明,即L2链的任何validators可以发起挑战提出质疑,7天时间内,若挑战者成功,主网会拒绝上一次状态变更,L2需重新打包提交新state声明,若挑战者失败,则其质押的资产会被罚没。
这种先提交后挑战的模式很Make Sense,毕竟layer2做扩展层的意义就是效率先行。然而,你总得真有“挑战”发生吧?哪怕挑战很少也说得过去,没有挑战,却让大家相信L2链百分百不会作恶着实有点不合常理。
现阶段,Optimism并没有挑战机制,你去问的话,会告诉你 In Development,有没有真开发未可知,但若其Sequencer是中心化的,现阶段挑战确实没多大必要,难道要自扇耳光向主网表忠诚吗。Arbitrum有自己的内测挑战机制BOLD,在尝试将挑战对象从受许可变成Permissionless无许可,进而为Sequencer的去中心化铺路。
因为挑战机制其实是自我纠错机制,一次挑战发生轻则delay网络运转,重则诱发宕机,非万不得已是不会主动鼓励有挑战发生的。 假使挑战激励机制设计的不合理,遇到一些恶意的节点不惜重金去挑战,目标就是让作恶让网络宕机,也完全有可能。所以,在挑战机制的设计问题上,OP-Rollup赛道的layer2选手都会非常谨慎。
那么,若不挑战会发生啥?一个简单的例子:layer2可以在Sequencer构造一笔虚假转账交易,然后Validator验证通过,主网确认后,这笔凭空产生的转账会在主网被合法提取,这对layer2网络的打击可想而知。
现在中心化Sequencer反倒不用担心这个问题,很简单,左手倒右手倒腾自己的资产没意义,但万一Sequencer去中心化后呢?其中任何一个节点窃贼出现,这个问题就再所难免。
某种程度上Optimism的剧本是,因为怕被恶意挑战所以Sequencer要中心化,因为Sequencer中心化所以不需要挑战,嗯,很有道理。
但这个故事显然不够Pitching吸引人。所以Optimism选择了OP Stack的软分布式方式来为其Sequencer中心化的问题圆场。因为若有一天,SuperChain大家庭组建起来了,OP Stack的大家庭在Sequencer治理决策席位各占一席,共同治理和决策,这不也是一种对单点中心化风险的制约吗?目前来看,Optimism在推进OP Stack的速度蛮快的,至少比in development中的挑战者机制落地要快…
而Arbitrum的剧本就相对实诚一点了,既然大家都希望看到挑战模式发生,那Arbitrum就构造一套模式来,内测中的Bold就在做这个事情,我研究清楚了Bold的复杂运作机制,取其精髓简化分享下:
1)Layer2向主网Rollup合约发布状态Assertion声明;2)Challenge Manage质疑这个Assertion然后发起挑战;3)每发起一次挑战需要质押一笔资产,然后被挑战者可以向Edge Tracker提交证据,包括过去每一步的状态变更,函数调用,参数等执行细节;3)若挑战者不认同这次的证据,需要继续质押资产,继续挑战,但每次都要消耗成本;4)第三方Chain watcher全程监控挑战过程中提交的证据,给出一定的参考,判断哪个是诚实的一方,最终由edgeChallengeManage合约决断谁输谁赢。
这个Bold挑战模式若真实应用的话,会是个不错的方案,但大家侧面思考一下,挑战者为啥要烧钱挑战,官方有说挑战成功的激励回报了吗?激励定的很大,定会有人不惜一切代价挑战,激励定的太小,赚得还不如罚款代价高,挑战有啥意义。所以在我看来,即使将来BOLD挑战机制上线也如同一次次的军事演练,实际影响也有限,大家看看就好。
试想,即使挑战成功了又怎样?7天挑战期内,若挑战者成功,L2悄悄执行一次硬分叉,谁能感知到?又甚至,通过升级主网Rollup合约来调整下网络状态又何妨?
所以,OP-Rollup的挑战与否对layer2选手们的影响并没有那么大,大的只是OP-Rollup在大家心目中的信任度和共识。