本文深入探讨了互动 Rollup 协议,尤其是挑战期的优化问题。文章分析了较长和较短挑战期的优缺点,并推导出最优挑战期的数学公式,旨在在链的总运营成本最低的情况下平衡安全性与用户体验。
交互式 rollup 协议,例如我们的 Arbitrum Rollup,通过让验证者断言合约将执行的操作,并允许其他验证者在认为不正确时对该断言进行挑战或驳斥,从而加速智能合约的执行。如果在挑战时间内没有任何挑战被提出,则该断言被确认真实,系统继续向前推进。在常见情况下,断言通常是正确的,而挑战则非常罕见,因此 rollup 链可以比链上合约更快、更低成本地构建进展。
那么,挑战周期应该多长呢?正如我将在这篇文章中展示的那样,有一些因素促使我们希望挑战周期更长,而其他因素则驱动我们朝着更短的挑战周期前进。下面我将推导出一个公式,用于计算最优挑战周期,以最小化链的总操作成本。
长挑战周期的优点
众所周知,较长的挑战周期更安全,因为它使得对链的审查攻击更加困难。恶意行为者可能尝试进行攻击,通过提出一个虚假的断言来描述链可能执行的操作,然后他们会审查任何尝试挑战该断言的行为,直到挑战周期结束。挑战周期越长,此类攻击成功的可能性就越小。
对这一点的合理模型是,在 C 个区块时间的挑战周期内,成功审查的概率随着 C 的增加而指数下降。如果 rollup 链的总价值(即攻击者通过窃取链上的所有内容所能获得的最大价值)为 V,那么攻击者预期窃取的价值按比例为 V exp(-AC),其中 A 是某个常数。为了威慑这种攻击,我们要求所有的断言者存入,比如说, 10 V exp(-AC),因此在攻击失败时损失的存款远远大于攻击的预期价值。
这对诚实的断言者施加了成本,因为他们必须锁定这么多资本。如果链协议设计得当且链活跃,则在常见情况下将有恰好一个诚实的断言者存入这么多。该存款的单位时间成本为存款规模乘以名义利率。
挑战时间越长,此存款可以越小,因此较长的存款时间减少了(这部分)链的总操作成本。
短挑战周期的优点
希望从链中提取资金的用户更喜欢短的挑战周期。如果用户在 rollup 链上进行提款交易,则他们的资金在挑战周期结束之前不会出现在主 L1 链上。从用户的角度来看,挑战周期期间这些资金是锁定的。
(用户可能会找到流动性提供者,向他们提前提供资金,以换取提供者稍后获得用户提取的资金。但这只是将锁定资金的成本转移给提供者,用户仍然需要支付给提供者的费用作为补偿——因此用户仍然承担锁定的成本。)
我们可以通过假设在平均区块时间内,链上所有资金的一个比例 W 被提取的方式来模型化这一成本。在任何时刻,提取锁定中的总资金为 C WV(因为每个区块提取 WV),因此在任何时刻提取锁定中的资金的总量是 , 这对链用户施加的成本为该金额乘以利率。
因为这一成本与挑战时间 C 成比例,因此较短的存款时间减少了(这部分)链的总操作成本。
寻找最优挑战周期
最优挑战周期将在两者成本最小化的中间位置。很有趣的是,两部分成本都是锁定资金,其成本为锁定金额乘以假设的利率。因此,最优挑战周期不依赖于利率——最小值将在锁定资金的总量,即断言者的锁定存款加上用户的锁定提款,最小化时达到。
让我们进行计算。任何时候,总锁定资金的平均值为 10 V exp(-AC) + CWV。因为 V 出现在两个项中,它不会影响最小点。最小值将在 10 exp(-AC) + CW 最小化的 C 值处。我们将通过求导找到最优值,然后令所得导数等于零并求解 C。
不赘述结果,最优点出现在 C = ln(10A/W) / A 时。
这在实践中意味着什么?让我们输入一些合理的数字,如上图所示。我们将设定 A,以使攻击者在一个区块时间内维持审查攻击的机会为 99%——这相当于 A = -ln(0.99) = 0.01。我们假设每日提取链上总价值的 1%——因此假设 15 秒的区块时间,区块时间的提取比例大约为 W = 0.000002。将这些值代入公式,我们得到了一个最优的挑战延迟 C = 1081 个区块。假设 15 秒一个区块时间,这大约是 4.5 小时。
这费用多少?在任何给定时刻,链总价值的大约 0.2% 将以某种方式锁定。如果正常利率为 5%,结果是,所有锁定成本对链总价值施加 0.01% 的年税。以那个极其低的价格,你可以拥有一条更快、消耗更少油费且更具可扩展性的链。
想了解更多关于rollup的内容吗?请查看我之前的 rollup 教程,或了解更多关于 Arbitrum Rollup 如何工作的内容。或者在测试网尝试我们的 代码。
- 原文链接: medium.com/offchainlabs/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!