原文标题:《TheCaseforParallelProcessingChains》
原文作者:MohamedFouda
原文编译:深潮TechFlow
当我们重新审视区块链技术的演变时,可以看到一个强劲的趋势正在显现,即新的L1注重并行执行。
这并不是什么新鲜技术,目前Solana就在Sealevel的执行环境中使用。
然而,在过去的牛市中,DeFi和NFT令人印象深刻的表现也让人们意识到,技术迫切需要改进。
在下轮市场中,一些采用并行执行理念的著名项目即将出现,这些项目的名单是Aptos、Sui、Linera和Fuel。
本文将会讨论这些项目的异同,以及它们所面临的挑战。
问题
智能合约平台可以创建广泛的去中心化应用程序。为了执行这些应用,需要一个共享的计算引擎。网络中的每个节点都运行这个计算引擎,以及执行应用程序和用户与应用程序的互动。当节点从执行中得到相同的结果时,他们就会达成共识,并推动链的运转。
以太坊虚拟机是最主要的智能合约执行引擎,有大约20种不同的实现方式。
自EVM发明以来,它已经建立了开发人员采用的临界质量。
除了以太坊和以太坊的L2,其他几个链包括Polygon、BNB智能链和AvalancheC链都采用EVM作为执行引擎,并专注于改变共识机制以提高网络吞吐量。
EVM的一个主要限制性特征是交易的顺序执行。EVM基本上是一次执行一个交易,将所有其他交易搁置,直到交易执行完毕,区块链状态被更新。即使两个交易是独立的,例如,从Alice到Bob的付款和从Carol到Dave的另一个付款,EVM不能并行执行这些交易。虽然这种执行模式允许有趣的用例,如闪电借贷,但它既没有效率,也没有可扩展性。
全量深度图:BitMEX在“11400-11800美元”区间订单密布:AICoin PRO版K线全量深度图显示:BitMEX XBT永续合约在“11400-11800美元”区间的订单密布,总量超过1.28亿张。另据主力大单跟踪显示,该区间大额委托单也较多,当前一共有9笔,总额超过3800万美元大额委托买单在挂。请密切留意行情变化。[2020/8/17]
这种顺序执行交易是网络吞吐量的主要瓶颈之一:
首先,它导致区块中的交易执行时间更长,限制了区块时间;
此外,它限制了可以添加到区块中的交易数量,以使节点能够执行交易并确认区块。
以太坊的平均吞吐量约为17tx/秒。这种低吞吐量意味着在高活动期间,例如NFTMint,网络矿工/验证者不能处理所有的交易,随之而来的是费用竞标战,以确保优先执行,推动交易费用上升。以太坊的平均费用在某些时候超过了0.2个ETH,许多用户都因此不敢使用以太坊。
顺序执行的第二个问题是网络节点的低效率。顺序指令执行不能从多个处理器核心中获益,这导致硬件利用率低,效率低下。这阻碍了可扩展性,并导致不必要的能源消耗。
并行执行能解决这个问题吗?
EVM结构的限制为并行执行的L1新领域创造了条件。并行允许在多个处理器内核之间划分交易处理,提高硬件利用率,从而实现更好的可扩展性。在高吞吐量链中,增加硬件资源与可执行的交易数量直接相关。
在高频活动期间,验证者节点可以委托更多的核心来处理额外的交易负载。计算资源的动态扩展允许网络在高需求时期实现更高的吞吐量,从而显着改善用户体验。
这种方法的另一个优点是改善了交易确认的延迟,节点资源的动态扩展使得确认所有可能的网络负载的低延迟交易成为可能。
交易不需要等待几十或几百个区块,也不需要为优先确认而产生过多的费用。改进后的确认时间提高了交易的终结性,为低延迟区块链打开了大门。保证执行交易的低延迟使几个以前不可能实现的用例成为可能。
安徽省委书记李锦斌:推动区块链和实体经济深度融合:6月13日上午,安徽省委书记李锦斌赴科大讯飞公司调研并主持召开加快新一代人工智能产业发展与推进中国声谷建设座谈会。李锦斌强调,围绕产业链部署创新链、围绕创新链布局产业链,推动互联网、大数据、区块链、人工智能和实体经济深度融合,积极构建具有优势特色的平台基地,加快构建“龙头带动+园区集聚+技术支撑+政策保障”人工智能产业发展格局,拉动内需、开拓市场,培育壮大具有国际竞争力的人工智能企业和产业集群,引领创新型现代产业体系建设,奋力推动安徽经济高质量发展。(安徽日报)[2020/6/14]
改变链式执行模式以允许PE并不是一个新的想法,一些项目已经对此进行了探索。一种方法是将EVM使用的会计模型从Accounts模型替换为UnspentTransactionOutput(UTXO)模型。UTXO执行模型在比特币中使用,它允许并行处理交易,这使得它成为支付的理想选择。
但由于UXTO的功能有限,需要进行扩展以实现智能合约所需的复杂互动。例如,Cardano为此目的使用了扩展的UTXO模型,而Findora使用了混合UTXO模型,它实现了两种会计模型并允许用户在两种模型之间更改资产类型。
PE的另一种方法并不改变账户模型,而是专注于改善链状态的架构和修改。例如Solana的Sealevel框架。
并行执行是如何工作的?
并行执行的工作方式是确定独立的事务并同时执行它们。如果一个事务的执行会影响到另一个事务的执行,那么两个事务就是相关联的。例如,同一池中的AMM事务是相关联的,必须按顺序执行。
虽然并行处理的概念听起来很简单,但困难就在细节中,主要的挑战是如何有效地识别"独立"交易。独立交易的分类需要了解每笔交易如何改变区块链内存或链状态,与同一智能合约互动的交易可以同时改变合约状态,因此,不能同时执行。
最高院院长:推动区块链等现代科技在司法领域深度应用:4月28日,最高人民法院党组书记、院长周强在最高人民法院与科技部党组书记、部长王志刚一行座谈。周强强调,要积极推进现代科技与审判执行工作深度融合,推动5G、人工智能、大数据、云计算、区块链等现代科技在司法领域深度应用,完善智慧法院技术标准,提高司法大数据预警预测能力,为扎实做好“六稳”工作、落实“六保”任务提供精准司法服务。要加快探索互联网司法新模式,发挥互联网法院“样板间”和“试验田”作用,建立健全具有中国特色的互联网司法新模式和规则体系,积极开展国际司法交流合作,为世界法治发展贡献中国司法智慧。(人民网)[2020/4/30]
以目前应用程序之间的可组合程度,识别是否相互关联是一项具有挑战性的任务。想象一下,一个将UNI换成USDC的AMM交易,AMM发现执行它的最有效路线是UNI->ETH->DAI->AAVE->USDC。所有参与该交易的池子不能处理任何其他交易,直到该交易完全执行,然后所有参与的池子的状态才能被更新。
识别独立交易
在本节中,对不同的并行执行引擎所使用的方法进行了比较。重点讨论的是控制状态访问的方法。区块链状态可以被认为是一个RAM存储器,每个链上的账户,或智能合约,都拥有一系列可以修改的内存位置。关联交易是那些试图改变同一区块中相同内存位置的交易,不同的链利用不同的内存架构和不同的机制来识别这些交易。
这一类的几条链都是建立在Facebook已消亡的区块链项目Diem所开发的技术之上。Diem团队创建了智能合约语言Move,专门改善SC的执行。Aptos、Sui和Linera是属于这一组的三个高知名度的项目。除了这个小组,Fuel是另一个专注于PE的知名项目,使用自己的SC语言。
开发者透明,也就是说,不要求交易明确声明它们使用哪一部分状态。
声音 | 科学技术部党组成员:各制造企业要加速区块链等新一代信息技术与制造业的深度融合:据新浪财经报道,科学技术部党组成员、科技日报社社长李平演讲表示,各制造企业要主动拥抱信息革命的最新成果,加速人工智能、5G和区块链等新一代信息技术与制造业的深度融合,加大科研和人才投入,重构制造业技术体系和价值链体系,提高智能化服务水平,努力掌握更多的核心技术和自主知识产权。[2019/12/29]
Aptos使用的是?SoftwareTransactionalMemory?的修改版,称为Block-STM。
在Block-STM中,交易在块内被预先排序,并在处理器线程之间进行划分,以便被执行。
在过程中,交易的执行都是假定没有关联关系。被交易修改的内存位置被记录下来,执行后,所有交易的结果都被验证。在验证过程中,如果一个交易被发现访问了被前面的交易修改过的内存位置,这个交易就会被废止。该交易的结果被刷新,然后重新执行。
这个过程不断重复,直到块中的所有事务都被执行。
当使用多个处理器核心时,Block-STM会加快执行速度,加速的多少来自于交易的相互关联程度。
Aptos团队的结果表明,使用32个内核可以将高相互关联性能提高8倍,将低相互关联性能提高16倍。如果一个区块中的所有交易都是相互依赖的,那么与顺序执行相比,Block-STM会导致性能上的轻微损失。Aptos声称,这种方法可以实现160,000TPS的吞吐量。
Sui
另一种PE方法是要求交易明确声明他们所修改的链状态部分,这种方法目前被Solana和Sui使用。
Solana将内存单元称为账户,而交易必须说明它修改了哪些账户。Sui也使用了类似的方法。
Sui也通过使用MoveVM建立在Diem的技术之上。然而,Sui使用不同版本的Move语言。
声音 | BitMEX Research:BCHABC新版本使得深度重组风险降低:BitMEX Research发布报告称,BCHABC的0.18.5版本新增了滚动区块“检查点”,降低了深度重组的风险,但增加了共识链分裂的风险,并为潜在的矿工攻击提供了新机会。此外,新系统会增加矿工攻击对网络造成的伤害,但会降低对此类行为的潜在回报。新版本对系统做了根本性改变,但目前尚不清楚这种变化是否是净效益。[2018/11/22]
SuiMove的实现改变了Diem的核心存储模型和资产权限,这代表了与使用核心DiemMove的Aptos的重大区别。
SuiMove定义了一个状态存储模型,允许更容易识别独立交易。
在Sui中,状态存储被定义为Objects。Objects通常代表资产,并且可以共享,这意味着多个用户可以修改该对象。每个Objects在Sui执行环境中都有一个唯一的ID,并有指向所有者地址的内部指针。通过使用这些概念,很容易通过检查交易是否使用相同的Objects来识别关联。
通过将声明关联关系的工作转移给开发者,使执行引擎的实施变得更容易,这意味着理论上它可以有更好的性能和可扩展性。然而,这是以不太理想的开发者体验为代价的。
Sui还没有启动,最近刚刚推出了测试网。
Sui的创始人声称,并行执行的实施以及使用Narwhal和Tusk共识机制导致吞吐量超过100,000tx/秒。这个吞吐量,如果是真的,那么它可能比Solana当前的约2400tx/秒的吞吐量有很大的提升,并且将超过Visa和Mastercard的吞吐量。
a16z领投。关于项目实施的细节不多。然而,根据他们的融资公告帖子,我们知道它是基于同样在Facebook开发的FastPay协议。
Fastpay是基于一种叫做ByzantineConsistentBroadcast的技术,这项技术专注于加速独立的支付,例如发生在销售点网络中的支付。它允许一组验证者确保付款的完整性,只要超过三分之二的验证者是诚实的。快速支付是实时毛额结算系统的一个变种,用于银行和金融机构之间的网络。
在FastPay的基础上,Linera正计划建立一个区块链,通过并行执行支付交易,专注于快速结算和低延迟。值得注意的是,Sui也使用ByzantineConsistentBroadcast的方式进行简单的支付。对于其他交易,Sui自己的共识机制Narwhal和Tusk被用于高效处理DeFi交易等更复杂的和有关系性的交易。
Fuel
Fuel专注于成为模块化区块链中的执行层,这意味着Fuel不实施共识或将区块链的数据存储在Fuel链上。对于功能性区块链,Fuel与其他链交互以达成共识和数据可用性,例如Ethereum或Celestia。
Fuel使用UTXO来创建严格的访问列表,即用一个列表来控制对同一片状态的访问。这个模型建立在规范交易排序的概念之上。在这个方案中,区块中的交易排序导致了检测交易之间的关联关系的显著简化。为了实现这个架构,Fuel公司建立了一个新的虚拟机,称为FuelVM和一种新的语言,称为Sway。
FuelVM是对EVM的一种兼容和简化的表现,可以有效地让开发者加入到Fuel的生态系统中。
此外,由于Fuel专注于模块化区块链,FuelSC的执行可以在以太坊主网上解决。这种方法与合并后以太坊的愿景一致,即作为以Rollup为中心的结算和数据可用性层。在这种架构中,Fuel可以实现在以太坊上批量和结算的高吞吐量执行。
为了验证该概念,Fuel团队已经创建了一个名为SwaySwap的AMM,类似于Uniswap,并在测试网上运行。目的是证明FuelVM与EVM相比性能更高。
可并行交易的百分比
准确估计在任何链上可并行执行的链上交易的百分比是具有挑战性的。此外,根据网络活动的类型,这个百分比在区块之间会有很大的变化。
例如,一个NFTMint可能会导致一个具有高百分比的关联性交易的爆发。也就是说,我们可以使用一些假设来获得可并行交易的平均百分比的粗略估计。
例如,我们可以假设大多数ETH和ERC20的转移是独立的,即从不同的地址发起并接收到不同的地址。所以我们可以假设约25%的ETH和ERC20转账是相互关联的,即向SC存款以及将交易所热钱包的资产聚合到冷钱包。
另一方面,同一池中的所有AMM交易都是有关联性的。鉴于大多数AMM通常由少数池子主导,而且AMM交易具有高度的可组合性,并与多个池子互动,我们可以安全地假设至少50%的AMM交易都是相互关联的。
通过对以太坊的交易类别进行分析,我们可以发现,在以太坊每天约120万的交易中,20-30%是ETH转账,10-20%是稳定币转账,10-15%是DEX转账,4-6%是NFT交易,8-10%是ERC20批准,12-15%是其他ERC20转账。
使用这些数字和假设,我们可以估计,PE可以加速SC平台中大约70-80%的交易。
这意味着关联交易的顺序执行占所有交易的20-30%。换句话说,如果使用相同的Gas限制,就有可能通过PE实现3倍-5倍的吞吐量增长。
一些关于构建并行执行EVM的实验显示了类似的估计,其中可以持续实现3-5倍的吞吐量提高。
在实践中,高吞吐量链使用更高的Gas限制和更短的块时间来实现比至少100倍以太坊的吞吐量提高。增加的吞吐量需要强大的验证节点来处理这些区块,这一要求导致了第二个挑战,即网络的中心化。
投资于专用服务器或可扩展的云架构来处理这些交易。而对于使用链并需要运行完整节点与链交互的公司或个人,情况并非如此。这些实体无法负担复杂的服务器来处理这种大规模的交易负载。这将推动链上用户依赖专门的RPC节点供应商,例如Infura,从而导致更多的中心化。
如果不选择使用消费级硬件来运行完整节点,高吞吐量的链可能会变成一个封闭的系统,一小部分实体拥有对网络的绝对权力。在这种情况下,这些实体可以协调审查交易、实体甚至应用程序,例如TornadoCash,它们可以将这些链转变为与Web2没有什么不同的许可系统。
目前,在Sui测试网上运营一个完整节点的要求低于Aptos测试网节点的要求。然而,我们预计当主网启动和应用程序开始在链上出现时,这些需求将发生重大变化。
去中心化的倡导者们一直在提出解决方案来解决这些预期的问题。这些解决方案包括使用轻型节点,通过使用ZK有效性证明或欺诈证明来验证区块的正确性。
Fuel团队在这方面很积极,与以太坊社区关于去中心化重要性的精神相一致。并不清楚Aptos和Sui团队是否优先实施这些方法或其他促进去中心化。Linera团队在他们的介绍帖子中简要地讨论了这些问题,但协议实施尚未确认这一承诺。
总结
并行执行引擎是提高智能合约平台吞吐量的有前途的解决方案。
结合共识机制的创新,交易的并行执行可以使链的吞吐量接近或超过10万TPS,这样的性能可以与Visa和Mastercard相媲美,可以实现当今最具挑战性的几个用例,例如完全的链上游戏和去中心化小额支付。
这些令人印象深刻的吞吐量改进并不是没有挑战,即关于如何确保去中心化,我们期待致力于解决这些问题的创始人。
原文链接
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。