这并不是什么新鲜技术,目前 Solana 就在 Sealevel 的执行环境中使用。
然而,在过去的牛市中,DeFi 和 NFT 令人印象深刻的表现也让人们意识到,技术迫切需要改进。
在下轮市场中,一些采用并行执行理念的著名项目即将出现,这些项目的名单是 Aptos、Sui、Linera 和 Fuel。
本文将会讨论这些项目的异同,以及它们所面临的挑战。
智能合约平台可以创建广泛的去中心化应用程序。为了执行这些应用,需要一个共享的计算引擎。网络中的每个节点都运行这个计算引擎,以及执行应用程序和用户与应用程序的互动。当节点从执行中得到相同的结果时,他们就会达成共识,并推动链的运转。
以太坊虚拟机是最主要的智能合约(SC)执行引擎,有大约 20 种不同的实现方式。
自 EVM 发明以来,它已经建立了开发人员采用的临界质量。
除了以太坊和以太坊的 L2,其他几个链包括 Polygon、BNB 智能链和 Avalanche C 链都采用 EVM 作为执行引擎,并专注于改变共识机制以提高网络吞吐量。
EVM 的一个主要限制性特征是交易的顺序执行。EVM 基本上是一次执行一个交易,将所有其他交易搁置,直到交易执行完毕,区块链状态被更新。即使两个交易是独立的,例如,从 Alice 到 Bob 的付款和从 Carol 到 Dave 的另一个付款,EVM 不能并行执行这些交易。虽然这种执行模式允许有趣的用例,如闪电借贷,但它既没有效率,也没有可扩展性。
这种顺序执行交易是网络吞吐量的主要瓶颈之一:
首先,它导致区块中的交易执行时间更长,限制了区块时间;
此外,它限制了可以添加到区块中的交易数量,以使节点能够执行交易并确认区块。
以太坊的平均吞吐量约为 17 tx/秒。这种低吞吐量意味着在高活动期间,例如 NFT Mint,网络矿工/验证者不能处理所有的交易,随之而来的是费用竞标战,以确保优先执行,推动交易费用上升。以太坊的平均费用在某些时候超过了 0.2 个 ETH(约 800 美元),许多用户都因此不敢使用以太坊。
顺序执行的第二个问题是网络节点的低效率。顺序指令执行不能从多个处理器核心中获益,这导致硬件利用率低,效率低下。这阻碍了可扩展性,并导致不必要的能源消耗。
并行执行能解决这个问题吗?
EVM 结构的限制为并行执行(PE)的 L1 新领域创造了条件。并行允许在多个处理器内核之间划分交易处理,提高硬件利用率,从而实现更好的可扩展性。在高吞吐量链中,增加硬件资源与可执行的交易数量直接相关。
在高频活动期间,验证者节点可以委托更多的核心来处理额外的交易负载。计算资源的动态扩展允许网络在高需求时期实现更高的吞吐量,从而显着改善用户体验。
这种方法的另一个优点是改善了交易确认的延迟,节点资源的动态扩展使得确认所有可能的网络负载的低延迟交易成为可能。
交易不需要等待几十或几百个区块,也不需要为优先确认而产生过多的费用。改进后的确认时间提高了交易的终结性,为低延迟区块链打开了大门。保证执行交易的低延迟使几个以前不可能实现的用例成为可能。
改变链式执行模式以允许 PE 并不是一个新的想法,一些项目已经对此进行了探索。一种方法是将 EVM 使用的会计模型从 Accounts 模型替换为 Unspent Transaction Output (UTXO) 模型。UTXO 执行模型在比特币中使用,它允许并行处理交易,这使得它成为支付的理想选择。
但由于 UXTO 的功能有限,需要进行扩展以实现智能合约所需的复杂互动。例如,Cardano 为此目的使用了扩展的 UTXO 模型,而 Findora 使用了混合 UTXO 模型,它实现了两种会计模型并允许用户在两种模型之间更改资产类型。
PE 的另一种方法并不改变账户模型,而是专注于改善链状态的架构和修改。例如 Solana 的 Sealevel 框架。
并行执行是如何工作的?
并行执行的工作方式是确定独立的事务并同时执行它们。如果一个事务的执行会影响到另一个事务的执行,那么两个事务就是相关联的。例如,同一池中的 AMM 事务是相关联的,必须按顺序执行。
虽然并行处理的概念听起来很简单,但困难就在细节中,主要的挑战是如何有效地识别 "独立 "交易。独立交易的分类需要了解每笔交易如何改变区块链内存或链状态,与同一智能合约(如 AMM 池)互动的交易可以同时改变合约状态,因此,不能同时执行。
以目前应用程序之间的可组合程度,识别是否相互关联是一项具有挑战性的任务。想象一下,一个将 UNI 换成 USDC 的 AMM 交易,AMM 发现执行它的最有效路线是 UNI -> ETH -> DAI -> AAVE -> USDC。所有参与该交易的池子不能处理任何其他交易,直到该交易完全执行,然后所有参与的池子的状态才能被更新。
识别独立交易
在本节中,对不同的并行执行引擎所使用的方法进行了比较。重点讨论的是控制状态(内存)访问的方法。区块链状态可以被认为是一个 RAM 存储器,每个链上的账户,或智能合约,都拥有一系列可以修改的内存位置。关联交易是那些试图改变同一区块中相同内存位置的交易,不同的链利用不同的内存架构和不同的机制来识别这些交易。
这一类的几条链都是建立在 Facebook 已消亡的区块链项目 Diem 所开发的技术之上。Diem 团队创建了智能合约语言 Move,专门改善 SC 的执行。Aptos、Sui 和 Linera 是属于这一组的三个高知名度的项目。除了这个小组,Fuel 是另一个专注于 PE 的知名项目,使用自己的 SC 语言。
Aptos
Aptos 建立在 Diem 的 Move 语言和 MoveVM 的基础上,创建了一个高吞吐量的链,实现了并行执行。
Aptos 的方法是检测关联关系,同时对用户/开发者透明,也就是说,不要求交易明确声明它们使用哪一部分状态(内存位置)。
Aptos 使用的是
欢迎光临 优惠论坛 (https://www.tcelue.ooo/) | Powered by Discuz! X3.1 |