阶段1和阶段2何时合理的数学分析
作者:维塔利克·布特林 2025 年 5 月 6 日 原文链接
基于此前的草稿扩展:https://x.com/VitalikButerin/status/1919263869308191017
以太坊 rollup 安全的三个"阶段"可以通过安全委员会在何种情况下被允许覆盖无信任(即纯密码学或博弈论)组件来描述:
- 阶段0:安全委员会拥有完全控制权。虽然可能有一个证明系统(乐观的或零知识的)在运行,但安全委员会可以通过简单多数投票推翻它。因此,证明系统仅具有"建议性质"。
- 阶段1:安全委员会需要75%(至少6/8)批准才能进行覆盖。必须有足够数量(即>=3)的成员来自主要组织之外,以防止达到法定人数。因此,覆盖证明系统存在很高但并非不可逾越的障碍。
- 阶段2:安全委员会只能在出现可证明缺陷的情况下采取行动。可证明的缺陷可能是例如两个冗余证明系统(如OP和ZK)彼此结果不一致。而且如果存在可证明的缺陷,它只能在已提议的答案中选择一个:它不能任意给出答案。
我们可以用一个图表来展示安全委员会在每个阶段拥有的"投票份额":
一个重要的问题是:L2何时从阶段0过渡到阶段1,以及从阶段1过渡到阶段2是最佳的?
不立即进入阶段2的唯一有效理由是你不完全信任证明系统——这是一种可以理解的担忧:它涉及大量代码,如果代码有问题,攻击者可能会窃取所有用户的资产。你对证明系统的信心越大(或者相反,对安全委员会的信心越低),你就越想向右移动。
事实证明,我们可以用一个简化的数学模型来量化这一点。首先,让我们列出假设:
- 每个安全委员会成员有10%的独立"失效"概率
- 我们将活性失败[拒绝签名或密钥无法访问]和安全失败[签署错误内容或密钥被黑客入侵]视为同等可能。实际上,我们只假设一种"失效"类别,即"失效"的安全委员会成员既会签署错误的内容,也不会签署正确的内容
- 在阶段0中,安全委员会是7人中的4人,在阶段1中是8人中的6人
- 我们假设一个单一的整体证明系统(而不是一个2/3设计,其中如果两者不一致,安全委员会可以打破僵局)。因此,在阶段2中,安全委员会完全不重要。
基于这些假设,以及给定证明系统失效的特定概率,我们希望最小化L2失效的概率。
我们可以使用二项分布来做到这一点:
- 如果每个安全委员会成员有10%的独立破坏概率,那么至少4个(共7个)成员破坏的概率为0.2728%。因此,阶段0的rollup有固定的0.2728%失败概率。
- 阶段1的rollup可能在两种情况下失败:要么证明系统失败且安全委员会有>=3个成员失效导致无法覆盖(概率乘以证明系统失败率),要么安全委员会有6+个成员失效并能自行强制错误答案(固定概率)
- 阶段2的rollup失败概率仅等于证明系统失败的概率
以下是图表形式:
正如推测的那样,随着证明系统质量提高,最佳阶段从阶段0转向阶段1,然后从阶段1转向阶段2。在阶段0质量的证明系统上实施阶段2是最糟糕的选择。
现在,请注意上述简化模型中的假设非常不完善:
- 实际上,安全委员会成员并非相互独立,他们存在"共因失效":他们可能勾结,或者都以相同方式被胁迫或被黑客攻击等。要求在主要组织之外有一个能阻止法定人数的子集旨在缓解这一问题,但这仍然远非完美。
- 证明系统本身可能是多个独立系统的组合(这是我在https://ethereum-magicians.org/t/a-simple-l2-security-and-finalization-roadmap/23309...中提倡的)。在这种情况下,(i)证明系统失败的概率可能会非常低,并且(ii)即使在阶段2,安全委员会也很重要,作为打破平局的手段。
这两个论点都表明阶段1和阶段2比图表显示的更具吸引力。如果你认真对待这些数学,阶段0几乎从来就不合理:你应该至少直接启动到阶段1。我听到的主要反对意见是:如果发生关键漏洞,可能很难让8个安全委员会成员中的6个及时签名来修复它。但有一个简单的解决方法:给任何单个安全委员会成员延迟提款1-2周的权限,给其他人足够的时间采取行动。
然而,同时,过快跳转到阶段2也是一个错误,特别是如果转向阶段2的工作是以牺牲加强底层证明系统的工作为代价的。理想情况下,像l2beat这样的数据提供商应该展示证明系统审计和成熟度指标(最好是证明系统实现的,而不是整个rollup的,这样我们可以重复使用)以及阶段信息。