CN115361133A - 安全可扩展的分片区块链构造方法 - Google Patents

安全可扩展的分片区块链构造方法 Download PDF

Info

Publication number
CN115361133A
CN115361133A CN202211003610.8A CN202211003610A CN115361133A CN 115361133 A CN115361133 A CN 115361133A CN 202211003610 A CN202211003610 A CN 202211003610A CN 115361133 A CN115361133 A CN 115361133A
Authority
CN
China
Prior art keywords
node
verification
chain
block
epoch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211003610.8A
Other languages
English (en)
Other versions
CN115361133B (zh
Inventor
张倩
王尚平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Zhongke Qisuan Science And Technology Innovation Development Co ltd
Original Assignee
Xian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian University of Technology filed Critical Xian University of Technology
Priority to CN202211003610.8A priority Critical patent/CN115361133B/zh
Priority claimed from CN202211003610.8A external-priority patent/CN115361133B/zh
Publication of CN115361133A publication Critical patent/CN115361133A/zh
Application granted granted Critical
Publication of CN115361133B publication Critical patent/CN115361133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开的安全可扩展的分片区块链构造方法,具体按照以下步骤实施:步骤1、共识协议设计,包括分片验证集合选择,动态的记账节点选择和分片区块生成;步骤2、验证链记账;步骤3、全局随机数更新和时间轮同步。本发明方法利用基于椭圆曲线的可验证随机函数(EC‑VRF)构造新的分片共识协议实现高的交易处理性能,利用验证链保证交易的全局一致。

Description

安全可扩展的分片区块链构造方法
技术领域
本发明属于区块链技术领域,具体涉及一种安全可扩展的分片区块链构造方法。
背景技术
传统链式区块链的低吞吐量难以支撑高频次高并发应用场景的需求,严重制约了区块链的实际应用,成为区块链发展的瓶颈。分片技术源于数据库,引入到区块链中用来解决传统区块链的扩展和延时问题,在提升交易吞吐量方面是一个突破性和创新性的技术。
目前分片区块链面临许多的挑战。首先,分片操作会使得单一分片内节点的数量相较于传统区块链减少,容易遭受女巫攻击,对整个***的安全性造成相当大的威胁;其次,由于分片区块链在节点数量和组织结构上与传统单链存在明显的区别,因此传统单链共识协议应用于分片区块链中需要做相应的修改,这可能导致分片区块链的共识速度低于传统的单链,进而直接影响区块链***的使用效率;此外,实现状态分片使得各个分片链只负责托管自己的分片数据,这使得分片链面临交易数据的有效性和可用性问题,使得交易的全局一致成为挑战。
鉴于上述挑战,构造一种安全可扩展的分片区块链方法是非常有必要且实用的。高性能的分片区块链***在物联网,工业4.0,供应链,金融科技等领域具有非常重要的实用价值,具有非常好的发展前景。
发明内容
本发明的目的是发明一种安全可扩展的分片区块链构造方法,利用基于椭圆曲线的可验证随机函数(EC-VRF)构造新的分片共识协议实现高的交易处理性能,利用验证链保证交易的全局一致。
本发明所采用的技术方案是,安全可扩展的分片区块链构造方法,具体按照以下步骤实施:
步骤1、共识协议设计,包括分片验证集合选择,动态的记账节点选择和分片区块生成;
步骤2、验证链记账;
步骤3、全局随机数更新和时间轮同步。
本发明的特征还在于,
步骤1具体按照以下步骤实施:
步骤1.1、全局初始化:在分片中,时间被分为时段epoch,记为epochT,T=1,2,…,每一个时段epoch又分为c个子时段,以分片链κ∈{1,…,k}在时段T的运行过程为例,最先加入网络中的节点互相通信产生一个公共的初始随机值R0作为初始全局随机数;
步骤1.2、分片节点生成可验证随机数及其证明;设计EC-VRF生成可验证随机数及其证明,具体步骤为:分片链κ中的节点i选择公私钥对为(pki,ski),私钥
Figure BDA0003806639130000021
公钥pki=ski·G,G是椭圆曲线E(Fq)的基点,G的阶数为n,
Figure BDA0003806639130000022
是小于n且与n互素的元素构成的乘法群;以上一个时段epochT-1(T=1,2,…)生成的全局随机数RT-1、节点公钥pki作为输入,得到字符串mi=RT-1||pki,这里||表示级联;节点i随机选择
Figure BDA0003806639130000023
计算Li=li·G=(xi *,yi *),其中x*为L的横坐标,y*为L的纵坐标,计算ξi=xi *modq,
Figure BDA0003806639130000024
Figure BDA0003806639130000025
这里哈希函数
Figure BDA0003806639130000026
得到ei=h(πi),之后计算σi=l-1i+ξ·ski)modn,节点i得到关于字符串mi的随机数ei的证明
Figure BDA0003806639130000031
步骤1.3、分片链κ中的所有节点判断自己是否是候选验证节点;
步骤1.4、验证节点选择:分片链κ中的节点首先对所有候选节点的证明元组进行验证,以对分片链κ中节点i的验证过程为例,具体为:首先计算
Figure BDA00038066391300000312
判断
Figure BDA0003806639130000032
这里
Figure BDA0003806639130000033
来自
Figure BDA0003806639130000034
若不成立则关于候选节点i的验证失败,否则继续计算
Figure BDA0003806639130000035
Figure BDA0003806639130000036
令ζi=x′imodq,若ζi=ξi,则候选节点i验证成功,否则证明失败;之后,对验证通过的所有分片链κ中的候选节点的参考值{refi}按照由大到小的顺序进行排序,前τ个参考值所代表的候选节点即为选择出的验证节点集合,τ为分片链κ选择的验证节点的数目;
步骤1.5、验证集合形成:分片链κ中验证节点之间相互通信建立分片验证节点集合VNT并确认;
步骤1.6、动态的子时段分片记账节点选择:在分片链κ中,验证节点集合VNT中的节点将时段epochT选出的验证节点的可验证随机数
Figure BDA0003806639130000037
组成一棵Merkle树,叶子节点为每一个验证节点的可验证随机数,随机数的哈希值为叶节点的权重,这里哈希函数选择SHA256;非叶子结点的权重为左右子树的权重之和,weightΔ为该树节点的最大权重;之后,为epochT的每一个子时段j,j=1,…,c-1分别选择记账节点,
Figure BDA0003806639130000038
表示分片链κ在时段epochT的第j个子时段的初始种子值,
Figure BDA0003806639130000039
这里RT-1为上一时段的公共随机数;在每个子时段中,对构造的Merkle树自顶向下遍历,将种子值
Figure BDA00038066391300000310
输入伪随机函数
Figure BDA00038066391300000311
中生成一个随机数,如果生成的随机数小于左子树的权重则选择左子树,否则选择右子树,依次以上一层生成的随机数作为p_f(·)的输入生成新的随机数进行遍历,直到选择某一个叶子节点的可验证随机数为
Figure BDA0003806639130000041
则节点ij被选中作为第j子时段的记账节点;
步骤1.7、分片记账及区块头签名生成:记账节点ij收集分片矿池中的交易,生成交易区块
Figure BDA0003806639130000042
之后,随机选择
Figure BDA0003806639130000043
计算
Figure BDA0003806639130000044
Figure BDA0003806639130000045
Figure BDA0003806639130000046
得到区块头签名Ωj=(Qjj),这里
Figure BDA0003806639130000047
tj=(epochT||j);分片区块头的具体表示为:
Figure BDA0003806639130000048
κ为分片链,tj=(epochT||j)为分片时段和子时段索引号,hashpre为前一个验证区块的哈希值,sub-hashpre为分片上前一区块的哈希值,timestamp为分片区块生成的时间戳,
Figure BDA0003806639130000049
为分片记账节点ij的可验证随机数和证明,merkle_rootj为当前子时段收集交易的Merkle树根;记账节点ij将区块
Figure BDA00038066391300000410
和区块头签名Ωj=(Qjj)广播至分片链κ,验证节点集合中的其余验证节点对区块合法性进行验证;当收到至少
Figure BDA00038066391300000411
个验证节点对区块的正确验证结果时,记账节点将该区块记录在它所在的分片链上;
步骤1.8、区块头打包:第c-1个子时段的记账节点
Figure BDA00038066391300000412
生成区块
Figure BDA00038066391300000413
同时收集epochT中所有生成的区块头签名{Ωj}j=1,,c-1以及区块头的集合
Figure BDA00038066391300000414
发送到验证链上。
步骤1.3具体按照以下步骤实施:
步骤1.3.1、节点i拥有si个标准单位的代币,表示为节点i拥有si个权益值;之后,节点i用生成的ei计算
Figure BDA0003806639130000051
步骤1.3.2、节点i将区间[0,1)划分为si个连续区间的形式,在si个权益值中选择恰好η个权益值的概率服从二项分布B(si,p):
Figure BDA0003806639130000052
其中,
Figure BDA0003806639130000053
这里
Figure BDA0003806639130000054
τ为分片链κ选择的验证节点的数目,
Figure BDA0003806639130000055
表示分片链κ中拥有的所有的权益值数量;
步骤1.3.3、若
Figure BDA0003806639130000056
且d*>0,d*∈{1,…,si-1},则表示节点i成为候选验证节点,且节点i恰好有d*个权益值被选中,进行步骤1.3.4;若d*=0,则表示该节点没有被选中,节点i退出验证节点选择过程;
步骤1.3.4、候选验证节点i计算
Figure BDA0003806639130000057
Figure BDA0003806639130000058
候选节点i将关于字符串mi的随机数ei、证明
Figure BDA0003806639130000059
参考值refi,即证明元组<mi,ei,proofi,refi>广播至分片链κ中。
步骤2具体按照以下步骤实施:
步骤2.1、验证链成员形成:每一个分片链κ∈{1,…,k}的第c-1个子时段的记账节点
Figure BDA00038066391300000510
组成验证链的成员节点,形成验证链成员集合CNT;每一个CNT中的节点打包当前epochT生成的区块头及签名
Figure BDA00038066391300000511
提交至验证链上;
步骤2.2、分片区块批量验证及验证区块生成:将CNT中各个成员的可验证随机树形成Merkle树,以seed=h(RT-1||epochT)作为随机种子,按照步骤1.6的方法,选择出验证链的记账节点iT,记账节点iT收集所有CNT中的节点提交的区块头及签名
Figure BDA0003806639130000061
对每一个分片链κ(κ∈{1,…,k})提交的
Figure BDA0003806639130000062
计算
Figure BDA0003806639130000063
这里
Figure BDA0003806639130000064
Ωj=(Qjj),
Figure BDA0003806639130000065
之后验证
Figure BDA0003806639130000066
若验证成功,则将
Figure BDA0003806639130000067
中的每一个区块头作为验证区块的一个交易,生成验证区块VHT广播至验证链;
步骤2.3、区块同步:各个分片链同步最新生成的验证区块,确保交易的全局一致。
步骤3具体按照以下步骤实施:
步骤3.1、全局随机数更新:验证链的记账节点iT计算
Figure BDA0003806639130000068
这里VT=Head(VHT)为时段epochT生成的验证区块的区块头,
Figure BDA0003806639130000069
为验证链记账节点iT的公钥;验证链区块头的具体表达形式为:
Figure BDA00038066391300000610
epochT为时段索引号,hashpre为上一个验证区块的区块哈希值,timestamp为验证区块生成的时间戳,RT是为下一个时段epochT+1生成的全局随机数,
Figure BDA00038066391300000611
为验证链记账节点iT的可验证随机数和证明,merkle_rootT为当前时段epochT以分片区块头作为交易生成的Merkle根;
步骤3.2、时间同步:验证链的记账节点iT在将epochT中的验证区块添加到验证链上时,执行网络时间同步协议,启动下一个时段epochT+1,将全局随机数更新为RT,一个轮回结束;之后,以更新的全局随机数RT作为输入,从步骤1.2开始,进行下一个时段epochT+1分片验证节点集合的选择,依次进行后续步骤,使得分片***得以持续运行。
本发明的有益效果是:
本发明安全可扩展的分片区块链构造方法,应用设计的Tyche共识协议在各个分片中选择分片验证节点集合和记账节点并引入时段概念,实现多时段、动态的节点选择算法,保证选择结果不可预测性和分片的安全性;设计批量验证算法,实现分片区块的二次验证,提升分片区块链***的交易处理效率;各分片只需同步验证链来存储分片状态,保证交易数据的有效性和可用性。
附图说明
图1是本发明安全可扩展的分片区块链构造方法中Tyche共识模型的运行流程示意图;
图2是本发明安全可扩展的分片区块链构造方法中子时段j记账节点选择过程的示意图;
图3是本发明安全可扩展的分片区块链构造方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明提供一种安全可扩展的分片区块链构造方法,如图1-3所示,具体按照以下步骤实施:
步骤1、共识协议设计,包括分片验证集合选择,动态的记账节点选择和分片区块生成;分片中的Tyche共识模型的运行流程如图1所示,在分片中,时间被分为时段epoch,记为epochT,T=1,2,…,每一个时段epoch又分为c个子时段,以分片链κ∈{1,…,k}在时段T中,Tyche共识模型的运行过程为例,阐述Tyche共识模型的运行流程如下。
步骤1具体按照以下步骤实施:
步骤1.1、全局初始化:最先加入网络中的节点互相通信产生一个公共的初始随机值R0作为初始全局随机数;
步骤1.2、分片节点生成可验证随机数及其证明:设计EC-VRF生成可验证随机数及其证明,具体步骤为:以分片链κ中的节点i生成可验证随机数及其证明过程为例;分片链κ中的节点i选择公私钥对为(pki,ski),私钥
Figure BDA0003806639130000081
公钥pki=ski·G,G是椭圆曲线E(Fq)的基点,G的阶数为n,
Figure BDA0003806639130000082
是小于n且与n互素的元素构成的乘法群;以上一个时段epochT-1(T=1,2,…)生成的全局随机数RT-1、节点公钥pki作为输入,得到字符串mi=RT-1||pki,这里||表示级联;节点i随机选择
Figure BDA0003806639130000083
计算Li=li·G=(xi *,yi *),其中x*为L的横坐标,y*为L的纵坐标,计算ξi=xi *modq,
Figure BDA0003806639130000084
这里哈希函数
Figure BDA0003806639130000085
得到ei=h(πi),之后计算σi=l-1i+ξ·ski)modn,节点i得到关于字符串mi的随机数ei的证明
Figure BDA0003806639130000086
步骤1.3、分片链κ中的所有节点判断自己是否是候选验证节点:以分片链κ中的节点i判断过程为例,具体判断过程根据以下步骤实施:
步骤1.3.1、节点i拥有si个标准单位的代币(
Figure BDA0003806639130000087
这里stocki为节点i的代币总数,Θ可根据分片中代币总量进行调节),也可表示为节点i拥有si个权益值;之后,节点i用生成的ei计算
Figure BDA0003806639130000088
步骤1.3.2、节点i将区间[0,1)划分为si个连续区间的形式,在si个权益值中选择恰好η个权益值的概率服从二项分布B(si,p):
Figure BDA0003806639130000089
其中,
Figure BDA00038066391300000810
这里
Figure BDA00038066391300000811
τ为分片链κ选择的验证节点的数目,
Figure BDA0003806639130000091
表示分片链κ中拥有的所有的权益值数量;
步骤1.3.3、若
Figure BDA0003806639130000092
且d*>0,d*∈{1,…,si-1},则表示节点i成为候选验证节点,且节点i恰好有d*个权益值被选中,进行步骤1.3.4;若d*=0,则表示该节点没有被选中,节点i退出验证节点选择过程;
步骤1.3.4、候选验证节点i计算
Figure BDA0003806639130000093
Figure BDA0003806639130000094
候选节点i将关于字符串mi的随机数ei、证明
Figure BDA0003806639130000095
参考值refi,即证明元组<mi,ei,proofi,refi>广播至分片链κ中;
步骤1.4、验证节点选择:分片链κ中的节点首先对所有候选节点的证明元组进行验证,以对分片链κ中节点i的验证过程为例。首先计算
Figure BDA0003806639130000096
判断
Figure BDA0003806639130000097
这里
Figure BDA0003806639130000098
来自
Figure BDA0003806639130000099
若不成立则关于候选节点i的验证失败,否则继续计算
Figure BDA00038066391300000910
令ζi=x′imodq,若ζi=ξi,则候选节点i验证成功,否则证明失败;之后,对验证通过的所有分片链κ中的候选节点的参考值{refi}按照由大到小的顺序进行排序,前τ个参考值所代表的候选节点即为选择出的验证节点集合,τ为分片链κ选择的验证节点的数目;
步骤1.5、验证集合形成:分片链κ中验证节点之间相互通信建立分片验证节点集合VNT并确认;
步骤1.6、动态的子时段分片记账节点选择:在分片链κ中,验证节点集合VNT中的节点将时段epochT选出的验证节点的可验证随机数
Figure BDA00038066391300000911
组成一棵Merkle树,叶子节点为每一个验证节点的可验证随机数,随机数的哈希值为叶节点的权重,这里哈希函数选择SHA256;非叶子结点的权重为左右子树的权重之和,weightΔ为该树节点的最大权重;之后,为epochT的每一个子时段j,j=1,…,c-1分别选择记账节点,
Figure BDA0003806639130000101
表示分片链κ在时段epochT的第j个子时段的初始种子值,
Figure BDA0003806639130000102
这里RT-1为上一时段的公共随机数;在每个子时段中,对构造的Merkle树自顶向下遍历,将种子值
Figure BDA0003806639130000103
输入伪随机函数
Figure BDA0003806639130000104
中生成一个随机数,如果生成的随机数小于左子树的权重则选择左子树,否则选择右子树,依次以上一层生成的随机数作为p_f(·)的输入生成新的随机数进行遍历,直到选择某一个叶子节点的可验证随机数为
Figure BDA0003806639130000105
则节点ij被选中作为第j子时段的记账节点;具体实例如图2所示,验证节点N1,...,N8作为叶节点,每个节点的可验证随机数为叶节点的权重,按照Merkle树形成方式,非叶节点的值是左右孩子节点的哈希值。非叶子节点的权重为左右孩子节点的权重之和,如节点N1的权重为28,N2的权重为16,则父节点的权重为16+28=44。从下至上依次遍历,得到树的最大权重weightΔ=146。之后进行记账节点的选择过程。第一步:以epoch=20的第3个子时段记账节点选择过程为例,初始种子值
Figure BDA0003806639130000106
这里RT-1=66,将22代入伪随机函数p_f(·),计算得到p_f(22)=50,50小于左子树的权重76,选择左子树;第二步:以第一步得到的随机数50作为输入,计算得到p_f(50)=20,20小于左子树的权重44,选择左子树;第三步:以第二步得到的随机数20作为输入,计算p_f(20)=42,42大于左子树的权重28,选择右子树;第四步:右子树对应的叶节点N2被选为记账节点。
步骤1.7、分片记账及区块头签名生成:记账节点ij收集分片矿池中的交易,生成交易区块
Figure BDA0003806639130000107
之后,随机选择
Figure BDA0003806639130000108
计算
Figure BDA0003806639130000109
Figure BDA00038066391300001010
Figure BDA0003806639130000111
得到区块头签名Ωj=(Qjj),这里
Figure BDA0003806639130000112
tj=(epochT||j);分片区块头的具体表示为:
Figure BDA0003806639130000113
κ为分片链,tj=(epochT||j)为分片时段和子时段索引号,hashpre为前一个验证区块的哈希值(见步骤3.1),sub-hashpre为分片上前一区块的哈希值,timestamp为分片区块生成的时间戳,
Figure BDA0003806639130000114
为分片记账节点ij的可验证随机数和证明,merkle_rootj为当前子时段收集交易的Merkle树根;记账节点ij将区块
Figure BDA0003806639130000115
和区块头签名Ωj=(Qjj)广播至分片链κ,验证节点集合中的其余验证节点对区块合法性进行验证;当收到至少
Figure BDA0003806639130000116
个验证节点对区块的正确验证结果时,记账节点将该区块记录在它所在的分片链上;
步骤1.8、区块头打包:第c-1个子时段的记账节点
Figure BDA0003806639130000117
(为区分步骤2.1中验证链的成员节点,对第c-1个子时段的记账节点带分片链κ进行标记)生成区块
Figure BDA0003806639130000118
同时收集epochT中所有生成的区块头签名{Ωj}j=1,…,c-1以及区块头的集合
Figure BDA0003806639130000119
发送到验证链上。
步骤2、验证链记账;
步骤2具体按照以下步骤实施:
步骤2.1、验证链成员形成:每一个分片链κ∈{1,…,k}的第c-1个子时段的记账节点
Figure BDA00038066391300001110
组成验证链的成员节点,形成验证链成员集合CNT;每一个CNT中的节点打包当前epochT生成的区块头及签名
Figure BDA00038066391300001111
提交至验证链上;
步骤2.2、分片区块批量验证及验证区块生成:将CNT中各个成员的可验证随机树形成Merkle树,以seed=h(RT-1||epochT)作为随机种子,按照步骤1.6的方法,选择出验证链的记账节点iT,记账节点iT收集所有CNT中的节点提交的区块头及签名
Figure BDA0003806639130000121
对每一个分片链κ(κ∈{1,…,k})提交的
Figure BDA0003806639130000122
计算
Figure BDA0003806639130000123
这里
Figure BDA0003806639130000124
Ωj=(Qjj),
Figure BDA0003806639130000125
之后验证
Figure BDA0003806639130000126
若验证成功,则将
Figure BDA0003806639130000127
中的每一个区块头作为验证区块的一个交易,生成验证区块VHT广播至验证链;
步骤2.3、区块同步:各个分片链同步最新生成的验证区块,确保交易的全局一致。分片区块只有被添加在验证链上,才能最终被确认为有效区块。
步骤3、全局随机数更新和时间轮同步;
步骤3具体按照以下步骤实施:
步骤3.1、全局随机数更新:验证链的记账节点iT计算
Figure BDA0003806639130000128
这里VT=Head(VHT)为时段epochT生成的验证区块的区块头,
Figure BDA0003806639130000129
为验证链记账节点iT的公钥。验证链区块头的具体表达形式为:
Figure BDA00038066391300001210
epochT为时段索引号,hashpre为上一个验证区块的区块哈希值,timestamp为验证区块生成的时间戳,RT是为下一个时段epochT+1生成的全局随机数,
Figure BDA00038066391300001211
为验证链记账节点iT的可验证随机数和证明,merkle_rootT为当前时段epochT以分片区块头作为交易生成的Merkle根。
步骤3.2、时间同步:验证链的记账节点iT在将epochT中的验证区块添加到验证链上时,执行网络时间同步协议(NTP),启动下一个时段epochT+1,将全局随机数更新为RT,一个轮回结束;之后,以更新的全局随机数RT作为输入,从步骤1.2开始,进行下一个时段epochT+1分片验证节点集合的选择,依次进行后续步骤,使得分片***得以持续运行。

Claims (5)

1.安全可扩展的分片区块链构造方法,其特征在于,具体按照以下步骤实施:
步骤1、共识协议设计,包括分片验证集合选择,动态的记账节点选择和分片区块生成;
步骤2、验证链记账;
步骤3、全局随机数更新和时间轮同步。
2.根据权利要求1所述的安全可扩展的分片区块链构造方法,其特征在于,步骤1具体按照以下步骤实施:
步骤1.1、全局初始化:在分片中,时间被分为时段epoch,记为epochT,T=1,2,…,每一个时段epoch又分为c个子时段,最先加入网络中的节点互相通信产生一个公共的初始随机值R0作为初始全局随机数;
步骤1.2、分片节点生成可验证随机数及其证明:设计EC-VRF生成可验证随机数及其证明,具体步骤为:分片链κ中的节点i选择公私钥对为(pki,ski),私钥
Figure FDA0003806639120000011
公钥pki=ski·G,G是椭圆曲线E(Fq)的基点,G的阶数为n,
Figure FDA0003806639120000012
是小于n且与n互素的元素构成的乘法群;以上一个时段epochT-1(T=1,2,…)生成的全局随机数RT-1、节点公钥pki作为输入,得到字符串mi=RT-1||pki,这里||表示级联;节点i随机选择
Figure FDA0003806639120000013
计算Li=li·G=(xi *,yi *),其中x*为L的横坐标,y*为L的纵坐标,计算ξi=xi *modq,
Figure FDA0003806639120000014
Figure FDA0003806639120000015
这里哈希函数h:
Figure FDA0003806639120000016
得到ei=h(πi),之后计算σi=l-1i+ξ·ski)mod n,节点i得到关于字符串mi的随机数ei的证明
Figure FDA0003806639120000017
步骤1.3、分片链κ中的所有节点判断自己是否是候选验证节点;
步骤1.4、验证节点选择:分片链κ中的节点首先对所有候选节点的证明元组进行验证,分片链κ中节点i的验证过程具体为:首先计算
Figure FDA0003806639120000021
判断
Figure FDA0003806639120000022
这里
Figure FDA0003806639120000023
来自
Figure FDA0003806639120000024
若不成立则关于候选节点i的验证失败,否则继续计算
Figure FDA0003806639120000025
令ζi=x′imod q,若ζi=ξi,则候选节点i验证成功,否则证明失败;之后,对验证通过的所有分片链κ中的候选节点的参考值{refi}按照由大到小的顺序进行排序,前τ个参考值所代表的候选节点即为选择出的验证节点集合,τ为分片链κ选择的验证节点的数目;
步骤1.5、验证集合形成:分片链κ中验证节点之间相互通信建立分片验证节点集合VNT并确认;
步骤1.6、动态的子时段分片记账节点选择:在分片链κ中,验证节点集合VNT中的节点将时段epochT选出的验证节点的可验证随机数
Figure FDA0003806639120000026
组成一棵Merkle树,叶子节点为每一个验证节点的可验证随机数,随机数的哈希值为叶节点的权重,这里哈希函数选择SHA256;非叶子结点的权重为左右子树的权重之和,weightΔ为该树节点的最大权重;之后,为epochT的每一个子时段j,j=1,…,c-1分别选择记账节点,
Figure FDA0003806639120000027
表示分片链κ在时段epochT的第j个子时段的初始种子值,
Figure FDA0003806639120000028
这里RT-1为上一时段的公共随机数;在每个子时段中,对构造的Merkle树自顶向下遍历,将种子值
Figure FDA0003806639120000029
输入伪随机函数p_f(·):
Figure FDA00038066391200000210
中生成一个随机数,如果生成的随机数小于左子树的权重则选择左子树,否则选择右子树,依次以上一层生成的随机数作为p_f(·)的输入生成新的随机数进行遍历,直到选择某一个叶子节点的可验证随机数为
Figure FDA00038066391200000211
则节点ij被选中作为第j子时段的记账节点;
步骤1.7、分片记账及区块头签名生成:记账节点ij收集分片矿池中的交易,生成交易区块
Figure FDA0003806639120000031
之后,随机选择
Figure FDA0003806639120000032
计算
Figure FDA0003806639120000033
Figure FDA0003806639120000034
Figure FDA0003806639120000035
得到区块头签名Ωj=(Qjj),这里
Figure FDA0003806639120000036
tj=(epochT||j);分片区块头的具体表示为:
Figure FDA0003806639120000037
κ为分片链,tj=(epochT||j)为分片时段和子时段索引号,hashpre为前一个验证区块的哈希值,sub-hashpre为分片上前一区块的哈希值,timestamp为分片区块生成的时间戳,
Figure FDA0003806639120000038
为分片记账节点ij的可验证随机数和证明,merkle_rootj为当前子时段收集交易的Merkle树根;记账节点ij将区块
Figure FDA0003806639120000039
和区块头签名Ωj=(Qjj)广播至分片链κ,验证节点集合中的其余验证节点对区块合法性进行验证;当收到至少
Figure FDA00038066391200000310
个验证节点对区块的正确验证结果时,记账节点将该区块记录在它所在的分片链上;
步骤1.8、区块头打包:第c-1个子时段的记账节点
Figure FDA00038066391200000311
生成区块
Figure FDA00038066391200000312
同时收集epochT中所有生成的区块头签名{Ωj}j=1,…,c-1以及区块头的集合
Figure FDA00038066391200000313
发送到验证链上。
3.根据权利要求2所述的安全可扩展的分片区块链构造方法,其特征在于,步骤1.3具体按照以下步骤实施:
步骤1.3.1、节点i拥有si个标准单位的代币,表示为节点i拥有si个权益值;之后,节点i用生成的ei计算
Figure FDA00038066391200000314
步骤1.3.2、节点i将区间[0,1)划分为si个连续区间的形式,在si个权益值中选择恰好η个权益值的概率服从二项分布B(si,p):
Figure FDA0003806639120000041
其中,
Figure FDA0003806639120000042
这里
Figure FDA0003806639120000043
τ为分片链κ选择的验证节点的数目,
Figure FDA0003806639120000044
表示分片链κ中拥有的所有的权益值数量;
步骤1.3.3、若
Figure FDA0003806639120000045
且d*>0,d*∈{1,…,si-1},则表示节点i成为候选验证节点,且节点i恰好有d*个权益值被选中,进行步骤1.3.4;若d*=0,则表示该节点没有被选中,节点i退出验证节点选择过程;
步骤1.3.4、候选验证节点i计算
Figure FDA0003806639120000046
Figure FDA0003806639120000047
候选节点i将关于字符串mi的随机数ei、证明
Figure FDA0003806639120000048
参考值refi,即证明元组<mi,ei,proofi,refi>广播至分片链κ中。
4.根据权利要求3所述的安全可扩展的分片区块链构造方法,其特征在于,步骤2具体按照以下步骤实施:
步骤2.1、验证链成员形成:每一个分片链κ∈{1,…,k}的第c-1个子时段的记账节点
Figure FDA0003806639120000049
组成验证链的成员节点,形成验证链成员集合CNT;每一个CNT中的节点打包当前epochT生成的区块头及签名
Figure FDA00038066391200000410
提交至验证链上;
步骤2.2、分片区块批量验证及验证区块生成:将CNT中各个成员的可验证随机树形成Merkle树,以seed=h(RT-1||epochT)作为随机种子,按照步骤1.6的方法,选择出验证链的记账节点iT,记账节点iT收集所有CNT中的节点提交的区块头及签名
Figure FDA00038066391200000411
对每一个分片链κ(κ∈{1,…,k})提交的
Figure FDA0003806639120000051
计算
Figure FDA0003806639120000052
这里
Figure FDA0003806639120000053
Ωj=(Qjj),
Figure FDA0003806639120000054
之后验证
Figure FDA0003806639120000055
若验证成功,则将
Figure FDA0003806639120000056
中的每一个区块头作为验证区块的一个交易,生成验证区块VHT广播至验证链;
步骤2.3、区块同步:各个分片链同步最新生成的验证区块,确保交易的全局一致。
5.根据权利要求4所述的安全可扩展的分片区块链构造方法,其特征在于,步骤3具体按照以下步骤实施:
步骤3.1、全局随机数更新:验证链的记账节点iT计算
Figure FDA0003806639120000057
这里VT=Head(VHT)为时段epochT生成的验证区块的区块头,
Figure FDA0003806639120000058
为验证链记账节点iT的公钥;验证链区块头的具体表达形式为:
Figure FDA0003806639120000059
epochT为时段索引号,hashpre为上一个验证区块的区块哈希值,timestamp为验证区块生成的时间戳,RT是为下一个时段epochT+1生成的全局随机数,
Figure FDA00038066391200000510
为验证链记账节点iT的可验证随机数和证明,merkle_rootT为当前时段epochT以分片区块头作为交易生成的Merkle根;
步骤3.2、时间同步:验证链的记账节点iT在将epochT中的验证区块添加到验证链上时,执行网络时间同步协议,启动下一个时段epochT+1,将全局随机数更新为RT,一个轮回结束;之后,以更新的全局随机数RT作为输入,从步骤1.2开始,进行下一个时段epochT+1分片验证节点集合的选择,依次进行后续步骤,使得分片***得以持续运行。
CN202211003610.8A 2022-08-19 安全可扩展的分片区块链构造方法 Active CN115361133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211003610.8A CN115361133B (zh) 2022-08-19 安全可扩展的分片区块链构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211003610.8A CN115361133B (zh) 2022-08-19 安全可扩展的分片区块链构造方法

Publications (2)

Publication Number Publication Date
CN115361133A true CN115361133A (zh) 2022-11-18
CN115361133B CN115361133B (zh) 2024-07-09

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112118124A (zh) * 2020-08-03 2020-12-22 西安电子科技大学 区块链构建方法、***、存储介质、计算机设备及应用
CN113452747A (zh) * 2021-05-13 2021-09-28 西安电子科技大学 可扩展和安全的共识方法、***、存储介质、智能终端

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112118124A (zh) * 2020-08-03 2020-12-22 西安电子科技大学 区块链构建方法、***、存储介质、计算机设备及应用
CN113452747A (zh) * 2021-05-13 2021-09-28 西安电子科技大学 可扩展和安全的共识方法、***、存储介质、智能终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SHANGPING WANG, DONGYI LI , YALING ZHANG等: "Smart Contract-Based Product Traceability System in the Supply Chain Scenario", 《IEEE ACCESS》, 30 August 2019 (2019-08-30) *
SHANGPING WANG, YUYING WAN, AND YALING ZHANG: "Blockchain-Based Fair Payment Protocol for Deduplication Cloud Storage System", 《IEEE ACCESS》, 19 September 2019 (2019-09-19) *
YINJUAN DENG, SHANGPING WANG, QIAN ZHANG等: "A Secure Subscription-Push Service Scheme Based on Blockchain and Edge Computing for IoT", 《KSII TRANSACTIONS ON INTERNET AND INFORMATION SYSTEMS》, 28 February 2022 (2022-02-28) *

Similar Documents

Publication Publication Date Title
Zhou et al. Efficient certificateless multi-copy integrity auditing scheme supporting data dynamics
CN111026511B (zh) 基于事务数据分区-链间融合的区块链并行***及方法
Luu et al. Scp: A computationally-scalable byzantine consensus protocol for blockchains
US6097811A (en) Tree-based certificate revocation system
EP3979553A1 (en) Credential generation and distribution method and system for a blockchain network
CN113271204B (zh) 一种基于量子密钥分发的拜占庭容错共识方法
Azouvi et al. Winning the caucus race: Continuous leader election via public randomness
CN113114496A (zh) 一种基于分片技术的区块链可扩展性问题解决方法
CN111209591A (zh) 一种按时间排序的存储结构与快速查询的方法
CN111951108A (zh) 一种具有图灵完备智能合约区块链的链结构设计方法
JP2022551874A (ja) セキュアな共生(Symbiosis)マイニングのための方法および装置
CN113343213A (zh) 一种分散自主网络中基于区块链的多ca跨域认证方法
Li et al. ISCP: An Improved Blockchain Consensus Protocol.
CN111080298A (zh) 一种适用于能源区块链的区块生成与交易验证方法
CN115361133A (zh) 安全可扩展的分片区块链构造方法
CN115361133B (zh) 安全可扩展的分片区块链构造方法
CN114745102B (zh) 一种基于边缘计算的轻量级且可扩展的区块链***
CN110609867B (zh) 一种基于容量证明的区块链***构建方法
CN115002221A (zh) 一种适用于物联网的区块链共识方法及***
Zhang et al. FortunChain: EC-VRF-based scalable blockchain system for realizing state sharding
Ni et al. Analysis of bitcoin backbone protocol in the non-flat model
CN115632791B (zh) 一种动态跨链数据一致性去中心化验证方法
CN114785810B (zh) 一种适用于联邦学习的树状广播数据同步方法
EP1164746B1 (en) Tree-based certificate revocation system
CN117745433B (zh) 基于改进pbft共识机制的能源区块链节点共识方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240527

Address after: 518000 1104, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Applicant after: Shenzhen Hongyue Information Technology Co.,Ltd.

Country or region after: China

Address before: 710048 Shaanxi province Xi'an Beilin District Jinhua Road No. 5

Applicant before: XI'AN University OF TECHNOLOGY

Country or region before: China

TA01 Transfer of patent application right

Effective date of registration: 20240614

Address after: Floor 1-2, Building 8, Artificial Intelligence Industrial Park, 266 Chuangyan Road, Qilin Science and Technology Innovation Park, Jiangning District, Nanjing, Jiangsu 211135

Applicant after: Nanjing Zhongke Qisuan Science and Technology Innovation Development Co.,Ltd.

Country or region after: China

Address before: 518000 1104, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Applicant before: Shenzhen Hongyue Information Technology Co.,Ltd.

Country or region before: China

GR01 Patent grant