一种区块链一致性维护方法及装置制造方法及图纸

技术编号:18240405 阅读:44 留言:0更新日期:2018-06-17 05:06
本发明专利技术公开了一种区块链一致性维护方法及装置。本方法为:对于去中心化系统中的每一节点Pi;当节点Pi收到新的区块时,验证该区块是否满足工作量,如果满足,则对该区块中的每一个待完成的状态转换进行投票广播,然后验证其是否满足合法性验证,如果该区块中的每一个待完成的状态转换均满足合法性验证,并且该区块的区块长度大于本地区块链的长度,则将这个区块作为新的区块加入到当前区块链中。本发明专利技术在区块链之上引入了一个新的验证层,区块由底层区块链产生,而区块的验证则由验证层完成,区块链发生的状态变更,都需要经过这个验证层的同意,从而本发明专利技术使得基于区块链的去中心化应用具备状态验证。 1

A method and device for maintaining the consistency of block chain

The invention discloses a method and device for maintaining consistency of block chains. This method is: for each node Pi in the de centralization system; when node Pi receives a new block, verify that the block satisfies the workload, if satisfied, it will vote on each of the state transitions in the block, and verify that it satisfies the validation of the validity of each of the blocks, if each of the blocks is in the block. The state transformation to be completed satisfies the validation of the legitimacy, and the block length of the block is greater than the length of the local block chain, and the block is added to the current block chain as a new block. This invention introduces a new validation layer over the block chain, the block is generated by the underlying block chain, and the block verification is completed by the validation layer. The change of the block chain needs the approval of the verification layer, thus the invention makes the application of the block based centralization based on the block chain state validation. One

【技术实现步骤摘要】
一种区块链一致性维护方法及装置
本专利技术涉及一种区块链一致性维护方法及装置,属于网络通信

技术介绍
区块链在不可靠的分布式环境中维护了一个公共的总账,这个总账由一系列的匿名参与者来维护和扩展。近年来,区块链网络吸引了越来越多的工程人员,学者和投资者的注意。伴随着大量的资本投入,区块链得到了快速部署,已经成为了一项公共基础设施。由于区块链没有可信任的中心节点,这使得设计和实现去中心化的域名系统,公钥证书体系和去中心化的文件存储成为现实。然而目前基于区块链的应用,都需要在不安全的分布式环境中保持全局一致性,每一个具体的操作,都涉及了状态的转换,但是目前区块链技术并没有提供状态转换的合法性验证,因此无法实现区块链的一致性维护,此时将会导致多方面的问题:1)以去中心化的域名系统为例,当域名注册存在冲突,即权威机构和个人同时申请一个权威域名,权威域名的归属问题是由获得区块写入机会的单个节点决定,单个节点一旦出错,将导致此权威域名被个人注册而无法更改。2)去中心化的文件存储系统中,有版权问题或者不合法规的资源一旦上传成功,除了上传者本身,其他人很难删除。对于广泛运行的P2P网络而言,通常是在其部署爬虫网络来检测非法资源的路径,并将其加入黑名单,从而达到保护网络的目的。爬虫软件只能检测哪些资源是非法,而无法阻止资源的上传,并且引入第三方的检测方法,会带来更多的问题。因此如何实现区块链的一致性维护是目前亟待解决的技术问题。
技术实现思路
现有技术中存在的技术问题的根源在于,区块链在写入时,只需要提供正确工作量的证明,而不对其状态转换进行合法性验证,因此本专利技术的提供一种具有状态合法性验证的区块链一致性维护方法及装置。区块链协议能够在不依赖中心信任节点的情况下,实现全局一致性。区块链中的矿工执行的是一种基于数学难题的哈希算法,以验证产生区块的合法性。本专利技术在区块链之上,引入了一个新的验证层,区块由底层区块链产生,而区块的验证则由验证层完成。区块链发生的状态变更,都需要经过这个验证层的同意。具有状态合法性验证的区块链协议为一系列基于区块链的上层应用,如基于区块链的比特币可疑交易监管,去中心化域名系统的域名抢注,去中心化文件系统的资源上传管理,提供了新的管理思路,确保了每一次状态转换都是经过验证的。本专利技术将整个去中心化系统看做n个独立配置的节点,即{p1,p2,...,pn},构成的去中心化的系统。一个执行过程可以看做是一系列的状态和转换:π0,s0,π1,s1,...,πi,si,...。从状态π0到状态π1,需要经过中间状态s0,每一次状态转换与一个单调递增的时间戳对应,ri<ri+1,其中ri是一个时间增长间隔dr的整数倍,一个时间戳称为一轮(round)。每一个节点在每一轮中只能执行一次计算指令(compute指令)。假设每一个节点对于一个随机函数oracle的计算能力是给定的,即每一个节点在每一轮只调用一次oracle函数。匿名的节点之间通过broadcast(m)指令来传递消息。每条消息的最大延迟为Δ,如果消息在时间r广播,那么每一个节点在不超过r+Δ的时间里执行receive(m)指令。任何一个状态转换需要满足如下条件:1)状态转换由Quorum中的所有节点同意一个状态转换需要经过两阶段,从状态π0到状态π1,需要经过中间状态s0,当一个节点发布了一个状态转换的消息后,收到这个消息的节点开始对这个状态转换广播自己的投票结果,同时节点开始收集其他节点的投票结果消息,如果存在一个法定人数(Quorum)集合,集合里面超过设定比例的节点同意,则网络能够被转换到状态π1。集合里的节点可以指全部节点,也可以通过选举出来的代表性节点,每一个投票节点收到的消息相同。2)不确定性区块链协议使用了公开的、可快速验证的谜题。每一个过程执行了一个coinflip指令产生一个随机数H:[0,1)→[0,1)是随机单向哈希函数。过程pi对某一个中间状态的投票结果也是随机的,赞成的概率为p',那么一个中间状态d的表决结果为Binom(k,n,p'),转换能够完成概率为3)拜占庭错误有f个出错的过程,这些拜占庭错误节点能够共谋对其他的正常节点发送错误消息。拜占庭出错过程反对正常过程,正常过程可能会赞成拜占庭过程。正常过程提出的方案通过的概率为拜占庭错误过程提出的方案能通过的概率为本专利技术的技术方案为:一种区块链一致性维护方法,其特征在于,对于去中心化系统中的每一节点Pi,当节点Pi收到新的区块时,验证该区块是否满足工作量,如果满足,则对该区块中的每一个待完成的状态转换进行投票广播,利用接收到的投票广播的投票结果验证该区块是否满足合法性验证,如果该区块中的每一个待完成的状态转换均满足合法性验证,并且该区块的区块长度大于本地区块链的长度,则将这个区块作为新的区块加入到当前区块链中;其中,所述验证区块是否满足合法性验证的方法为:接收其他节点对所述投票广播反馈的投票结果,对收到的投票结果进行统计,如果统计结果满足设定条件则验证通过。进一步的,所述验证区块是否满足工作量的方法为:计算区块链工作量证明难题的解nonce,根据该解nonce验证该区块是否满足工作量证明。进一步的,调用coinflip过程得到区块链工作量证明难题的解nonce。进一步的,所述去中心化系统中的出错节点比例f小于或等于0.38n;其中,n为待完成的状态转换总数。进一步的,所述去中心化系统中的节点对于一个状态转换通过的概率至少为0.75。进一步的,所述去中心化系统中设置一个法定人数集合Quorum,该法定人数集合Quorum内投票结果中为同意的节点达到或超过该法定人数集合Quorum内节点总数一半时,视为统计结果满足设定条件,即验证通过。进一步的,所述去中心化系统为去中心化的域名系统、公钥证书体系或去中心化的文件存储系统。一种区块链一致性维护装置,其特征在于,包括接收区块消息处理模块,用于当节点收到新的区块时,调用执行计算过程处理模块验证该区块是否满足工作量,如果满足,则对该区块中的每一个待完成的状态转换进行投票广播,调用接收投票消息处理模块验证其是否满足合法性验证,如果该区块中的每一个待完成的状态转换均满足合法性验证,并且该区块的区块长度大于本地区块链的长度,则将这个区块作为新的区块加入到当前区块链中;接收投票消息处理模块,用于接收其他节点对所述投票广播反馈的投票结果,并对收到的投票结果进行统计,如果统计结果满足设定条件则验证通过。进一步的,所述执行计算过程处理模块,用于计算区块链工作量证明难题的解nonce,根据该解nonce验证该区块是否满足工作量证明。进一步的,所述节点对于一个状态转换通过的概率至少为0.75。本专利技术的流程如图1所示,其内容如下:●每一个节点Pi同时执行接收区块消息onreceive,接收投票消息onreceive_op和执行计算oncompute过程。●接收区块消息onreceive过程当收到新的区块时,调用oncompute过程验证该区块是否满足工作量,对于该区块中的每一个待完成的状态转换,执行onreceive_op过程,验证其是否满足合法性验证。如果上述条件均满足,并且该区块的区块长度大于本地区块链的长度,则将这个区块作为新的区块加本文档来自技高网...
一种区块链一致性维护方法及装置

【技术保护点】
1.一种区块链一致性维护方法,其特征在于,对于去中心化系统中的每一节点Pi,当节

【技术特征摘要】
1.一种区块链一致性维护方法,其特征在于,对于去中心化系统中的每一节点Pi,当节点Pi收到新的区块时,验证该区块是否满足工作量,如果满足,则对该区块中的每一个待完成的状态转换进行投票广播,利用接收到的投票广播的投票结果验证该区块是否满足合法性验证,如果该区块中的每一个待完成的状态转换均满足合法性验证,并且该区块的区块长度大于本地区块链的长度,则将该区块作为新的区块加入到当前区块链中;其中,所述验证区块是否满足合法性验证的方法为:接收其他节点对所述投票广播反馈的投票结果,对收到的投票结果进行统计,如果统计结果满足设定条件则验证通过。2.如权利要求1所述的方法,其特征在于,所述验证区块是否满足工作量的方法为:计算区块链工作量证明难题的解nonce,根据该解nonce验证该区块是否满足工作量证明。3.如权利要求2所述的方法,其特征在于,调用coinflip过程得到区块链工作量证明难题的解nonce。4.如权利要求1或2或3所述的方法,其特征在于,所述去中心化系统中的出错节点比例f小于或等于0.38n;其中,n为待完成的状态转换总数。5.如权利要求1或2或3所述的方法,其特征在于,所述去中心化系统中的节点对于一个状态转换通过的概率至少为0.75。6.如权利要求1所述的方法,其特征...

【专利技术属性】
技术研发人员:吴腾周琳琳黄锴孔宁李晓东
申请(专利权)人:中国互联网络信息中心
类型:发明
国别省市:北京,11

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

1