两年半前,我在关于“以太坊终局”的文章中指出,从技术角度来看,区块链未来发展的不同路径看起来非常相似。在这两种情况下,链上都有大量的交易,并且处理这些交易需要(i)大量的计算和(ii)大量的数据带宽。像我用来写这篇文章的笔记本电脑上运行的2TB reth存档节点这样的常规以太坊节点,并不足以直接验证如此巨大的数据和计算量,即使有伟大的软件工程作品和Verkle树。 在“L1分片”和以rollup为中心的世界中,都使用ZK-SNARKs来验证计算,并使用DAS(数据可用性采样)来验证数据可用性。这两种情况下的DAS是相同的。两种情况下的ZK-SNARKs技术也是相同的,区别在于一种是智能合约代码,另一种是协议的一个嵌入特性。 从技术角度来看,以太坊实际上正在进行分片,而rollup是分片的一部分。
这引出了一个自然的问题:这两个世界之间的区别是什么?一个答案是代码错误的后果不同:在rollup世界中,代币会丢失,而在分片链世界中,会有共识失败。但我预计随着协议的固化和形式验证技术的改进,错误的重要性会减少。那么,我们可以预期这两种愿景的长期差异是什么呢? 执行环境的多样性2019年我们在以太坊上短暂尝试过的一个想法是执行环境。本质上,以太坊会有不同的“区域(zone)”,这些区域可以有不同的账户工作规则(包括完全不同的方法,如UTXO),虚拟机的工作方式以及其他特性。这将使在以太坊独立完成所有工作的情况下难以实现的一些方法得以实现。 最终,我们放弃了一些更具雄心的计划,只保留了EVM。然而,以太坊的L2(包括rollup、valdiums和Plasmas)在某种程度上充当了执行环境的角色。今天,我们通常专注于EVM等效的L2,但这忽略了许多替代方法的多样性: Arbitrum Stylus,除了EVM之外还增加了一个基于WASM的第二虚拟机。 Fuel,使用类似比特币(但更完备)的UTXO架构。 Aztec,引入了一种新的语言和编程范式,旨在围绕ZK-SNARKs的隐私保护智能合约进行设计。
Fuel的UTXO架构 我们可以尝试将EVM变成一个覆盖所有可能范式的超级虚拟机,但这将导致对每个概念的实现效果都远不如让像这些平台专注于各自的领域。 安全权衡:规模和速度以太坊L1提供了非常强的安全保障。如果某些数据在L1上被确认的区块中,这整个共识(包括在极端情况下的社会共识)都确保数据不会以违反应用程序规则的方式被编辑,任何由数据触发的执行不会被撤销,数据也将保持可访问性。为了实现这些保证,以太坊L1愿意接受高昂的成本。在撰写本文时,交易费用相对较低:二层网络每笔交易费用不到一美分,即使是L1上的基本ETH转账费用也不到1美元。如果技术进步足够快,以致于可用区块空间增长能够跟上需求,这些成本可能会保持低水平——但也可能不会。而且即使每笔交易0.01美元,对于许多非金融应用(例如社交媒体或游戏)来说也是太高了。 但社交媒体和游戏不需要L1相同的安全模型。如果有人花一百万美元来撤销他们输掉的一场棋局的记录,或使你的推文看起来像是在实际发布后三天发布的,这也是可以接受的。因此,这些应用不应该为相同的安全成本付出代价。一个以L2为中心的方法使这一点成为可能,通过支持从rollup到plasma再到validiums的各种数据可用性方法。
不同用例,不同L2类型 另一个安全权衡出现在从L2到L2传递资产的问题上。预计在5-10年后,所有rollup都会是ZK rollup,超高效的证明系统如Binius和Circle STARKs结合查找和证明聚合层,将使L2能够在每个slot提供最终状态根。目前,我们有复杂的混合乐观rollup和ZK rollup,各种证明时间窗口。如果我们在2021年实施了执行分片,保持分片诚实的安全模型将是乐观rollup,而不是ZK——因此L1将不得不管理系统复杂的欺诈证明逻辑,并有资产从分片转移到分片的一周等待期。但我认为这个问题最终也是暂时的。 第三个也是同样持久的安全权衡维度是交易速度。以太坊每12秒生成一个区块,不愿意更快,因为那样会过度中心化网络。然而,许多L2正在探索几百毫秒的区块时间。12秒已经不算太糟糕了:平均而言,用户提交一笔交易需要等待约6-7秒才能被包含到区块中(不仅仅是6秒,因为有可能下一个区块不会包含它们)。这与我用信用卡付款时的等待时间差不多。但许多应用需要更高的速度,L2提供了这一点。 为了提供更高的速度,L2依赖预确认机制:L2自己的验证者数字签名承诺在特定时间包含交易,如果交易未被包含,他们可能会受到惩罚。一种称为StakeSure的机制进一步概括了这一点。
L2预确认 我们可以尝试在L1上做所有这些。L1可以结合“快速预确认”和“慢速最终确认”系统。它可以结合不同安全级别的分片。然而,这会给协议增加很多复杂性。此外,全部在L1上进行会有过度超载共识的风险,因为许多更高规模或更快吞吐量的方法有更高的中心化风险或需要更强形式的“治理”,如果在L1上进行,这些更强要求的影响会波及到协议的其他部分。通过L2提供这些权衡,以太坊可以大部分避免这些风险。 L2在组织和文化上的优势想象一个国家被分成两半,一半变成资本主义,另一半变成高度政府主导的社会(与现实中的这种情况不同,假设在这个思想实验中,它不是任何种类的创伤性战争的结果;而是某一天一条边界神奇地出现了,仅此而已)。在资本主义部分,餐馆由各种去中心化所有权、连锁店和特许经营运营。在政府主导的部分,它们都是政府的分支机构,比如警察局。第一天,不会有太大变化。人们大体上遵循现有的习惯,什么有效,什么无效取决于技术现实,如劳动技能和基础设施。一年后,你会期望看到大的变化,因为不同的激励和控制结构导致行为的大变化,影响到谁来,谁留下,谁离开,建什么,维护什么,以及什么被遗弃。 工业组织理论涵盖了许多这些区别:它不仅谈论政府运行的经济与资本主义经济之间的区别,还讨论了由大型特许经营主导的经济与例如每个超市由独立企业家运营的经济之间的区别。我认为,以L1为中心的生态系统和以L2为中心的生态系统之间的区别也类似。
“核心人员运行一切”的架构会出很大问题 以太坊作为一个二层网络为中心的生态系统的关键好处可以表述如下: 以太坊是一个以L2为中心的生态系统,你可以自由独立地构建一个属于你的子生态系统,具有你独特的特性,同时又是更大以太坊的一部分。
如果你只是在构建以太坊客户端,你是更大以太坊的一部分,虽然你有一定的创造力空间,但比起L2要少得多。如果你在构建一个完全独立的链,你有最大的创造力空间,但你失去了共享安全性和共享网络效应的好处。L2形成了一个快乐的中间地带。 L2不仅创造了一个技术机会,可以实验新的执行环境和安全权衡以实现规模、灵活性和速度:它们还为开发者构建和维护它、以及社区围绕它形成和支持它创造了激励。 事实是,每个L2是孤立的,这意味着部署新方法是无许可的:不需要说服所有核心开发者你的新方法对链的其余部分是“安全的”。如果你的L2失败,那是你的责任。任何人都可以致力于完全奇怪的想法(例如Intmax对Plasma的方法),即使它们完全被以太坊核心开发者忽略,他们也可以继续构建并最终部署。L1特性和预编译不是这样的,即使在以太坊,L1开发成功和失败的决定往往取决于比我们希望的更多的政治因素。无论理论上可以构建什么,L1为中心的生态系统和L2为中心的生态系统创造的不同激励最终会极大地影响实际构建的东西,其质量和顺序。
|