售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
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 的批评,并做出回应。
我们在上文提到,较长的争议期有助于提高安全性。这里面似乎有一个内在权衡关系:较长的争议期不利于 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 对这笔事务的状态转换提出争议,取消该状态转换,并得到了试图作恶的排序者的保证金作
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!