一种区块链生成方法、节点及系统技术方案

技术编号:17350136 阅读:48 留言:0更新日期:2018-02-25 18:47
本发明专利技术公开了一种区块链生成方法、节点及系统,用于解决区块链系统中记账权被垄断的问题。其中,区块链生成方法包括:获取节点的本地区块链中n个区块的生成节点信息;根据n个区块中节点作为生成节点的统计结果确定节点的难度目标;构建新区块,新区块的区块头包括新区块的父区块的区块头哈希值、随机数和难度目标;调整随机数直至满足难度目标,或,调整随机数直至节点接收到来自其它节点的新区块广播,将区块链系统确定的新区块加入本地区块链。每一个节点的难度目标都可以不同,可以动态调整节点的难度目标,对节点获取记账权的难度的动态调整,因此能够解决区块链系统中记账权被垄断的问题。

A block chain generation method, node and system

The invention discloses a method of generating block chain, node and system to solve the problem of monopolization of bookkeeping right in block chain system. Among them, including the blockchain generation method: information generating node n blocks access nodes in local block chain; according to node n blocks as nodes to determine the difficulty of the target node statistics generated results; construction of new blocks, the new block area. Including the new block parent block hash value random number, area. And the difficulty of the target; adjust the random number until you meet the difficulty of the target, or adjust the random number until the node receives a new block broadcast from other nodes, the block chain system a new block determined to join the local block chain. Each node's difficulty target can be different. It can dynamically adjust the node's difficulty target, adjust the difficulty of node's access to account right, so that it can solve the problem that the account right is monopolized in the block chain system.

【技术实现步骤摘要】
一种区块链生成方法、节点及系统
本专利技术涉及数据处理
,尤其涉及一种区块链生成方法、节点及系统。
技术介绍
区块链系统自诞生以来以其特有的无中心、难改写等特点被广泛应用于多种数据处理场合,其通过共识机制来解决“拜占庭故障”问题,即恶意节点的存在问题,从而实现容错功能。具体来说,通过共识机制选择出系统中绝大多数节点认为安全的一个节点作为记账节点以实现大概率上排除系统中恶意节点对其它节点的影响。基于“资源”的共识算法是区块链共识算法中一种较为常见的类型特征,如工作证明(ProofofWork,PoW)共识算法基于各节点的算力资源,又例如股权证明(ProofofStake,PoS)共识算法基于各节点的股权资源,这种基于“资源”的共识算法尤其适用于采用广域网、节点数量众多的区块链系统,如公有区块链系统,又例如联盟区块链系统。然而,采用基于“资源”的共识算法会有出现区块链系统中的记账权被某个节点垄断的情况,即区块链系统中的某个节点拥有远远高于其它节点的“资源”,使得这个节点被反复确认为记账节点,当这个节点为恶意节点时,共识算法便失去了容错的效果。
技术实现思路
本专利技术提供一种区块链生成方法、装置及系统,用以解决区块链系统中记账权被垄断的问题。本专利技术实施例提供一种区块链生成方法,适用于包括M个节点的区块链系统,M大于等于3,针对所述M个节点中的任一节点,包括:获取所述节点的本地区块链中n个区块的生成节点信息;n大于等于1;根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点的难度目标;所述难度目标用于指示所述节点获取所述区块链系统的记账权的难度;构建新区块,所述新区块的区块头包括所述新区块的父区块的区块头哈希值、随机数和所述难度目标;调整所述随机数直至满足所述难度目标,或,调整所述随机数直至所述节点接收到来自其它节点的新区块广播,将所述区块链系统确定的新区块加入所述本地区块链。可选的,所述新区块中还包括签名信息集;所述签名信息集包括所述节点的公钥信息;获取所述节点的本地区块链中n个区块的生成节点信息,包括:获取所述节点的本地区块链中最新的n个区块;根据所述n个区块中各区块的签名信息集所包括的公钥信息,获取所述n个区块中每一个区块的生成节点信息。可选的,所述签名信息集中还包括区块头签名值;所述区块头签名值是利用所述节点的私钥信息对所述区块头进行签名后获得的;调整所述随机数直至满足所述难度目标,包括:调整所述随机数;根据调整后的所述随机数更新所述区块头签名值;确认所述区块头签名值是否满足所述难度目标;若不满足,则返回调整所述随机数的步骤直至所述区块头签名值满足所述难度目标。可选的,将所述区块链系统确定的新区块加入所述本地区块链,包括:调整所述随机数直至所述节点接收到来自其它节点的新区块广播后,确定所述新区块广播中的新区块的生成节点;根据所述新区块广播中的新区块的生成节点在所述n个区块的生成节点信息中的统计情况,确定所述新区块广播中的新区块的生成节点的计算难度目标;在所述新区块广播中的新区块的区块头中的难度目标满足所述计算难度目标时,保存所述新接收区块。可选的,根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点的难度目标,包括:根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点作为生成节点的频率,和/或,所述节点连续作为生成节点的次数;根据所述节点作为生成节点的频率,和/或,所述节点连续作为生成节点的次数确定所述节点的难度目标;所述节点作为生成节点的频率和所述节点连续作为生成节点的次数与所述难度目标所对应的难度正相关。本专利技术实施例提供一种区块链节点,适用于包括M个节点的区块链系统,M大于等于3,包括:收发单元和处理单元;所述处理单元,用于获取本地区块链中n个区块的生成节点信息;n大于等于1;所述处理单元,还用于根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点的难度目标;所述难度目标用于指示所述节点获取所述区块链系统的记账权的难度;所述处理单元,还用于构建新区块,所述新区块的区块头包括所述新区块的父区块的区块头哈希值、随机数和所述难度目标;所述处理单元,还用于调整所述随机数直至满足所述难度目标,或,调整所述随机数直至所述收发单元接收到来自其它节点的新区块广播,将所述区块链系统确定的新区块加入所述本地区块链。可选的,所述新区块中还包括签名信息集;所述签名信息集包括所述节点的公钥信息;所述处理单元,具体用于:获取本地区块链中最新的n个区块;根据所述n个区块中各区块的签名信息集所包括的公钥信息,获取所述n个区块中每一个区块的生成节点信息。可选的,所述签名信息集中还包括区块头签名值;所述区块头签名值是利用所述节点的私钥信息对所述区块头进行签名后获得的;所述处理单元,具体用于:调整所述随机数;根据调整后的所述随机数更新所述区块头签名值;确认所述区块头签名值是否满足所述难度目标;若不满足,则返回调整所述随机数的步骤直至所述区块头签名值满足所述难度目标。可选的,所述处理单元,具体用于:调整所述随机数直至所述收发单元接收到来自其它节点的新区块广播后,确定所述新区块广播中的新区块的生成节点;根据所述新区块广播中的新区块的生成节点在所述n个区块的生成节点信息中的统计情况,确定所述新区块广播中的新区块的生成节点的计算难度目标;在所述新区块广播中的新区块的区块头中的难度目标满足所述计算难度目标时,保存所述新接收区块。可选的,所述处理单元具体用于:根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点作为生成节点的频率,和/或,所述节点连续作为生成节点的次数;根据所述节点作为生成节点的频率,和/或,所述节点连续作为生成节点的次数确定所述节点的难度目标;所述节点作为生成节点的频率和所述节点连续作为生成节点的次数与所述难度目标所对应的难度正相关。本专利技术实施例提供一种区块链系统,包括上述任一项所述的区块链节点。本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项所述的方法。本专利技术实施例提供一种计算设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的方法。综上所述,本专利技术实施例提供一种区块链生成方法、节点及系统,其中,区块链生成方法适用于包括M个节点的区块链系统,M大于等于3,针对所述M个节点中的任一节点,该方法包括:获取节点的本地区块链中n个区块的生成节点信息;根据n个区块中节点作为生成节点的统计结果确定节点的难度目标;难度目标用于指示节点获取区块链系统的记账权的难度;构建新区块,新区块的区块头包括新区块的父区块的区块头哈希值、随机数和难度目标;调整随机数直至满足难度目标,或,调整随机数直至节点接收到来自其它节点的新区块广播,将区块链系统确定的新区块加入本地区块链。在本专利技术实施例所提供的区块链生成方法中,每一个节点的难度目标与本节点作为生成节点的统计结果相关,也就是说每一个节点的难度目标都可以不同,本专利技术实施例所提供的区块链生成方法可以根据节点作为生成节点的统计结果动态调整节点的难度目标,而难度目标又可以指示节点获取区块链系统的记账权的难度,从而实本文档来自技高网...
一种区块链生成方法、节点及系统

【技术保护点】
一种区块链生成方法,适用于包括M个节点的区块链系统,M大于等于3,其特征在于,针对所述M个节点中的任一节点,包括:获取所述节点的本地区块链中n个区块的生成节点信息;n大于等于1;根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点的难度目标;所述难度目标用于指示所述节点获取所述区块链系统的记账权的难度;构建新区块,所述新区块的区块头包括所述新区块的父区块的区块头哈希值、随机数和所述难度目标;调整所述随机数直至满足所述难度目标,或,调整所述随机数直至所述节点接收到来自其它节点的新区块广播,将所述区块链系统确定的新区块加入所述本地区块链。

【技术特征摘要】
1.一种区块链生成方法,适用于包括M个节点的区块链系统,M大于等于3,其特征在于,针对所述M个节点中的任一节点,包括:获取所述节点的本地区块链中n个区块的生成节点信息;n大于等于1;根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点的难度目标;所述难度目标用于指示所述节点获取所述区块链系统的记账权的难度;构建新区块,所述新区块的区块头包括所述新区块的父区块的区块头哈希值、随机数和所述难度目标;调整所述随机数直至满足所述难度目标,或,调整所述随机数直至所述节点接收到来自其它节点的新区块广播,将所述区块链系统确定的新区块加入所述本地区块链。2.如权利要求1所述的方法,其特征在于,所述新区块中还包括签名信息集;所述签名信息集包括所述节点的公钥信息;获取所述节点的本地区块链中n个区块的生成节点信息,包括:获取所述节点的本地区块链中最新的n个区块;根据所述n个区块中各区块的签名信息集所包括的公钥信息,获取所述n个区块中每一个区块的生成节点信息。3.如权利要求2所述的方法,其特征在于,所述签名信息集中还包括区块头签名值;所述区块头签名值是利用所述节点的私钥信息对所述区块头进行签名后获得的;调整所述随机数直至满足所述难度目标,包括:调整所述随机数;根据调整后的所述随机数更新所述区块头签名值;确认所述区块头签名值是否满足所述难度目标;若不满足,则返回调整所述随机数的步骤直至所述区块头签名值满足所述难度目标。4.如权利要求1所述的方法,其特征在于,将所述区块链系统确定的新区块加入所述本地区块链,包括:调整所述随机数直至所述节点接收到来自其它节点的新区块广播后,确定所述新区块广播中的新区块的生成节点;根据所述新区块广播中的新区块的生成节点在所述n个区块的生成节点信息中的统计情况,确定所述新区块广播中的新区块的生成节点的计算难度目标;在所述新区块广播中的新区块的区块头中的难度目标满足所述计算难度目标时,保存所述新接收区块。5.如权利要求1至4任一项所述的方法,其特征在于,根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点的难度目标,包括:根据所述n个区块中所述节点作为生成节点的统计结果确定所述节点作为生成节点的频率,和/或,所述节点连续作为生成节点的次数;根据所述节点作为生成节点的频率,和/或,所述节点作为生成节点的次数确定所述节点的难度目标;所述节点作为生成节点的频率和所述节点连续作为生成节点的次数与所述难度目标所对应的难度正相关。6.一种区块链节点,适用于包括M个节点的区块链系统,M大于等于3,其特征在于,包括:收发单元和处理单元;所述处理单元,用于获取本地区块链中n个区块的生成节点信...

【专利技术属性】
技术研发人员:刘胜殷舒徐加明张骁廖校均赵树伟
申请(专利权)人:联动优势科技有限公司
类型:发明
国别省市:北京,11

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

1