一种基于DPoS共识算法的Iota账本优化系统及方法与流程

文档序号:22740906发布日期:2020-10-31 09:24阅读:104来源:国知局
一种基于DPoS共识算法的Iota账本优化系统及方法与流程

本发明涉及账本优化系统技术领域,具体为一种基于dpos共识算法的iota账本优化系统及方法。



背景技术:

iota是一种新型的分布是账本,使用的是有向非循环图(dag),即tangle(缠结)网络代替了区块链。对于区块链技术的工作模式,许多交易被打包捆绑在每个区块之后,由矿工来确认交易的有效性,而iota账本通过使用缠结网络,每增加一个交易,需要随机找到其他两个没有确认的交易,验证其有效性,随后把增加的交易指向这两笔交易,并发送到网络由后来的交易检查和确认。iota的架构在本质上是分布在一个没有区块链可以对应的层面上,在它的网络架构中,交易的发起人也同时是交易的验证人,iota的设计没有基于现有的区块链技术,而是对区块链生态系统做出了自己的拓展。但是,iota采用的dag模式本质上是一种异步通讯,所带来最大的问题在于一致性不可控,即交易时长不可控,因为dag所面对的是数以亿计的海量小型设备节点,与全球万级别的账本节点所需要的通讯确认时长要高出很多。另外,dag虽然可以有效使用大量节点闲置网络资源,但是带来的负面影响则是每个节点的网络通讯量暴增,因此对于整体网络吞吐量并不一定会得到大幅度提升。从数据结构体系来看,dag模式是一种典型的谣言传播算法,本质为异步通讯。异步通讯所带来最大的问题在于一致性不可控。就好像微服务架构中最让开发者头痛的在于各个微服务之间一致性与先后顺序控制的逻辑,远比传统开发模式复杂许多。在dag模型中所带来最大的问题在于交易确认时间完全未知。当然,某种程度上同样可以认为在链式模型中,一个区块被超过2/3以上节点数接受才算全网最终确认,因此最终确认时间同样无法准确判断,但是iota的dag所面对的是数以亿计的海量小型设备节点,与全球万级别的账本节点所需要的通讯确认时长要高出很多。

另一个dag一直宣称的利用全部节点带宽所带来的优势,实际上会被网络中成几何级数增长的通讯量所迅速湮灭。链式结构中仅仅账本节点记账,大量的钱包节点仅仅向一个账本节点通讯即可,因此全网络账本节点的数量远远小于钱包节点。在这种情况下,所有的数据同步均在账本节点之间完成,假设网络中有m个账本节点,每一条记录在网络中传输的次数为m+1(即钱包向一个账本发送数据,同时账本节点将数据转发给其他账本节点)。而对比dag结构,在全网存在n个设备节点时(n成千上万倍大于m),每一个消息都需要在设备间进行点对点通讯,因此对于任何消息的发送,网络中都会存在n^2次数据发送(每一个节点都尝试将信息发送给其他邻居节点)。及时进行优化,每个节点有针对性地发送给相邻的k个节点,那么其网络信息传播速度同样为k*n,当n取值极大时对整体网络压力极为夸张。

同时,dag很难作为严格的支付结算手段应用于高速响应的物联网设备远程调用。一般来说,服务提供者希望能够在提供服务之前收取一部分甚至全部费用,或在服务提供后能够最短时间内得到支付。而以dag作为结算手段,会造成支付时间完全不可控,而在iota给出的实现原理中更没有对极端情况作出设计,导致一些权重较低的交易长时间甚至永久无法被其他节点审批。

对于简单设备之间的调用命令尚可,但是如果调用命令较为复杂,甚至需要传输一段较长的指令代码,其通讯原理必须使用p2p直连,否则如果所有信息以dag转发的形式传输会造成严重网络风暴。

共识算法的性能直接影响着分布式系统的性能,例如安全性、鲁棒性、共识成本和效率等。如何在兼顾安全性和鲁棒性的基础上提高效率是一个需要持续讨论和研究的重点。目前关于区块链共识的各种研究也在根据具体应用场景做出多方面的改进,除了技术方案的改进之外,还需要结合经济和社会等因素寻找更加有针对性、更加完善的解决方案。



技术实现要素:

本发明的目的在于提供一种基于dpos共识算法的iota账本优化系统及方法,以解决上述背景技术中提出的问题。

为了解决上述技术问题,本发明提供如下技术方案:一种基于dpos共识算法的iota账本优化系统,包括dag节点和区块链节点,所述dag节点使用有向无环图数据结构,所述区块链节点通过dpos达成共识,所述dag节点和区块链节点分工有序且数据保持同步,所述优化系统依托于区块链,且区块链结构包含一张被称为区块的列表,所述区块包括区块头和区块体,所述区块头包含时间戳、随机数、merkle根节点、版本号以及一个与前一区块的链接,所述区块体包括交易数据和见证人签名;

一种基于dpos共识算法的iota账本优化系统的方法,包括步骤一,生成交易节点单元;步骤二,生成节点之间的依赖关系;步骤三,生成dag数据结构;步骤四,确定区块链投票区块和跟随节点;步骤五,达成dpos共识;

其中在上述步骤一中,每当交易信息产生时,需要向数据库中添加数据,通过调用数据库中的存储的节点信息,创建一个新的存储单元并将其广播给他的对等节点,新交易产生时所生成的存储单元主要包括以下几部分:

①存储的交易数据,即一个单元可以包括多个数据包,有许多不同类型的交易信息,且各有自己的结构;

②一个或多个用户的签名及用户的地址标识;

③由哈希值标识的一个或多个先前的关联节点单元;

其中在上述步骤二中,通过引用父单元,即新增交易单元的内容取决于父母单元哈希值的信息,且每个交易单元最终包括初始单元,以此生成稳定的节点之间的依赖关系;

其中在上述步骤三中,生成dag数据结构包括以下步骤:

①对每个交易信息关联关系生成并更新dag结构,并通过dag节点接收交易请求,对交易的合法性进行验证;

②沿着父子链索引,当同一单元被多个后来的单元引用时,将观察到许多分叉,并且当同一单元引用多个较早单元时,许多单元逐渐融合,生成最终的dag结构;

其中在上述步骤四中,由于区块链的结构特性,在不同的区域存在若干的投票节点,每个投票节点所覆盖的范围根据区块链的量级进行划分,该投票节点和普通节点的性质是一样的,只是作为一个信息汇集的介质,用于对该投票节点范围内所有关联节点的主体投票信息进行统计并筛选出得票最高的见证人,所有在该投票节点范围内的其他区块链网络的主体即为跟随节点;

其中在上述步骤五中,区块链部分采用见证人机制解决中心化问题,由区块链网络的主体投票产生的多个见证人对区块进行签名达成dpos共识。

根据上述技术方案,所述区块的列表设置有持续增长并且排列整齐的记录。

根据上述技术方案,所述见证人由使用区块链网络的主体投票产生的,且通过采用dpos共识算法产生的若干(单数)区块,执行交易确认。

根据上述技术方案,所述步骤二中,引用父单元时不包括父单元的全部内容。

根据上述技术方案,所述步骤三中,各个交易信息所在的节点单元之间是有一定的关联关系的,每个交易信息节点单元是建立并不局限于连续块之间的单引用关系,每个节点单元可能会有更多的父母单元和更多的子单元。

根据上述技术方案,所述步骤四中,每个被签名的区块都有先前区块被可信任节点签名的证明。

与现有技术相比,本发明所达到的有益效果是:该一种基于dpos共识算法的iota账本优化系统及方法,结合了区块链账本与有向无环图,系统中一部分的节点为区块链节点,这类节点通过委任权益证明dpos达成共识,主要用于交易的最终确认;另一部分的节点为dag节点,使用有向无环图数据结构,主要用于交易的接收、验证,以及同步区块链节点的账本数据;dag节点在进行交易验证时,先通过父母单元进行初步验证,迅速完成交易;交易提交到区块链上的完成账本验证;区块链节点保证去中心化的全球数据库中的数据是安全、可信、不可篡改的;。区块链新节点添加,需要网络中的区块链节点审核;收拢dag数据结构,使之不会一直发散下去;dag节点保证快速交易,通过父母单元验证的算法快速一笔交易;用传统区块链解决dag结构中在产生分片的无序单元之间的双重支付、数据篡改,因发现不及时可能导致的大量交易最终无效的问题。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明的iota账本优化方法流程图;

图2本发明的区块链数据结构示意图;

图3是本发明的见证人机制示意图;

图中:g、初始单元。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-3,本发明提供一种技术方案:一种基于dpos共识算法的iota账本优化系统,包括dag节点和区块链节点,dag节点使用有向无环图数据结构,主要用于交易的接收、验证,以及同步区块链节点的账本数据,区块链节点通过dpos达成共识,主要用于交易的最终确认,dag节点和区块链节点分工有序且数据保持同步,优化系统依托于区块链,且区块链结构包含一张被称为区块的列表,区块包括区块头和区块体,区块头包含时间戳、随机数、merkle根节点、版本号以及一个与前一区块的链接,区块体包括交易数据和见证人签名,区块链这样的设计使得数据不可篡改,一旦记录下来,在一个区块中的数据将不可逆。

一种基于dpos共识算法的iota账本优化系统的方法,包括步骤一,生成交易节点单元;步骤二,生成节点之间的依赖关系;步骤三,生成dag数据结构;步骤四,确定区块链投票区块和跟随节点;步骤五,达成dpos共识;

其中在上述步骤一中,每当交易信息产生时,需要向数据库中添加数据,通过调用数据库中的存储的节点信息,创建一个新的存储单元并将其广播给他的对等节点,新交易产生时所生成的存储单元主要包括以下几部分:

①存储的交易数据,即一个单元可以包括多个数据包,有许多不同类型的交易信息,且各有自己的结构;

②一个或多个用户的签名及用户的地址标识;

③由哈希值标识的一个或多个先前的关联节点单元;

其中在上述步骤二中,一旦一个交易单元被广播到网络中,并且其他用户开始在它上面构建它们的单元(将其称为父单元),编辑这个单元所需的二次修改数据就会增长;如果尝试修改过去的交易,需要与大量且越来越多的其他用户协调,其中大多数是匿名的陌生人;因此,过去记录的不变性是基于与如此大量的陌生人协调的复杂性,这些人难以达成一致,对合作没有兴趣,并且每一个人都可以否决修订;所以需要引用父单元(不包括父单元的全部内容),即新增交易单元的内容取决于父母单元哈希值的信息,且每个交易单元最终包括初始单元(图2中单元g),以此生成稳定的节点之间的依赖关系;

其中在上述步骤三中,对每个交易信息关联关系生成并更新dag结构,并通过dag节点接收交易请求,对交易的合法性进行验证;各个交易信息所在的节点单元之间是有一定的关联关系的,每个交易信息节点单元是建立并不局限于连续块之间的单引用关系,每个节点单元可能会有更多的父母单元和更多的子单元;如果沿着父子链索引,当同一单元被多个后来的单元引用时,将观察到许多分叉,并且当同一单元引用多个较早单元时,许多单元逐渐融合,生成最终的dag结构;

其中在上述步骤四中,区块链部分采用dpos共识算法见证人机制解决中心化问题,总共有n个见证人对区块进行签名,而这些见证人由使用区块链网络的主体投票产生的;由于区块链的结构特性,在不同的区域存在若干的投票节点,每个投票节点所覆盖的范围根据区块链的量级进行划分,该投票节点和普通节点的性质是一样的,只是作为一个信息汇集的介质,用于对该投票节点范围内所有关联节点的主体投票信息进行统计并筛选出得票最高的见证人,所有在该投票节点范围内的其他区块链网络的主体即为跟随节点;

其中在上述步骤五中,区块链部分采用见证人机制解决中心化问题,由区块链网络的主体投票产生的多个见证人对区块进行签名达成dpos共识;由于见证人机制使用了去中心化的投票方法,所达成的dpos共识更加民主化;每个被签名的区块都有先前区块被可信任节点签名的证明,dpos消除了交易需要等待一定数量区块被非信任节点验证的时间消耗,通过减少确认的要求,dpos算法大大提高了交易的速度,并且通过信任少量的诚信节点,可以去除区块签名过程中不必要的步骤,从而使加密数字货币的交易速度接近中心化清算系统。

基于上述,本发明的优点在于,结合了区块链账本与有向无环图两种技术,因此包含了两种不同的节点,它们分工有序且数据保持同步,缺一不可。dag节点使用有向无环图数据结构,主要用于交易的接收、验证,以及同步区块链节点的账本数据,区块链节点通过dpos达成共识,主要用于交易的最终确认;当交易信息产生时,需要对交易合法性进行验证,如果交易信息合法则通过dag节点接收所发起的交易请求并生成新的dga节点结构,存储在区块链的交易节点中。后续需要通过dpos共识机制对交易进行最终确认,并更新区块链中的交易数据信息和见证人签名信息,生成后续区块

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1