单片区块链时代将结束,详解可拓展性和模块化区块链技术栈
作者:Plaintext Capital
原标题:《Scalability & The Modular Blockchain Stack》
编译:Web3er Liu,链捕手
可扩展性,即增加交易数量的能力,对所有区块链都至关重要。可拓展性是很关键的,因为要让全世界都进入 Web3 并释放这项技术的全部潜力,有必要找到解决方案,以处理不断增加的每秒交易量 (TPS) ,从而提供更快速、成本更低廉的交易。
尽管许多新公链拥有很高的TPS,但创新程度有限,付出的代价也很大,目前我们还远无法让传统金融系统在区块链上运行。例如,在Layer1架构上作出最大程度优化的Solana可以实现大约2500( Solana Beach 上可查询)的TPS。令人印象深刻的是,这比 Visa 声称的每秒可处理 65,000 笔交易要低几个数量级。
我从 2017 年开始进入加密货币行业,从那时起,大部分的研究都集中在性能扩展方面。我曾为以太坊 2.0 工作,并希望“分片”的启动将最终满足所有的可扩展性需求,但我在寻求改善跨分片通信产生的可组合性损失方面没有取得进展,后来我的关注重点转向了Rollup。
考虑到令人担忧的可拓展性问题,开发者正从以太坊转移到新的智能合约平台,但随着用户对这些新平台的需求量增加,区块空间饱和,用户体验再次下降(例如Avalanche的Gas费飙升)。
目前为止,提高TPS的开发方法主要集中在以下几点:
- 更快的共识算法(允许节点更快地就交易指令达成一致)
- 优化运行环境(使事务运行的更快)
- 更快地在网络内传播区块
这三点几乎覆盖了多数新公链所鼓吹的独特创新的99%。
归功于一些在研究和实践上述方法时做出优秀贡献的团队,上述创新方式的采用,叠加代码库的重新编写,创造出了许多高性能的网络节点(并非在以太坊源码基础上进行简单的分叉或构建),确实将TPS提高了几乎一个数量级。但是,为了让这些平台继续扩展用户,它们必须提升对硬件设备的需求以换取微博的线性增长。如果有一种更好的架构,既能解决可扩展性问题,又不影响去中心化性,又会如何呢?
可扩展性
今天的区块链平台可以被认为是单片的。每个区块链节点都参与运行构成区块链的所有部分:执行、共识和数据可用性。
执行(Execution)是对包含在区块中的交易的计算。简而言之,该过程要读取用户在以太坊网络上拥有的代币数量,减去他发送出去的代币数量,并将结果保存至链上的过程。
共识(Consensus)的作用是处理这些交易并对其进行排序和验证确认。没有共识算法,一组节点不可能就交易指令的次序达成一致,从而达到相同的状态。
最后,数据可用性(data availability)是保证区块完全发布到网络上的过程。为了让轻客户端(低级区块链节点)工作,网络必须确保完整的区块被发布,这样当出现一个无效区块时,诚实的节点可以创建一个欺诈证明(fraud proof)。数据可用性对于扩展区块链至关重要,因为它允许网络增加容量,而无需让所有节点都线性地增加可用资源。
今天,扩展区块链意味着同时扩展这三个部分。
自农业革命以来,人类一直依靠专业化来提高效率和生产力,软件也不例外。事实上,今天的互联网协议栈是由各个层组成的,每一层都服务于一个单一的目的。总的来说,它们是我们今天爱不释手的互联网的基础。
这些模块化的层还容许更强的灵活性和实验性尝试。例如,在互联网协议套件的传输层,我们在网上的每次在线连接中都通过它来将数据包从一台计算机发送到其他计算机。有许多不同的协议,TCP、UDP 和 SCTP 就是一些实例,开发者可以从中挑选,以最佳方式满足其应用程序的需求。
将类似的范式应用于区块链可以提供类似的可扩展性优势。
进入模块化区块链设计
执行层是面向用户的层(称为Rollup),交易在该层得到执行。
结算层(可选)为上层的所有Rollup汇总结果提供最终确定性,允许它们以去信任的方式进行桥接。
共识层&数据可用性层为交易指令进行排序和验证确认,并保证所有数据都已发布并可访问。
并非每个节点都需要执行并验证每一笔交易,以便所有其他节点都可证明知道区块链数据有效。只要我们有一个可以转存所有执行数据的基础层,我们就可以保证(通过零知识证明或博弈论机制)交易是有效的,并且网络内所有人都知道。因此,这些交易现在可以只由一个节点来执行。
如果这个节点有恶意行为,它就会被清理掉,另一个节点会接替其执行,网络运转就可继续进行。
这意味着什么?这意味着我们现在已经将重点从同时扩展多个节点转变到了扩展单个节点。这是一个更简单的工程学壮举。正如当今大型 Web2 平台的性能所证明的那样,我们已经知道如何扩展这种执行类别。
所以,执行层的可扩展性现在已经不碍事了,但有一个需要注意的地方,执行层必须将所有的数据转存到共识层。否则,轻节点(低资源节点)就没有办法意识到执行层中的潜在欺诈行为。这是因为轻型节点本身不执行和验证任何交易。
因此,我们需要一种廉价的方法,让任何与执行层进行同步通信的节点都可以证明出块节点操作者是否有欺诈行为。幸运的是,有几种方法可以实现这一目的。
Sovereign Rollups
我们所知道的Rollups必须在智能合约平台(公链)上进行结算,而智能合约链通常处理数据可用性和结算工作。Rollups需要在智能合约平台上执行欺诈或有效性证明,以获得安全性,并受到该链的容量和执行性能的约束。由于目前的智能合约平台要处理结算工作,其可扩展性是有限的。
然而,Sovereign Rollups的过程不需要智能合约平台的参与。相反,其每笔交易都在数据可用性层上发布,但在Rollup层进行结算。重要的是,数据可用性层(DA)不负责执行交易和结算,这可以提高其规模。执行交易的过程发生在Rollup层上,数据在DA层上可用,而结算最终再次发生在Rollup层。Rollup由Rollup层全节点监控DA层并通过防欺诈证明报告无效区块来维持安全性。
一旦欺诈证明由任何诚实的全节点产生,它就会在整个Rollup层网络中传播,任何收到欺诈证明的轻节点/全节点都会立即放弃无效区块,并清理无效区块生产者,这可使区块生产者保持诚实。
如果没有轻节点在指定的时间范围内收到欺诈证明,它们就可以确定该区块是有效的。
由于Rollup不涉及将交易包含在一个可能拥堵或易受干扰的结算层中,因此Sovereign Rollup可以提供延迟性更佳的最终确定状态。
具有中心辐射模型的结算层(可选)
在中心辐射模型中,(查看 Matthew Di Ferrante 的精彩帖子)一个受限的结算层位于数据可用性层之上。总共可能有三层:典型的Rollup(执行层)、结算层(Sovereign Rollups)和数据可用性层(DA层)。结算层像区块链一样工作,有自己的区块生产者和执行交易功能,但其执行功能仅限于某些类型的交易,使其更易于优化。
具体来说,结算层只关心存储执行层的区块数据,执行optimistic rollup的欺诈证明,或存储 zk-rollup 的状态差异和有效性证明,以及在这些Rollup间切换。
只需要与结算层同步,用户即可获得交易执行有效的充分保证。结算层节点由于其特殊性质而占用较小空间,因为它们不承担在执行层进行计算的繁重任务。
中心辐射模型很酷的地方在于,可以有许多Rollup/执行层可以在去信任化的情况下进行桥接。由于结算层为所有在顶层运行的交易提供安全性,在重组的情况下,所有Rollup执行层也会重组,从而消除了桥接所固有的安全风险。正如 Vitalik 最近所说,这种模式的共享安全性优于多链世界的碎片化安全性。事实上,Eth2.0 将充当这个枢纽,提供结算和数据可用性。
然而,这个模型也可以在任何专门的 DA 层上实现,例如 Celestia 或 Polygon Avail。具体来说,Celestia(数据可用性)和 Evmos(结算/枢纽)之间的合作是枢纽模型的一个有趣示例。
两者的比较
这两种模型有不同的权衡和取舍。在中心辐射模型中,执行层受到底层结算层的限制,但受益于与其他Rollup执行层的去信任化互操作性。例如,Arbitrum 和 Optimism 都使用以太坊作为他们的结算和数据可用性层,就像一个枢纽一样。在以太坊重组的情况下,无论它们之间桥接的资金量多大,由于这两个Rollup执行层也与以太坊一起重组,因此两个执行层都没有损失资金的风险。
在Sovereign Rollups的情形下,直接在数据可用性DA 层之上构建执行层,将防欺诈处理从链上转移,这使得延迟性、可升级性和其他方面具有更强的灵活性。但是,我们没有获取到执行层间的互操作性。
扩展数据可用性层
需要由执行层发布的数据量与执行的交易数量呈线性增长。所以,我们需要可扩展的数据层。
事实证明,扩展专门的数据层要比扩展单片区块链容易得多。
使用纠删码(这种技术可以让我们在碟片被严重划伤的情况下播放 CD)和区块数据的数据可用性采样(要求N个随机小部分)的组合,每个节点可以概率性地保证所有区块数据都是可用的,并发布到网络。 (查看 Mustafa Al-Bassam 的帖子,深入了探讨数据可用性问题和解决方案)
同时,这些节点可以整合在一起,通过组合每个轻节点独自拥有的数据样本来拼凑出数据全貌。
这种采样的巧妙之处在于,所需的样本大小与 DA 层区块大小成对数(即扩展性得非常好),并且随着用户向网络中添加更多节点,网络的数据容量也会增加。
其带来的主要启示是,我们可以大幅扩展“安全的”数据可用性,就像BitTorrent这样的文件共享网络一样。
总结
经过多年的研究和不确定性,区块链的扩展性问题终于在理论上得到了解决。我无法用原因赞美这是多么重大的一件事情。我简直要为此失眠了。
这意味着,处理所有共识、数据和交易执行工作的单片区块链的时代即将结束。
下一代协议将更加专业化,迎合我们今天所说的区块链的不同层级,并为实验性创新提供极大的灵活性。
我们将迎来一场狂欢:基于以太坊的Rollup项目或其派生分叉将部署在使用Celestia、Eth2.0或任何其他专业DA层的结算层上。结算层、DA层和执行层都将以不同方式进行优化。
我预计今天的许多智能合约平台将成为这个新堆栈的各个层级,许多新的项目将在未来崛起。对于在某些领域(例如虚拟机、共识算法和网络)具有特殊专业知识的团队来说,可能会有很大的机会。
走向光明和可扩展的未来。