有效性证明与欺诈证明

一.背景

最近几个月,一些令人兴奋的基于证明的解决以太坊可扩展性问题的尝试浮出水面——Truebit、 Gluon Plasma、dFusion、Roll-Up和Ignis等项目。基本思想很简单:不是将许多交易写入区块链,而是证明这些交易的一些简洁表示(例如哈希)代表了新的事务状态。

上述项目都是 L2 解决方案:它们定义了一个运行在 Layer-1 (L1) 之上的协议(和逻辑),并依赖于它来提供各种服务:存款/取款,用于承诺脱链的分类帐状态,并作为“通用时钟”。重要的是,L1 不知道,因此无法强制执行任何 L2 逻辑。

我们想提出一个比较这些解决方案的框架,特别关注欺诈证明之间的差异,以及我们称之为有效性证明的东西。从根本上说,欺诈证明和有效性证明可以存在于 L1 中,但当前的尝试以及我们的分析都存在于 L2 中。

欺诈证明提供了状态转换不正确的证据。它们反映了对世界的乐观看法:假设块仅代表 L2 数据的正确状态,除非另有证明。实际上,已提交的块很可能包含不正确的状态转换。

有效性证明提供了状态转换正确的证据。它们反映了对世界更加悲观的看法。当且仅当该状态正确时,块才包含表示 L2 状态的值。

在继续之前,值得强调的是:证明系统(例如 SNARK、STARK)可以用作欺诈证明或有效性证明。不应将我们如何证明(例如 SNARK、STARK)与我们证明的内容(欺诈或有效性)混为一谈。

二. 欺诈证明

Fraud Proofs 的主要优势在于,并非每次状态转换都需要它们,但只有当事情发生故障时才需要它们。因此,它们需要更少的计算资源,并且更适合可扩展性受限的环境。这些协议的主要缺点源于它们的交互性:它们定义了多方之间的“对话”。对话要求各方——尤其是声称欺诈的一方——在场(活跃),并允许其他方通过各种方式打断对话。但问题的核心是协议将沉默(对新状态不存在挑战)解释为默示同意。事实上,攻击者可以尝试通过 DDoS 攻击来制造沉默的表面。

让我们描述一下概念协议:由于一个块可能包含不正确的状态转换,因此欺诈证明协议允许一个时间框架——争议时间延迟(DTD)——来质疑这个不正确的状态。该窗口以块为单位。如果 DTD 内没有提交欺诈证明,则认为 L2 状态转换是正确的。如果向智能合约提交了欺诈证明,并且发现它是正确的(即,在 DTD 中提交,并且确实证明了不正确的状态转换),它至少会导致智能合约恢复到最后正确的 L2 状态。可能会采取其他措施,例如对违规方的处罚。

DTD 持续时间的选择很重要:持续时间越长,检测到错误状态转换的概率就越高——这很好。但是,时间越长,用户必须等待的时间越长,例如提取资金——这很糟糕。

三.有效性证明

这些是一个完全简单的野兽:一些链下计算的表示被发送到智能合约。智能合约仅在验证正确后才使用此新值更新区块链。有效性证明的主要优点是区块链将始终反映正确的 L2 状态,并且可以立即依赖和使用新状态。主要缺点是每次状态转换都需要证明,而不仅仅是当这种转换受到质疑时,这会影响可扩展性。

51%-攻击

在众多可能的攻击中,我们希望关注 L1 上的 51% 攻击。我们最近看到了这些事件的激增,包括对 Ethereum Classic 的攻击。欺诈证明和有效性证明如何抵御此类攻击?

欺诈证明:51% 攻击允许攻击者在区块链中引入欺诈状态,例如,从被攻击的交易所窃取资金。更详细地说:

攻击者创建具有欺诈性状态转换的 BlockFr。例如,这包括将交易所中的所有资金转移到他们自己的账户。

在 BlockFr 之上,他们将添加 DTD 块,最终形成一个块,其中包括提取BlockFr 中授予的资金。

然后,他们继续将链扩展到 DTD 之外,并超出当前链。他们有能力这样做,因为他们控制了 51% 的哈希率。

令人不安的是,发起此类攻击的运营成本与“大奖”无关(目前非常低:对以太坊的攻击低于 10 万美元/小时),即受到攻击的交易所控制的资金。这意味着随着加密货币交易所活动量的增长,它们成为此类攻击越来越有吸引力的目标。

总而言之,根本问题是 L2 解决方案定义了自己的逻辑,特别是允许包含欺诈状态转换的块。攻击者窃取资金后账本的状态是合法状态!从来没有发生过双重支出,然而,欺诈发生了。 有效性证明:51% 的攻击只能展开记录的历史,并可能提供替代历史;重要的是,这种替代历史也是正确的。这里可以进行的攻击范围仅限于 L1 可能的攻击。在加密货币对加密货币的交易中(特别是当所有交易的资产都位于同一个区块链上时),记录历史的平仓有时可能是一个非常有利可图的举动:例如,卖家可能很高兴平仓交易事后看来,这是一个最低价格,但在给定区块链上的加密资产交换中,没有办法彻底盗窃资产。 建议的解决方案

考虑到这些重大缺点,为什么要考虑防欺诈系统(例如 Gluon Plasma 和 dFusion)?主要原因是直到最近证明有效性仍然过于昂贵和繁琐。

在使用证明系统之前,无许可系统中“有效性证明”的唯一选择涉及天真的重放,因此极大地限制了可扩展性;从本质上讲,这种重放是今天在 L1 中仍然在做的事情,已知的代价是可扩展性。证明系统提供了一个非常吸引人的特性,称为简洁性:为了验证状态转换,只需验证一个证明,其代价是有效地与状态转换的大小无关(更准确地说,它是状态转换大小的多对数)。

与 STARK 相比,Ignis/Roll-Up 都依赖于需要可信设置和更多证明者计算资源的 SNARK。StarkWare 正在努力部署 StarkDEX,这是它的 DEX 可扩展性解决方案,它将使用 STARK 来实现有效性证明。我们打算在 2019 年第一季度末将其部署在测试网上。

四.结论

这篇博文将欺诈证明与有效性证明作为 L2 可扩展性解决方案的工具进行了比较。我们强调了有效性证明在 51% 攻击方面的固有优势。STARK 凭借其快速的证明时间、简洁的验证和无需信任的设置,是生成有效性证明的一种令人信服的手段。

全部评论(0)