1.基于关联环签名的拜占庭容错共识优化方法,其特征在于,包括:S1、主域节点和子域节点接收来自于共识域中的主节点广播的Pre-Prepare消息;
S2、当Pre-Prepare消息中的序号和视图通过验证后,生成PREPARE消息并进行关联环签名,广播至主域中所有主域节点;
S3、主域节点接收PREPARE消息,根据环签名验证确定发送PREPARE消息的节点为PREPARE消息内公钥环中的成员后,对PREPARE消息进行关联性验证;
S4、统计PREPARE消息通过关联性验证的票数加权和M1,若票数加权和M1大于2F+1,则生成COMMIT消息并进行关联环签名,广播至所有节点;
S5、主域节点和子域节点接收COMMIT消息,根据环签名验证确定发送COMMIT消息的节点为主域节点时,对COMMIT消息进行关联性验证;
S6、统计COMMIT消息通过关联性验证的票数加权和M2,若票数加权和M2大于2fp+1时,则将COMMIT消息写入其数据库中;
其中,F为全网能容忍的恶意节点票数和;fp为主域能容忍的恶意节点票数和。
2.根据权利要求1所述的基于关联环签名的拜占庭容错共识优化方法,其特征在于,所述Pre-Prepare消息为:<
其中,n为序号;m为消息;d为消息m的摘要;Sp为主节点对消息的签名;v为视图编号。
3.根据权利要求2所述的基于关联环签名的拜占庭容错共识优化方法,其特征在于,对PREPARE消息/COMMIT消息进行关联环签名的方法包括:A1、构建加密hash函数和映射到椭圆曲线的hash函数:H1:{0,1}*→Zq,H2:{0,1}*→G
其中,H1为加密hash函数;H2为映射到椭圆曲线的hash函数;Zq为一个0~q的循环群;G为椭圆曲线上的G点;
A2、根据映射到椭圆曲线的hash函数及节点的私钥、公钥环,计算节点的公钥镜像:y'=xiH2(RT)
其中,y'为公钥镜像;
A3、在Zq中选取一个随机数α,计算第i+1个环签名中间参数ci+1:ci+1=H1(RT,y',m,αG,αy')
A4、在Zq中选取一个随机数sj,j=i+1,…,n,1,…,i-1,顺次选取j的值计算环签名中间参数cj+1:cj+1=H1(RT,y',m,sjG+cjpkj,sjH2(RT)+cjy')A5、重复步骤S4,直至j=i-1时,采用环签名中间参数ci计算验证参数:si=α-xicimodq
其中,si为验证参数;q为Zq中最大的整数;mod为取模;
A6、采用验证参数si及执行步骤S4时选取的所有随机数sj生成环签名:σRT(m)=(c1,s1,...,sn,y')
其中,σRT(m)为T组中节点对Pre-Prepare消息/PREPARE消息的环签名。
4.根据权利要求3所述的基于关联环签名的拜占庭容错共识优化方法,其特征在于,所述PREPARE消息为:<
<
5.根据权利要求3所述的基于关联环签名的拜占庭容错共识优化方法,其特征在于,当共识域中的主节点出错时还包括视图切换:G1、当节点在设定时间内没有收到来自于主节点广播的Pre-Prepare消息时,节点向主域中的主域节点广播view-change消息:其中,v+1为新视图编号;h为水位线;P为通过prepared阶段后的消息;Q为通过commited阶段后的消息;Y为环签名中间参数的集合;U为环签名验证参数的集合;RT=(pk1,pk2,...,pkn)为T组成员的公钥组成的公钥环;pki=xiG为RT中第i个公钥;xi为与第i个公钥对应的私钥;
G2、主域节点接收到view-change消息后,根据环签名验证确定发送view-change消息的节点为view-change消息内公钥环中的成员后,对view-change消息进行关联性验证;
G3、统计view-change消息通过关联性验证的票数加权和M3,若票数加权和M3大于2fp+1时,则该节点具有一个view-change证书;
G4、采用原主节点编号加一对应的主域节点作为新的主节点,并采用具有view-change证书的主域节点向新的主节点发送new-primary消息;
G5、新的主节点接收到至少2fp+1个new-primary消息后,确定自己为新的主节点,并向全网发起new-view事务请求,fp为主域能接受的恶意节点票数和上限;
G6、新的主节点从具有view-change证书的主域节点中选取一个view-change证书,将view-change证书中位于水位线后的消息发送给共识域中的所有节点,并执行步骤S1至步骤S6。
6.根据权利要求3或5所述的基于关联环签名的拜占庭容错共识优化方法,其特征在于,对PREPARE消息/COMMIT消息/view-change消息进行环签名验证的方法包括:E1、对于i=1,2,…,n时,顺次选取i的值计算椭圆化参数zi'和镜像处理参数zi”:zi'=siG+eipki,zi”=siH2(RT)+eiy'其中,当i=1时,e1=c1,e为验证中间参数;
E2、根据椭圆化参数zi'和镜像处理参数zi”,计算验证中间参数:ei+1=H1(RT,y',m,zi',zi”)
其中,i≠n,ei+1为第i+1个验证中间参数;
E3、重复步骤E1和E2,直至得到椭圆化参数zn'和镜像处理参数zn”;
E4、根据椭圆化参数zn'和镜像处理参数zn”,判断 若不相同,则PREPARE消息/COMMIT消息/view-change消息环签名验证失败,否则环签名验证成功。
7.根据权利要求6所述的基于关联环签名的拜占庭容错共识优化方法,其特征在于,对PREPARE消息/COMMIT消息/view-change消息进行关联性验证进一步为:PREPARE消息/COMMIT消息/view-change消息环签名验证后,判断此次收到的PREPARE消息/COMMIT消息/view-change消息中的消息m及公钥镜像y'是否与过往收到的相同;
若相同,则PREPARE消息/COMMIT消息/view-change消息关联性验证失败,否则通过环签名关联性验证。
8.根据权利要求1-5或7所述的基于关联环签名的拜占庭容错共识优化方法,其特征在于,所述投票加权和的计算公式为:其中,qa=1为A组权重;qb=2为B组权重;qc=3为C组权重;qd=4为D组权重;当A~D组中的节点通过关联性验证时,与其对应的时效参数ai、bi、ci或di为有效,未通过验证或未参与验证时为无效,时效参数ai、bi、ci和di有效时取值为1,无效时取值为0。