首页 游戏 软件 资讯 排行榜 专题
首页
web3.0
并行区块链详解:原理、项目及周期

并行区块链详解:原理、项目及周期

热心网友
43
转载
2025-04-11

区块链因其去中心化的特性而在效率上有所牺牲,提升执行速度成为了一个亟待解决的问题。区块链的“执行层”负责处理每一笔交易并将其加入链中。为了提高处理能力,提升执行层效率成为了核心策略之一,而并行执行在这方面是一个重要的突破。

大家都在用的虚拟币交易平台推荐:

传统的区块链通常采用串行方式逐笔处理交易,这在交易密集的网络中容易导致拥堵。而并行执行则允许多个交易同时处理,大幅提高了执行效率并减轻了链上的压力。

为了更深入了解并行执行,我们先从交易执行的过程开始介绍,并以 Merge 后的以太坊 PBS 模式为例,解释执行在整个交易生命周期中的位置。

交易执行的具体环节

交易进入内存池并被筛选和排序:这是交易提交后的预处理阶段,包括 Mempool、Searcher 和 Builder 的交互,对交易进行筛选和排序。

Builder 构建区块(但不执行):Builder 将有利可图的交易排列成一个区块,完成对交易的打包和排序。

Proposer 验证并提交区块:区块构建完成后,Builder 将区块的提案发送给 Proposer。Proposer 对区块的结构和交易内容进行验证,然后正式将区块提交到网络上,以开始执行。

执行交易:区块提交后,节点逐笔执行区块内的交易。这是状态更新的关键阶段,每笔交易都会触发智能合约调用、账户余额变化或状态变更。

见证者见证:验证者对区块的执行结果和状态根进行见证,并将其作为最终确认。这确保了区块在执行层的真实性和有效性,防止不一致性。

状态同步:每个节点会将区块的执行结果(如账户余额、合约状态更新等)同步到自己的本地状态。执行每笔交易后,节点计算并存储一个新的状态根,用以在下一个区块中作为初始状态。

当然,这只是以区块为单位的交易状态同步。为了保持最新的链上状态,节点通常会逐个区块同步数据,并持续验证区块和状态。但要达到 POS 机制下的最终性,还需要聚合者将每个 Slot 中的见证者签名聚合成一个完整的签名,并将其传递到下一个 Slot 的提议者处,验证者则需要在经过一个 Epoch 后,基于投票数量确认该 Epoch 内的所有区块的状态,形成临时的共识状态检查点。当连续两个 Epoch 获得大多数验证者的见证支持后,区块和交易才会达成最终性。

从交易的整个生命周期来看,执行发生在 Proposer 对 Builder 发送来的区块的结构和交易内容进行验证后。实际执行过程需要对交易逐笔处理,并对相应的账户或合约状态进行更新。所有交易执行完毕后,Proposer 会计算出一个新的状态根(默克尔根),这是对当前区块所有交易的执行结果和最终全局状态的总结。通俗来说,完整的区块执行过程包括把以太坊从前一个状态变成下一个状态的过程中需要完成的一系列计算,从每个交易的执行到默克尔根的计算。

顺序执行

与并行执行相对的是顺序执行,也就是目前区块链较为通用的执行方式。通常,交易会按照顺序逐步执行。当一笔交易完成执行后,以太坊会将账户状态及相关信息(例如余额、合约存储数据)更新至账户状态树中,新的账户状态哈希被生成。所有账户状态树完成更新后,就会形成被称为状态默克尔根的状态树的根节点哈希。在完成状态默克尔根、交易默克尔根和收据默克尔根后,区块头就会进行哈希计算,生成该区块的区块哈希。而在这其中,交易的执行顺序至关重要。由于默克尔树是哈希值的二叉树,不同顺序下形成的默克尔根值会不同。

并行执行

在并行执行的环境下,节点会尝试对区块中的交易进行并行处理。并不是按照顺序一笔一笔地执行交易,而是将交易分配到不同的“执行路径”上,使它们能同时执行。通过并行执行,系统能够更高效地处理区块中的交易,提高吞吐量。所有交易执行完成后,节点会将执行结果(即交易影响的状态更新)汇总,形成一个新的区块状态。这个状态会被添加到区块链上,代表链上最新的全局状态。

状态冲突

由于并行会在不同路径同时处理交易,因此并行的一大难点就是状态冲突。即可能存在多个交易在同一时间段内对区块链上的同一部分数据(状态)进行读取或写入操作的情况。这种情况如果处理不当,会导致执行结果不确定。因为状态的更新顺序不同,最终的计算结果也会不同。举个例子,假设有两个交易,交易 A 和交易 B,它们都试图对同一个账户的余额进行更新操作:交易 A:增加账户余额 10。交易 B:增加账户余额 20。账户初始余额为 100。如果我们串行执行,执行顺序的结果是确定的:先执行交易 A,再执行交易 B:账户余额先增加 10,变为 110。再增加 20,最终变为 130。先执行交易 B,再执行交易 A:账户余额先增加 20,变为 120。再增加 10,最终变为 130。在这两种顺序中,最终余额都是 130,因为系统确保了交易执行的顺序一致性。但在并行执行环境下,交易 A 和交易 B 可能同时读取初始余额 100 并进行各自的运算:交易 A 读取到余额为 100,计算后更新余额为 110。交易 B 也读取到余额为 100,计算后更新余额为 120。在这种情况下,由于交易同时执行,导致最终余额只更新为 120,而不是 130,因为交易 A 和交易 B 的操作“覆盖”了对方的结果,产生了状态冲突。这类状态冲突问题通常被叫做“数据覆盖”,即当交易试图同时修改相同的数据时,可能会相互覆盖对方的计算结果,导致最终状态不正确。另外一种状态冲突可能会导致的问题是无法保证执行顺序。由于多个交易在不同的时间段完成操作,会造成不同的执行顺序。顺序不同,可能会导致不同的计算结果,从而使结果不确定。为了避免这种不确定性,区块链并行执行系统通常会引入一些冲突检测和回滚机制,或提前对交易进行依赖性分析,确保它们在不影响最终状态一致性的情况下并行执行。

乐观并行与确定性并行

有两种方式来对待可能存在的状态冲突问题:确定性并行和乐观并行。这两种模式在效率和设计复杂性上各有权衡。确定性并行需要提前声明状态访问,验证者或 sequencer 会在交易排序时检查声明的状态访问。如果有多个交易试图写入同一状态,会将这些交易标记为冲突,避免同时执行。不同的链具体实现提前声明状态访问的形式不同,但一般包括以下几种方式:通过合约规范约束:开发者在智能合约中直接规定状态访问范围。例如,ERC-20 代币转账需要访问发送方和接收方的余额字段。通过交易结构化数据声明:交易中添加专门字段来标注状态访问。通过编译器分析:高级语言的编译器可以静态分析合约代码,自动生成状态访问集合。通过框架强制声明:某些框架要求开发者在调用函数时显式指定需要访问的状态。乐观并行则会乐观地先处理交易,等到冲突发生时,再将受影响的交易按顺序重新执行。为了尽可能避免冲突情况的发生,乐观并行设计的核心是通过历史数据、静态分析等对状态进行快速预判和假设。即系统在不完全验证的情况下,假设某些操作或状态更新是有效的,尽量避免等待所有验证过程,以此提高性能和吞吐量。虽然乐观并行能通过一些对状态的快速预判和假设来尽可能避免冲突发生,但还是会有一些无法避免的挑战,特别是涉及合约执行或跨链交易,如果冲突频繁发生,重新执行可能显著拖慢系统性能,并增加计算资源消耗。确定性并行则通过在交易前进行状态依赖性检查以避免乐观并行可能出现的冲突情况,但由于需要在交易提交前准确声明状态依赖,这对开发者提出更高要求,从而增加了实现的复杂性。

EVM 并行困境

对待状态冲突不仅有确定性和乐观之分,在实现并行的具体过程中,还需要从链数据库架构的角度进行考虑。并行中的状态冲突问题在默克尔树架构下的 EVM 中就尤为困难。默克尔树是一个分层哈希结构,在每次交易对某个状态数据进行修改后,默克尔树的根哈希值也需要更新。这种更新过程是递归的,从叶子节点向上逐层计算直至根节点。由于哈希是不可逆的,即只有当下层的数据变更完成后才能计算上层,这种特性导致它很难并行更新。如果两个交易并行执行并访问同一个状态(如账户余额),就会造成默克尔树节点的冲突。而解决这种冲突通常需要额外的事务管理机制,确保在多个分支中都能得到一致的根哈希值。这对 EVM 来说并不容易实现,因为它需要在并行化与状态一致性间做取舍。

非 EVM 并行解决方案

Solana 不同于以太坊的全局状态树,Solana 采用了账户模型。每个账户是独立的存储空间,存储在账本中,因此避免了路径冲突问题。Solana 是确定性并行。在 Solana 中,每笔交易需要在提交时明确声明将访问的账户和所需的访问权限(只读或读写)。这种设计让区块链节点可以在交易执行之前,提前分析每笔交易需要访问的资源。因为交易在开始执行前已明确所有的账户依赖关系,节点可以判断哪些交易会访问相同的账户,哪些交易可以安全地并行执行,从而实现智能调度,避免冲突,从而实现并行调度的基础。由于每笔交易在执行前就已声明了需要访问的账户和权限,Solana 可以检查交易之间是否存在账户依赖关系(Sealevel 模型)。交易之间如果没有共享的读写账户,系统就可以把它们分配到不同的处理器上并行执行。Aptos Aptos 的并行执行设计与以太坊有很大的不同,它在架构和机制上做出了一些关键创新,主要体现在账户模型和状态存储。以太坊在执行交易时需要频繁更新全局状态树(MPT)。所有账户、合约的状态都存储在一个共享的状态树中,任何交易都需要访问和更新这棵状态树的一部分。而 Aptos 则通过将账户划分为独立的状态单元,每个对象是一个独立的键值对,对象之间可以独立存在,彼此互不影响,只有明确引用关系时才会关联。对象之间没有公共的树路径,不会出现锁竞争,可以完全并行。Aptos 的底层数据结构为 Jellyfish Merkle Tree。每个对象的状态最终存储在 JMT 中,作为独立的键值对。不同于以太坊的 MPT,Jellyfish Merkle Tree 以一种完全二叉树结构的形式,这种形式使得节点的存储路径和查询路径被简化,大幅降低了验证时间。并且,每个账户在树中的位置是固定的,且树中的节点是独立存储的,允许多个账户的更新和查找并行进行。Aptos 是乐观并行,它不需要预先提供声明的所有账户的依赖关系。为此,Aptos 使用 Block-STM,Block-STM 会利用预设的交易顺序来估计依赖性,从而减少中止次数。

并行 EVM

与非 EVM 并行相比,并行 EVM 在处理状态依赖性、冲突检测、Gas 管理和回滚机制等问题时,面临的技术难度较大。为了更好地理解这一点,我们可以参考一些并行 EVM 项目(如 Sui、Monad、Canto)如何解决这些问题。Sui Sui 和 Aptos 一样,也是使用对象模型来处理状态,采用每个对象(例如账户、智能合约状态)作为独立的资源,这些对象通过对象唯一标识符来区分。当交易涉及不同的对象时,这些交易可以并行处理,因为它们对不同的状态进行操作,不会产生直接的冲突。虽然 Sui 使用对象模型来管理状态,然而,为了兼容 EVM,Sui 的架构通过额外的适配层或抽象机制,来桥接对象模型和 EVM 的账户模型。在 Sui 中,事务的调度使用乐观并行策略,假设事务之间没有冲突。如果冲突发生,系统会使用回滚机制来恢复状态。Sui 使用了对象模型和状态隔离技术,能有效避免状态依赖性问题。每个对象作为独立的资源,不同的交易可以并行执行,从而提高了吞吐量和效率。但这种方法的 trade-off 是对象模型的复杂性和回滚机制的开销。如果交易之间发生冲突,需要对部分状态进行回滚,这会增加系统的负担,并且可能影响并行处理的效率。相较于非 EVM 并行系统(如 Solana),Sui 需要更多的计算和存储资源来维持高效的并行性。Monad 与 Sui 一样,Monad 采用的也是乐观并行。但 Monad 的乐观并行在具体交易执行前还是会对一些具有依赖关系的交易进行预测,预测主要通过 Monad 的静态代码分析器来完成。预测需要对状态进行访问,而以太坊数据库中存储状态的方式使得访问状态非常困难,为了使得并行在状态读取的过程更具效率,Monad 还重构了数据库。Monad 状态树按分区进行划分,每个分区维护自己的状态子树。更新时只需修改相关分片,无需重建整个状态树。通过状态索引表快速定位分区中的状态,减少分区间的交互。

并行区块链全解:执行原理、代表项目及所处周期

小结

并行的核心是以多路径执行的方式提高执行层执行效率,而为了实现多路径执行,链则需要进行一系列如冲突检测和回滚机制以确保它们在不影响最终状态一致性的情况下并行执行,并对数据库进行一定程度的改良。当然,执行层效率的提高不局限于并行这一种方式,执行环节的优化还可以通过降低一笔交易对数据库需要的读写操作来完成。而整个链速度提升涉及的范围则更为广泛,还包括了共识层效率的提升。每个技术背后都有属于其特定的限制条件。并行仅是提升效率的方式之一,最终决定是否使用该技术还需要考虑对于开发者是否友好,是否能够以不牺牲去中心化的方式完成等等。技术的堆叠并非越多越好,至少,对于以太坊而言,并行并没有那么那么具有吸引力,如果单从提升效率的角度出发,加入并行对于以太坊而言并非是最优解,无论是从简洁性考虑还是以以太坊目前 Rollup 为中心的路线图来考虑。

来源:https://www.php.cn/faq/1164741.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

AYN调整安卓掌机Odin 3处理器表述:骁龙8 Elite→跃龙Q8系列
礼仪与书信
AYN调整安卓掌机Odin 3处理器表述:骁龙8 Elite→跃龙Q8系列

IT之家 4 月 7 日消息,厂商 AYN 在去年推出了安卓掌机 Odin 3,在初期宣传中该处理器的型号被表述为高通骁龙 8 至尊版 。不过从中文正式的页面来看,该企业已在本月将处理器的名称调整为

热心网友
04.07
购买搭载第三代Ultra处理器的笔记本 需要注意什么
电脑教程
购买搭载第三代Ultra处理器的笔记本 需要注意什么

关注第三代英特尔酷睿Ultra处理器的朋友,可能知道这代处理器有两个非常明显的提升,那就是能效表现极佳,轻薄本的续航能力得到了史诗级加强。另一个就是核芯显卡的性能提升幅度非常大,甚至可以运行3A大作

热心网友
04.07
微星泰坦18 Ultra 2026游戏本上市,顶配售价47999元
礼仪与书信
微星泰坦18 Ultra 2026游戏本上市,顶配售价47999元

PChome4月6日消息,微星泰坦18 Ultra 2026(Titan 18 HX)游戏本现已正式上市,顶配售价47999元,主打270W超强性能释放与4K 240Hz MiniLED顶级屏幕,主

热心网友
04.07
Intel官方限制被玩家硬破:纯大核CPU在Z790上成功进Windows!
电脑教程
Intel官方限制被玩家硬破:纯大核CPU在Z790上成功进Windows!

4月3日消息,Overclock net论坛上的Bartlett Lake-S改装项目取得重大突破,一位改装者成功将Intel酷睿9 273PQE处理器,在华硕Z790主板上引导进入Windows系

热心网友
04.07
PC鲜辣报:英伟达DLSS 4.5更新,Intel新处理器曝超大插槽
礼仪与书信
PC鲜辣报:英伟达DLSS 4.5更新,Intel新处理器曝超大插槽

Intel Nova Lake-AX处理器曝光LGA4326超大规格插槽,核显配置拉满;同时也将官宣2026年将完成三轮消费级CPU涨价,全年累计涨幅最高冲击30%;英伟达正式发布DLSS 4 5技

热心网友
04.07

最新APP

星厨烹饪记
星厨烹饪记
模拟经营 04-07
野狐围棋
野狐围棋
休闲益智 04-07
数独趣味闯关
数独趣味闯关
休闲益智 04-07
全民奇迹2
全民奇迹2
角色扮演 04-07
一梦江湖
一梦江湖
角色扮演 04-07

热门推荐

机圈专业V单来了!vivo X300 Ultra正式开售:6999元起
网络安全
机圈专业V单来了!vivo X300 Ultra正式开售:6999元起

4月3日消息,今日,vivo年度影像旗舰X300 Ultra正式开售,新机定位专业V单+口袋摄影机,影像能力全面拉满。vivo X300 Ultra配备蔡司大师镜头群,覆盖14mm蔡司超广角、35m

热心网友
04.07
微软委屈喊话:别什么锅都甩给Windows更新!先想想自己干了啥
电脑教程
微软委屈喊话:别什么锅都甩给Windows更新!先想想自己干了啥

4月2日消息,微软资深Windows工程师Raymond Chen发布长文,呼吁用户和企业IT团队,不要每次在系统出现问题后就第一时间将责任归咎于Windows更新。Chen指出,许多被归咎于每月更

热心网友
04.07
卡普空女性角色建模争议:十年对比凸显技术进步与表现力倒退
科技数码
卡普空女性角色建模争议:十年对比凸显技术进步与表现力倒退

近期,日本玩家围绕卡普空旗下女性角色视觉风格的变迁展开了广泛讨论。有玩家将十年前以当时技术水准塑造的代表性美少女角色玛莉·萝丝,与近年运用最新技术打造的英格丽德进行对比,认为后者在角色表现力上并未体

热心网友
04.07
AQUAPLUS正式终止ToHeart3开发:情怀难续,故事止于恰当时刻
科技数码
AQUAPLUS正式终止ToHeart3开发:情怀难续,故事止于恰当时刻

有多少资深玩家还记得AQUAPLUS旗下那款经典的恋爱冒险作品ToHeart?多年来,关于推出第三部续作的呼声始终不绝于耳。然而,这一计划事实上已被官方终止。近日,该公司社长在一次访谈中透露了项目搁

热心网友
04.07
电动自行车行业遭遇补贴退场与成本飙升双重压力
科技数码
电动自行车行业遭遇补贴退场与成本飙升双重压力

2026年4月5日,电动自行车行业正面临双重压力:国家层面的以旧换新补贴政策正式退出,叠加原材料成本持续攀升,导致终端售价普遍上调,市场销售明显承压。根据2026年最新实施的消费品以旧换新政策,电动

热心网友
04.07