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

2021-02-07 12:46:44 作者:金色财经

Optimistic Rollup 的激励机制

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

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

诚信保证金和争议期

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

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

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

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

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

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

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

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

Alice 发现该争议,也提出争议(挑战她自己!)

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

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

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

对 Optimistic Rollup 批评的回应

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

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

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

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

参与方:

Alice:在 L2 上有 5 ETH

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

步骤:

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

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

可能会发生两种情况:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

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

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

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

相关推荐

图文推荐