一种区块链跨越式和跳跃式快速同步方法及系统技术方案

技术编号:24893485 阅读:28 留言:0更新日期:2020-07-14 18:19
本发明专利技术涉及一种区块链跨越式和跳跃式快速同步方法及系统,方法包括:在区块生成过程中,基于第r‑b个区块中的抵押和第r‑c个区块中的种子,对第r个区块进行共识投票,r为区块号,c为跳跃步长c=8,b=k*c,k≥1;如果区块序号为σ的倍数,则基于第(n‑2)*σ个区块上的抵押和第(n‑1)*σ个区块上的种子,对第n*σ个区块进行额外的认证投票,其中σ=32768,n≥2。新节点跨越式验证第n*σ个区块认证投票的正确性并快速同步第1至第n*σ个区块;对于序号大于n*σ的最新区块r,跳跃式验证第r个区块共识投票的正确性并快速同步第n*σ至第r个区块。本发明专利技术通过对区块生成跳跃式共识投票和跨越式认证投票,使得新加入系统的节点能够验证特定序号区块的有效性,从而实现区块链数据快速同步。

【技术实现步骤摘要】
一种区块链跨越式和跳跃式快速同步方法及系统
本专利技术涉及信息安全
,特别是涉及一种区块链跨越式和跳跃式快速同步方法及系统。
技术介绍
区块链系统支持去中心化货币支付、智能合约、电子存证等物联网应用,使得系统数据越来越大。截止至2020年,比特币系统数据已超200G,以太坊系统数据已超1T。因此,如果新节点加入比特币/以太坊系统则需要读取并验证200G/1T的交易单数据。该过程使得新节点的加入非常缓慢。由于比特币和以太坊使用工作量证明(ProofofWork,PoW)共识机制,验证区块头的合法性不需要依赖于区块头以外的数据,所以验证相对快捷。因此,新加入比特币和以太坊系统时,新节点可以从创世块开始同步区块头所形成的头链,然后本地构造权威哈希树链。当新节点同步到一定高度后,与检查点进行对比,则可以确定是否为权威链。但是,其缺点在于,由于POW共识机制具有易分叉特性,节点在构造权威哈希树链之前,需要区块已经达到足够的确认数(目前以太坊使用2048为确认数)。随后最新的2048个区块仍然需要逐步验证并同步数据。该同步过程仍然比较缓慢。此外,基于权益证明(ProofofStake,PoS)及其派生的拜占庭容错共识机制系统的出块率更高,系统数据量急剧增大,使得新节点加入系统难度急剧上升。当新节点需要同步到最新区块时,则需要验证该区块头是否合法。因此,新节点需要验证投票者的投票是否合法,而验证投票需要用到前一个区块提供的种子以及之前某个区块上的抵押stake。因此,新节点需要进一步验证前序区块的合法性。但是,由于抵押信息数据量较大,而不可能直接存到区块头中。此外,投票信息数据量也较大。因此,如果从创世块开始逐块验证区块头的合法性,将涉及到大量的数据同步、缓存和存储。这对新节点的带宽和内存等资源带来极大压力。例如,Algorand、Tendermint、HotStaff等拜占庭容错类共识算法出块率均在1分钟以内,所以该类系统不但有庞大的区块数据,而且需要验证区块头之前的抵押和抽签种子的合法性以完成目标区块头合法性的验证。因此,该类拜占庭容错共识机制中,新节点进行区块链数据同步非常困难。针对拜占庭容错共识机制新节点数据同步缓慢问题,本专利技术提出一种区块链跨越式和跳跃式快速同步方法。在区块生成过程中,首先以跨越式和跳跃式对区块进行共识投票并存储到对应的区块中。随后,在区块链数据同步过程中,新节点首先以跨越式同步跨越步长为σ的区块,其中n≥2,σ为跨越步长,是一个较大的值且为c的倍数,例如σ=32768。然后,对于剩下的区块,新节点以跳跃式同步跳跃步长为c的区块,其中c=8为跳跃步长。因此,跨越式和跳跃式验证特定序号的区块,从而提高区块链同步速度而不需要逐步验证导致缓慢。
技术实现思路
本专利技术的目的是提供一种区块链跨越式和跳跃式快速同步方法及系统,通过跨越式和跳跃式验证特定序号的区块,从而提高区块链同步速度,避免逐步验证导致的缓慢。为实现上述目的,本专利技术提供了如下方案:一种区块链跨越式和跳跃式快速同步方法,所述同步方法包括:在区块链节点生成各自的公钥和私钥;在区块生成过程中,基于第r-b个区块中的抵押和第r-c个区块中的种子,对第r个区块进行共识投票;其中r为区块号,c为跳跃步长c=8,b=k*c,k≥1;如果区块序号为σ的倍数,则基于第(n-2)*σ个区块上的抵押和第(n-1)*σ个区块上的种子,对第n*σ个区块进行额外的认证投票;其中n≥2或n=1,σ为跨越步长,是一个较大的值且为c的倍数,例如σ=32768,特别地,当n=1,则使用第0个区块,即创世块,的抵押和种子,对第σ个区块进行额外的认证投票;新加入的节点进行同步数据时,跨越式验证第n*σ个区块认证投票的正确性并基于该区块中的哈希值快速同步第1至第n*σ个区块数据,特别地,当n=1,则使用第0个区块,即创世块,的抵押和种子,对第σ个区块进行投票验证;对于序号大于n*σ的最新区块r,其中r≥n*σ,跳跃式验证第r个区块共识投票的正确性并基于该区块中的哈希值快速同步第n*σ至第r个区块数据。可选的,所述在区块生成过程中,基于第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,则对该区块达成共识。可选的,所述如果区块序号为σ的倍数,则基于第(n-2)*σ个区块上的抵押和第(n-1)*σ个区块上的种子,对第n*σ个区块进行额外的认证投票,特别地,当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*σ个区块中。可选的,所述新加入的节点进行同步数据时,跨越式验证第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)*σ个区块的数据并存储到本地系统中,实现区块链数据的跨越式同步。可选的,所述对于序号大于n*σ的最新区块r,其本文档来自技高网
...

【技术保护点】
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

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

1