分片区块链实现方法技术

技术编号:32429173 阅读:72 留言:0更新日期:2022-02-24 18:35
本发明专利技术公开了一种分片区块链实现方法。包括:初始化步骤:各分片委员会生成节点公私钥对和公钥证明并发送给认证机构,认证机构据此更新各分片委员会的公钥列表;交易输入可用性确认步骤:各输入分片委员会在接收到用户提交的交易后运行快速拜占庭容错算法判断该交易输入是否可用,并在可用时生成可用性证明,以及将交易输入的可用性状态及其证明发送给输出分片;跨片交易确认步骤:输出分片根据可用性证明生成总签名和交易证明并发送给输入分片,输入分片据此更新本地未花费交易输出池状态,输出分片判断交易的合法性,并将合法交易写入区块链。该分片区块链实现方法,可使分片区块链实现交易处理可扩展、交易安全、交易快速确认、低系统开销。低系统开销。低系统开销。

【技术实现步骤摘要】
分片区块链实现方法


[0001]本专利技术涉及区块链
,尤其涉及一种分片区块链实现方法。

技术介绍

[0002]自从比特币被首次提出以来,区块链技术一直在飞速发展。区块链技术具有去中心化、数据透明公开和交易历史不可篡改等优点,在金融、物联网和供应链管理等各个领域都有着巨大的应用潜力。但是,目前存在一些限制区块链技术的问题,其中最关键的是安全性和性能问题。
[0003]当前的区块链系统存在各种安全问题,例如针对普通区块链可能存在的双重花费攻击和日蚀攻击,针对采用工作量证明的区块链的自私挖矿攻击、顽固挖矿攻击和区块扣留攻击等,针对采用权益证明的区块链的无利害关系攻击、打磨攻击和长程攻击等。与此同时,有一些致力于区块链安全性分析的工作,如,链质量、链增长和共同前缀三个区块链应当满足的基本特性、公共账本应当满足的一致性和活性。这些基础的安全性能研究和分析为其他区块链系统的设计和安全性分析奠定了良好的基础。设计安全的区块链协议并证明其安全性是当前研究的关键和热点。
[0004]区块链的性能表现是其能够得到广泛应用的另外一个关键因素。而在性能指标中,最重要的指标是交易吞吐量和交易确认时间。传统的第三方支付能够实现每秒钟几千甚至上万级别的交易吞吐量,而目前大多数区块链系统的吞吐量处于每秒几十或者几百的量级。目前来说,提高区块链系统吞吐量的方法可以分为链上方法和链下方法。在所有链上方法中,分片区块链技术是最有前途的技术之一。分片区块链的基本思路是将网络中所有节点分为多个分片,每个分片负责处理并维护该分片对应的区块链。网络中的交易也根据一定的规则被分配到不同的分片。分片内节点只需对该分片掌管的交易进行验证、计算和存储。这样一来,分片区块链便能实现交易处理能力的可扩展性,即随着网络中节点数量的增加,全网处理交易的能力随之增加。可扩展性使得分片区块链通常拥有更高的交易吞吐量。
[0005]通常,分片区块链具有以下三个特征。第一个是通信分片,参与节点被分为不同的分片,其中每个分片中的节点大部分时间仅需要内部通信。第二个是计算分片,即每个分片仅负责处理其相应的交易。第三个是存储分片,即不同分片的节点仅需要存储其相应分片的区块链历史数据。而且,分片区块链有几个重要组成部分:节点选择,节点分配,片内共识,跨片交易处理和分片重配置。其中,片内共识和跨片交易处理是每个分片区块链中必不可少的部分。
[0006]然而,目前大多数分片内共识都依赖于拜占庭容错协议,该协议的处理效率低而通信复杂度高。同时,目前的跨片交易处理方案容易受到攻击,例如拒绝服务攻击和重放攻击等。

技术实现思路

[0007]本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的目的在于提出一种分片区块链实现方法,以使分片区块链实现交易处理可扩展、交易安全、交易快速确认、低系统开销。
[0008]为达到上述目的,本专利技术实施例提出了一种分片区块链实现方法,所述方法包括以下步骤:初始化步骤:各分片委员会生成公共参数,并根据所述公共参数生成节点公私钥对和公钥证明,以及将节点公钥和公钥证明发送给数字证书认证机构,所述数字证书认证机构根据所述公钥证明和所述节点公钥更新各分片委员会的公钥列表;交易输入可用性确认步骤:用户提交交易至相应输入分片,各输入分片委员会内运行快速拜占庭容错算法判断接收到的交易输入是否可用,并在交易输入可用时生成相应的可用性证明,以及将交易输入的可用性状态及其可用性证明发送给输出分片,其中,输入分片委员会内运行快速拜占庭容错算法包括:在第一轮中,输入分片委员会领导者根据当前轮的交易输入构建提议,输入分片委员会成员根据对应的节点私钥对所述提议构建投票,输入分片委员会领导者根据投票和对应的节点公钥构建承诺凭证;在第N轮中,输入分片委员会领导者根据当前轮的交易输入和上一轮的承诺凭证构建提议,输入分片委员会成员根据对应的节点私钥对所述提议构建投票,输入分片委员会领导者根据投票和对应的节点公钥构建承诺凭证,其中,N为大于等于2的整数,所述提议包括交易输入的可用性状态;重复进行所述第N轮的操作,直到所述第一轮的提议被承诺;跨片交易确认步骤:输出分片根据可用性证明进行多签名聚合生成总签名和交易证明,并将所述总签名和所述交易证明发送给相关输入分片,输入分片根据所述总签名和交易输入的可用性状态更新本地未花费交易输出池状态,输出分片根据交易输入的可用性状态判断交易的合法性,并运行快速拜占庭容错算法将合法交易写入区块链。
[0009]本专利技术实施例的分片区块链实现方法,各分片委员会在初始化步骤中生成公共参数,并根据公共参数生成公私钥对和公钥证明,以及将节点公钥和公钥证明发送给数字证书认证机构,数字证书认证机构根据公钥证明和节点公钥更新各分片委员会的公钥列表。在用户提交交易至相应输入分片后,各输入分片委员会内运行快速拜占庭容错算法判断接收到的交易输入是否可用,其中,快速拜占庭容错算法由多轮投票构成。在第一轮中,输入分片委员会领导者根据交易输入参数构建提议,输入分片委员会成员根据对应的节点私钥对提议构建投票,输入分片委员会领导者根据投票和对应的节点公钥构建承诺凭证。在第N轮中,输入分片委员会领导者根据当前轮的交易输入和上一轮的承诺凭证构建提议,输入分片委员会成员根据对应的节点私钥对提议构建投票,输入分片委员会领导者根据投票和对应的节点公钥构建承诺凭证,其中,N为大于等于2的整数,提议包括交易输入的可用性状态。重复第N轮的操作,直到第一轮的提议被承诺。第一轮的提议被承诺后,生成相应的可用性证明,并将交易输入的可用性状态及其可用性证明发送给输出分片。输出分片根据可用性证明进行多签名聚合生成总签名和交易证明,并将总签名和交易证明发送给相关输入分片,输入分片根据总签名和交易输入的可用性状态更新本地未花费交易输出池状态,输出分片根据交易输入的可用性状态判断交易的合法性,并运行快速拜占庭容错算法将合法交易写入区块链。由此,可使分片区块链实现交易处理可扩展、交易安全、交易快速确认、低系统开销。
[0010]另外,本专利技术上述的分片区块链实现方法还可以具有如下附加的技术特征:
[0011]根据本专利技术的一个实施例,所述分片区块链实现方法还包括:各分片委员会采用BLS多签名算法生成公共参数par:(G1,G2,G
T
,e,g1,g2,p)

par,其中,G1,G2,G
T
是素数阶p的乘法群,G1,G2生成元分别为g1,g2,e是非退化的双线性映射,满足e(g
x
,g
y
)=e(g,g)
x,y
,H0:{0,1}
*

G2和H1:{0,1}
*

G1是安全哈希函数。
[0012]根据本专利技术的一个实施例,所述分片区块链实现方法还包括:各分片委员会采用BLS多签名密钥生成算法生成公私钥对KeyGen(par)

(pk
i
,sk
i
),其中,s本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分片区块链实现方法,其特征在于,包括以下步骤:初始化步骤:各分片委员会生成公共参数,并根据所述公共参数生成节点公私钥对和公钥证明,以及将节点公钥和公钥证明发送给数字证书认证机构,所述数字证书认证机构根据所述公钥证明和所述节点公钥更新各分片委员会的公钥列表;交易输入可用性确认步骤:用户提交交易至相应输入分片,各输入分片委员会内运行快速拜占庭容错算法判断接收到的交易输入是否可用,并在交易输入可用时生成相应的可用性证明,以及将交易输入的可用性状态及其可用性证明发送给输出分片,其中,输入分片委员会内运行快速拜占庭容错算法包括:在第一轮中,输入分片委员会领导者根据当前轮的交易输入构建提议,输入分片委员会成员根据对应的节点私钥对所述提议构建投票,输入分片委员会领导者根据投票和对应的节点公钥构建承诺凭证;在第N轮中,输入分片委员会领导者根据当前轮的交易输入和上一轮的承诺凭证构建提议,输入分片委员会成员根据对应的节点私钥对所述提议构建投票,输入分片委员会领导者根据投票和对应的节点公钥构建承诺凭证,其中,N为大于等于2的整数,所述提议包括交易输入的可用性状态;重复进行所述第N轮的操作,直到所述第一轮的提议被承诺;跨片交易确认步骤:输出分片根据可用性证明进行多签名聚合生成总签名和交易证明,并将所述总签名和所述交易证明发送给相关输入分片,输入分片根据所述总签名和交易输入的可用性状态更新本地未花费交易输出池状态,输出分片根据交易输入的可用性状态判断交易的合法性,并运行快速拜占庭容错算法将合法交易写入区块链。2.如权利要求1所述的分片区块链实现方法,其特征在于,各分片委员会采用BLS多签名算法生成公共参数par:(G1,G2,G
T
,e,g1,g2,p)

par,其中,G1,G2,G
T
是素数阶p的乘法群,G1,G2生成元分别为g1,g2,e是非退化的双线性映射,满足e(g
x
,g
y
)=e(g,g)
x,y
,H0:{0,1}
*

G2和H1:{0,1}
*

G1是安全哈希函数。3.如权利要求2所述的分片区块链实现方法,其特征在于,各分片委员会采用BLS多签名密钥生成算法生成公私钥对KeyGen(par)

(pk
i
,sk
i
),其中,sk
i
、pk
i
分别为第i个分片委员会的节点私钥、公钥,sk
i
∈[0,p-1],且sk
i
为整数,pk
i
对应的公钥证明为4.如权利要求3所述的分片区块链实现方法,其特征在于,所述数字证书认证机构根据所述公钥证明和所述节点公钥更新各分片委员会的公钥列表,包括:所述数字证书认证机构验证各分片委员会发送的节点公钥和公钥证明(pk
i

i
)是否满足e(π
i
,g2)=e(H1(pk
i
),pk
i
);如果满足,则判定节点公钥sk
i
合法,其中,所述数字证书认证机构将所述节点公钥sk
i
添加到对应分片委员会的公钥列表中:PKlist

PKlist∪{pk
i
},并公布公钥列表PKlist={pk1,pk2,

,pk
u
}。5.如权利要求4所述的分片区块链实现方法,其特征在于,输入分片委员会领导者构建承诺凭证和提议的过程如下:在第r轮,输入分片委员会领导者收集第r-1轮的投票m
v
,并将其解析为{(vote,H(p
r-1
),s
i
)}
|2f+1|
,其中,2f+1为收集到的有效投票,s
i
为签名份额,r为大于等于2的整数;
利用BLS多签名生成算法得到多签名(σ,apkt,T,p
r-1
)

Combine(par,PKlist,p
r-1
,{s
i
,pk
i
}
|2f+1|
);构建承诺凭证MSC
r-1

(σ,apkt,T,H(p
r-1
));接收到交易tx,从所述交易tx中确认出属于当前分片委员会shard
c
的交易输入I
i
,在当前分片未花费交易池utxo
c
中查询I
i
是否可用,如果可用,令b=1,如果不可用,令b=0,构建第r轮的请求p
r
=I
i
||H(tx.id)||b,其中,H(tx.id)为交易序列号tx.id的哈希值;构建第r轮的提议m
np

(new-proposal,p
r
,MSC
r-1
),并在当前分片委员会广播m
np
。6.如权利要求5所述的分片区块链实现方法,其特征在于,输入分片委员会成员构建投票的过程如下:在第r轮,输入分片委员会成员接收到提议m
np
,将其解析得到承诺凭证MSC
r-1

(σ,apkt,T,h),并确认第r-1轮接收到的请求p
r-1
;判断承诺凭证的合法性:验证(h=H(p
r-1
)Λ(MulVer(par,PKlist,σ,apkt,T,p
r-1
)=1是否成立,如果是,则将p
r-1
的状态设置为已准备:p
r-1
.state

prepared,且将p
r-2
的状态设置为已承诺:p
r-2
.state

committed,输出已承诺的请求及其承诺凭证(MSC
r-2
,p
...

【专利技术属性】
技术研发人员:刘建伟刘懿中李大伟李耕黑一鸣
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1