区块链技术以其防篡改和安全性著称,但是一直受限于其处理交易速度的瓶颈。本文介绍一种新型的免排序共识的执行-验证区块链架构,该架构通过使用确定性执行隐式对交易排序,避免了排序共识瓶颈,并基于该架构开发的联盟链系统NeuChain。 NeuChain是东北大学独立研发、从底层开发、完全自主可控的高吞吐量联盟区块链系统。取名NeuChain一方面代表东北大学独立知识产权,一方面谐音New代表全新的区块链系统。NeuChain采用了与比特币、以太坊、Hyperledger Fabric等已有主流区块链系统完全不同的新型区块链架构,避免了昂贵的排序共识开销,突破了传统架构的性能瓶颈,并提出多种安全保障机制遏制拜占庭恶意攻击行为,在跨地理区域环境实验中采用SmallBank基准测试的吞吐量可达到7万TPS,超过同类系统的10倍以上。该研究成果论文NeuChain: A Fast Permissioned Blockchain System with Deterministic Ordering已经被VLDB 2022录用。 背景 区块链系统因其在节点不可信、信道不可靠的拜占庭环境下,具有去中心化、防篡改、高可用等特性,广泛应用于金融、征信、供应链、物联网和边缘计算等场景下的安全、可信等关键问题。 现有区块链架构由排序阶段、执行阶段、验证阶段构成,其中排序阶段用于确定从多个节点收集到交易的总体顺序。排序阶段将交易排序并划分为区块,发送至各节点执行或验证。然而排序阶段存在以下问题:(1)排序阶段采用共识协议为交易排序,而Raft、PBFT、PoW等共识协议均采用单节点确定交易顺序并不可扩展,因此会成为系统瓶颈。(2)为保证节点间执行结果一致,交易执行必须遵从排序阶段的顺序,限制了交易的并发度。 因此,有必要提出一种新架构消除区块链系统的排序阶段。 如上图所示,目前区块链架构可分为排序-执行-验证(Order-Execute-Validate,OEV)、执行-排序-验证(Execute-Order-Validate,EOV)、执行排序并发-验证(Order-execute-parallel-validate,OEPV)三种架构。OEV架构的典型代表为比特币和以太坊。首先,节点收集一组交易形成区块,在区块上运行算法解决PoW问题,先解决问题的节点可作为排序节点提出区块。为防止女巫攻击并减少分叉,解决PoW问题需要消耗大量算力并非常耗时,造成很高的交易确认延迟、限制系统的吞吐量。在区块被广播到其他节点并被验证后,节点开始基于当前区块构造下一个区块并尝试解决下一个区块的PoW问题。 EOV架构,代表系统为Fabric以及其变种FabricSharp、Fabric++和FastFabric。该架构借鉴了MVOCC思想,交易先并发执行随后确定交易的提交顺序,该方法在读写冲突较少,交易提交延迟较低的情况下性能较好。交易在执行阶段可以跨节点并发执行,在使用排序服务确定全局顺序并打包为区块后,区块被发往所有节点串行做读写冲突验证。 OEPV架构通过并发进行排序阶段与执行阶段,以隐藏排序阶段的开销,违背可串行化的交易会在排序阶段完成后被终止;除此之外,许多现有区块链系统应用并改进了数据库的并发控制算法,用以提高吞吐率,但这些系统依旧包含了串行排序阶段,而昂贵的排序开销依然不可忽略。已有这些架构的总结可以见下表。 消除排序阶段面临诸多挑战。(1)排序阶段将交易流切分为交易组,每个交易组划分为一个区块,消除排序阶段后,系统仍需要确定交易所属的区块。(2)在并发执行无序的交易的同时,各节点间仍需要保证执行结果和区块一致。(3)系统仍需要保证拜占庭容错。 执行-验证架构 我们利用确定性排序来定义块内交易顺序,并使用epoch号来定义块间事务顺序,从而消除了显式排序阶段造成的单点瓶颈,以实现无排序阶段的执行验证(EV)架构。如下图所示,该架构不仅包括客户端和区块服务器(Block Server),还引入了客户端代理(Client Proxy)和epoch服务器等新组件。 每笔交易都分配有一个epoch号,该编号由受信任的单个epoch服务器或通过PBFT达成共识的epoch服务器集群分配,用于将交易划分为区块。不同于现有架构中由单节点(或共识协议的领导者)对一组交易排序,EV架构中的每个节点可以独立提出一个交易子集,多个节点共同提出epoch内的所有交易。因此,交易共识和区块生成得以并行。即以完整的一组无序交易作为输入,确定性排序可以保证所有对等节点产生相同的执行结果而无需额外通信。验证阶段会检测并避免区块内容的不一致,这使得EV架构对拜占庭攻击具有鲁棒性。下图展示了EV架构的执行流程。 安全性分析 NeuChain可以跨多组织部署,每个组织运行一个或多个物理节点。Client proxy为组织内提供服务。Block server执行交易,存储区块和状态数据库。Epoch server可以作为单独节点或集群提供服务。在该部署方式下,NeuChain的安全模型可以总结为如下几个方面:(1)Epoch server和client proxy的数量需要分别大于3f+1,其中f为epoch server或client proxy中拜占庭节点的数量。(2)所有节点间使用部分异步网络(Partial asynchronous network)通信。在部分异步的网络中,消息传递虽然存在延迟上界,但是分布式系统中的所有节点均无法检测确定该延迟具体数值。(3)组织内的节点互相可信,然而组织间的节点可能为拜占庭节点。下表详细介绍了三种节点的不同失效种类以及应对策略。这些抵御机制可以防止拜占庭节点影响系统的正常运行。 NeuChain联盟链系统 基于EV架构,我们开发了联盟区块链系统NeuChain。该系统不仅包括客户端和区块服务器(Block Server),还引入了客户端代理(Client Proxy)和epoch服务器等新组件。NeuChain使用异步块生成技术进一步提高吞吐量,并使用流水线技术减少延迟。NeuChain还提供全面的安全支持,以应对来自客户端、区块服务器、客户端代理和epoch服务器的恶意攻击。 实验评估 我们在一个跨地域的8节点阿里云集群上进行实验,分别与Hyperledger Fabric、FastFabric、高性能区块链系统ResilientDB、分区联盟区块链系统Meepo和最近的提出了BFT键值数据库Basil进行对比。我们还与一系列NeuChain变种系统(包括OEV、EOV和OEPV)进行比较,以研究EV架构在相同实现框架下的效率。使用YCSB和SmallBank工作负载的测试结果表明,NeuChain的吞吐量比Fabric提高了47.2-64.1倍,比ResilientDB、Meepo和Basil提高了1.6-12.2倍。EV架构也优于其他NeuChain变体,分别比OEV高出11.2-16.7倍,比EOV 高出7.4-19.0倍,比OEPV高出3.7-4.8倍。 总结 本文通过利用确定性执行提出了一种免排序的执行-验证区块链架构。通过消除显式的排序共识,大大提高系统吞吐量和延迟。基于EV架构,我们进一步设计并实现了一个系统原型NeuChain。流水线化和异步区块生成等关键技术减少了确定性执行和区块生成的开销。此外,NeuChain还集成了一系列机制,提供信任和安全保障。跨地域实验结果表明,NeuChain的性能比Fabric高47.2-64.1 倍,ResilientDB高出1.6-2.7倍,Basil高出7.6-12.2倍。
扫描查看移动版
校址:辽宁省沈阳市和平区文化路三巷11号 | 邮编:110819