两年半前,我在《终局》("Endgame")一文中提到,从技术角度看,区块链未来的不同发展路径似乎非常相似。在这两种情况下,链上都有大量的交易,处理这些交易需要:(1)大量的计算;(2)大量的数据带宽。
普通的以太坊节点(比如现在我电脑上运行的 2 TB reth 归档节点)无法直接验证所需的海量数据和计算,即使有强大的软件工程能力和 Verkle 树也不行。相反,在L1分片和以Rollup为中心的解决方案中,ZK-SNARKs被用来验证计算,DAS被用来验证数据的可用性。无论是 L2 分片还是 Rollup,DAS 都是一样的,ZK-SNARKs 技术也是一样的。它们既是智能合约代码,也是协议功能。从真正的技术角度来看,以太坊是分片,而 Rollups 是分片。
这自然会引出一个问题:两者之间有什么区别?区别之一是代码错误的后果:在 Rollups 中,代币被盗;在分片中,共识破裂。不过,我预测随着协议的稳定和形式验证技术的提高,代码错误的影响会越来越小。那么,这两种解决方案之间还存在哪些可能长期存在的差异呢?
执行环境的多样性
2019 年,我们讨论了以太坊执行环境的想法。从本质上讲,以太坊将拥有不同的"区域",可以为账户(包括UTXO等完全不同的方法)、虚拟机的工作方式以及其他功能设置不同的规则。这样就可以在堆栈的不同部分实现方法多样性,但如果以太坊试图将多种功能整合为一体,就很难实现这一点。
最终,我们放弃了一些更雄心勃勃的计划,只保留了 EVM。然而,以太坊 L2(包括 rollups、validiums 和 Plasmas)可以说最终都是作为执行环境。目前,我们通常专注于等价于 EVM 的 L2,但这忽略了许多其他方法带来的多样性:
- Arbitrum Stylus,它在 EVM 之外增加了第二个基于 WASM 的甲骨文;
- 燃料,它采用了与比特币类似的基于UTXO的架构(但功能更强);
- Aztec,它引入了一种新的语言和编程形式化,以基于 ZK-SNARKs 的隐私保护智能合约为中心。
我们可以尝试让 EVM 成为一个超级虚拟机,涵盖所有可能的形式化,但这会大大降低每个功能的效率。最好还是让这些平台做它们擅长的事情。
安全权衡:可扩展性和交易速度
以太坊 L1 提供了非常强大的安全保证。如果 L1 上的最终区块中包含的数据被提交,整个共识(包括极端情况下的社会共识)将确保数据无法被篡改,并且由该数据触发的任何执行都不会被还原,数据仍可访问。为了实现这一安全保证,以太坊 L1 愿意接受高昂的成本。
在撰写本文时,交易费用相对较低:第 2 层的每笔交易费用不到 1 美分,即使在第 1 层,基本的 ETH 转帐也不到 1 美元。如果技术进步足够快,可用区块空间的增长能跟上需求,这些费用在未来可能会保持在相对较低的水平,但也可能不会。对于许多非金融应用(如社交媒体或游戏)来说,即使是 0.01 美元的交易费也太高了。
然而,社交媒体和游戏并不需要与 L1 相同的安全模式。如果有人可以花一百万美元撤销自己输掉比赛的记录,或者让一条推文比实际时间晚三天出现,那也无所谓。因此,这些应用不应承担相同的安全成本。L2 解决方案通过支持一系列数据可用性方法来实现这一目标,这些方法包括卷积、等离子体和验证。
另一个需要权衡的问题是从 L2 到 L2 的资产转移。我预测,在未来 5 到 10 年内,所有的 Rollups 都将是 ZK Rollups,而 Binius 和 Circle STARKs 等带有查找功能的超高效证明系统,再加上证明聚合层,将使 L2 在每个插槽中提供最终状态根成为可能。
但目前,我们只能将乐观滚动和ZK滚动复杂地融合在一起,并使用不同的证明时间窗口。如果我们在 2021 年实施执行分片,那么保持分片诚实的安全模式将是 Optimistic Rollups,而不是 ZK,因此 L1 将不得不管理复杂的链上防欺诈逻辑,而且在分片之间转移资产的提款时间将长达一周。但就像代码错误一样,我认为这个问题最终也将是暂时的。
交易速度是安全权衡的第三个方面,也是更持久的一个方面。以太坊每 12 秒产生一个区块,为了避免过度中心化,不会更快。不过,许多 L2 正在探索将区块时间压缩到几百毫秒。12 秒并不算太糟糕:用户通常平均等待 6-7 秒才能将其交易纳入一个区块(不只是 6 秒,因为下一个区块可能不会将其纳入)。这与我使用信用卡支付时等待的时间相当。但是,许多应用程序需要更快的速度,而 L2 可以提供这种速度。
为了加快速度,L2 有一个预先确认机制:L2 验证者本身承诺在特定时间用数字签名包含交易,如果交易未被包含,他们将受到惩罚。StakeSure 机制进一步扩展了这一机制。
现在,我们可以尝试在 L1 上实现所有这些功能。L1 可以包括一个快速预确认和慢速最终确认系统。它可以包括不同安全级别的分片。不过,这会增加协议的复杂性。此外,在 L1 上完成所有工作有可能导致共识超载,因为许多更大规模或更高吞吐量的方法会带来更高的集中化风险,或者需要更强的治理形式,而如果在 L1 上完成这些工作,就会影响协议的其他部分。通过 L2 进行权衡,以太坊可以在很大程度上避免这些风险。
第 2 层对组织和文化的益处
设想一个国家一分为二,一半成为资本主义国家,另一半成为高度政府主导的国家(与现实世界不同的是,假设这不是任何创伤性战争的结果,而只是某一天出现的自然边界)。
在资本主义部分,餐厅由不同的去中心化所有权、区块链和投票权组成。在政府主导的国家,它们都是政府部门,就像警察局一样。第一天,不会有太大变化。人们一般会根据劳动技能和基础设施等技术现实,遵循现有的习惯,哪些可行,哪些不可行。然而,一年后,你会看到巨大的变化,因为不同的激励机制和控制结构会导致行为的重大改变,影响到谁来谁去、建设什么、维护什么、放弃什么。
产业组织理论对这种差异谈得很多:它不仅讨论了政府管理的经济体与资本主义经济体之间的差异,还讨论了由大型特许经营公司主导的经济体与每家超市都由独立企业家经营的经济体之间的差异。我认为,以 L1 为中心的生态系统与以 L2 为中心的生态系统之间的区别类似。
作为一个以 L2 为中心的生态系统,我认为以太坊的主要优势如下:
- 由于以太坊是一个以 L2 为中心的生态系统,您可以独立构建一个具有独特功能的子生态系统,同时仍然是更大的以太坊生态系统的一部分。
- 如果你只构建一个以太坊客户端,那么你就是更大的以太坊的一部分,虽然你有一些创新空间,但远远小于 L2。但是,如果你构建的是一个完全独立的链,那么你的创造空间是巨大的,但你也失去了共享安全和网络效应的好处。L2 是一个很好的平衡。
- 它不仅为尝试新的执行环境和安全权衡提供了机会,从而实现可扩展性、灵活性和速度,而且还提供了一种激励机制,鼓励开发人员进行构建和维护,并鼓励社区提供支持。
事实上,每个 L2 都是孤立的,这也意味着部署新方法无需获得许可:您无需说服所有核心开发人员,您的新方法对整个链来说是安全的。如果你的 L2 失败了,那是你的责任。任何人都可以提出天马行空的想法(例如,Intmax'的Plasma方法),即使以太坊核心开发者完全无视它,他们也可以继续构建并最终部署。
L1 功能和预编译并非如此。即使在以太坊中,L1 开发的成败最终也往往比我们希望的更取决于政治。无论理论上可以构建什么,以 L1 为中心和以 L2 为中心的生态系统所产生的不同激励机制最终都会严重影响实际构建的内容、质量水平以及构建顺序。
以太坊以 L2 为中心的生态系统面临哪些挑战?
这种以 L2 为中心的方法面临着一个关键挑战,而以 L1 为中心的生态系统几乎不会面临同样的挑战:协调。换句话说,虽然以太坊有许多 L2,但挑战在于如何让它仍然感觉像以太坊,并保留以太坊的网络效应,而不是成为 N 个独立的链。如今,这种情况在很多方面都不尽如人意:
- 跨链通常需要中央桥接,这对普通用户来说非常复杂。如果您在 Optimism 上拥有代币,您就不能将别人的 Arbitrum 地址粘贴到您的钱包中进行转账。
- 跨链合约支持不利于个人智能合约钱包和组织钱包(包括 DAO)。如果在一个 L2 上更改密钥,就需要在其他每个 L2 上更改。
- 去中心化的验证基础设施往往缺乏。以太坊终于开始有了像 Helios 这样像样的轻客户端。然而,如果所有活动都发生在 L2 上,那么每个 L2 都需要自己的中心化 RPC,这毫无意义。原则上,一旦有了以太坊区块头,为 L2 构建轻客户端并不困难;但在实践中,这一点却很少受到重视。
社区正在努力改进这三个方面。在跨链代币交换方面,ERC-7683 标准是一项新提案,与现有的中心化桥梁不同,它没有固定的中心化节点、代币或管理。对于跨链账户,大多数钱包采取的方法是,短期使用跨链可重放消息更新密钥,长期使用密钥库滚动更新。针对 L2 的轻型客户端已经开始出现,例如针对星际网络的 Beerus。此外,下一代钱包最近在用户体验方面的改进解决了更多基本问题,例如允许用户访问 DApps 而无需手动切换网络。
不过,必须承认,以 L2 为中心的生态系统在协调方面确实面临真正的挑战。因为单个 L2 没有建立协调基础设施的自然经济动机:小规模的 L2 不会这么做,因为它们只能获得一小部分收益;大规模的 L2 也不会这么做,因为它们可以通过增强自己的本地网络效应获得同样多甚至更多的收益。如果每个 L2 都只考虑自己,而不考虑如何与更广泛的以太坊系统保持一致,我们就会失败,就像前面几节描述的城市乌托邦一样。
很难说这个问题有完美的解决方案。我只能说,生态系统需要更充分地认识到,跨 L2 基础设施与 L1 客户端、开发工具和编程语言一样,都是以太坊基础设施的一种,应该得到重视和资助。我们有协议公会;也许我们需要一个基础架构公会。
结论
在各种公开讨论中,"L2"和"sharding"经常被视为区块链扩展的两种对立策略。但当你研究底层技术时,你会发现一个难题:实际的底层扩展方法是完全相同的。无论是数据分片、欺诈验证器或ZK-SNARK验证器,还是跨Rollup、shard"通信的解决方案,主要区别在于:谁负责构建和更新这些组件,他们有多大的自主权?
从真正的技术角度来看,以 L2 为中心的生态系统本质上就是分片,但在分片中,你可以用自己的规则构建自己的分片。这非常强大,具有无限的创造力和大量的自主创新。但它也存在一些关键挑战,尤其是在协调方面。像以太坊这样以 L2 为中心的生态系统要想取得成功,就必须了解这些挑战,并迎难而上,从以 L1 为中心的生态系统中获得尽可能多的好处,尽可能接近两个世界的最佳状态。