CN117455483B - 一种基于动态矿工组机制的高性能dag区块链*** - Google Patents
一种基于动态矿工组机制的高性能dag区块链*** Download PDFInfo
- Publication number
- CN117455483B CN117455483B CN202310977299.5A CN202310977299A CN117455483B CN 117455483 B CN117455483 B CN 117455483B CN 202310977299 A CN202310977299 A CN 202310977299A CN 117455483 B CN117455483 B CN 117455483B
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- node
- blocks
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 34
- 238000005065 mining Methods 0.000 title claims abstract description 34
- 230000036961 partial effect Effects 0.000 claims abstract description 11
- 229910052500 inorganic mineral Inorganic materials 0.000 claims abstract description 10
- 239000011707 mineral Substances 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000004806 packaging method and process Methods 0.000 claims abstract description 9
- 238000012795 verification Methods 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 9
- 230000002860 competitive effect Effects 0.000 abstract description 3
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000012163 sequencing technique Methods 0.000 abstract description 2
- 230000008520 organization Effects 0.000 abstract 1
- 238000012790 confirmation Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001481828 Glyptocephalus cynoglossus Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于动态矿工组机制的高性能DAG区块链***,属于计算机科学与技术领域;本发明由交易池模块和网络共识模块两部分组成,其中网络共识模块主要负责打包、验证和链接并发块,而交易池模块主要负责处理来自用户发送的交易。本发明以并发块共识为基础,通过建立动态的矿工组不断转化节点之间的关系,避免了线性链共识模式下的单一竞争化出块模式,使进入矿工组中的成员可以相互协作与监督输出无重复交易的偏序块,从而保证最终全局排序后的可用交易规模即为并发块所携带的交易规模。
Description
技术领域
本发明涉及计算机科学与技术领域,具体为一种基于动态矿工组机制的高性能DAG区块链***。
背景技术
区块链是一种分布式账本***,由一系列节点共同维护,通过去中心化的方式解决了在分布式环境中的信任问题。传统的基于线性结构的区块链***,例如比特币和以太坊,由于底层共识机制的安全性需求,导致其吞吐量极低,确认延迟非常高,逐渐无法满足日益增长的交易规模处理需求。为了解决这一问题,支持并发块的区块链扩展方案已经成为一种相对普遍的解决方案,这种方案能够较为平衡地兼顾安全性和性能表现。
然而,现有的并发块扩展方案仍然基于传统的线性链共识过程进行结构扩展,未充分考虑非线性区块链结构***的差异化需求,导致并发块中包含大量的重复交易,虽然能在不同程度上提高并发块的数量,却忽视了并发块的质量,使得***虽然提高了区块的带宽利用率,但最终的有效性能却无法达到预期水平。
基于上述内容,本发明提出一种基于动态矿工组机制的高性能DAG区块链***以解决上述问题。
发明内容
1、本发明要解决的技术问题
本发明的目的在于提出一种基于动态矿工组机制的高性能DAG区块链***以突破现有并发块扩展方案中基于线性链结构共识过程的限制,设计适用于并发块结构的数据结构和共识模式,以保证***高效输出无重复交易的区块序列,并使最终并发块串行化后的可用交易规模达到并发块所携带的原始交易规模;本发明有效的提升了区块链性能,基于带宽利用率的有效吞吐量增加,并极大的降低区块的确认延迟。
2、技术方案
为实现上述目的,本发明提供如下技术方案:
一种基于动态矿工组机制的高性能DAG区块链***,包括有交易池模块和网络共识模块;
所述交易池模块用以处理来自用户发送的交易,所述交易池模块中,全节点的交易池按照较小的时间间隔来推进交易的执行,并通过UTXO的引用关系建立不同epoch之间交易的关联;
所述网络共识模块用以打包、验证和链接并发块,所述网络共识模块中建立有基于轮次的、结构化的Block-DAG数据结构,每个轮次的并发块集合通过对应轮次的矿工组输出到网络中,其中相邻轮次之间的区块通过哈希引用建立联系,相同轮次之间的区块通过偏序引用建立联系;
所述交易池模块与网络共识模块并行执行,在矿工组进行并发块共识时,矿工组中的节点通过与交易池进行交互获取并发块中所携带的交易哈希列表并进行验证,在共识过程结束后,矿工组输出一系列根据交易池中的交易关联建立偏序关系的并发块到网络中。
优选地,所述交易池模块的具体执行流程为:
A1、全节点根据创世区块中Coinbase交易的输出建立epoch1对应的UTXO集合,并更新至节点状态中;
A2、轻节点选择邻近的全节点查询个人当前可用的UTXO,构造交易并发送交易至全节点;
A3、全节点实时监听来自轻节点和其他节点发送的交易,对于新加入的交易,将其广播至全网并进行交易合法性的验证;验证通过后根据交易引用的UTXO进行预执行并返回结果和交易的预执行状态,然后将该交易放入当前epoch的交易列表中,并在该交易和被引用UTXO的交易之间建立引用关系;
A4、当前epoch结束时,全节点根据当前epoch收集的交易和预执行结果更新下一个epoch可用的UTXO结合,并进入到下一个epoch;
A5、轻节点收到交易预执行结果后,对于预执行状态的交易进行反馈等待,等待网络中产出包含该交易的区块,此时此交易为最终合法交易,或者等待来自预执行全节点的回滚消息,此时此交易被判定为无效交易。
优选地,所述网络共识模块的具体执行流程为:
B1、初始化一个固定的全局网络并发系数,然后全节点根据当前网络并发系数建立等量的创世区块,并将创世区块放入轮次0中;
B2、全节点将创世区块的哈希作为轮次1哈希计算的输入,并进入到轮次1的矿工组认证循环中,当全节点矿工组认证成功时,其广播矿工组认证凭证并进入到本轮次的矿工组中;
B3、全节点监听网络中的矿工组认证成功消息,当接收到来自其他节点在本轮次矿工组认证成功的凭证后,节点首先验证凭证,如果有该凭证中引用的不存在于本地Block-DAG中的区块,全节点进行区块请求;凭证验证成功后,全节点将广播该凭证的节点加入本轮此的矿工组中;
B4、当全节点当前轮次的矿工组成员数量达到网络并发系数时,全节点停止接受本轮次的矿工组认证成功消息,并启动本轮此矿工组的并发块共识;
B5、全节点监听网络中的并发块共识输出结果,当接收到矿工组输出的区块时,全节点进行区块验证,验证通过后将区块链接到本轮次的Block-DAG结构中,并根据区块携带的交易更新交易池状态和交易池中预执行交易的反馈结果,将结果发送至轻节点中;
B6、当全节点本轮次的区块数量达到网络并发系数的一半以上时,全节点以当前轮次的区块哈希作为矿工组认证计算输入,进入到下一轮此的矿工组认证循环中,并进行上一轮次并发块的串行化处理。
优选地,所述矿工组共识的具体执行流程为:
C1、当本轮次的矿工组启动并发块共识后,共识组成员首先投掷一个全局随机硬币,并将输出映射到矿工组的节点中,该节点为本轮次的leader节点,负责并发块的分配;
C2、leader节点选举成功后,随即从该节点的交易池中打包等于网络并发系数的并发块,如果不同并发块携带的交易之间具有引用关系,则在对应并发块之间建立对应的偏序关系,然后将该并发块分配给矿工组内的其他节点;
C3、当前轮次矿工组中的非leader节点监听来自leader节点分配的区块,当收到区块后,首先对区块中的交易进行验证,并请求不存在于本节点交易池中的交易,然后对该交易进行验证;区块验证通过后,节点生成对应的区块头内容并将其加入区块中,最后将该区块发送至矿工组的其他节点进行验证。
C4、当矿工组中的节点收到来自其他节点的区块验证请求时,首先对区块头和区块中携带的交易进行验证,验证通过后,对该区块进行签名,并将签名返回至发送节点作为自己的投票;
C5、矿工组的节点收集来自其他节点对于自己发布的验证区块的投票,当收集到的投票数量超过矿工组成员数量的一半时,节点将投票链接到区块中,并将最终的区块发布至全网。
3、有益效果
(1)本发明优化和完善了区块链***模块,将其划分为面向交易的交易池模块和面向并发块处理的网络共识模块,并设计了两个模块并行执行的***运行模式,能够有效地避免不同模块之间的延迟性影响,提高了本发明对于区块链基础应用场景的适配性;
(2)本发明通过拜占庭容错共识机制对于传统线性链结构共识机制的完善和补充,建立了适配于并发块共识的动态矿工组,解决了传统基于线性链结构共识进行扩展的并发块中携带重复交易的问题,能够在降低交易确认延迟的前提下,提升***整体的有效吞吐量;
(3)本发明将交易预执行和交易广播过程转移过程转移到交易池中进行,能够有效降低公链环境下***对于用户交易的响应速度,提升用户的体验感,此外,交易池对于交易的处理和同步可以避免交易在网络中的二次传播,能够有效地提升网络共识的效率,同时降低网络消耗。
综上所述,本发明基于并发块共识建立了一个高性能区块链***,利用拜占庭容错共识机制作为传统区块链共识机制的补充,建立了动态矿工组机制来打包和输出无重复交易的区块,并设计了对应的Block-DAG区块数据结构,可以在保证较低交易确认延迟的前提下,极大地提高***最终的有效吞吐量。为了提升***对于用户的友好度,同时提高本发明的实用性,本发明创新的设计了交易池和网络共识的解耦式并行模式,以提升区块链***对于用户发送交易的响应速度。
附图说明
图1为本发明提出的一种基于动态矿工组机制的高性能DAG区块链***的***模块图;
图2为本发明实施例1中提到的Block-DAG数据结构图;
图3为本发明实施例1中提到的矿工组共识过程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
本发明提出一种基于动态矿工组机制的高性能DAG区块链***,更具体的,涉及一种基于动态矿工组机制和有向无环图结构的高性能区块链***。该***以并发块共识为基础,通过建立动态的矿工组不断转化节点之间的关系,避免了线性链共识模式下的单一竞争化出块模式,使进入矿工组中的成员可以相互协作与监督输出无重复交易的偏序块,从而保证最终全局排序后的可用交易规模即为并发块所携带的交易规模。其中,涉及到的技术主要有基于并发块结构的区块链扩展技术(Scalalble Nakamoto Blockchain)、并行矿工组认证(m-for-1 Mining)和拜占庭容错共识机制(Byzantine Fault ToleranceAgreement),现将相关技术介绍如下:
①基于并发块结构的区块链扩展技术(Scalable Nakamoto Blockchain):该技术主要通过缩短区块产生间隔来支持并发块的链接和确认,从而提升***整体的性能表现。传统区块链协议都基于线性链结构,其中交易被批量打包至区块中,然后区块按照严格的前驱和后继顺序在网络中进行不可逆排列。线性结构的性能瓶颈主要由PoW(Proof ofWork)共识机制引起,该共识机制要求网络中的节点通过不同的方式竞争区块打包的权利,并以最长链为区块连接基准,导致某个发布于网络中的区块存在一定的概率在未来被认为不合法(probablistic mechanism),并且此概率随着线性链分叉程度的增加而增加,因此在单链结构下,缩短区块产生造成的频繁分叉会引发严重的安全性问题。而基于并发块的区块链***从区块链结构出发,采用区块树(Block-Tree),多链实例(Multiple-chains)和区块图(Block-DAG)的扩展接纳并且组织分叉区块,让它们以并发的方式存在于网络中,以支持更高的区块产生速率,并通过改变对应结构下的区块确认规则来确保安全性,如最大算力子树确认规则(The Heaviest Tree Confirmation Rule)等。
②并行矿工组认证(m-for-1 Mining)技术:该技术主要通过链接非线性链网络结构的所有叶子节点对应区块的哈希值作为新区块哈希计算的输入,以保证网络结构中每条路径上的安全性都达到线性链的安全性需求。传统区块链以某一时刻中网络的最长链作为最大算力的代表,并认为一个在最长链中被反复确认六次以上的区块具有最终合法性,以此限制网络中的51%算力攻击。由于非线性网络结构允许并发块的生成与确认,矿工组认证速率会随着并发块数量的增加而增加,造成传统线性链结构中的区块算力被分解成为并发块的单块算力,从而降低了非线性网络结构中单一路径上的总算力,因此,相比线性链结构,非线性网络结构中的路径更容易受到攻击。并行矿工组认证技术使得攻击者需要同时控制非线性链网络中所有路径上的算力才能对整个网络进行攻击,从而在区块计算时重新将并发块分散的算力进行聚合,限制了针对某一路径潜在的51%算力攻击,为非线性链结构的区块链***提供了有效的安全性保障。
③拜占庭容错共识机制(Byzantine Fault Tolerance Agreement):在概率性共识机制中,如被公链广泛应用的工作量证明机制,节点通过竞争性的任务来获得区块生成的权利,即区块的创建者具有概率性和随机性,因此需要反复确认来降低该区块的恶意攻击概率,导致极高的确认延迟。相比之下,拜占庭容错共识机制具有确定性,在该机制中,所有节点都需要通过相互发送消息来参与共识过程,进而决定区块的打包和确认,因此该机制的输出结果未确定性结果,不需要被反复确认,并且该共识机制可以根据网络模型容纳不同规模恶意节点(同步网络模型下的1/2恶意节点规模,弱同步和异步网络环境下的1/3节点规模)的攻击行为,但该共识机制需要对参与共识的节点具有明确的身份认证,无法甄别开放环境中的女巫攻击(Sybil attack),因此经常与公链共识机制混合使用,互为补充,以此既保证安全性,又能提高整体***的性能表现。
下面结合具体实例及附图对本发明所提出的一种基于动态矿工组机制的高性能DAG区块链***进行说明,具体内容如下。
实施例1:
本发明基于UTXO交易模型,并采用轻节点(Light Node)和全节点(Full Node)的***架构来提高扩展性。其中,全节点需要在本地维护完整的区块链数据和交易池数据,并参与并发块共识的全部过程,而轻节点只需要发送交易、接收交易处理结果并在区块发布后进行区块头的同步即可。
如图1所示,本发明涉及的***由交易池模块和网络共识模块两部分组成,其中网络共识模块主要负责打包、验证和链接并发块,而交易池模块主要负责处理来自用户发送的交易。在网络共识模块中,我们建立了一个基于轮次的、结构化的Block-DAG数据结构,每个轮次的并发块集合由对应轮次的矿工组输出到网络中,其中相邻轮次之间的区块通过哈希引用建立联系,相同轮次之间的区块通过偏序引用建立联系;在交易池模块中,我们使全节点的交易池会按照较小的时间间隔(epoch)来推进交易的执行,并通过UTXO的引用关系建立不同epoch之间交易的关联;在矿工组进行并发块共识时,矿工组中的节点通过与交易池进行交互获取并发块中所携带的交易哈希列表并进行验证,在共识过程结束后,矿工组会输出一系列根据交易池中的交易关联建立偏序关系的并发块到网络中。交易池模块和网络共识模块并行执行,每个模块的具体推进流程如下:
a.交易池模块:
步骤1-1,全节点根据创世区块中Coinbase交易的输出建立epoch1对应的UTXO集合,并更新至节点状态中。
步骤1-2,轻节点选择邻近的全节点查询个人当前可用的UTXO,构造交易并发送交易至全节点。
步骤1-3,全节点实时监听来自轻节点和其他节点发送的交易,对于新加入的交易,将其广播至全网并进行交易合法性的验证。验证通过后根据交易引用的UTXO进行预执行并返回结果和交易的预执行状态,然后将该交易放入当前epoch的交易列表中,并在该交易和被引用UTXO的交易之间建立引用关系。
步骤1-4,当前epoch结束时,全节点根据当前epoch收集的交易和预执行结果更新下一个epoch可用的UTXO结合,并进入到下一个epoch。
步骤1-5,轻节点收到交易预执行结果后,对于预执行状态的交易进行反馈等待,等待网络中产出包含该交易的区块,此时此交易为最终合法交易,或者等待来自预执行全节点的回滚消息,此时此交易被判定为无效交易。
b.网络共识模块:
步骤2-1,首先初始化一个固定的全局网络并发系数,然后全节点根据当前网络并发系数建立等量的创世区块,并将创世区块放入轮次0中。
步骤2-2,全节点将创世区块的哈希作为轮次1哈希计算的输入,并进入到轮次1的矿工组认证循环中,当全节点矿工组认证成功时,其广播矿工组认证凭证并进入到本轮次的矿工组中。
步骤2-3,全节点监听网络中的矿工组认证成功消息,当接收到来自其他节点在本轮次矿工组认证成功的凭证后,节点首先验证凭证,如果有该凭证中引用的不存在于本地Block-DAG中的区块,全节点进行区块请求。凭证验证成功后,全节点将广播该凭证的节点加入本轮此的矿工组中。
步骤2-4,当全节点当前轮次的矿工组成员数量达到网络并发系数时,全节点停止接受本轮次的矿工组认证成功消息,并启动本轮此矿工组的并发块共识。
步骤2-5,全节点监听网络中的并发块共识输出结果,当接收到矿工组输出的区块时,全节点进行区块验证,验证通过后将区块链接到本轮次的Block-DAG结构中,并根据区块携带的交易更新交易池状态和交易池中预执行交易的反馈结果,将结果发送至轻节点中。
步骤2-6,当全节点本轮次的区块数量达到网络并发系数的一半以上时,全节点以当前轮次的区块哈希作为矿工组认证计算输入,进入到下一轮此的矿工组认证循环中,并进行上一轮次并发块的串行化处理。
网络共识模块的步骤2-1和2-6利用并行矿工组认证限制了恶意节点的算力攻击,并将工作量证明从区块发布凭证转化为矿工组成员凭证,由此限制了恶意节点对矿工组开展女巫攻击,保证了矿工组的安全性,保证矿工组成员顺利协作完成并发块的打包和验证。
基于上述交易池模块和网络共识模块设计,动态矿工组共识设计如下:
图2是矿工组内节点对于并发块分配和验证的具体共识流程,为了便于阐述,我们以四个节点的矿工组来进行演示。我们设置每个轮次的矿工组拥有一个固定的leader节点,并且采用阈值的投票来作为一次决议通过的标志(其中为矿工组内恶意节点数量,)。
步骤3-1,当本轮次的矿工组启动并发块共识后,共识组成员首先投掷一个全局随机硬币,并将输出映射到矿工组的节点中,该节点即为本轮次的leader节点,负责并发块的分配。
步骤3-2,leader节点选举成功后,随即从该节点的交易池中打包等于网络并发系数的并发块,如果不同并发块携带的交易之间具有引用关系,则在对应并发块之间建立对应的偏序关系,然后将该并发块分配给矿工组内的其他节点。
步骤3-3,当前轮次矿工组中的非leader节点监听来自leader节点分配的区块,当收到区块后,首先对区块中的交易进行验证,并请求不存在于本节点交易池中的交易,然后对该交易进行验证。区块验证通过后,节点生成对应的区块头内容并将其加入区块中,最后将该区块发送至矿工组的其他节点进行验证。
步骤3-4,当矿工组中的节点收到来自其他节点的区块验证请求时,首先对区块头和区块中携带的交易进行验证,验证通过后,对该区块进行签名,并将签名返回至发送节点作为自己的投票。
步骤3-5,矿工组的节点收集来自其他节点对于自己发布的验证区块的投票,当收集到的投票数量超过矿工组成员数量的一半时,节点将投票链接到区块中,并将最终的区块发布至全网。
在本***中,交易池模块和网络共识模块的并行执行消解了网络共识对于交易响应速度的阻塞,由于交易池与用户的实时交互,从用户的视角来看,交易相应速度并不会受到并发块共识过程的影响;由于交易池模块负责保存完整的交易体并进行交易广播和预执行,当网络共识模块达到启动并发块共识的条件后,在动态矿工组共识的步骤3-1至3-5中,不同节点的区块交流只需要传递交易哈希值即可,以避免***中的交易多次重复传播问题,能够有效的提升并发块共识效率,并降低网络中的传播消耗。
综上所述,本发明展示了一种基于拜占庭容错共识机制的矿工组技术和有向无环图数据结构相结合的高性能区块链***,***由交易池模块和网络共识模块两个部分组成,主要创新点在于设计了针对于并发块共识的基于轮次的动态矿工组机制和Block-DAG数据结构,并通过完善交易池功能和设计模块并行化的执行方式在提升***性能的同时,提高用户体验度。本发明可以优化非线性链结构的区块链***最终***有效性能的表现,并且以现有的成熟区块链***架构为载体进行,具有非常高的实用性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其改进构思加以等同替换或改变,都应涵盖在本发明的保护范围内。
Claims (4)
1.一种基于动态矿工组机制的高性能DAG区块链***,其特征在于,包括有交易池模块和网络共识模块;
所述交易池模块用以处理来自用户发送的交易,所述交易池模块中,全节点的交易池按照较小的时间间隔来推进交易的执行,并通过UTXO的引用关系建立不同epoch之间交易的关联;
所述网络共识模块用以打包、验证和链接并发块,所述网络共识模块中建立有基于轮次的、结构化的Block-DAG数据结构,每个轮次的并发块集合通过对应轮次的矿工组输出到网络中,其中相邻轮次之间的区块通过哈希引用建立联系,相同轮次之间的区块通过偏序引用建立联系;
所述交易池模块与网络共识模块并行执行,在矿工组进行并发块共识时,矿工组中的节点通过与交易池进行交互获取并发块中所携带的交易哈希列表并进行验证,在共识过程结束后,矿工组输出一系列根据交易池中的交易关联建立偏序关系的并发块到网络中。
2.根据权利要求1所述的一种基于动态矿工组机制的高性能DAG区块链***,其特征在于,所述交易池模块的具体执行流程为:
A1、全节点根据创世区块中Coinbase交易的输出建立epoch1对应的UTXO集合,并更新至节点状态中;
A2、轻节点选择邻近的全节点查询个人当前可用的UTXO,构造交易并发送交易至全节点;
A3、全节点实时监听来自轻节点和其他节点发送的交易,对于新加入的交易,将其广播至全网并进行交易合法性的验证;验证通过后根据交易引用的UTXO进行预执行并返回结果和交易的预执行状态,然后将该交易放入当前epoch的交易列表中,并在该交易和被引用UTXO的交易之间建立引用关系;
A4、当前epoch结束时,全节点根据当前epoch收集的交易和预执行结果更新下一个epoch可用的UTXO结合,并进入到下一个epoch;
A5、轻节点收到交易预执行结果后,对于预执行状态的交易进行反馈等待,等待网络中产出包含该交易的区块,此时此交易为最终合法交易,或者等待来自预执行全节点的回滚消息,此时此交易被判定为无效交易。
3.根据权利要求1所述的一种基于动态矿工组机制的高性能DAG区块链***,其特征在于,所述网络共识模块的具体执行流程为:
B1、初始化一个固定的全局网络并发系数,然后全节点根据当前网络并发系数建立等量的创世区块,并将创世区块放入轮次0中;
B2、全节点将创世区块的哈希作为轮次1哈希计算的输入,并进入到轮次1的矿工组认证循环中,当全节点矿工组认证成功时,其广播矿工组认证凭证并进入到本轮次的矿工组中;
B3、全节点监听网络中的矿工组认证成功消息,当接收到来自其他节点在本轮次矿工组认证成功的凭证后,节点首先验证凭证,如果有该凭证中引用的不存在于本地Block-DAG中的区块,全节点进行区块请求;凭证验证成功后,全节点将广播该凭证的节点加入本轮此的矿工组中;
B4、当全节点当前轮次的矿工组成员数量达到网络并发系数时,全节点停止接受本轮次的矿工组认证成功消息,并启动本轮此矿工组的并发块共识;
B5、全节点监听网络中的并发块共识输出结果,当接收到矿工组输出的区块时,全节点进行区块验证,验证通过后将区块链接到本轮次的Block-DAG结构中,并根据区块携带的交易更新交易池状态和交易池中预执行交易的反馈结果,将结果发送至轻节点中;
B6、当全节点本轮次的区块数量达到网络并发系数的一半以上时,全节点以当前轮次的区块哈希作为矿工组认证计算输入,进入到下一轮此的矿工组认证循环中,并进行上一轮次并发块的串行化处理。
4.根据权利要求1所述的一种基于动态矿工组机制的高性能DAG区块链***,其特征在于,所述矿工组共识的具体执行流程为:
C1、当本轮次的矿工组启动并发块共识后,共识组成员首先投掷一个全局随机硬币,并将输出映射到矿工组的节点中,该节点为本轮次的leader节点,负责并发块的分配;
C2、leader节点选举成功后,随即从该节点的交易池中打包等于网络并发系数的并发块,如果不同并发块携带的交易之间具有引用关系,则在对应并发块之间建立对应的偏序关系,然后将该并发块分配给矿工组内的其他节点;
C3、当前轮次矿工组中的非leader节点监听来自leader节点分配的区块,当收到区块后,首先对区块中的交易进行验证,并请求不存在于本节点交易池中的交易,然后对该交易进行验证;区块验证通过后,节点生成对应的区块头内容并将其加入区块中,最后将该区块发送至矿工组的其他节点进行验证;
C4、当矿工组中的节点收到来自其他节点的区块验证请求时,首先对区块头和区块中携带的交易进行验证,验证通过后,对该区块进行签名,并将签名返回至发送节点作为自己的投票;
C5、矿工组的节点收集来自其他节点对于自己发布的验证区块的投票,当收集到的投票数量超过矿工组成员数量的一半时,节点将投票链接到区块中,并将最终的区块发布至全网。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310977299.5A CN117455483B (zh) | 2023-08-04 | 2023-08-04 | 一种基于动态矿工组机制的高性能dag区块链*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310977299.5A CN117455483B (zh) | 2023-08-04 | 2023-08-04 | 一种基于动态矿工组机制的高性能dag区块链*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117455483A CN117455483A (zh) | 2024-01-26 |
CN117455483B true CN117455483B (zh) | 2024-04-26 |
Family
ID=89584299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310977299.5A Active CN117455483B (zh) | 2023-08-04 | 2023-08-04 | 一种基于动态矿工组机制的高性能dag区块链*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117455483B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511590A (zh) * | 2020-10-26 | 2021-03-16 | 南京辰阔网络科技有限公司 | 一种区块链分片的高效存储重配置方法 |
CN113822672A (zh) * | 2021-11-22 | 2021-12-21 | 浙江数秦科技有限公司 | 一种基于零知识证明的区块链共识方法 |
CN114862397A (zh) * | 2022-07-06 | 2022-08-05 | 国网天津市电力公司培训中心 | 一种基于双链结构的双解耦区块链分布式方法 |
-
2023
- 2023-08-04 CN CN202310977299.5A patent/CN117455483B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511590A (zh) * | 2020-10-26 | 2021-03-16 | 南京辰阔网络科技有限公司 | 一种区块链分片的高效存储重配置方法 |
CN113822672A (zh) * | 2021-11-22 | 2021-12-21 | 浙江数秦科技有限公司 | 一种基于零知识证明的区块链共识方法 |
CN114862397A (zh) * | 2022-07-06 | 2022-08-05 | 国网天津市电力公司培训中心 | 一种基于双链结构的双解耦区块链分布式方法 |
Non-Patent Citations (1)
Title |
---|
基于DAG的分布式账本共识机制研究;高政风;郑继来;汤舒扬;龙宇;刘志强;刘振;谷大武;;软件学报;20230430(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117455483A (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784346B (zh) | 一种基于信誉值的pbft共识***及方法 | |
Rocket et al. | Scalable and probabilistic leaderless BFT consensus through metastability | |
CN109255713B (zh) | 一种区块链网络中某一时间段内记账权的获取方法 | |
CN111131209B (zh) | 一种改进的高效共识方法、***、计算机设备及存储介质 | |
CN109447795B (zh) | 一种支持快速达成最终确认性的拜占庭共识方法 | |
Amoussou-Guenou et al. | Correctness of tendermint-core blockchains | |
CN113271204B (zh) | 一种基于量子密钥分发的拜占庭容错共识方法 | |
Danezis et al. | Blockmania: from block dags to consensus | |
Liu et al. | A flexible sharding blockchain protocol based on cross-shard byzantine fault tolerance | |
CN112118321A (zh) | 一种工业区块链的实用拜占庭容错共识机制优化*** | |
CN114050904B (zh) | 一种基于两层级领导节点分片结构的共识***及方法 | |
Wang et al. | Byzantine fault tolerant algorithm based on vote | |
CN111800274A (zh) | 一种基于区块链的可验证计算能耗优化方法 | |
CN113612618B (zh) | 一种联盟链共识方法及装置 | |
Huang et al. | Workload-based randomization byzantine fault tolerance consensus protocol | |
CN117455483B (zh) | 一种基于动态矿工组机制的高性能dag区块链*** | |
Yu et al. | OverShard: Scaling blockchain by full sharding with overlapping network and virtual accounts | |
Xie et al. | RAC-Chain: An Asynchronous Consensus-based Cross-chain Approach to Scalable Blockchain for Metaverse | |
Tang et al. | Excellent practical byzantine fault tolerance | |
CN113746859B (zh) | 一种高网络性能与安全性的vaPBFT区块链共识方法 | |
Chen et al. | LBLCO: A lightweight blockchain with low communication overhead for Internet of Things | |
CN113992398A (zh) | 一种改进的pbft共识算法 | |
Wu et al. | SEGBFT: a scalable consensus protocol for consortium blockchain | |
Hu et al. | A master-slave chain model for multiple blockchains | |
Wan et al. | Zebra: A cluster-aware blockchain consensus algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |