一种基于DAG算法的区块链混合共识方法技术

技术编号:20120157 阅读:73 留言:0更新日期:2019-01-16 12:29
一种基于DAG算法的区块链混合共识方法具体步骤如下,步骤一:客户端收集并验证交易或者交易集合;步骤二:从DAG网络中选择权重高于设定值的至少两个图节点,并对该图节点交易或者交易集合进行交易有效性验证,通过验证则进入下一步;步骤三:客户端向DAG网络提交交易或者交易集合;步骤四:采用不同于DAG共识算法的第二种共识算法进行确定性共识;步骤五:由共识发起者向DAG网络发送图节点共识完成消息;步骤六:增加所述图节点在DAG网络中的权重。

A Block Chain Hybrid Consensus Method Based on DAG Algorithms

The concrete steps of a block chain hybrid consensus method based on DAG algorithm are as follows: the client collects and validates the transaction or transaction set; the second step is to select at least two graph nodes whose weight is higher than the set value from the DAG network and validate the transaction validity of the graph node or transaction set, and then proceed to the next step through validation; the third step is: the client collects and validates the transaction or transaction set from the DAG network. Network submit transaction or transaction set; Step 4: Using the second consensus algorithm different from DAG consensus algorithm to achieve a definite consensus; Step 5: Send a consensus message to DAG network by consensus initiator; Step 6: Increase the weight of the graph node in DAG network.

【技术实现步骤摘要】
一种基于DAG算法的区块链混合共识方法
本专利技术涉及计算机
,具体涉及一种基于DAG算法的区块链混合共识方法。
技术介绍
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式;现有共识算法有很多,例如PoW、DAG、PBFT、RAFT、PAXOS算法,其中PoW、DAG、PBFT是拜占庭容错共识,PoW算法利用工作量证明算法平均10分钟出块,但PoW容易产生分叉,需要6块确认来保证区块交易有效;RAFT、PAXOS算法只能支持SPOF(单点故障),无法支持SPOT(单点信任)。换句话讲,SPOF只机器由于停机、网络故障等原因导致无法工作,SPOT表示有黑客在恶意攻击分布式系统,可以模拟交互报文、发送伪造信息。其中拜占庭容错共识也分大概率共识和确定性共识,其中PoW、DAG属于大概率共识,在共识完成后无法得知该交易是否在区块链有效,PBFT等类BFT算法属于确定性共识,共识完成后该块交易结果是确定性的。PBFT共识需要网络多次交互、确认,当出现网络延迟等原因导致的共识效率降低时,后续交易将无法共识确认,TPS急剧下降。DAG算法采用有向无环图,新交易需要对之前的多笔交易进行交易验证后提交至区块链。DAG的明显缺点是交易确认时间不确定,无法得知该交易何时有效。同时,交易查询无法准确描述交易所在区块位置坐标,所以查询效率较低。在执行区块同步时将无法准确判断同步是否完成。
技术实现思路
一、解决的技术问题本专利技术针对现有技术的不足,提出一种将DAG网络混合高效共识算法,在保证交易TPS、共识效率的同时,提高交易查询效率、同步效率,利用DAG有向无环图特点保证高频交易处理能力,进行交易快速验证,使用BFT确定性共识特性,对DAG交易进行验证排序,并将完成BFT的区块在DAG进行标记,增加该区块在DAG网络的权重值,提高DAG的收敛速度的区块链共识方法。二、具体技术方案一种基于DAG算法的区块链混合共识方法,具体步骤如下,步骤一:客户端收集并验证交易或者交易集合;步骤二:从DAG网络中选择权重高于设定值的至少两个图节点,并对该图节点交易或者交易集合进行交易有效性验证,通过验证则进入下一步;步骤三:客户端向DAG网络提交交易或者交易集合;步骤四:采用不同于DAG共识算法的第二种共识算法进行确定性共识;步骤五:由共识发起者向DAG网络发送图节点共识完成消息;步骤六:增加所述图节点在DAG网络中的权重。为更好的实现本专利技术,进一步为:所述步骤四中第二种共识算法为BFT算法,具体为:BFT的共识发起者从DAG网络中随机抽取权重值较高于设定值的图节点,且该图节点的父区块被BFT成功记录到区块链上,BFT共识发起者对该图节点进行有效性验证,如验证失败,则通知DAG网络标记该图节点无效,验证成功则使用BFT协议进行确定性共识。所述步骤四中第二种共识算法为POS算法,具体步骤为:4.1投票选择提案人,各节点根据自身的Token数进行相互投票,每个节点可投票数是与自身持有的Token相同;4.2投票结果中,得票数最多者获得提案权力,并将自身接受到的交易进行打包成区块,然后广播给全网所有节点,全网首先识别得票数最多者的身份,进行各自落块,完成出块流程。所述步骤四中第二种共识算法为DPOS算法,具体步骤为:4.1投票选择共识组成员,各节点根据自身的Token数以及持有Token的时间进行综合计算,得出投票值;4.2提案人设定,在选出的共识组成员中,设定提案人;4.3在选出的共识组成员中,根据设定的提案顺序,进行各自落块,完成出块。所述步骤四中第二种共识算法为Algorand算法,具体步骤为:4.1抽签选择共识组;4.2选出来的共识组根据BFT算法进行轮流出块。所述步骤二中,从DAG网络中选择权重高于设定值的图节点为二个。客户端向DAG网络提交交易或者交易集合,并追加到验证通过的所述图节点的尾部。三、本专利技术的有益效果为:1、提高交易TPS、提高共识效率,使用有向无环图代替链式结构,可提高交易处理的并发能力,将部分交易验证工作交由客户端处理,降低DAG共识网络处理压力,进而提高交易TPS、共识效率。2、提高交易查询效率,DAG的有向无环图结构无法定义查询交易的位置坐标信息,需要像处理链表一样从后向前寻找,一旦遇到分叉,也需要遍历分支结构来查找交易,本方案的BFT共识采用链式结构进行存储,使用块号、块内偏移准确定位交易所在位置,同时可在BFT存储交易时组件快速索引表方便进行交易查询。3、提高同步效率,DAG网络采用有向无环图数据同步时,很难界定是否同步流程结束,但使用BFT的链式结构可实现快速同步,只需保证同步节点的块号等于其他节点的块号,即可证明同步流程结束。4、提高DAG收敛速度。由于DAG网络采用的是有向无环图,原则上图网络可以无限扩展,导致由于某些交易的权重值累加不足,被判定为无效交易,本方案将完成BFT的区块权重进行累加,当客户端进行区块提交时可选定权重值较高的区块进行交易验证,提高收敛速度。5、交易确定性。DAG网络需要依靠权重判定哪些交易有效,但该方式具有不确定性。例如:两笔交易是双花交易,其并发执行并提交至DAG网络,其中一笔被后续交易追加具有较高的权重,但另一笔由于是双花交易被后续叠加较少,经过一段时间双花交易不再被叠加,认为交易无效。但可以通过攻击手段使得后续交易追加到双花交易尾部,提高双花交易的权重,此时原交易将认为无效。利用DAG+BFT方案,区块以记录到BFT共识为主,如果DAG有其他双花交易,则直接置为无效。6、通过投票选举共识节点,更加具有去中心化特性。如果节点存在恶意攻击,将惩罚并扣除发起者token,因此增加节点作恶成本,间接提高区块链共识安全性。附图说明图1为本专利技术实施例一的流程图;图2为本专利技术中实施例一初始DAG网络节点图;图3为本专利技术中实施例一客户端向DAG网络提交交易图;图4为本专利技术中实施例一BFT网络从txns获取交易集合进行BFT共识的示意图;图5为本专利技术中实施例一客户端优先选择权重高的交易进行交易验证的示意图;图6为本专利技术实施例一中BFT网络获取DAG网络txsn进行共识,增加对应的DAG网络权重的示意图。图7为本专利技术实施例二中投票选择提案人的方法示意图;图8为本专利技术实施例三中投票选择共识组成员的方法示意图;图9位本专利技术实施例四中抽签选择共识组的方法示意图。具体实施方式下面结合附图对本专利技术的较佳实施例进行详细阐述,以使本专利技术的优点和特征能更易于被本领域技术人员理解,从而对本专利技术的保护范围做出更为清楚明确的界定。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一:如图1所示,一种基于DAG算法的区块链混合共识方法,具体步骤如下:S1:客户端在一段时间内接受到单笔交易或者交易集合,客户端验证交易有效性,验证通过的交易或者交易集合称为txsv,S2:定义DAG网络的图节点为txsn,从DAG网络中选择权重高于设定值的两个txsn,对这两个txsn的交易集合进本文档来自技高网...

【技术保护点】
1.一种基于DAG算法的区块链混合共识方法,其特征在于,具体步骤如下:步骤一:客户端收集并验证交易或者交易集合;步骤二:从DAG网络中选择权重高于设定值的至少两个图节点,并对该图节点交易或者交易集合进行交易有效性验证,通过验证则进入下一步;步骤三:客户端向DAG网络提交交易或者交易集合;步骤四:采用不同于DAG共识算法的第二种共识算法进行确定性共识;步骤五:由共识发起者向DAG网络发送图节点共识完成消息;步骤六:增加所述图节点在DAG网络中的权重。

【技术特征摘要】
1.一种基于DAG算法的区块链混合共识方法,其特征在于,具体步骤如下:步骤一:客户端收集并验证交易或者交易集合;步骤二:从DAG网络中选择权重高于设定值的至少两个图节点,并对该图节点交易或者交易集合进行交易有效性验证,通过验证则进入下一步;步骤三:客户端向DAG网络提交交易或者交易集合;步骤四:采用不同于DAG共识算法的第二种共识算法进行确定性共识;步骤五:由共识发起者向DAG网络发送图节点共识完成消息;步骤六:增加所述图节点在DAG网络中的权重。2.根据权利要求1所述基于DAG算法的区块链混合共识方法,其特征在于:所述步骤四中第二种共识算法为BFT算法,具体为:BFT的共识发起者从DAG网络中随机抽取权重高于设定值图节点,且该图节点的父区块被BFT成功记录到区块链上,BFT共识发起者对该图节点进行有效性验证,如验证失败,则通知DAG网络标记该图节点无效,验证成功则使用BFT协议进行确定性共识。3.根据权利要求1所述基于DAG算法的区块链混合共识方法,其特征在于:所述步骤四中第二种共识算法为POS算法,具体步骤为:4.1投票选择提案人,各节点根据自身的Token数进行相互投票,每个节点可投票数是与自身持有的To...

【专利技术属性】
技术研发人员:杨宁徐加明
申请(专利权)人:北京物链互联科技有限公司
类型:发明
国别省市:北京,11

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1