本文深入探讨了以太坊第二层(L2)扩展方案中的欺诈证明(Fraud Proofs)和有效性证明(Validity Proofs)的区别,分析了它们各自的优势和劣势,并讨论了它们在应对51%攻击时的表现。
在这篇博客文章中,我们基于欺诈证明(Fraud Proofs)和有效性证明(Validity Proofs)之间的区别,分析并比较各种二层(Layer-2,L2)扩展解决方案。我们认为,有效性证明有一个根本性优势,即确保只有正确的状态转移会被接受。
在最近几个月,几种基于证明的令人兴奋的尝试解决以太坊的可扩展性问题的项目相继出现,例如 Truebit、Gluon Plasma、dFusion、Roll-Up 和 Ignis。基本思想很简单:与其在区块链上写入大量交易,不如生成一个证明,表明这些交易的某个简洁表示(例如哈希)代表着新的事务状态。
上述项目都是L2解决方案:它们定义了一种在第一层(Layer-1,L1)之上运行的协议(和逻辑),并依赖于L1提供各种服务:存款/取款、离链状态的承诺账本,以及作为“通用时钟”。重要的是,L1并不知道,也因此无法强制执行任何L2逻辑。
我们希望提出一个框架,以比较这些解决方案,特别关注欺诈证明与我们所称的有效性证明之间的区别。从根本上来说,欺诈证明和有效性证明可以存在于L1中,但目前的尝试,因此我们的分析,都是在L2中进行的。
欺诈证明提供证据表明某个状态转移是错误的。它们反映了一个乐观的世界观:假设各个区块仅表示L2数据的正确状态,直到被证明为错误。实际上,一个被承诺的区块可能确实包含一个错误的状态转移。
有效性证明提供证据表明某个状态转移是正确的。它们反映了一个更为悲观的世界观。区块仅在该状态正确时才包括代表L2状态的值。
在继续之前,值得强调的是:证明系统(例如SNARK、STARK)可以用作欺诈证明或有效性证明。人们不应将如何证明(例如SNARK、STARK)与证明的内容(欺诈或有效性)混淆。
欺诈证明的主要优点是它们并非在每个状态转移中都需要,而仅当事情被认为出现故障时才需要。因此,它们需要较少的计算资源,并更适合于受扩展性限制的环境。这些协议的主要缺点来自于它们的交互性:它们定义了多个方之间的“对话”。这个对话要求各方——尤其是声称欺诈的方——需在场(活跃性),并允许其他方以各种方式中断对话。但问题的核心在于该协议对沉默的解释(对新状态没有挑战)为隐含同意。实际上,攻击者可能会尝试通过DDoS攻击制造一种沉默的假象。
让我们描述这个概念性协议:由于一个区块可能包含错误的状态转移,欺诈证明协议允许一个时间框架——争议时间延迟(Dispute Time Delay,DTD)——来质疑这个错误的状态。这个窗口用区块来衡量。如果在DTD内没有提交欺诈证明,则L2状态转移被视为正确。如果向智能合约提交欺诈证明,并且它被认定为正确(即在DTD内提交,并且确实证明了错误的状态转移),则至少导致智能合约恢复到上一个正确状态的承诺。可能会施加额外的步骤,例如对违约方的惩罚。
DTD持续时间的选择是有影响的:时间越长,检测到错误状态转移的可能性就越高——这是好的。但是时间越长,用户等待的时间就越久,例如提取资金——这是不好的。
这些则简单得多:将某些离线计算的表示发送到智能合约。智能合约在验证该值正确后,才会更新区块链。有效性证明的主要优点在于区块链将始终反映正确的L2状态,且新的状态可以立即被依赖和使用。主要缺点是每一个状态转移都需要证明,而不仅仅是在这类转移受到质疑时,且这影响了可扩展性。
在众多可能的攻击中,我们将重点关注L1上的51%攻击。近期我们看到了一波激增,包括对以太经典的攻击。欺诈证明和有效性证明在这种攻击中表现如何?
欺诈证明:51%攻击允许攻击者在区块链中引入一个欺诈状态,并例如从被攻击的交易所窃取资金。具体来说:
总结来说,根本问题在于一个L2解决方案定义了它自己的逻辑,特别是允许一个包含欺诈状态转移的区块。攻击者窃取资金后的账本状态是一个合法状态!未发生双重支出,但仍然发生了欺诈。
有效性证明:51%攻击只能撤回记录的历史,并可能提供一个替代历史;重要的是,这个替代历史也是正确的。在这里可以执行的攻击范围仅限于L1能实施的攻击。在加密资产之间的交易(尤其是当所有交易的资产都在同一区块链上时),撤回记录的历史有时可以是一个极具利润的举动:例如,卖方可能很高兴撤回一笔在事后看来几乎是最低价的交易,但在特定区块链上的加密资产未有资产的直接窃取手段。
考虑到这些重大缺点,为什么还要考虑欺诈证明系统(例如Gluon Plasma和dFusion)?主要原因是证明有效性在最近以前过于昂贵且繁琐。
在使用证明系统之前,非许可系统中“有效性证明”的唯一选项涉及天真的重放,因此大大限制了可扩展性;本质上,这种重放就是今天在L1中所做的,这对可扩展性造成已知的惩罚。证明系统提供了一种非常吸引人的特性,称为简洁性:验证一个状态转移,只需验证一个证明,这个过程的成本有效独立于状态转移的大小(更确切地说是与状态转移的大小呈多对数关系)。
Ignis/Roll-Up都依赖于需要可信设置和比STARKs显著更多的证明者计算资源的SNARKs。StarkWare正致力于部署StarkDEX,这是其针对DEX的可扩展性解决方案,将使用STARKs来实现有效性证明。我们计划在2019年第一季度末在测试网上看到这一成果。
这篇博客文章比较了欺诈证明与有效性证明作为L2可扩展解决方案的工具。我们强调了有效性证明在应对51%攻击方面内在的优势。STARKs凭借快速的证明时间、简洁的验证和无信任设置,是生成有效性证明的有力工具。
感谢Dan Robinson、Linda Xie、Alexey Akhunov和Georgios Konstantopoulos审阅这篇博客文章的草稿。
StarkWare
- 原文链接: medium.com/starkware/val...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!