区块链发展至今已有十几年,出现了不同的技术和商业模式。但由于区块链不可能三角问题,出现了链上和链下的扩容方案。本文以Solana、Sei和Monad为例,介绍并行区块链的设计原理和发展状况。并行执行可以提高网络速度和性能,解决顺序执行的瓶颈问题。Solana是第一个采用确定性并行执行的区块链,Sei和Monad也是并行EVM的区块链,旨在提供高性能和低成本的用户体验。Movement Labs正在构建开发者工具和区块链基础设施服务,以便开发者能够轻松利用并行化技术。并行化仍被认为是提高可扩展性的关键解决方案。
原文标题:Parallel Execution: The Next Generation of Blockchains
原文作者:PAUL TIMOFEEV, MIKE JIN, AND GABE TRAMBLE
原文来源:Shoal Research
编译:白话区块链
如果说以分布式记账方式的比特币是区块链1.0,那么,以分布式状态机的方式实现去中心化应用( dApp )的以太坊则是区块链2.0。区块链网络从2008年发展到现在,不过才十几年的历史,但诞生了无数技术和商业模式的创新,从 Web3 基础设施到以 DeFi 、 NFT 、社交网络和 GameFi 等为代表的各种赛道,行业的蓬勃发展不断吸引新用户参与,这反过来也对产品体验提出了更高的要求。
而区块链不可能三角(Blockchain Impossible Triangle),又称为区块链三难问题,根据当前的技术,目前还无法很好的在同一个系统中同时实现所有要素。
因此自诞生以来,人们提出了各种各样的解决方案试图解决性能问题。这些解决方案大致可以分为两类:一类是链上扩容方案,如分片( sharding )和并行区块链;一类是链下扩容方案,如闪电网络、侧链和 Rollups 等。
今天我们就以Solana、Sei 和Monad 等案例,来看看业内的并行区块链的设计原理和发展状况。
以下为正文:
01
区块链交易
区块链是虚拟机器,一种基于去中心化物理计算机网络的软件计算模型,任何人都可以加入,但对于任何单个实体来说,想要控制它是极其困难的。
区块链的概念首次在中本聪(Satoshi Nakomoto)2008年撰写的比特币白皮书中出现,以作为实现比特币加密安全的点对点支付的核心基础设施。交易对于区块链来说就像日志对于社交媒体和互联网公司来说一样,它们作为该特定网络的活动记录,其关键区别在于区块链上的交易是不可变的,并且通常是公开可观察的。
但是交易到底是什么呢?
区块链上的交易是将数字资产从分布式账本上的一个地址转移到另一个地址,通过使用公钥密码学进行安全保护,可以用去中心化的点对点转账、也可以用于各种认证和验证过程来记录交易。
1)区块链交易的工作原理
当发起一笔交易时,例如Bob向Alice发送一些Token,Bob的交易会被分享到底层的区块链网络中。随后,网络上的专门节点群开始验证和确认该交易是否合法。一旦足够多的节点验证了交易的内容,该交易就会与其他用户的交易一起添加到一个区块中。当一个区块被填满后,它就会被添加到链上,因此得名为“区块链”。Bob的交易现在成为了一个安全透明的账本的一部分,他和Alice都可以验证其内容。
总的来说,所有区块链交易都包含元数据,指的是帮助运行和保护网络的节点识别和执行一组给定的指令和参数。每个交易都有原始发送者输入的高级数据,例如需要转移的金额、目标地址以及用于确认交易的数字签名,以及各种低级数据,这些数据会自动创建并附加,不过具体数据的形式会根据网络和设计的不同而有所差异。
然而,最终,在交易执行之前,在网络层背后涉及的过程会根据区块链的设计而有所不同。
2)顺序执行
较早的区块链,即比特币和以太坊,采用了顺序执行机制来处理交易。每次添加到区块链的交易都会引发网络状态的变化,为了安全起见,虚拟机结构被设计成一次只能处理一个状态变化。
这导致了底层网络吞吐量的严重瓶颈,因为可以添加到区块的交易数量受限,从而导致等待时间更长,交易成本出现前所未有的飙升,有时甚至使网络无法使用。此外,顺序执行模型在使用硬件组件时效率较低,因此无法从计算方面的突破,如多个处理器核心,获得好处。
02
并行执行
1)什么是并行执行?
并行计算是计算机体系结构的关键组成部分,其起源可以追溯到20世纪50年代末,尽管其理论和构想甚至可以追溯到1837年。按照定义,并行计算是指同时利用多个处理元素来解决一个操作的行为,其中将一个更大且更复杂的任务分解为较小的任务,比串行方式更高效地完成。
最初只在高性能计算系统中实施,随着互联网时代对计算需求的指数增长,并行计算已经发展成为如今计算机体系结构中的主导范式。
这种计算体系结构标准在区块链中也同样适用,只是计算机解决的主要任务是处理和执行交易,或者是从智能合约A向智能合约B的价值转移,因此称为并行执行。
并行执行意味着区块链不再按顺序处理交易,而是可以同时处理多个不冲突的交易。这可以极大地提高区块链网络的吞吐量,使其更具可扩展性和高效性,以处理更高负载的活动和对区块空间的需求。
举个简单的类比,考虑一家设有多个收银通道的杂货店的效率,与只有一个通道供所有顾客使用相比。
2)为什么并行执行很重要?
区块链中的并行执行旨在提高网络的速度和性能效率,尤其是在网络面临更高的流量和资源需求时。在加密货币生态系统的背景下,并行执行意味着如果Bob想要铸造最新的热门NFT收藏品,而Alice想要购买她最喜欢的Memecoin,网络将为两个用户提供服务,而不会在性能和用户体验方面有任何损失。
虽然这可能只是一个直观的生活质量特性,但通过并行执行解锁的网络性能改进为开发新的创新用例和应用提供了机会,这些用例和应用可以利用低延迟和大容量的特性,为将下一批大规模用户引入加密货币生态系统奠定了基础。
3)并行执行是如何工作的?
虽然并行执行的前提相对简单,但底层区块链设计的细微差别会影响并行执行过程的具体实施。设计具有并行执行功能的区块链最相关的特性是交易能够访问其底层网络的状态,包括账户余额、存储和智能合约。
区块链上的并行执行可以分为确定性和乐观性两种方式。确定性并行执行,比如Solana等区块链采用的方法,需要交易事先声明所有的内存依赖关系,即它们事先希望访问全局状态的哪些部分。虽然这一步骤为开发人员增加了额外的开销,但更广泛地说,它允许网络在执行之前对非冲突的交易进行排序和识别,从而创建出一个可预测和高效的优化系统。相反,乐观性并行执行的结构是为了同时处理所有交易,基于这样的假设,即不存在冲突。这使得底层区块链能够提供更快的交易执行速度,尽管在冲突发生时可能需要重新执行。如果发现提交了两个冲突的交易,系统可以重新处理和重新执行它们,无论是并行还是顺序执行。
为了更好地理解这些设计细节的影响,通过研究当前推动并行执行前沿的团队,可能会有所帮助。
4)如今并行执行的现状
为了更好地理解这些设计细节的影响,通过研究当前推动并行执行前沿的团队,可以更好地分析并行执行的意义。
03
虚拟机
1)Solana虚拟机(SVM)
Solana是第一个围绕并行执行设计的区块链网络,灵感来自创始人Anatoly Yakovenko在电信行业的经验。Solana旨在提供一个开发者平台,以物理学允许的速度运行,因此并行计算所释放出的速度和效率是一个简单而直观的设计选择。
实现Solana快速的速度和高吞吐量的关键组成部分是Sealevel(一项技术),该网络的并行智能合约运行时的环境。与基于EVM和WASM的环境不同,Sealevel采用了多线程架构,意味着它可以同时处理多个交易,以符合验证节点核心的容量。
实现Solana并行执行的关键在于,当启用一个交易时,网络会分配一系列指令来执行该交易,具体包括要访问的账户和状态以及要进行的更改,这是确定哪些交易是非冲突的并可以同时执行的关键,同时也使得试图访问相同状态的交易可以并发执行。参考标签在机场行李系统中提供的效率。
Solana还利用了自己定制的账户数据库Cloudbreak,用于存储和管理状态数据,以实现并发读写事务。Cloudbreak经过优化以实现并行执行,通过水平扩展将状态数据分布和管理在多个节点上。
由于其并行架构,Solana可以处理大量交易并且仍然快速执行,使交易几乎即时达到最终性。Solana目前平均每秒处理2000到10000个交易。此外,针对SVM的用例正在逐渐扩大,例如Eclipse团队正在推出旨在利用SVM作为执行环境的Layer 2基础设施。
2)并行EVM
并行EVM描述了一种新的区块链执行环境,旨在将Solana和以太坊的设计优点结合起来,具有Solana的速度和性能以及以太坊的安全性和流动性。通过并行处理交易而不是按照传统的EVM设计顺序执行,并行EVM使开发人员能够在高性能网络上构建应用程序,并能够利用与EVM流动性和开发工具的连接。
3)Move
Move是一种编程语言,最初由Facebook团队于2019年为其已停用的Diem项目开发。Move旨在以安全的方式处理智能合约和交易数据,消除其他语言本地攻击向量(如重入攻击)。
MoveVM作为基于Move的区块链的本地执行环境,利用并行化来提供更快的交易执行速度和更高的整体效率。
04
小结
1)当今并行系统面临的挑战
在开发并行区块链时,需要思考一些重要的问题和考虑因素:
为了通过并行执行实现更好的性能,网络做出了哪些权衡?
少量的验证者可以提高验证和执行速度,但这是否会损害区块链的安全性,使验证者更容易共谋对抗网络?
是否有大量的验证者共同部署?这是一种在加密和非加密系统中都常见的减少延迟的策略,但如果特定数据中心受到威胁,网络会发生什么变化?
对于乐观并行系统,重新执行无效交易的过程是否会在网络扩展时造成瓶颈?这种效率如何进行测试和评估?
从高层次来看,并行区块链面临着分类账不一样的风险,即双重支付和交易顺序的变化(事实上,这是顺序执行的主要优势)。确定性并行化通过为底层区块链上的交易创建内部标记系统来解决这个问题;实施乐观处理的区块链必须确保用于验证和重新执行交易的机制安全且可用,并且为了性能而进行的权衡可以合理实现。
2)未来展望和机遇
计算机的发展历史告诉我们,并行系统随着时间的推移往往比顺序系统更高效和可扩展。后Solana时代的并行区块链的崛起凸显了这一概念在加密基础设施中同样适用。甚至以太坊创始人 Vitalik 最近也提到并行化是提高EVM Rollup可扩展性的潜在关键解决方案之一。
总体而言,加密/区块链的采用增长需要比当前系统更优化的系统,包括并行区块链。Solana最近的网络问题凸显了在开发并行区块链方面仍有很大改进空间。随着更多团队寻求推动链上领域的边界,并吸引下一批大规模用户和采用区块链本地应用和生态系统,并行执行模型为构建能够轻松处理大规模网络活动的系统提供了直观的框架,以达到与Web2公司相匹配的规模。