【技术实现步骤摘要】
分片区块链实现方法
[0001]本专利技术涉及区块链
,尤其涉及一种分片区块链实现方法。
技术介绍
[0002]自从比特币被首次提出以来,区块链技术一直在飞速发展。区块链技术具有去中心化、数据透明公开和交易历史不可篡改等优点,在金融、物联网和供应链管理等各个领域都有着巨大的应用潜力。但是,目前存在一些限制区块链技术的问题,其中最关键的是安全性和性能问题。
[0003]当前的区块链系统存在各种安全问题,例如针对普通区块链可能存在的双重花费攻击和日蚀攻击,针对采用工作量证明的区块链的自私挖矿攻击、顽固挖矿攻击和区块扣留攻击等,针对采用权益证明的区块链的无利害关系攻击、打磨攻击和长程攻击等。与此同时,有一些致力于区块链安全性分析的工作,如,链质量、链增长和共同前缀三个区块链应当满足的基本特性、公共账本应当满足的一致性和活性。这些基础的安全性能研究和分析为其他区块链系统的设计和安全性分析奠定了良好的基础。设计安全的区块链协议并证明其安全性是当前研究的关键和热点。
[0004]区块链的性能表现是其能够得到广泛应用的另外一个关键因素。而在性能指标中,最重要的指标是交易吞吐量和交易确认时间。传统的第三方支付能够实现每秒钟几千甚至上万级别的交易吞吐量,而目前大多数区块链系统的吞吐量处于每秒几十或者几百的量级。目前来说,提高区块链系统吞吐量的方法可以分为链上方法和链下方法。在所有链上方法中,分片区块链技术是最有前途的技术之一。分片区块链的基本思路是将网络中所有节点分为多个分片,每个分片负责处理并维护该分片对应的区 ...
【技术保护点】
【技术特征摘要】
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
...
【专利技术属性】
技术研发人员:刘建伟,刘懿中,李大伟,李耕,黑一鸣,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。