随着时间的推移,我们可以将 Layer 1 每个区块的 gas 目标从 1500 万降低到 100 万,足以让一个区块包含单个 SNARK 和一些存取款操作,但没有太多其他操作,从而强制几乎所有用户活动转移到 Layer 2 协议。这样的设计仍然可以支持在每个块中提交许多 rollup:我们可以使用由定制构建器运行的链下聚合协议来收集来自多个 Layer 2 协议的 SNARK,并将它们组合成单个 SNARK。在这样的世界里,Layer 1 的唯一功能就是成为 Layer 2 协议的交换所,验证它们的证明,偶尔促进它们之间的大规模资金转移。
这种方法是可行的,但它有几个重要的弱点:
•它实际上是向后不兼容的,因为许多现有的基于 L1 的应用程序在经济上变得不可行的。由于费用变得过高,超过了清空这些账户的成本,高达数百或数千美元的用户资金可能会陷入困境。这个问题可以通过让用户签署消息来选择在协议内大规模迁移到他们所选择的 L2 来解决 (请参阅这里的一些早期实施想法),但这增加了过渡的复杂性,而且要想让它真正足够便宜,无论如何都需要在 Layer 1 进行某种 SNARK。当涉及到 SELFDESTRUCT 操作码这样的事情时,我通常喜欢打破向后兼容性,但在这种情况下,这种权衡似乎不那么有利。
•它可能仍然无法使验证变得足够便宜。理想情况下,以太坊协议应该很容易验证,不仅在笔记本电脑上,而且在手机、浏览器扩展,甚至在其他链中。第一次同步链,或者在长时间离线后同步链,也应该很容易。笔记本电脑节点可以在大约 20 毫秒内验证 100 万个 gas,但即使如此,也意味着离线一天后需要 54 秒进行同步 (假设单个插槽的最终结果将插槽时间增加到 32 秒),而对于手机或浏览器扩展来说,每个块需要几百毫秒,并且可能仍然是一个不可忽视的电池消耗。这些数字是可控的,但并不理想。
•即使在 L2 优先的生态系统中,L1 至少在一定程度上是负担得起的。如果用户在注意到新的状态数据不再可用时可以提取他们的资金,那么Validiums 可以从更强的安全模型中受益。如果经济上可行的跨 L2 直接转移的最小规模更小,套利就会变得更有效,特别是对于较小的代币。
因此,尝试找到一种使用 ZK-SNARKs 来验证 Layer 1 本身的方法似乎更合理。
