区块链构建方法、系统、存储介质、计算机设备及应用技术方案

技术编号:26797404 阅读:48 留言:0更新日期:2020-12-22 17:14
本发明专利技术属于区块链应用技术领域,公开了一种区块链构建方法、系统、存储介质、计算机设备及应用,区块链初始配置:在区块链建立之初,网络被划分为Q个域,每个域指定一个leader节点参与区块链共识,域内其余节点被动同步Leader节点共识后的区块。基于可验证随机函数的Raft共识协议:在每轮生成新区块的同时,由该轮的记账节点随机选取下一轮的记账节点。本发明专利技术在共识过程中,下一轮的记账不是通过竞争产生的(如经典的Pow共识机制)而是由上一轮记账节点随机产生的且公开可验证的,从而提高了共识的效率和安全性。每一轮记账节点都是动态变化且隐藏身份信息的,避免了记账节点被恶意攻击,保证了区块链系统的安全性和健壮性。

【技术实现步骤摘要】
区块链构建方法、系统、存储介质、计算机设备及应用
本专利技术属于区块链应用
,尤其涉及一种区块链构建方法、系统、存储介质、计算机设备及应用。
技术介绍
目前,区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种全新的去中心化基础架构与分布式计算范式,目前已经引起政府部门、金融机构、科技企业和资本市场的高度重视与广泛关注。虽然目前有各种各样的区块链,但是仍不能满足企业业务系统的需求。具体地表现在共识协议作为区块链数据库的核心,现有共识协议主要分为两类:一类是公有环境下的共识协议,如以比特币区块链为代表的POW和以以太坊为代表的POS,它们采用竞争挖抗的机制,实现了不可信公网环境下记账节点的选取。但其共识效率差,难以满足高实时性和高并发量数据处理业务。另一类是私有环境下的共识协议,如PBFT和Raft等,其核心思想是采用轮值或投票选举的机制来实现完全可信环境下记账节点的交替。相比于公网环境下的共识,它们虽然显著地提高了共识效率,但由于每一轮的记账节点会提前公开,其在非完全可信的环境下容易被攻击,导致出块失败。综上所述,现有区块链共识协议难以兼顾性能和安全,无法满足现实场景高效安全的需求。或在完全可信的节点间提供高效的共识。而在节点相对可信的企业内部网络中,缺乏一种兼顾性能与安全性的共识协议。已有区块链存在上述共识协议计算耗能大,共识效率低,鲁棒性和安全性差。通过上述分析,现有技术存在的问题及缺陷为:目前的区块链存在共识协议计算耗能大,共识效率低,鲁棒性和安全性差。解决以上问题及缺陷的难度为:通过上述分析可知,现有共识协议主要缺陷在于难于兼顾安全和效率。值得注意的是对比于公有链,私有环境下的共识协议在性能方面相提升了1个数量级,更加接近本专利技术的目标。但现有的私有链共识的本身安全性弱,对外部环境依赖度太高,也即需要部署在完全安全的环境中,这在现实中是难以完全满足的。为此,本专利技术需要提高现有私有环境下共识协议的安全性,其关键难度在于如何在确定新一轮记账主节点的同时保护其身份,避免被恶意攻击提前锁定进行破坏。解决以上问题及缺陷的意义为:利用可验证随机函数来增强私有环境Raft共识协议的安全性,在保留其高效性特点的同时,也兼顾了安全性考虑。实现了不完全可信环境下分布式数据库系统记账节点的高效安全选取,能很好地为现实区块链业务场景提供支撑。
技术实现思路
针对现有技术存在的问题,本专利技术提供了一种区块链构建方法、系统、存储介质、计算机设备及应用。本专利技术是这样实现的,一种区块链构建方法,所述区块链构建方法包括:区块链的初始配置,在区块链建立之初,CA首先将网络划分为Q个域,并为每个域指定一个leader节点参与区块链的构建,当有节点加入区块链网络时,在CA处注册身份信息;当有节点退出时,CA同样需要注销其身份信息;基于可验证随机函数的Raft共识协议,在每轮生成新区块的同时,由该轮的记账节点随机选取下一轮的记账节点。进一步,所述区块链构建方法区块链的初始配置具体包括以下步骤:步骤一,在区块链建立之初,CA首先将网络划分为Q个域,并为每个域指定一个参与共识的leader节点,参与区块链系统的共识;步骤二,生成创世区块,即Block0;步骤三,当有节点加入区块链网络时,首先在CA处注册身份信息并获取颁发的公钥证书,作为其参与区块链网络的准入凭证;同时还需为加入节点指定所属的域;步骤四,当有节点退出时,CA同样需要吊销其公钥证书。进一步,所述步骤一中CA首先将网络划分为Q个域,并为每个域指定一个leader节点其编号从1到Q,按如下步骤进行:(1)CA将网络中各个节点分别归属到不同的域;(2)各个域选择一个主节点用于区块链网络中与其他主节点进行通信。进一步,所述步骤二中生成创世区块具体包括:(1)前一区块链的哈希R_Hash,在Block0中该字段初始为空;(2)当前区块的编号Num,在Block0中该字段初始为编号0;(3)Block0中Tamp字段初始化,把当前时间戳s填入Tamp字段;(4)本轮记账节点的公钥证书Cu_Cert,在Block0中该字段为CA的公钥证书;(5)本轮记账节点的信息Pr_P,在Block0中该字段初始化为空;(6)将CA的公钥证书Cert0以及参与区块链共识的初始Q个节点证书Cert_1…Cert_Q:存储到区块体;(7)计算哈希根P_Hash,将Block0区块体的哈希根P_Hash填充为当前计算的哈希值;(8)下一轮记账节点的秘密信息Nx_P*,在Block0中该字段填由CA生成的默认值即下一个打包节点的信息;(9)本轮记账节点对整个区块信息的签名Sig,在Block0中该字段为CA的对整个区块信息的签名;(10)生成初始区块Block0。进一步,所述基于可验证随机函数的Raft高效安全共识协议包括以下步骤:步骤一,节点解密区块的Nx_P*字段,获取证明本轮打包节点的信息,判断自己是否是打包节点;步骤二,随机选取下一轮的记账节点j,节点i生成的区块是Blockn;步骤三,开始生成区块Blockn,节点i将生成的新区块Blockn广播至其余的节点,然后他等待其他节点的反馈,只有收到超过整个区块链网络中共识节点数量的三分之二才把区块写入本地区块链;步骤四,其他节点对区块Blockn进行验证,验证通过之后每个主节点将验证通过的区块Blockn再分发给其管理域中的每个非参与共识的节点。进一步,所述步骤二中随机选取下一轮的记账节点j包括以下步骤:(1)执行秘钥生成函数Key_Gen:(Sk,Pk)=Key_Gen(r).对任意的随机输入、产生VRF私钥Sk、和私钥Sk对应的公钥Pk;(2)VRF计算函数VRF_Hash:Y=VRF_Hash(Sk,M),对输入消息M,VRF证明者使用其私钥Sk计算VRF哈希作为输出的随机数Y;(3)VRF证明函数VRF_Proof:P=VRF_Proof(Sk,M).对输入消息M,以及私钥Sk,证明者计算VRF证明P;(4)对随机数Y进行哈希映射计算出下一个打包节点j;所述步骤三中生成区块Blockn,节点i将生成的新区块Blockn广播至其余的节点,然后他等待其他节点的反馈,只有收到超过整个区块链网络中共识节点数量的三分之二才把区块写入本地区块链,包括以下步骤:(1)获取Blockn-1中Nx_P*字段中的Yn-1和Pn-1,Mn-1,Pkn-1填入Blockn的Pr_P字段;(2)将自己的公钥证书Cert_i填入Blockn区块头中的Cu_Cert字段中;(3)将计算的Y,P,M,Pk用下一个打包节点的公钥加密之后填入Blockn区块头中的Nx_P*字段中;(4)将交易信息写入区块体,计算当前哈希值P_Hash,并且填入区块Blockn中的P_Hash字段;...

【技术保护点】
1.一种区块链构建方法,其特征在于,所述区块链构建方法包括:/n区块链的初始配置,在区块链建立之初,CA首先将网络划分为Q个域,并为每个域指定一个leader节点参与区块链的构建,当有节点加入区块链网络时,在CA处注册身份信息;当有节点退出时,CA同样需要注销其身份信息;/n基于可验证随机函数的Raft共识协议,在每轮生成新区块的同时,由该轮的记账节点随机选取下一轮的记账节点。/n

【技术特征摘要】
1.一种区块链构建方法,其特征在于,所述区块链构建方法包括:
区块链的初始配置,在区块链建立之初,CA首先将网络划分为Q个域,并为每个域指定一个leader节点参与区块链的构建,当有节点加入区块链网络时,在CA处注册身份信息;当有节点退出时,CA同样需要注销其身份信息;
基于可验证随机函数的Raft共识协议,在每轮生成新区块的同时,由该轮的记账节点随机选取下一轮的记账节点。


2.如权利要求1所述的区块链构建方法,其特征在于,所述区块链构建方法区块链的初始配置具体包括以下步骤:
步骤一,在区块链建立之初,CA首先将网络划分为Q个域,并为每个域指定一个参与共识的leader节点,参与区块链系统的共识;
步骤二,生成创世区块,即Block0;
步骤三,当有节点加入区块链网络时,首先在CA处注册身份信息并获取颁发的公钥证书,作为其参与区块链网络的准入凭证;同时还需为加入节点指定所属的域;
步骤四,当有节点退出时,CA同样需要吊销其公钥证书。


3.如权利要求2所述的区块链构建方法,其特征在于,所述步骤一中CA首先将网络划分为Q个域,并为每个域指定一个leader节点其编号从1到Q,按如下步骤进行:
(1)CA将网络中各个节点分别归属到不同的域;
(2)各个域选择一个主节点用于区块链网络中与其他主节点进行通信。


4.如权利要求2所述的区块链构建方法,其特征在于,所述步骤二中生成创世区块具体包括:
(1)前一区块链的哈希R_Hash,在Block0中该字段初始为空;
(2)当前区块的编号Num,在Block0中该字段初始为编号0;
(3)Block0中Tamp字段初始化,把当前时间戳s填入Tamp字段;
(4)本轮记账节点的公钥证书Cu_Cert,在Block0中该字段为CA的公钥证书;
(5)本轮记账节点的信息Pr_P,在Block0中该字段初始化为空;
(6)将CA的公钥证书Cert0以及参与区块链共识的初始Q个节点证书Cert_1…Cert_Q:存储到区块体;
(7)计算哈希根P_Hash,将Block0区块体的哈希根P_Hash填充为当前计算的哈希值;
(8)下一轮记账节点的秘密信息Nx_P*,在Block0中该字段填由CA生成的默认值即下一个打包节点的信息;
(9)本轮记账节点对整个区块信息的签名Sig,在Block0中该字段为CA的对整个区块信息的签名;
(10)生成初始区块Block0。


5.如权利要求1所述的区块链构建方法,其特征在于,所述基于可验证随机函数的Raft高效安全共识协议包括以下步骤:
步骤一,节点解密区块的Nx_P*字段,获取证明本轮打包节点的信息,判断自己是否是打包节点;
步骤二,随机选取下一轮的记账节点j,节点i生成的区块是Blockn;
步骤三,开始生成区块Blockn,节点i将生成的新区块Blockn广播至其余的节点,然后他等待其他节点的反馈,只有收到超过整个区块链网络中共识节点数量的三分之二才把区块写入本地区块链;
步骤四,其他节点对区块Blockn进行验证,验证通过之后每个主节点将验证通过的区块Blockn再分发给其管理域中的每个非参与共识的节点。


6.如权利要求5所述的区块链构建方法,其特征在于,所述步骤二中随机选取下一轮的记账节点j包括以下步骤:
(1)执行秘钥生成函数Key_Gen:(Sk,Pk)=Key_Gen(r).对任意的随机输入、产生VRF私钥Sk、和私钥Sk对应的公钥Pk;
(2)VRF计算函数VRF_Hash:Y=VRF_Hash(Sk,M),对输入消息M,VRF证明者使用其私钥Sk计算VRF哈希作为输出的随机数Y;
(3)VRF证明函数VRF_Proof:P=VRF_Proof(Sk,M).对输入消息M,以及私钥Sk,证明者计算VRF证明P;
(4)对随机数Y进行哈希映射计算出下一个打包节点j;
所述步骤三中生成区块Blockn,节点i将生成的新区块Blockn广...

【专利技术属性】
技术研发人员:李兴华李小强王运维任彦冰胡中元王航张俊伟郭晶晶
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

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

1