【技术实现步骤摘要】
一种区块链跨越式和跳跃式快速同步方法及系统
本专利技术涉及信息安全
,特别是涉及一种区块链跨越式和跳跃式快速同步方法及系统。
技术介绍
区块链系统支持去中心化货币支付、智能合约、电子存证等物联网应用,使得系统数据越来越大。截止至2020年,比特币系统数据已超200G,以太坊系统数据已超1T。因此,如果新节点加入比特币/以太坊系统则需要读取并验证200G/1T的交易单数据。该过程使得新节点的加入非常缓慢。由于比特币和以太坊使用工作量证明(ProofofWork,PoW)共识机制,验证区块头的合法性不需要依赖于区块头以外的数据,所以验证相对快捷。因此,新加入比特币和以太坊系统时,新节点可以从创世块开始同步区块头所形成的头链,然后本地构造权威哈希树链。当新节点同步到一定高度后,与检查点进行对比,则可以确定是否为权威链。但是,其缺点在于,由于POW共识机制具有易分叉特性,节点在构造权威哈希树链之前,需要区块已经达到足够的确认数(目前以太坊使用2048为确认数)。随后最新的2048个区块仍然需要逐步验证并同步数据。该同步过程仍然比较缓慢。此外,基于权益证明(ProofofStake,PoS)及其派生的拜占庭容错共识机制系统的出块率更高,系统数据量急剧增大,使得新节点加入系统难度急剧上升。当新节点需要同步到最新区块时,则需要验证该区块头是否合法。因此,新节点需要验证投票者的投票是否合法,而验证投票需要用到前一个区块提供的种子以及之前某个区块上的抵押stake。因此,新节点需要进一步验证前序区块的合法性。但是 ...
【技术保护点】
1.一种区块链跨越式和跳跃式快速同步方法,其特征在于,所述同步方法包括:/n在区块链节点生成各自的公钥和私钥;/n在区块生成过程中,基于第r-b个区块中的抵押和第r-c个区块中的种子,对第r个区块进行共识投票;其中r为区块号,c为跳跃步长c=8,b=k*c,k≥1;/n如果区块序号为σ的倍数,则基于第(n-2)*σ个区块上的抵押和第(n-1)*σ个区块上的种子,对第n*σ个区块进行额外的认证投票;其中n≥2或n=1,σ为跨越步长,为c的倍数,当n=1,使用第0个区块的抵押和种子,对第σ个区块进行额外的认证投票;/n新加入的节点进行同步数据时,跨越式验证第n*σ个区块认证投票的正确性并基于该区块中的哈希值快速同步第1至第n*σ个区块数据,当n=1,使用第0个区块的抵押和种子,对第σ个区块进行投票验证;/n对于序号大于n*σ的最新区块r,其中r≥n*σ,跳跃式验证第r个区块共识投票的正确性并基于该区块中的哈希值快速同步第n*σ至第r个区块数据。/n
【技术特征摘要】
1.一种区块链跨越式和跳跃式快速同步方法,其特征在于,所述同步方法包括:
在区块链节点生成各自的公钥和私钥;
在区块生成过程中,基于第r-b个区块中的抵押和第r-c个区块中的种子,对第r个区块进行共识投票;其中r为区块号,c为跳跃步长c=8,b=k*c,k≥1;
如果区块序号为σ的倍数,则基于第(n-2)*σ个区块上的抵押和第(n-1)*σ个区块上的种子,对第n*σ个区块进行额外的认证投票;其中n≥2或n=1,σ为跨越步长,为c的倍数,当n=1,使用第0个区块的抵押和种子,对第σ个区块进行额外的认证投票;
新加入的节点进行同步数据时,跨越式验证第n*σ个区块认证投票的正确性并基于该区块中的哈希值快速同步第1至第n*σ个区块数据,当n=1,使用第0个区块的抵押和种子,对第σ个区块进行投票验证;
对于序号大于n*σ的最新区块r,其中r≥n*σ,跳跃式验证第r个区块共识投票的正确性并基于该区块中的哈希值快速同步第n*σ至第r个区块数据。
2.根据权利要求1所述的区块链跨越式和跳跃式快速同步方法,其特征在于,所述在区块生成过程中,基于第r-b个区块中的抵押和第r-c个区块中的种子,对第r个区块进行共识投票具体包括:
任意节点i以其私钥SKi、第r-b个区块中的抵押第r-c个区块中的种子seedr-c为输入,运行签名算法Sig,输出第r个区块的第一轮共识投票
任意节点j以公钥PKi、第r-b个区块中的抵押第r-c个区块中的种子seedr-c和第一轮共识投票为输入,运行验证算法Ver,输出有效性判断Valid/Invalid
如果输出有效Valid,则存储该共识投票
如果第一轮共识投票占比满足2/3,则以同样方式进行第二轮共识投票
如果第一轮共识投票和第二轮共识投票占比均满足2/3,则对该区块达成共识。
3.根据权利要求1所述的区块链跨越式和跳跃式快速同步方法,其特征在于,所述如果区块序号为σ的倍数,则基于第(n-2)*σ个区块上的抵押和第(n-1)*σ个区块上的种子,对第n*σ个区块进行额外的认证投票;其中n≥2或n=1,σ为跨越步长,为c的倍数,当n=1,则使用第0个区块的抵押和种子,对第σ个区块进行额外的认证投票具体包括:
任意节点k以其私钥SKk、第(n-2)*σ个区块中的抵押第(n-1)*σ个区块中的种子seed(n-1)*σ为输入,运行签名算法Sig,输出第n*σ个区块的第一轮认证投票
任意节点l以公钥PKk、第(n-2)*σ个区块中的抵押第(n-1)*σ个区块中的种子seed(n-1)*σ和第一轮认证投票为输入,运行验证算法Ver,输出有效性判断Valid/Invalid
如果输出有效Valid,则存储该第一轮认证投票如果第一轮认证投票占比满足2/3,则以同样方式进行第二轮认证投票
如果第一轮认证投票和第二轮认证投票占比均满足2/3,则对该区块完成认证并将第一轮认证投票和第二轮认证投票存储第n*σ个区块中。
4.根据权利要求1所述的区块链跨越式和跳跃式快速同步方法,其特征在于,所述新加入的节点进行同步数据时,跨越式验证第n*σ个区块认证投票的正确性并基于该区块中的哈希值快速同步第1至第n*σ个区块数据,当n=1,使用第0个区块的抵押和种子,对第σ个区块进行投票验证,具体包括:
新加入的节点以第n*σ个区块中的公钥PKk、第(n-2)*σ个区块中的抵押第(n-1)*σ个区块中的种子seed(n-1)*σ和第一轮认证投票为输入,运行验证算法Ver,输出有效性判断Valid/Invalid
如果输出有效Valid且第一轮认证投票占比满足2/3,则以同样方式对第二轮认证投票进行有效性验证;
如果两轮认证投票均验证有效,则第n*σ个区块是正确的;
新加入的节点根据第n*σ个区块中的哈希值验证从第1个区块至第(n-1)*σ个区块的哈希值是否正确,如果不正确,则拒绝,否则读取第1个区块至第(n-1)*σ个区块的数据并存储到本地系统中,实现区块链数据的跨越式同步。
5.根据权利要求1所述的区块链跨越式和跳跃式快速同步方法,其特征在于,所述对于序号大于n*σ的最新区块r,其中r≥n*σ,跳跃式验证第r个区块共识投票的正确性并基于该区块中的哈希值快速同步第n*σ至第r个区块数据,具体包括:
新加入的节点以公钥PKi、第r-b个区块中的抵押第r-c个区块中的种子seedr-c和第一轮共识投票为输入,运行验证算法Ver,输出有效性判断Valid/Invalid
如果输出有效Valid且第一轮共识投票占比满足2/3,则以同样方式对第二轮共识投票进行有效性验证;
如果两轮共...
【专利技术属性】
技术研发人员:赵峰,梁达基,钟林,何畅彬,
申请(专利权)人:北京有链科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。