V神谈Layer2扩容全文:Rollup与Validiums(有效性验证)两者间权衡

以太坊共同创办人 Vitalik Buterin 昨(31)日发表最新文章《 Different types of layer 2s 》,探讨不同类型的 Layer2 扩容方案。本文由 BlockBeats 编译、整理和撰稿。
(前情提要:两万字深度解析》L2或Rollup足够安全吗?)
(背景补充:V神喊话比特币「该学以太坊Layer2扩容」,不然仅停留在支付阶段)

本文目录

生态系统在过去一年中迅速扩展。传统上以 StarkNet、Arbitrum、Optimism 和 Scroll 为代表的 ZK-EVM rollup 生态系统进展迅速,不断提高其安全性,L2beat 页面很好地总结了每个专案的状态。

此外,我们还看到一些团队正在构建侧链,同时也开始构建 rollup 方案(如 Polygon),一些 L1 专案试图朝着有效性验证方向发展(如 Celo),还有全新的尝试(如 Linea、Zeth…)。

其中不可避免的结果之一是,我们看到 L2 专案趋向更加 heterogeneous(即「异构化」。译者注:在加密领域,「异构化」指的是不同种类或不同性质的事物共存或混合在一起的情况。这个词通常用於描述不同的区块链、协议、技术或资产,它们具有不同的特性、规则或属性)。我预计这一趋势将持续下去,原因如下:

目前,一些独立的 L1 专案正寻求更紧密地与以太坊生态系统接触,并有可能转变为 L2 专案。这些专案可能希望采取分阶段的过渡方式。立即进行整体过渡将降低可用性,因为技术尚未准备好将所有内容放入 rollup 方案中。而在较晚的整体过渡中,可能会牺牲势头并来不及具有实际意义。

一些中心化专案希望为其使用者提供更多的安全保障,并正在探索基於区块链的途径。在许多情况下,这些专案过去可能会研究「许可联盟链」。实际上,它们可能只需要达到「半中心化」水平的程度。此外,它们通常具有非常高的吞吐量,至少在短期内不适合使用 rollup 方案。

非金融应用,如游戏或社交媒体,希望去中心化,但只需要一定程度的安全性。

在社交媒体的情况下,实际上涉及以不同方式处理应用的不同部分:像使用者名称注册和帐户恢复这样的罕见且具有高价值的活动应该在 rollup 方案中完成,但像贴文和投票这样频繁且低价值的活动需要较少的安全保障,如果区块链失败导致您的帖子消失,那是可以接受的代价;但如果区块链失败导致您丢失了您的帐户,那将是一个更大的问题。

一个重要的主题是,尽管目前位於以太坊 L1 的应用程式和使用者在短期内愿意支付较小但仍然可见的 rollup 费用,但来自非区块链世界的使用者不太愿意这样做:如果您之前支付了 1 美元,那麽支付 0.10 美元就更容易接受,而如果之前支付了 0 美元,那就难以接受。

这适用於今天仍然中心化的应用程式,以及通常在其使用者群体较小的情况下拥有极低费用的较小的 L1 专案。

一个自然而然的问题是:对於特定应用程式,rollup 方案、validiums(有效性验证)和其他系统之间的这些复杂权衡中,哪一个对其而言是合理的?

延伸阅读:以太坊的正统Layer2,唯有Rollup扩容方案?

Rollups vs Validiums vs Disconnected Systems

我们将探讨的安全性与扩展性的第一个维度可以描述如下:如果您拥有一个在 L1 上发行的资产,然後将其存入 L2,再将其转移到您手中,那麽您能获得多大程度的保证可以将资产取回到 L1?

同时还有一个相关问题:是什麽技术选择导致了这种保证程度,以及该技术选择的权衡是什麽?

我们可以用一个简单的图表来描述这个问题:

值得一提的是,这是一个简化的方案,其中存在许多中间选项。例如:

这些中间选项可以看作是在 rollup 和 validium 之间的一个光谱(spectrum)上。但是,是什麽促使应用程式选择该 spectrum 上的特定点,而不是更左边或更右边的某个点呢?在这里,有两个主要因素:

1. 以太坊原生资料可用性的成本,随着技术的发展,这一成本将随着时间的推移而降低。以太坊的下一个硬分叉 Dencun 引入了 EIP-4844 (又称 「proto-danksharding」),它提供了大约 32 kB/ 秒的链上资料可用性。

预计在未来几年,随着完整的 danksharding 推出,这一资料可用性将逐步提高,最终目标约为 1.3 MB/ 秒的资料可用性。同时,资料压缩的改进将让我们在相同资料量下实现更多功能。

2. 应用程式的自身需求:使用者在高费用方面的损失,相对於应用程式出现问题,有多严重?金融应用程式会因为应用程式的故障而损失更多;游戏和社交媒体涉及大量的使用者活动,且相对较低价值的活动,因此对於它们来说,不同的安全权衡是有意义的。

这种权衡大致上看起来如图所示:

另一种值得一提的型别是预确认(pre-confirmations)。预确认是由一组参与者在 rollup 或 validium 中签署的讯息,表示「我们证明这些交易按此顺序包含在其中,且 post-state root 是这个」。这些参与者可能会签署一个与现实不符的预确认,但如果确实如此,他们的押金将被销毁。

这对於低价值应用(如消费者支付)非常有用,而高价值应用(如数百万美元的金融转帐)可能会等待由系统完整安全性支援的「常规」确认。

预确认可以被视为另一个混合系统的例子,类似於上文提到的「plasma/validium 混合」,但这次是在具有完整安全性但高延迟的 rollup(或 validium)与具有较低安全级别但低延迟的系统之间进行混合。需要较低延迟的应用会获得较低的安全性,但可以与那些愿意为获得最大安全性而承受较高延迟的应用共存於同一生态系统中。

无需信任地读取以太坊

另一种较少被考虑但仍然非常重要的连线形式,与系统读取以太坊区块链的能力有关。具体而言,这包括系统能够在以太坊发生回滚时进行回滚的能力。要了解为什麽这是有价值的,请考虑以下情况:

假设如图所示,以太坊区块链发生回滚。这可能是在一个纪元内的临时中断,此时区块链尚未最终确定;或者可能是因为过多的验证者离线,而导致区块链在较长时间内无法最终确定的非活动泄漏期。

由此可能产生的最糟糕情况如下所示:假设顶部链(top chain)的第一个区块从以太坊链的最左侧区块中读取某些资料。例如,有人在以太坊上存入了 100 个 ETH 到顶部链中。然後以太坊发生回滚,然而顶部链没有回滚。结果是,顶部链的未来区块正确地跟随新的、正确的以太坊区块链上的区块,但错误的交易(即 100 个 ETH 的存款)仍然存在於顶部链中。这种漏洞可能导致货币的增发,将顶部链上的桥接 ETH 转变为部分准备金。

有两种方法可以解决这个问题:

1. 顶部链只能读取以太坊已最终确定的区块,因此它永远不需要进行回滚;

2. 如果以太坊发生回滚,顶部链也可能发生回滚。两者都可以防止这个问题。前者更容易实施,但如果以太坊进入非活动泄漏期,可能会导致功能在较长时间内丧失。後者更难实施,但可以确保始终具有最佳功能。

请注意,第一种方法确实存在一种特殊情况。如果以太坊发生了 51% 攻击,导致同时出现两个新的不相容区块,它们都看起来已经最终确定,那麽顶部链可能会选择错误的区块(即以太坊社会共识最终不支援的区块),并且需要回滚以切换到正确的区块。可以说,事先编写程式码来处理这种情况是没有必要的;可以通过对顶部链进行硬分叉来处理这个问题。

区块链能够在无需信任的情况下读取以太坊的能力有两个重要原因:

首先,这种能力可以降低将在以太坊(或其他第二层解决方案)上发行的代币桥接到该链上涉及的安全问题;

其次,这种能力使得使用共享金钥储存结构的帐户抽象钱包,能够安全地持有该链上的资产。

尽管有争议,但第一种方法的重要性已经被广泛认可。同样,第二种方法也很重要,因为它意味着你可以拥有一个钱包,可以轻松更改金钥,并在许多不同的链上持有资产。

拥有桥接器是否能成为 validium?

假设顶部链最初是作为一个独立链启动的,然後有人在以太坊上部署了一个桥接合约。桥接合约只是一个接受顶部链区块头(block headers)的合约,它会验证提交给它的任何区块头是否附带有效的证书,证明该区块头已被顶部链的共识接受,并将该区块头新增到列表中。

应用程式可以在此基础上构建功能,如代币的存款和提取。一旦这样的桥接建立起来,它是否提供了我们之前提到的任何资产安全保障呢?

到目前为止,还没有!有两个原因:

1. 我们正在验证区块的签名,但没有验证状态转换是否正确。因此,如果您将在以太坊上发行的资产存入顶部链,并且顶部链的验证器变得不诚实,他们可以签署一个无效的状态转换,从而窃取这些资产;

2. 顶部链仍然无法读取以太坊。因此,您无法将以太坊本地资产存入顶部链,除非依赖於其他(可能不安全)的第三方桥接。

现在,让我们将桥接器构建为验证型桥接器:它不仅验证共识,还验证了使用 ZK-SNARK 证明计算出的任何新区块的状态是否正确。

一旦完成这一步骤,顶部链的验证器将无法窃取您的资金。他们可以释出一个包含不可用资料的区块,阻止所有人提取资金,但他们无法窃取资金(除非试图通过向用户索要赎金来揭示允许其提取资金的资料)。这与 validium 具有相同的安全模型。

然而,我们仍然没有解决第二个问题:顶部链无法读取以太坊的资料。为了实现这一点,我们需要采取以下两种方式之一:

1. 在顶部链中放置一个验证已最终确定的以太坊区块的桥接合约;

2. 在顶部链的每个区块中包含一个最近以太坊区块的hash,并采用分叉选择规则来强制进行hash连结。也就是说,将连结到非主链上的以太坊区块的顶部链区块本身,就是非主链的。如果顶部链区块连结到的以太坊区块起初在主链上,但後来变为非主链,顶部链区块必须也成为非主链的。

这些紫色的连结可以是 hash 连结,也可以是验证以太坊共识的桥接合约

这就够了吗?实际上,还不够,因为存在一些小的边缘情况:

1. 如果以太坊遭受了 51% 攻击,会发生什麽?

2. 如何处理以太坊的硬分叉升级?

3. 如何处理您的链的硬分叉升级?

对以太坊的 51% 攻击会导致与顶部链的 51% 攻击类似的後果,但情况相反。以太坊的硬分叉可能会使顶部链内的以太坊桥接失效。一个社会承诺(social commitment),即如果以太坊还原了一个已最终确定的区块,就会还原,如果以太坊进行了硬分叉,就会进行硬分叉,是解决这个问题最乾净的方式。

这样的承诺实际上可能永远不需要真正执行:如果顶部链的治理机构发现可能发生攻击或硬分叉的证据,可以启用治理机构,仅在治理机构失败时才对顶部链进行硬分叉。

对於第三个问题,唯一可行的答案是,在以太坊上设定某种形式的治理机构,使其能够让以太坊上的桥接合约意识到顶部链的硬分叉升级。

总结:双向验证桥接几乎足以使区块链成为 validium。主要剩下的要素是一种社会承诺,即如果以太坊发生异常情况导致桥接合约无法正常工作,另一条区块链将进行硬分叉作出回应。

结论

「与以太坊连线」有两个关键维度:

1. 提取到以太坊的安全性;

2. 读取以太坊的安全性。

这两者都非常重要,并有不同的考虑因素。在这两种情况下都存在一个连续谱:

请注意,每个维度都有两种不同的衡量方式(实际上有四个维度):提取安全性可以通过(i)安全级别,和(ii)多少使用者或使用情况受益於最高安全级别来衡量;

而读取安全性可以通过(i)链路能够多快读取以太坊的区块,特别是最终确定的区块与任何区块的区别,以及(ii)链路在处理诸如 51% 攻击和硬分叉等边缘情况时的社会承诺程度来衡量。

在这个设计空间的许多区域中都存在专案的价值。对於某些应用程式,高度的安全性和紧密的连线至关重要。对於其他应用程式,为了获得更大的可扩展性,可以接受更宽松的条件。在许多情况下,从今天开始使用较宽松的条件,随着技术的改进,在未来十年内逐渐过渡到更紧密的耦合可能是最优选择。

📍相关报导📍

Vitalik ETH香港演讲:以太坊至今的成就!未来又有什麽挑战?

以太坊Layer2总锁仓价值破120亿美元「创新高」,L2代币起飞了?

Arbitrum代币跌跌不休,团队分享了Layer2的激烈竞争心得

Vitalik撰文「以太坊Layer3的愿景」: 怎样的L3才合理?不该重复堆叠Rollups (全文)

Leave a Reply

Your email address will not be published. Required fields are marked *