并行执行:区块链的下一代技术

这篇文章详细探讨了区块链交易的工作原理及其在并行执行中的作用,特别是在Solana和其他新兴区块链中的应用。文章介绍了区块链的交易流程、内存池概念以及并行计算的效率,分析了并行执行如何提升网络性能和可靠性,且提供了一些架构细节。通过比较不同区块链与并行执行模型的优缺点,文章为理解现代区块链技术提供了深刻见解。

序言

1.0 区块链交易

区块链是虚拟机器,一种基于软件的计算模型,运行在一个分布式物理计算机网络之上,任何人都可以参与其中,但对任何单一实体来说,控制它是极其困难的。区块链的概念首次在2008年中本聪(Satoshi Nakomoto)著名的比特币白皮书中被写下,作为在比特币中实现加密安全的点对点支付的核心基础设施。交易对区块链的意义就如同社交媒体和互联网公司中的日志;交易作为该特定网络活动的记录,主要的区别在于区块链上的交易是不可更改的,且通常是公开可观察的。

那么,交易到底是什么呢?

区块链上的交易涉及将数字资产从分布式账本上的一个地址转移到另一个地址,安全依赖于使用公钥加密。交易可用于去中心化的点对点转账,或者用于各种身份验证和验证过程。

可以在如 SeiTrace 这样的区块链浏览器上观察到的一个交易示例

1.1 区块链交易的工作原理

当一笔交易被发起时,即Bob(Bob)向Alice(Alice)发送一些代币,Bob的交易就被广播到基础区块链网络。随后,网络上专门的节点群开始工作,验证和确认交易的合法性。一旦足够多的节点验证了交易的内容,交易就会与其他用户的交易一起被添加到一个区块中。当一个区块填满后,它就会被添加到链上,因此称之为“区块链”。Bob的交易现在成为一个安全透明的账本的一部分,Bob和Alice都可以验证内容。

一般来说,所有区块链交易都包含元数据,帮助操作和保护网络的节点识别并执行一组给定的指令和参数。每笔交易将包含原始发送者输入的高层数据,如转账金额、目标地址和用于确认交易的数字签名,以及各种由网络和设计自动生成和附加的低层数据,不过这些数据因网络和设计而异。

然而,交易执行前在网络层进行的过程因区块链的设计而异。

1.1.1 待处理池

内存池或称 mempool 是区块链设计中的一个常见特征,由传统区块链网络如比特币和以太坊实施。待处理池简单来说是一个缓冲区或“候诊室”,用于等待添加到区块并执行的待处理交易。

为了更好地理解,我们可以列出在使用待处理池的区块链上交易的生命周期;

  1. 用户发起并签署一笔交易。

  2. 参与区块链网络的专门节点验证交易的内容是否合法且包含适当的参数。

  3. 一旦被验证,交易就会被路由到公共待处理池,与其他待处理交易并列。

  4. 最终,根据支付的交易Gas费与待处理池中的其他交易相比,我们的用户的待处理交易将与其他待处理交易一起被选中形成下一个区块。在这一阶段,我们的交易状态会显示为“成功”。

  5. 在一定时间或基于区块的阈值过后,区块本身被最终确定,交易成为存储在区块链上的不可更改的日志,只有在发生51%攻击的情况下,才有可能被破坏,这在其他情况下是极其困难的任务。

1.1.2 无待处理池(Solana)

需要注意的是,一些区块链,如Solana,并不使用待处理池,而是可能直接将交易转发给区块生产者以实现通过持续生产区块来增强高速度和吞吐量。

让我们走过一个在非待处理池区块链上交易的生命周期:

  1. 用户为使用的应用程序发起并签署一笔交易。

  2. 应用程序将交易信息路由到远程过程调用(RPC)服务器。

  3. RPC提供者将交易发送到当前指定的区块生产者,以及接下来的三位生产者;这是一个预防步骤,以防当前领导者无法及时执行交易。Solana采用了一个插槽领导者调度,有助于RPC更容易地路由交易。

  4. 区块生产者将已签名的交易发送到共识节点以进行验证。

  5. 共识节点进行投票以验证交易内容,一旦完成,交易状态就会反馈到RPC > 应用程序 > 用户,显示为“成功”或“失败”。

  6. 与基于待处理池的区块链类似,区块本身在经历一段特定时间或基于区块的阈值后被最终确定。

1.2 顺序执行

较早的区块链,主要是比特币和以太坊,采用顺序执行机制处理交易。每一笔被添加到区块链的交易都会引发网络状态的变化,而虚拟机(VM)的结构仅允许一次处理一个状态变化,以确保安全。

这导致了基础网络吞吐量的重大瓶颈,因为可以添加到区块的交易数量受限,从而导致更长的等待时间和前所未有的交易成本飙升,这在某些时候可能使网络变得不可用。此外,顺序执行模型的硬件组件利用效率较低,因此未能从计算突破(即多个处理器核心)中获益。

并行执行

2.0 什么是并行执行?

并行计算是计算机架构的一个关键组成部分,其起源可以追溯到1950年代末,尽管它的构思和理论甚至可以追溯到1837年。根据定义,并行计算指的是同时利用多个处理元素来解决一个操作的行为,其中一个更大、更复杂的任务被分解成较小的任务,以比串行处理的方式更有效地完成。

最初仅在高性能计算系统中实现,并行计算已发展成为当今计算架构的主导范式,因在互联网时代对计算的需求如指数级增长,加上之前几十年的频率扩展的限制,使得这种需求愈发明显。

这种架构标准同样适用于区块链,只是计算机所解决的主要任务是交易的处理和执行,或将价值从智能合约A转移到智能合约B,因此称之为并行执行。

并行执行意味着区块链可以同时处理多个不冲突的交易,而不是按顺序处理交易。这可以大大提高区块链网络的吞吐量,使其更具可扩展性和效率,以应对更高的活动负载和对区块空间的需求。

一个简单的类比是,考虑有多个通道的超市让购物者结账的效率,而不是每个人都共用一条通道。

并行执行为何重要?

并行执行在区块链中旨在提高网络的速度和性能,特别是当网络面对更高流量和资源需求时。在加密生态系统的背景下,若Bob希望铸造最新受欢迎的NFT系列,而Alice想购买她最喜欢的迷因币,网络将能够同时服务这两位用户,而无需在性能上有所妥协,从而保持用户体验的质量。

虽然这看似只是一个直观的生活品质特性,但并行执行所带来的网络性能提升为开发新的、创新的用例和应用程序提供了机会,这些用例和应用程序能够利用低延迟和高容量,进而为下一波大量用户进入加密生态系统奠定了基础。

并行执行如何工作?

尽管并行执行的前提相对简单,但基础区块链设计中的微妙差别影响了并行执行过程的实际表现。设计具备并行执行的区块链最相关的特性是交易能够访问其基础网络的状态,包括账户余额、存储和智能合约。

区块链上的并行执行可以分为确定性和乐观两种。确定性并行执行,由如Solana这类区块链采用,要求交易在执行前声明所有内存依赖关系,即预先声明它们希望访问的全局状态的哪些部分。尽管这一步骤为开发者带来了额外的开销,更广泛地说,这使得网络能够在执行之前对不冲突的交易进行排序和识别,创建一个可预测且高效的优化系统。相反,乐观并行执行则被设计为并行处理所有交易,在假定没有冲突的基础上运行。这使得基础区块链能够提供更快速的交易执行,尽管在发生冲突时可能需要在之后重新执行交易。如果发现两个冲突的交易被提交,系统可以根据冲突的性质重新处理和重新执行它们,无论是并行还是顺序。

为了更好地理解这些设计复杂性的影响,从推动今天并行执行前沿的团队的角度分析并行执行可能会是有益的。

当今并行执行的现状

为了更好地理解这些设计复杂性的影响,从推动今天并行执行前沿的团队的角度分析并行执行可能会是有益的。

3.1 Solana 虚拟机(SVM)

Solana是第一个围绕并行执行设计的区块链网络,受到创始人亚纳托利·雅科文科(Anatoly Yakovenko)在电信行业工作经验的启发。Solana旨在提供一个开发者平台,运行速度达到物理可能的极限,因此并行计算所释放的速度和效率是一个简单且直观的设计选择。

支持Solana快速速度和高吞吐量的关键组件是Sealevel,它是该网络的并行智能合约运行时环境。与基于EVM和WASM的环境不同,Sealevel采用多线程架构,这意味着它可以在验证程序核心能力范围内同时处理多个交易。

使Solana的并行执行成为可能的关键在于,当一笔交易被激活时,网络会分配一系列指令以执行该交易,特别是在执行哪些账户和状态的访问以及做出何种修改——这对于确定哪些交易是不冲突的并可以同时执行,以及允许尝试访问相同状态的交易同时进行至关重要。

考虑一下标签在机场托运行李系统中的效率。

Solana还利用Cloudbreak,自定义的accountsDB,用于存储和管理状态数据,以实现交易的并发读写。Cloudbreak针对并行执行进行了优化,横向扩展,以便在多个节点间分配和管理状态数据。

得益于其并行架构,Solana能够处理大量交易并快速执行,交易几乎能够实现瞬间最终确认。至今,Solana平均每秒处理2,000至10,000笔交易(TPS)。此外,SVM的用例正在逐渐增加,因为像Eclipse这样的团队推出了旨在利用SVM作为执行环境的第二层基础设施。

3.2 并行EVM

并行EVM描述了一个新的执行环境,旨在结合Solana和以太坊设计的“最佳部分”,即Solana的速度和性能与以太坊的安全性和流动性。通过并行处理交易而非传统EVM设计中的顺序处理,并行EVM使开发者能够在高性能网络上构建应用,同时能够利用EVM流动性和开发工具。

3.2.1 Sei 网络

Sei Network是一个EVM兼容的开源第一层区块链,承载了基于高性能构建的多种去中心化应用程序。Sei旨在为用户和开发者提供高速且低成本的实现,而并行执行是实现这一性能和用户体验的关键组成部分。目前,Sei提供390毫秒的区块确认时间,并在其pacific主网上处理了超过19亿的交易。

最初,Sei采用了确定性的并行执行模型,其中智能合约提前声明所需的状态访问,以便系统可以同时运行不冲突的交易。随着其V2升级的到来,Sei转而采用乐观并行模型,这意味着所有交易在提交给网络后(执行阶段)将被并行处理,然后审核与之前交易的信息是否冲突(验证阶段)。在发生两个或更多冲突的交易,即试图访问相同网络状态的交易时,Sei将识别冲突点,然后根据冲突的性质以并行或顺序方式重新运行这些交易。

为了存储和维护交易数据,Sei还将推出SeiDB,一个自定义数据库,旨在通过优化并行执行来改进v1的不足。SeiDB旨在降低存储冗余数据和维护高效磁盘使用的开销,以提高网络性能。V2减少了跟踪和存储所需的元数据数量,并启用了写入前日志以协助数据恢复,以防发生崩溃。

最后,Sei还最近宣布了其并行堆栈的推出,一个开放源代码的框架,旨在使第二层扩展解决方案,如rollups,能够利用并行执行的利益。

3.2.2 Monad

Monad是即将推出的并行EVM第一层区块链,为以太坊应用和基础设施提供完整的字节码和RPC兼容。通过一系列创新的技术实现,Monad旨在比现有区块链提供更具互动性的体验,同时通过优化性能和可移植性来维持更低的交易成本,具备1秒的区块时间和10,000 TPS的最终性。

Monad 实施并行执行和超标量流水线以优化交易的速度和吞吐量。类似于Sei v2,Monad将采用乐观执行模型,意味着网络会开始同时执行所有传入的交易,然后分析和验证交易以查找冲突并进行相应重新执行,最终目标是确保即使按顺序执行交易,结果也应相同。

重要的是要注意,为了与以太坊保持同步,Monad会在线性顺序中排序区块中的交易,每笔交易依次更新。

为了更高效地维护和访问区块链数据,Monad创建了自己的自定义MonadDB,专为区块链构建。Monad DB利用先进的Linux内核特性实现高效的异步磁盘操作,消除了同步输入/输出访问的约束。MonadDB提供异步输入/输出(async I/O)访问,这是实现并行执行的关键特性,系统可以在等待读取前一交易的状态时,开始处理下一交易。

一个简单的类比是,考虑制作一道多面菜(肉丸意大利面)。涉及的步骤是1)准备酱料,2)烹饪肉丸,3)煮意大利面。一位高效的厨师会先将水煮沸用于意大利面,然后准备酱料的材料,然后将意大利面投入现在正在沸腾的水中,然后烹饪酱料,最后是肉丸,而不是每一步一次完成一个任务。

3.3 Move

Move是一种编程语言,最初由Facebook团队在2019年为其已经停止的Diem项目开发。Move旨在以一种安全的方式处理智能合约和交易数据,消除其他语言的攻击向量,例如重入攻击。

MoveVM充当基于Move的区块链的原生执行环境,利用并行化技术提供更快的交易执行速度和更高的整体效率。

3.3.1 Aptos

Aptos是一种基于Move的第一层区块链,由前Diem项目成员开发,实现了并行执行,以为应用程序开发者提供高性能环境。Aptos采用Block-STM,这是软件事务内存(STM)并发控制机制的一个修改实现。

Block-STM是一个多线程的并行执行引擎,能够实现乐观的并行执行。交易在区块内被预先排序和战略性地排列,这是有效解决冲突并重新执行这些交易的关键。Aptos进行的研究表明,使用Block-STM的并行化理论上可以支持高达160K的TPS。

3.3.2 Sui

Sui与Aptos类似,是一个由前Diem项目成员开发的第一层区块链,采用Move语言。但是,Sui采用了自定义的Move实现,将存储模型和资产权限从原始Diem设计中改变。特别是,这允许Sui利用状态存储模型将独立交易表示为对象。每个对象在Sui的执行环境中都有一个唯一的ID,这使得系统能够轻松识别不冲突的交易并进行并行处理。

与Solana类似,Sui实施了确定性的并行执行,要求交易提前声明所需访问的账户。

3.3.3 Movement Labs

运动是什么?

Movement正在构建一套开发工具和区块链基础设施服务,使开发者能够轻松访问基于Move的构建优势。作为为Move开发者提供的类似AWS的执行即服务提供者,Movement将并行化作为实现更高吞吐量和整体网络效率的核心设计特征。MoveVM是一个模块化的执行环境,使区块链网络能够根据需要扩展和调整其交易处理能力,以支持越来越多的交易,从而增强其并行处理和执行交易的能力。

MoveVM架构

Movement还将推出M2,一个与EVM和Move客户端都能够互操作的ZK-rollup。M2将继承Block-STM并行化引擎,并预计将提供数万个TPS的结果。

结语

4.1 当前并行系统的挑战

关于并行区块链开发,有一些重要问题和考虑值得思考;

  • 网络为了通过并行执行实现更好的性能,实现了哪些权衡?

    • 较少的验证者保护网络,使得验证和执行速度更快,但这是否会损害区块链的安全性,使得验证者更容易合谋反对网络?

    • 是否有相当数量的验证者共置?这是减少加密及非加密系统延迟的常见策略,但如果特定数据中心遭到破坏,网络将会发生什么?

  • 对于乐观并行系统,重新执行无效交易的过程是否在网络扩展时造成瓶颈?这种效率是如何被测试和评估的?

从高层次看,并行区块链面临账本不一致的风险,即双重支出和交易顺序的变化(事实上,这是顺序执行的关键优点)。确定性并行化通过为基础区块链中的交易创建内部标记系统来解决这个问题。实施乐观处理的区块链必须确保它们用于验证和重新执行交易的机制是安全和有效的,且为性能所做的权衡也能被合理实施。

4.2 未来展望/机会

计算机的历史教会我们,并行系统往往比顺序系统更有效、更具可扩展性。后Solana并行区块链的崛起强调了这一概念同样适用于加密基础设施。即使是Vitalik最近也提到过并行化,作为提高EVM rollups可扩展性的关键解决方案之一。总体而言,加密/区块链 adoption 的增长呼唤着系统向比现在更优化的方向发展,包括并行区块链。Solana最近的网络困难凸显了在并行区块链开发中的改进空间。随着更多团队寻求推动链上前沿并为下一波大规模用户和对区块链原生应用和生态系统的采用打下基础,非凡的并行执行模型提供了一个直观的框架,以高效地处理与Web2公司相匹配的网络活动量。

参考文献

不是财务或税务建议。 本文的目的是纯粹教育性的,不应被视为投资、法律建议、买卖任何资产的请求或进行任何金融决策的建议。它不应替代税务建议。请咨询你的会计师并进行你自己的研究。

  • 原文链接: shoal.gg/p/parallel-exec...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Shoal Research
Shoal Research
https://www.shoal.gg/