一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种有向无环图结构的区块链及其实现方法与流程

2021-10-20 00:58:00 来源:中国专利 TAG:区块 结构 方法 dag 无环图


1.本发明涉及区块链技术领域,具体涉及一种基于有向无环图(dag)结构的区块链及其实现方法。


背景技术:

2.区块链是一个去中心化、可追溯、不可篡改的共享数据库。区块链使得分布式网络中在没有可信中心节点做信用背书的情况下,为节点彼此提供了信任保障,提供这一保障的技术被称之为区块链共识机制。区块是分布式网络中节点对交易事务达成共识后形成的交易事务集合,链是指区块之间采用了链表数据结构进行相连,大量的事务经共识确认后生成众多区块。区块之间的链接指针为哈希指针,新的区块通过包含本区块的内容及父区块的哈希值进行哈希运算,从而连接到父区块,所有的区块组织在一起形成了链式结构。由于哈希运算的不可逆性,这种链式结构保证了所有链接到链上的区块内容不再允许修改,并且所有的记录都可以通过链式结构递归查询,形成了区块链天然防篡改可追溯的特性。
3.但是,这种单链式的区块存储结构存在着很大的局限性。首先,链式的存储结构意味着区块之间必然有着先后顺序,即区块必须串行处理。这必然会大大限制区块链系统的交易吞吐率,降低区块链事务的处理效率。其次,区块之间有着前后顺序,也意味着必须有一些节点需要维持这种全局排序服务,保证交易不会产生冲突,也防止恶意或无效交易的产生。一般从事这种服务的节点是区块链中的主节点,如pow、pos共识类区块链的矿工节点,pbft共识类区块链的主记账人节点,raft共识类区块链的领导者节点。在这种区块链中,主节点承担了远超区块链网络中其他分布式节点巨大任务计算处理的压力,容易造成节点性能瓶颈。最后,单链式的存储结构一般需要遵从最长链共识,导致区块链出现软分叉时,不得不抛弃非最长链的其他交易事务,产生很多孤块。这在pow类概率一致性共识算法的区块链(如比特币)中造成了计算资源的浪费,因为一个区块在产生后到成为孤块之前同样的有节点对其做功,在被抛弃之前一直被视为合法区块。
4.综上所述,链式结构对交易的串行处理方式是造成传统区块链吞吐量低和可扩展性差的一个重要原因。为了提高交易吞吐量,增加区块链系统的可扩展性。现有的解决方案一方面从内部入手,着重于提高交易的处理能力,如设计更高效的共识算法,增大区块的体积使之可以容纳更多的交易数量,毕竟一个区块内部的交易是并行处理的。另一方面从外部入手,着重于解决单链的性能瓶颈问题,如侧链技术,闪电网络等链下交易技术,可以看做是早期dag区块链的雏形。后面dag区块链技术逐渐发展了iota的tangle区块链,byteball公证dag区块链技术以及比特币扩展的conflux区块链技术等。dag区块链的目标核心之一就是使区块交易之间可以并行处理,在分布式网络中由于没有中心节点,分布式对等节点由于缺乏交易的全局信息,因此对于双花问题需要着重注意。在现有dag区块链中仍然是通过算力保证,或者引入公证人根据主链原则进行避免,并且通过一定的机制对交易进行层次化验证,保证安全性,但同样也造成交易实时性不高,可扩展能力低下,应用范围受限。
5.因此,可以采用dag区块链技术解决现有单链结构存在的性能瓶颈。但同时,需要对现有的dag区块链技术加以改进,解决双花,交易冲突等区块交易并行化带来的问题。


技术实现要素:

6.本发明的目的在于针对现有dag区块链技术存在的共识性能不足,双花、冲突交易处理效果差等问题,而提供一种有向无环图结构的区块链及其实现方法。
7.与本发明相关的定义概念如下:dag区块链:是指以有向无环图结构作为区块链底层区块之间相连的方式,从而定义的一种新型区块链范式。
8.区块:是组成dag区块链的基础单元,是指由若干笔交易经过区块链网络中的大多数节点的验证确认后,经过打包运算后产生的一个确定性交易集合;所谓大多数节点,是指满足拜占庭协议下的诚实节点数,本发明中指代不低于全网共识节点数的2/3。
9.交易:区块链术语,是指需要通过区块链技术进行存储的一系列数据,包括但不限于一个具体的数据亦或是一个数据的操作记录等。
10.双花交易:是指同一笔交易的输出指向了两个或以上的目的交易地址(指交易接收方)。显然,这种交易是非法的,因为同一笔交易有且仅能被执行一次。
11.冲突交易:是指由源地址(交易发起方)发起的两笔或以上的交易,但是源地址并不满足发起这些交易的条件。例如:源地址账户余额为z,却发起了两笔交易额为x和y的交易,但x y>z。
12.交易并行:是指未有相互依赖关系的多笔交易可以在区块链系统中并行执行而无需遵从传统单链式区块链的串行处理。
13.视图分割:是指在dag区块链中,交易可以来自不同的节点,而节点由于缺乏交易的全局信息而无法判断交易是否与其他节点的交易发生冲突。视图分割是dag区块链中冲突和双花交易的起源。
14.实现本发明目的的技术方案是:一种有向无环图结构的区块链,该区块链是以有向无环图结构作为区块链底层区块之间相连,通过自引父区块和它引叔区块两种方式依次链接构成的区块链,其中:所述的自引父区块,是出块节点在新出块时选择由自己打包出块的上一区块,作为新区块的父区块,作为自引验证确认;所述的它引叔区块,是出块节点在新出块时随机选择任一其他节点的最新区块作为新区块的叔区块,作为它引寻址验证确认。
15.一种有向无环图结构的区块链的实现方法,通过交易并行处理上链、双花/冲突交易处理和链上数据实现,具体包括如下步骤:1)交易并行处理上链1

1)交易并行发起:任意节点可以独立的收集来自客户端或智能合约的交易事务,当收集的交易量达m或者收集时间达到t后,对交易集进行有效性验证并签名确认后通过gossip协议发送给其他r个节点,r为是散播度,其中m和t为系统可人为配置的参数表;1

2)交易确认:交易通过gossip协议散播到某一节点时,若该节点验证交易时发现该交易已经经过了全网大多数节点的验证确认,并且签名无误,则断定该交易已达成共
识;1

3)交易上链:经过共识确认的交易由最后的验证节点进行打包出块,选择其打包的上一个区块作为父区块,计算得到当前区块的父哈希值进行自引链接,并将区块随机转发给一个其他节点验证,取其最新区块作为叔区块,计算得到叔哈希值进行它引链接,经过自引和它引链接并验证确认后出块完成,视为交易上链完毕;2)冲突/双花交易处理2

1)交易发起:由客户端发起冲突或双花的交易至区块链的不同节点上,由于收到交易的节点缺乏全局信息,从而产生视图分割,无法判断交易属于冲突交易或双花交易等无效交易,交易此时会在局部认为合法并通过gossip协议在区块链网络上进行传播;2

2)冲突/双花交易发现:交易需要得到全网大多数节点的验证才可以达到最终确认,在通过gossip协议传播的某一时刻,一定会存在若干节点先后收到冲突/双花交易,称这些节点为发现节点;2

3)冲突/双花交易处理:发现节点根据先到先服务原则,拒绝承认后到交易,拒绝转发并发起交易异常反馈,最终结果是冲突/双花交易由于未得到大多数节点的确认而未达成共识,交易失败;3)链上数据同步:根据gossip协议散播规则,若设定的散播度较小,可能存在部分节点对本地交易状态未与链上交易同步的情况,需要执行gossip协议定期的push/pull操作,即随机选取r个邻居节点主动进行数据同步,来维持一致性。
16.所述步骤1)的交易并行处理上链中,多个节点可同时收集交易,并通过带签名的gossip协议转发,再由其他节点进行处理确认;当交易通过gossip协议散播到某一节点时,若该节点验证交易时发现该交易已经经过了全网大多数节点的验证确认,并且签名无误,则可以断定该交易已达成共识;共识的交易打包生成区块,通过自引和它引链接到区块链上;所述大多数节点满足拜占庭协议,即指不小于全网共识节点数的2/3。
17.本发明提供的一种有向无环图结构的区块链及其实现方法,具有如下几点:(1)本发明中的dag区块链区块组织是由出块节点在出块时自引其父区块和它引其任一叔区块构成的dag形式,所述出块是指除创世区块外的其他区块,后续内容若无特别说明,均指此类。
18.(2)本发明中dag区块链网络中的每个节点都可以处理交易,实现交易并行和同步出块,从而极大地提高交易效率。
19.(3)本发明中的dag区块链采用改进带签名的gossip协议进行共识。所有节点可以并行接收交易并通过gossip协议将交易散播出去,当交易经散播后经过全网大多数节点的验证确认后,交易被视为达成共识并出块上链,所述全网大多数节点满足拜占庭协议,即对于一个n节点组织的网络,拜占庭节点数不超过全网节点的1/3。
20.(4)冲突或双花交易通过gossip协议散播时,根据拜占庭协议,在散播的某一时刻,节点必然能发现这些非法交易并进行反馈,拒绝验证确认。
21.因此,本发明的dag区块链结构可以有效防范交易双花、冲突问题,并且交易能够并行处理并快速共识确认上链。
22.(5)底层区块链结构网络模型具有高吞吐、高扩展与一致性。节点之间采用gossip协议进行交易的转发处理,各个节点独立运行又相互依赖验证,实现了交易的高效处理与
并发执行确认。gossip同时支持节点的动态扩展,并且通过gossip传播的参数配置,可以实现数据的快速同步,实现高效共识,快速有效地达成最终一致性。
23.(6)dag设计具有稳定性与安全性。gossip的散播轮次期望为 ,其中r为gossip节点的散播度,n为总节点数。相比于pbft随着节点数量增加通信量指数级分布急剧增长,gossip则呈对数分布平稳增长,因此具有更高的稳定性。相比于其他dag区块链如tangle, byteball,本发明不需要节点用算力做背书防止双花问题,本发明中区块链节点通过gossip协议进行共识时可以有效防止双花或冲突交易的确认上链。
附图说明
24.图1为本发明的区块dag组织示意图;图2为本发明的交易并行共识出块示意图;图3为本发明的节点交易队列处理示意图;图4为本发明的冲突、双花交易处理示意图。
具体实施方式
25.下面结合附图和实施例对本发明内容做进一步阐述,但不是对本发明的限定。
26.实施例:以下介绍说明以网络规模为4节点举例,根据拜占庭问题,所述满足大多数节点的数量为3。并发交易以两笔示例,如图2中的tx1、tx2,冲突、双花交易以两笔示例,如图4中的tx1,tx1’

27.一种有向无环图结构的区块链的实现方法,包括如下步骤:步骤1:节点初始化并创建一个空交易块作为创世块,开启相关服务,如交易采集,gossip协议节点发现等;步骤2:交易并行处理出块上链构成dag区块链结构;步骤2

1:交易采集,如图2所示,节点node0和节点node3同时收到交易tx1和tx2。因此,交易tx1和交易tx2是并发交易;步骤2

2:交易转发处理:节点收到交易后的队列如图3所示,node0和node3收到交易后,对交易验证确认并进行签名后,再通过gossip协议转发到其他节点(本实施例中,gossip协议转发的节点数为1)。
28.步骤2

3:交易确认上链:交易在通过gossip转发处理到了某一时刻,如图2所示,node2发现交易tx1经过了node0、node1和自己的验证确认满足拜占庭协议,因此交易tx1确认上链,由node2进行出块,交易tx2同理;步骤2

3:区块链接构成dag。由node2产生一个区块block1链接到本节点最后一个区块作为子区块节点,并将区块转发给一个其他节点node3作引用寻址,作为子侄区块节点,block2同理,大量的交易最终构成图1所示的dag区块链结构;步骤3:冲突/双花交易处理步骤3

1:冲突/双花交易产生与局部传播:如图4所示,由客户端发起了冲突/双花交易tx1与tx1’,并分别将交易发送至节点node0和node3,在t0时刻,由于节点缺乏全局信息,因此对于节点node0和node3,交易tx1和交易tx1’都将被认为是合法的,进行验证后开
始进行gossip转发;t1时刻同理;步骤3

2:冲突/双花交易发现:交易tx1与tx1’
在传播的某一时刻如t2时刻,节点node1先后收到了交易tx1与tx1’
,此时,node1可以发现交易tx1与tx1’
有冲突或者属于双花交易,因此拒绝处理交易tx1’
,并向客户端发起反馈,node2对交易tx1的处理同理;步骤3

3:冲突/双花交易失败驳回:在t2时刻,冲突/双花交易被发现,节点拒绝转发;交易由于未受到全网大多数节点的共识确认,最终导致交易失败;步骤4:数据同步节点根据gossip协议定期执行push/pull操作,与邻居节点进行数据同步,加速一致性收敛。如图2中对tx1的共识确认中,散播度r=1。若最后随机选择的叔区块节点不是node3,那么node3在共识结束时会缺少数据tx1,但是在push/pull操作中会对此数据进行一致性同步。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜