关于 Optimistic Rollup 你需要知道的一切(下)_STIC:STINK

OptimisticRollup的激励机制

Layer2可扩展性方案基于这样一个事实,即,我们试图尽可能减少链上执行的事务的数量。我们使用欺诈证明来取消已发生的无效状态转换。由于欺诈证明是链上事务,我们想尽可能减少在以太坊上发布的欺诈证明的数量。在理想情况下,欺诈永远不会发生,也就不会有欺诈证明发布。

我们通过引入诚信保证金来反激励欺诈行为。想要成为排序者的用户必须首先在以太坊上存入一笔保证金。如果他们的欺诈行为被证明,就会失去保证金。为了激励用户积极发现欺诈行为,排序者的保证金会被奖励给验证者。

诚信保证金和争议期

在欺诈证明激励机制的设计中,有两个参数需要设计:

诚信保证金金额:排序者所缴纳的保证金就是验证者所能获得的奖励。金额越高,对验证者的激励越大,对排序者作恶的激励就越小。

争议期持续时间:可以发布欺诈证明的时间窗口。一旦过了这个时间窗口,L2事务就会在L1上敲定。如果争议期较长,就会提高安全性,更好地抵御审查攻击。如果争议期较短,用户在将L2上的资金取出到L1时就能享有更好的用户体验,因为他无需等待很长时间就能在L1上使用这笔资金。

我认为,这两个参数都没有所谓正确的静态值。或许10ETH的保证金和1天的争议期就足够了。真正的答案是,这取决于成为验证者的激励,以及发布欺诈证明的难度。这些都是可以手动或自动调整的。例如,EIP1559在以太坊上引入了?BASEFEE?操作码。这个操作码可以用来预测链上拥堵程度,让争议期的长度也变成可编程的。

正确地实施这一惩罚机制很重要,否则就有可能在实际操作中被利用。例如,这里有一个不可行的原生实现:

Alice缴纳1ETH的保证金,成为了排序者

Alice发布了一个虚假状态更新

Bob发现了,并提出争议。如果成功,Alice的1ETH保证金就会奖励给Bob,虚假状态更新也会被取消。

Alice发现该争议,也提出争议

Alice拿回了自己的1ETH,成功逃避了原本会因作恶遭到的惩罚。

Alice可以通过“抢跑事务”来发起这一攻击,即,广播一个跟Bob一样的事务,但是支付更高的gas价格,让自己的事务抢在Bob的前面执行。这意味着,Alice可以一直以极低的成本作恶。

解决这个问题很简单:不要将作恶者的全部保证金奖励给提出争议者,而是将其中X%销毁。在上述例子中,如果我们将保证金的50%销毁,Alice只能通过抢跑事务拿回0.5ETH,这就足以吓阻Alice在上述第2步中作恶。当然了,保证金销毁机制也会削弱人们运行验证者软件的激励,因此销毁后剩下的部分要足以激励验证者才行。

对OptimisticRollup批评的回应

我们已经了解了OptimisticRollup的设计。现在,让我们来听听人们对OptimisticRollup的批评,并做出回应。

较长的取款/争议期不利于采用和可组合性

我们在上文提到,较长的争议期有助于提高安全性。这里面似乎有一个内在权衡关系:较长的争议期不利于OR采用,因为任何想要从OR中取出资金的用户都需要等待很久。较短的争议期会带来较好的用户体验,但是这会提高未能及时对欺诈提出争议的风险。

我们不认为这是个问题。由于取款延迟较长,我们预期将有做市商提供快速取款服务。这是有可能的,因为验证L2状态的人能够正确判断取款是否存在欺诈性,从而以略低一些的价格买下这笔取款。例如:

参与方:

Alice:在L2上有5ETH

Bob:在L1上的“做市商”智能合约中有4.95ETH,是L2的验证者

步骤:

Alice告诉Bob说她想要快速取款,并向他支付0.05ETH的费用

Alice向Bob的“做市商”智能合约发起一笔取款事务

可能会发生两种情况:

Bob在L2上验证这笔取款是有效的,并同意Alice的快速取款请求。做市商合约中的4.95ETH立即发送至Alice在L1的地址。等争议期结束,Bob就能获得5ETH,获得一笔不菲的利润。

Bob在验证时发现这笔取款是无效的。Bob对这笔事务的状态转换提出争议,取消该状态转换,并得到了试图作恶的排序者的保证金作为奖励。

如果Alice是诚实的,就能立即完成取款;如果她想要做恶,就会遭到惩罚。我们预期,如果真的存在对快速事务服务的需求,支付给做市商的服务费会逐渐降低,最终让用户完全感受不到这一过程。

快速事务服务带来的最重要影响是,可以实现与L1合约的可组合性,无需等待整个争议期结束。

注:该技术首次出现于《简单的快速事务》一文。

矿工会受贿审查取款事务,破坏OR的安全性

《OptimisticRollup上几乎零成本的攻击场景》指出,排序者可以轻而易举地贿赂以太坊矿工来审查争议事务。对于OptimisticRollup系统来说,这会是致命的,因为整个系统的安全性源自争议机制。

我们不认同这个观点。我们认为诚实一方会出与恶意一方同样乃至更多钱的来贿赂矿工。此外,矿工每次助纣为虐时都会产生额外的成本。这会影响以太坊的价值,从而影响矿工自身的利益。

事实上,已经有学术文献研究过这一场景,结果证明“这种反击的威胁会产生一种子博弈精炼纳什均衡,因此攻击从一开始就不会发生”。

感谢Hasu向我们推荐了这篇文章。

验证者的两难困境会带来反向激励,降低OR的安全性

关于验证者的两难困境,EdFelten已经在他的雄文中分析过了,并提出了解决方案。我们总结如下:

如果系统的激励机制如预期般运行,没人会做恶

如果没人作恶,运行验证者软件就没有意义,因为无法带来收益

如果没人运行验证者软件,排序者就会有机会做恶

如果排序者做恶,系统就不会再如预期般运行

这个问题看起来很重要,而且似乎是一个悖论!假设总的奖励金额是固定的,验证者人数越多,每个验证者的预期收益越低。另外,如果验证者人数增多,总的奖励金额有可能减少,因为欺诈行为会减少,导致验证者的收益更低。在接下来的分析中,Felten提出了如何解决验证者两难困境的方法。

我要提出反对意见,我认为验证者两难困境不像批评者说的那么严重。实际上,验证者靠的不是经济激励。假设你在rollup上构建了一个大型应用,或者你是持币者。如果这个系统被破坏,你的应用就无法运作,你的代币就会丧失价值。此外,对快速取款的需求会催生做市商服务,这与是否存在欺诈行为无关。举个现实的例子,比特币就没有通过经济激励的方式来鼓励节点运营者存储完整的区块链事务史,或将本地数据提供给对等节点,但是人们还是会无私地做这些事情。

即使不为运行验证者提供经济激励是激励不兼容的,但是它可以保障系统的安全性,这对于投资该系统的实体来说是很重要的。因此,我们认为,OptimisticLayer2系统不需要通过设计机制来解决验证者两难困境问题。

总结

就像文章标题说的那样,我们分析了2021年对以太坊来说最重要的技术之一:OptimisticRollup。

OR的优点包括:它是对以太坊的扩展,集成了以太坊的安全性和可组合性,以及开发者优势。与此同时,它还能提高以太坊的性能,而且几乎不会增加以太坊用户的成本或信任需求。我们探索了让OR可行的激励机制,并对常见的批评观点提出了反驳。

我们想要强调的是,OR的性能上限是L1上能够承载的数据量。因此,我们最好能做到两点:1)尽可能压缩你在L1上发布的数据,2)拥有一个大且低成本的数据层。

如需补充阅读,我们推荐Vitalik的《Rollup不完全指南》和《信任的模式》。我们还建议你了解一下另一个rollup方案ZKRollup。我们的朋友StarkWare正在构建ZKRollup方案。最后,还有其它方法可以实现去中心化可扩展性,如,分片和状态通道。它们都有各自的优缺点。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-6:384ms