1.本发明属于
区块链技术领域,具体涉及一种基于区块链的高效安全的信任
共识方法。
背景技术:
2.信任管理通过迭代过程对收集的有用数据进行信任评估、建立、控制、增强和保证,已被广泛应用在云计算、社交网络、多代理系统、移动网络、无线通信等各个领域,能够维护系统实体之间的信任关系,为决策提供支持,增强系统的安全性,是保护网络系统安全的有效方法之一。零信任模型的提出旨在应对各种安全威胁特别是内部攻击,其基本概念是:系统不存在安全边界且不保证任何可信方的存在。系统的安全是通过严格的认证、访问控制和其他可靠技术来保证的。目前,关于零信任模型下安全性和信任问题的研究已经成为本领域的研究热点,其中没有任何系统实体可以被完全信任。
3.信任管理的研究已经持续了几十年,许多之前的研究都不是基于零信任模型,这些方法无法直接应用于现代分布式网络系统如异构集成网络、众包/众包感知、物联网等,这些系统中没有实体可以被完全信任。传统的集中式信任管理系统依赖于可信实体来执行收集数据、评估信任和管理信任的任务,因此不适用在零信任模型之下。分布式信任管理方法被寄予厚望,但现有的分布式信任管理方法在信任评估和公开验证方面缺乏共识。
4.区块链是实现去中心化的关键技术,其基于密码学、博弈论和点对点的网络通信,具有开放性、防篡改性、信息一致性和透明性等特点,在区块链中,多个
节点之间通过统一的共识机制相互协作,以自组织的方式来管理整个网络,从而摆脱对单个节点的依赖。然而,在区块链的许多应用场景中,安全性成为信任共识主要考虑的问题,这给分布式信任管理带来了巨大的挑战。
5.现有技术中,yang等人提出了一种支持车辆信任查询的分布式车辆网络信任管理系统来评估接收信息的信任值,通过将pow和pos相结合的共识机制来选举合适的矿工以降低共识的计算成本,但是,该方法未对其安全性和适用性进行分析。mao等人引入了基于区块链的信誉系统,提高了供应链管理和监督的有效性,该系统采用深度学习来评估信任,评估结果分为信任和不信任两种,但上述方法未采用分布式的信任评估和共识,也没有提及其效率和安全性。
6.因此,如何在零信任模型下高效、安全地达成信任共识成为本领域技术人员亟待解决的技术问题。
技术实现要素:
7.为了解决现有技术中存在的上述问题,本发明提供了一种基于区块链的高效安全的信任共识方法。本发明要解决的技术问题通过以下技术方案实现:
8.本发明提供一种基于区块链的高效安全的信任共识方法,包括:
9.请求方向信任评估方发起信任评估请求;
10.响应于
所述信任评估请求,所述信任评估方将云服务器中所存储数据对应的实体确定为待评估实体,并由各云服务器并行处理信任评估任务,生成该待评估实体的信任评估结果和验证标签;所述验证标签包括所述待评估实体的公钥和签名;
11.区块链获取所有共识节点的信任值,根据第一预设阈值及所述信任值,对所有共识节点进行随机性分片;
12.请求方向区块链中的所有共识节点发起信任评估验证请求,并从所有共识节点中确定出第一轮共识节点之后,所述第一轮共识节点根据所述验证标签对所述信任评估结果进行正确性验证;
13.当所述信任评估结果通过第一轮共识节点的正确性验证时,所述第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名后,公布所述签名、所述信任评估结果和验证标签,以使自身所在分片上的其他共识节点进行审批,并达成第一轮共识;
14.请求方利用可验证随机函数生成随机数种子,发送所述随机数种子至区块链的所有分片,并从每个分片中确定出第二轮共识节点;
15.所述第二轮共识节点根据所述验证标签对所述信任评估结果进行正确性验证,并在达成第二轮共识后,生成一个新的区块公布经过验证的信任评估结果。
16.在本发明的一个实施例中,所述区块链获取所有共识节点的信任值,根据第一预设阈值及所述信任值,对所有共识节点进行随机性分片的步骤,包括:
17.确定区块链共识系统中所有共识节点的分片数量n;
18.将信任值范围[0,1]均分为q个区域;
[0019]
根据q个区域对应的信任值范围,将区块链共识系统中的多个共识节点划分为q组;
[0020]
生成随机数种子,并利用所述随机数种子分别对q组共识节点进行排序;
[0021]
针对第q组共识节点,若其中的共识节点数量小于n,则跳过该组共识节点,否则,从该组中选取个共识节点并划分至n个分片;其中,各分片内共识节点的信任值之和大于等于所述第一预设阈值,|qq|表示第q组共识节点的节点数量,表示向下取整。
[0022]
在本发明的一个实施例中,其中,tvk表示第k个共识节点的信任值,tv表示k个共识节点的信任值之和,tv0表示第一预设阈值。
[0023]
在本发明的一个实施例中,所述请求方向区块链中的所有共识节点发起信任评估验证请求,并从每个分片中确定出符合第一预设条件的第一轮共识节点之后,所述第一轮共识节点根据所述验证标签对所述信任评估结果进行正确性验证的步骤,包括:
[0024]
请求方向区块链中的所有共识节点发起信任评估验证请求,并从所有共识节点中确定出符合第一预设条件的第一轮共识节点;
[0025]
请求方授予所述第一轮共识节点访问所述信任评估结果和验证标签的权限;
[0026]
第一轮共识节点向所述信任评估方请求获得所述信任评估结果和验证标签,并根据所述验证标签对所述信任评估结果进行正确性验证。
[0027]
在本发明的一个实施例中,当所述信任评估结果通过第一轮共识节点的正确性验证时,所述第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名后,公布所述签名、所述信任评估结果和验证标签,以使自身所在分片上的其他共识节点进行审批,并达成第一轮共识的步骤,包括:
[0028]
当所述信任评估结果通过第一轮共识节点的正确性验证时,所述第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名,并公布所述签名、所述信任评估结果和验证标签;
[0029]
所述第一轮共识节点所在分片的其他共识节点利用验证标签对所述信任评估结果进行审批;
[0030]
若所述信任评估结果获得第一预设数量以上的其他共识节点的正确性验证、且其他共识节点的信任值之和大于等于第二预设阈值,则达成第一轮共识。
[0031]
在本发明的一个实施例中,若thrk≥k,则thrk=k-1,其中,1,其中,z为正整数集,thrk表示第一预设数量;
[0032][0033]
其中,thr
t
表示第二预设阈值。
[0034]
在本发明的一个实施例中,所述请求方利用可验证随机函数生成随机数种子,发送所述随机数种子至区块链的所有分片,并从每个分片中确定出第二轮共识节点的步骤,包括:
[0035]
请求方利用可验证随机函数生成随机数种子,并将其发送至区块链的每个分片中;
[0036]
从每个分片中选取个第二轮共识节点。
[0037]
在本发明的一个实施例中,当存在多个第二轮共识节点对同一待评估实体的信任评估结果进行正确性验证时,以时间戳在后的正确性验证结果为准进行聚合。
[0038]
在本发明的一个实施例中,各所述云服务器中部署有可信运行环境。
[0039]
与现有技术相比,本发明的有益效果在于:
[0040]
本发明提供了一种基于区块链的高效安全的信任共识方法,通过在链下并行执行信任评估任务、并在分片后并行对待评估实体的信任评估结果进行正确性验证,进而在第一轮共识节点所在的分片内达成第一轮共识、在第二轮共识节点之间跨分片达成第二轮共识,具备高效性。其次,本发明的分片过程具有随机性,能够避免分叉的唯一的区块生成、避免集中化的利润均衡,从而防止ddos攻击和对某些特定节点的入侵,具备安全性。
[0041]
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
[0042]
图1是本发明实施例提供的基于区块链的高效安全的信任共识方法的一种示意图;
[0043]
图2是本发明实施例提供的基于区块链的高效安全的信任共识方法的一种流程图;
[0044]
图3是本发明实施例提供的基于区块链的高效安全的信任共识方法的一种交互示意图;
[0045]
图4是本实施例提供的多项式转化为算术电路的计算示意图。
具体实施方式
[0046]
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
[0047]
图1是本发明实施例提供的基于区块链的高效安全的信任共识方法的一种示意图,图2是本发明实施例提供的基于区块链的高效安全的信任共识方法的一种流程图。图1中包括实体:信任评估方、请求方和多个共识节点,每个信任评估方包括请求方租用的多个云服务器。请参见图1-2,本发明实施例提供一种基于区块链的高效安全的信任共识方法,包括:
[0048]
s1、请求方向信任评估方发起信任评估请求;
[0049]
s2、响应于信任评估请求,信任评估方将云服务器中所存储数据对应的实体确定为待评估实体,并由各服务器并行处理信任评估任务,生成该待评估实体的信任评估结果和验证标签;验证标签包括待评估实体的公钥和签名;
[0050]
s3、区块链获取所有共识节点的信任值,根据第一预设阈值及信任值,对所有共识节点进行随机性分片;
[0051]
s4、请求方向区块链中的所有共识节点发起信任评估验证请求,并从所有共识节点中确定出第一轮共识节点之后,第一轮共识节点根据验证标签对信任评估结果进行正确性验证;
[0052]
s5、当信任评估结果通过第一轮共识节点的正确性验证时,第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名后,公布签名、信任评估结果和验证标签,以使自身所在分片上的其他共识节点进行审批,并达成第一轮共识;
[0053]
s6、请求方利用可验证随机函数生成随机数种子,发送随机数种子至区块链的所有分片,并从每个分片中确定出第二轮共识节点;
[0054]
s7、第二轮共识节点根据验证标签对信任评估结果进行正确性验证,并在达成第二轮共识后,生成一个新的区块公布经过验证的信任评估结果。
[0055]
本实施例中,为了减少区块链的工作负载,可根据请求方的信任评估请求在链下的云服务器上并行执行信任评估任务;具体地,各云服务器中部署有可信运行环境以保护隐私,例如intel sgx enclave,链下信任评估的流程如下:
[0056]
(1)密钥初始化:
[0057]
生成公共参数(e,p,g1,g2,g,h,h),其中,e表示双线性映射:g1×
g1→
g2,g1,g2表示两个阶数为p的循环,g,h表示g1的生成元,h:{0,1}
*
→zp
是一个将任意字符串映射到z
p
的
单向哈希函数;
[0058]
请求方r和信任评估方tej分别利用密钥生成算法生成公私钥对(pkr,skr)及tej部署的enclave ej利用密钥生成算法生成公私钥对共识节点cnk利用密钥生成算法生成公私钥对
[0059]
r选取一个随机数yj,计算yj作为区块链共识系统的公共参数公开,然后r通过sgx的远程认证验证ej是否正确部署以及enclave内部署的相关函数代码是否正确加载,验证成功后r与ej建立一条专用通信信道,将yj通过ej的公钥加密后发送给ej,ej收到后用私钥解密获得yj;
[0060]
每个待评估实体i生成对称密钥symk
i,j
用以加密上传到tej的信任数据,选取随机数d
i,j
、αi和k
i,j
,每个待评估实体i生成各自的公私钥对,每个待评估实体i生成各自的公私钥对
[0061]
(2)数据采集:
[0062]
每轮信任评估任务执行前,tej都已经从待评估实体i采集到了加密后的信任数据集合ed
i,j
,其中,集合ed
i,j
={x
i,j
,eid
i,j
,c
i,j
,c
′
i,j
,δ
i,j
}包括:上传到tej的用对称密钥symk
i,j
加密后的信任数据x
i,j
=enc(symk
i,j
,tdi),x
i,j
=enc(symk
i,j
,tdi)为上传到tej的用对称密钥symk
i,j
加密tdi后的信任数据,用于ej解密x
i,j
,δ
i,j
=(pki,σ
i,j
)表示用于信任评估结果验证的验证标签,pki为待评估实体i的公钥,为待评估实体i的公钥,表示待评估实体i对信任数据tdi的基于elgamal的消息签名。
[0063]
(3)更新访问控制策略:
[0064]
每轮信任评估任务执行前,r从链上获得{eid
i,j
},用于标识每个x
i,j
对应的信任评估结果,并对参与信任评估结果验证的共识节点cnk的公钥进行哈希计算获得uidk,用于标识cnk;然后,r为ej生成访问控制策略polj,polj规定了每个uidk对应的共识节点cnk可以访问的eid
ij
对应的信任评估结果,r通过远程专用通信信道将polj传送给ej。
[0065]
(4)信任评估:
[0066]
r向tej发起信任评估请求,将信任评估请求消息req
te
和对应的签名发送给tej,tej收到请求消息后,用r的公钥pkr对签名进行验证,签名验证通过后,tej将其存储的加密信任数据集{ed
i,j
}发送给ej并执行信任评估任务;
[0067]ej
获取{ed
i,j
},在进行信任评估任务前,需要通过获得对称密钥symk
i,j
,然后用symk
i,j
解密得到信任数据tdi=dec(symk
i,j
,x
i,j
),ej需要用pki验证签名σ
i,j
,以防止tej对上传的信任数据进行篡改,验证:对上传的信任数据进行篡改,验证:其
中,
[0068]
进一步地,如果验证通过,ej进行信任评估,可将计算任务转化为多项式函数并利用算术电路计算,输出信任评估结果res
i,j
=f(td1,td2,
…
,tdi)和证明信息p
i,j
=(ρ
i,j
,δ
′
i,j
)。
[0069]
图3是本发明实施例提供的基于区块链的高效安全的信任共识方法的一种交互示意图。请结合图1-3,上述步骤s3中,区块链获取所有共识节点的信任值,根据第一预设阈值及信任值,对所有共识节点进行随机性分片的步骤,包括:
[0070]
s301、确定区块链共识系统中所有共识节点的分片数量n;
[0071]
s302、将信任值范围[0,1]均分为q个区域;
[0072]
s303、根据q个区域对应的信任值范围,将区块链共识系统中的多个共识节点划分为q组;
[0073]
s304、生成随机数种子,并利用随机数种子分别对q组共识节点进行排序;
[0074]
s305、针对第q组共识节点,若其中的共识节点数量小于n,则跳过该组共识节点,否则,从该组中选取个共识节点并划分至n个分片;其中,各分片内共识节点的信任值之和大于等于第一预设阈值,|qq|表示第q组共识节点的节点数量,表示向下取整。
[0075]
本实施例中,分片数量其中,tvk表示第k个共识节点的信任值,tv表示k个共识节点的信任值之和,tv0表示第一预设阈值。
[0076]
需要说明的是,在上述步骤s305中,若第q组共识节点的节点数量大于等于n,则从中选取个共识节点并依据信任值的大小进行排序,排序后按照预设规则将这些共识节点划分至n个分片,这n个分片的信任能力是均衡的,即每个分片的信任值总和近似相等,设两个分片的信任值总和为:则例如:第q组共识节点的节点数量大于等于n,从第q组共识节点中取出12个共识节点,信任值降序排列后为4.9、4.8、4.7、4.6、4.5、4.4、4.3、4.0、3.9、3.7、3.5和3.3,n=3,则第一个分片包含{4.9,4.4,4.3,3.3},第二个分片包含{4.8,4.5,4.0,3.5},第三个分片包含{4.7,4.6,3.9,3.7}。显然,三个分片的信任值是均衡分布的,总和分别为16.9,16.8,16.9。
[0077]
可选地,上述步骤s4中,请求方向区块链中的所有共识节点发起信任评估验证请求,并从每个分片中确定出符合第一预设条件的第一轮共识节点之后,第一轮共识节点根据验证标签对信任评估结果进行正确性验证的步骤,包括:
[0078]
s401、请求方向区块链中的所有共识节点发起信任评估验证请求,并从所有共识节点中确定出符合第一预设条件的第一轮共识节点;
[0079]
s402、请求方授予第一轮共识节点访问信任评估结果和验证标签的权限;
[0080]
s403、第一轮共识节点向信任评估方请求获得信任评估结果和验证标签,并根据验证标签对信任评估结果进行正确性验证。
[0081]
为了快速达成共识,本实施例使用多个分片并行验证信任评估结果。具体而言,请求方给每个分片中满足预设条件的第一轮共识节点发布访问信任评估结果和验证标签的权限,通过访问控制策略,每个分片中的第一轮共识节点只能访问分配给自身的信任评估结果和验证标签。可选地,预设条件为:每个分片中信任值高于预设信任阈值的共识节点为第一轮共识节点。
[0082]
当所述信任评估结果通过第一轮共识节点的正确性验证时,所述第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名后,公布所述签名、所述信任评估结果和验证标签,以使自身所在分片上的其他共识节点进行审批,并达成第一轮共识的步骤,包括:
[0083]
当信任评估结果通过第一轮共识节点的正确性验证时,第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名,并公布签名、信任评估结果和验证标签;
[0084]
第一轮共识节点所在分片的其他共识节点利用验证标签对信任评估结果进行审批;
[0085]
若信任评估结果获得第一预设数量以上的其他共识节点的正确性验证、且其他共识节点的信任值之和大于等于第二预设阈值,则达成第一轮共识。
[0086]
具体地,当信任评估结果通过第一轮共识节点的正确性验证时,第一轮共识节点对其验证后的信任评估结果进行签名及公布,公布后,分片中的其他共识节点继续对其进行审批,如果通过了第一预设数量thrk以上个其他共识节点的验证、并且其他共识节点的信任值之和大于等于第二预设阈值thr
t
,则达成第一轮共识并输出经过足够数量共识节点的验证后的信任评估结果。
[0087]
本实施例中,按照如下公式确定第一预设数量thrk及第二预设阈值thr
t
:
[0088][0089]
若thrk≥k,则thrk=k-1,其中,1,其中,z为正整数集,thrk表示第一预设数量;
[0090][0091]
其中,thr
t
表示第二预设阈值。
[0092]
可选地,上述步骤s6中,请求方利用可验证随机函数生成随机数种子,发送随机数种子至区块链的所有分片,并从每个分片中确定出第二轮共识节点的步骤,包括:
[0093]
请求方利用可验证随机函数生成随机数种子,并将其发送至区块链的每个分片中;
[0094]
从每个分片中选取个第二轮共识节点。
[0095]
本实施例中,请求方使用可验证随机函数vrf来生成一个随机数种子,并将其发送
到每个分片中,每个分片选取符合预设条件的个第二轮共识节点参与第二轮共识。由于第二轮共识的过程与第一轮公式类似,故此处不再赘述。
[0096]
可选地,当存在多个第二轮共识节点对同一待评估实体的信任评估结果进行正确性验证时,以时间戳在后的正确性验证结果为准进行聚合。
[0097]
为了增强安全性,如果存在不同的第二轮共识节点验证了同一待评估实体的信任评估结果的情况,每个分片会以时间戳在后的正确性验证结果为准执行信任聚合,进而来确认所有分片的共识结果。达成第二轮共识后,生成一个新的区块,并向所有贡献方即信任评估方和共识节点发放利润。
[0098]
请求方根据节点的信任值来确定每个分片的第一轮共识和跨分片的第二轮共识的最小共识节点数,详见算法2。算法2给出了一种方法来确定期望的审批节点的信任值总和thr
t
和最小的审批节点数thrk。共识节点的信任值总和越高,所需的审批节点数量就越少。第二轮共识生成了一个经过第二轮共识选举的共识节点批准的新区块。
[0099]
需要说明的是,本发明提供的共识方法在片内进行第一轮共识、跨片进行第二轮共识,此种设计可以保证分片内部和跨分片的共识安全,也有利于降低区块链的通信开销。
[0100]
图4是本实施例提供的多项式转化为算术电路的计算示意图。下面,结合图4对算术电路的计算过程进行说明。
[0101]
具体而言,算术电路由边和顶点组成,顶点称为门,通常包括加法门和乘法门,乘法门用于计算输入的积,加法门用于计算输入的和,加法门的优先级一般低于乘法门的优先级;边为每个门的输入和输出,每个门有两个输入,可以是一个常量系数c或变量xi(也就是信任数据tdi或者eid
i,j
),也可以是其他门的输出,但不能是两个常数。
[0102]
示例性地,算术电路按门对门的方式执行,最后输出包括了多项式的计算结果和证明信息。图3是一个只包含乘法门的电路,该电路计算一个常量系数c和变量x1的乘积,计算结果为f(x1,c)=c
·
x1,验证标签也会随着算术电路每个门运算的执行而不断转化,在图3所示电路中,δ
1,j
转化为δ
′
1,j
,同时将x1对应的eid
1,j
输入算术电路计算:ρ
1,j
=c
·
eid
1,j
,最后输出计算结果res
1,j
=c
·
x1和证明信息p
1,j
=(ρ
1,j
,δ
′
1,
)。
[0103]
本实施例中,共识节点对信任评估结果的验证过程如下:
[0104]
r向cnk发起信任评估结果验证请求,将信任评估结果验证请求消息req
tev
和对应的签名发送至cnk,cnk收到请求消息后,首先利用r的公钥pkr对签名进行验证,签名验证通过后,cnk向tej请求信任评估结果,将请求消息req
res
和对应的签名发送给tej;tej收到请求消息后,利用cnk的公钥对签名进行验证,若签名验证通过后,tej将请求消息req
res
转发给ej,并调用ej的ecall函数执行访问策略控制。
[0105]
进一步地,ej根据请求结果的cnk得到对应的uidk,然后根据tej的访问控制列表polj返回uidk能访问的tdi的信任评估结果和对应的证明信息:{res
i,j
,p
i,j
},并用ej的私钥对返回的{res
i,j
,p
i,j
}签名:}签名:最后将{res
i,j
,p
i,j
}和σ
i,j
返回给tej,tej将{res
i,j
,p
i,j
}和σ
i,j
转发给cnk,cnk用公钥验证σ
i,j
;示例性地,如果
σ
i,j
通过验证,则说明tej没有对{res
i,j
,p
i,j
}进行篡改,cnk通过证明信息p
i,j
对信任评估结果res
i,j
的正确性进行验证。
[0106]
具体验证过程如下:
[0107]
首先,将验证标签δ
i,j
=(pki,σ
i,j
)分为一阶验证标签和二阶验证标签,一阶验证标签可通过加法门转化为二阶验证标签,由于评估一个实体的信任值所需要的信任数据可能来源于多个信任实体i,因此设置二阶标签能够支持多数据源的输入。应当理解,一阶验证标签包括原始信任数据的验证标签;经过每个乘法门输出的验证标签;如果一个加法门的两个输入公钥相同(即同一个待评估实体i上传的信任数据),那么经过加法门输出的验证标签也是一阶验证标签,如果一个加法门的两个输入公钥不同(即不同信任评估实体i上传的信任数据),那么加法门输出的验证标签就是二阶验证标签,输出的验证标签就是二阶验证标签,
[0108]
门运算过程中,可以在验证得到运算信任评估结果的同时转化验证标签,具体来说,一阶标签转化为一阶标签:
[0109]
对于乘法门1,输入为:δ
i,j
=(pki,σ
i,j
=(r
i,j
,s
i,j
))输出为:res
i,j
=c
×
xi,ρ
i,j
=f(c,eid
i,j
)=c
×
eid
i,j
,pk
′i=pki,,对于乘法门2,输入为:x1,x2∈tdi,eid
1,j
,δ
1,j
=(pk1,σ
1,j
=(r
1,j
,s
1,j
)),eid
2,j
,δ
2,j
=(pk2,σ
2,j
=(r
2,j
,s
2,j
)),假设x1为主输入,输出为:res
1,j
=x1·
x2,ρ
1,j
=f(eid
1,j
,eid
2,j
)=eid
1,j
×
eid
2,j
,选取,选取对于加法门1,输入为:x1,x2∈tdi,eid
1,j
,δ
1,j
=(pk1,σ
1,j
=(r
1,j
,s
1,j
)),eid
2,j
,δ
2,j
=(pk2,σ
2,j
=(r
2,j
,s
2,j
)),pk1=pk2,输出为:res
1,j
=res
2,j
=x1+x2,ρ
1,j
=ρ
2,j
=f(eid
1,j
,eid
2,j
)=eid
1,j
+eid
2,j
,,
[0110]
进一步地,一阶标签转化为二阶标签,对于加法门2输入为:x1,x2∈tdi,δ
1,j
=(pk1,σ
1,j
=(r
1,j
,s
1,j
)),eid
2,j
,δ
2,j
=(pk2,σ
2,j
=(r
2,j
,s
2,j
)),pk1≠pk2,输出:res
1,j
=res
2,j
=x1+x2,ρ
1,j
=ρ
2,j
=f(eid
1,j
,eid
2,j
)=eid
1,j
+eid
2,j
,选取,选取对于加法门3输入:输出:res
i,j
=c+xi,ρ
i,j
=f(c,eid
i,j
)=h(c)+eid
i,j
,,
[0111]
接着,二阶标签转化为二阶标签,对于加法门4,输入为:接着,二阶标签转化为二阶标签,对于加法门4,输入为:输出为:res
i,j
=c+xi,ρ
i,j
=f(c,eid
i,j
)=h(c)+eid
i,j
,pk
′i=pki,,对于加法门5,输入为:x1,x2∈tdi,eid
1,j
,eid
2,j
,,pk1=pk2,输出:res
1,j
=res
2,j
=x1+x2,ρ
1,j
=ρ
2,j
=eid
1,j
+eid
2,j
,,对于加法门6输入为:x1,x2∈tdi,eid
1,j
,eid
2,j
,,输出为:res
1,j
=res
2,j
=x1+x2,ρ
1,j
=ρ
2,j
=eid
1,j
+eid
2,j
,,对于加法门7,输入为:x1,x2∈tdi,eid
1,j
,eid
2,j
,,pk1=pk2,输出为:res
1,j
=res
2,j
=x1+x2,ρ
1,j
=ρ
2,j
=eid
1,j
+eid
2,j
,,对于加法门8,输入为:x1,x2∈tdi,eid
1,j
,eid
2,j
,,pk1≠pk2,输出:res
1,j
=res
2,j
=x1+x2,ρ
1,j
=ρ
2,j
=eid
1,j
+eid
2,j
,,
[0112]
验证过程包括一阶标签的验证和二阶标签的验证,示例性地,分别按照公式和和验证一阶标签和二阶标签。
[0113]
通过上述各实施例可知,本发明的有益效果在于:
[0114]
本发明提供了一种基于区块链的高效安全的共识方法,通过在链下并行执行信任评估任务、并在分片后并行对待评估实体的信任评估结果进行正确性验证,进而在第一类共识节点所在的分片内达成第一轮共识、在第二类共识节点之间跨分片达成第二轮共识,
具备高效性。其次,本发明的分片过程具有随机性,能够避免分叉的唯一的区块生成、避免集中化的利润均衡,从而防止ddos攻击和对某些特定节点的入侵,具备安全性。
[0115]
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0116]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
[0117]
尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。
[0118]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
技术特征:
1.一种基于区块链的高效安全的信任共识方法,其特征在于,包括:请求方向信任评估方发起信任评估请求;响应于所述信任评估请求,所述信任评估方将云服务器中所存储数据对应的实体确定为待评估实体,并由各云服务器并行处理信任评估任务,生成该待评估实体的信任评估结果和验证标签;所述验证标签包括所述待评估实体的公钥和签名;区块链获取所有共识节点的信任值,根据第一预设阈值及所述信任值,对所有共识节点随机性分片;请求方向区块链中的所有共识节点发起信任评估验证请求,并从所有共识节点中确定出第一轮共识节点之后,所述第一轮共识节点根据所述验证标签对所述信任评估结果进行正确性验证;当所述信任评估结果通过第一轮共识节点的正确性验证时,所述第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名后,公布所述签名、所述信任评估结果和验证标签,以使自身所在分片上的其他共识节点进行审批,并达成第一轮共识;请求方利用可验证随机函数生成随机数种子,发送所述随机数种子至区块链的所有分片,并从每个分片中确定出第二轮共识节点;所述第二轮共识节点根据所述验证标签对所述信任评估结果进行正确性验证,并在达成第二轮共识后,生成一个新的区块公布经过验证的信任评估结果。2.根据权利要求1所述的基于区块链的高效安全的信任共识方法,其特征在于,所述区块链获取所有共识节点的信任值,根据第一预设阈值及所述信任值,对所有共识节点进行随机性分片的步骤,包括:确定区块链共识系统中所有共识节点的分片数量n;将信任值范围[0,1]均分为q个区域;根据q个区域对应的信任值范围,将区块链共识系统中的多个共识节点划分为q组;生成随机数种子,并利用所述随机数种子分别对q组共识节点进行排序;针对第q组共识节点,若其中的共识节点数量小于n,则跳过该组共识节点,否则,从该组中选取个共识节点并划分至n个分片;其中,各分片内共识节点的信任值之和大于等于所述第一预设阈值,|q
q
|表示第q组共识节点的节点数量,表示向下取整。3.根据权利要求2所述的基于区块链的高效安全的信任共识方法,其特征在于,其中,tv
k
表示第k个共识节点的信任值,tv表示k个共识节点的信任值之和,tv0表示第一预设阈值。4.根据权利要求3所述的基于区块链的高效安全的信任共识方法,其特征在于,所述请求方向区块链中的所有共识节点发起信任评估验证请求,并从每个分片中确定出符合第一预设条件的第一轮共识节点之后,所述第一轮共识节点根据所述验证标签对所述信任评估结果进行正确性验证的步骤,包括:请求方向区块链中的所有共识节点发起信任评估验证请求,并从所有共识节点中确定出符合第一预设条件的第一轮共识节点;
请求方授予所述第一轮共识节点访问所述信任评估结果和验证标签的权限;第一轮共识节点向所述信任评估方请求获得所述信任评估结果和验证标签,并根据所述验证标签对所述信任评估结果进行正确性验证。5.根据权利要求3所述的基于区块链的高效安全的信任共识方法,其特征在于,当所述信任评估结果通过第一轮共识节点的正确性验证时,所述第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名后,公布所述签名、所述信任评估结果和验证标签,以使自身所在分片上的其他共识节点进行审批,并达成第一轮共识的步骤,包括:当所述信任评估结果通过第一轮共识节点的正确性验证时,所述第一轮共识节点对经过自身验证的信任评估结果和验证标签进行签名,并公布所述签名、所述信任评估结果和验证标签;所述第一轮共识节点所在分片的其他共识节点利用验证标签对所述信任评估结果进行审批;若所述信任评估结果获得第一预设数量以上的其他共识节点的正确性验证、且其他共识节点的信任值之和大于等于第二预设阈值,则达成第一轮共识。6.根据权利要求5所述的基于区块链的高效安全的信任共识方法,其特征在于,若thr
k
≥k,则thr
k
=k-1,其中,1,其中,z为正整数集,thr
k
表示第一预设数量;其中,thr
t
表示第二预设阈值。7.根据权利要求6所述的基于区块链的高效安全的信任共识方法,其特征在于,所述请求方利用可验证随机函数生成随机数种子,发送所述随机数种子至区块链的所有分片,并从每个分片中确定出第二轮共识节点的步骤,包括:请求方利用可验证随机函数生成随机数种子,并将其发送至区块链的每个分片中;从每个分片中选取个第二轮共识节点。8.根据权利要求1所述的基于区块链的高效安全的信任共识方法,其特征在于,当存在多个第二轮共识节点对同一待评估实体的信任评估结果进行正确性验证时,以时间戳在后的正确性验证结果为准进行聚合。9.根据权利要求1所述的高效安全信任共识方法,其特征在于,各所述云服务器中部署有可信运行环境。
技术总结
本发明公开了一种高效安全的共识方法,包括:请求方向信任评估方发起信任评估请求;信任评估方确定待评估实体,并由各云服务器并行处理信任评估任务,生成信任评估结果和验证标签;区块链对所有共识节点进行随机性分片;请求方向所有共识节点发起信任评估验证请求,并确定第一轮共识节点,第一轮共识节点对信任评估结果进行正确性验证;当信任评估结果通过第一轮共识节点的正确性验证时,第一轮共识节点所在分片上的其他共识节点进行审批,并达成第一轮共识;请求方从每个分片中确定出第二轮共识节点;第二轮共识节点对信任评估结果进行正确性验证,并在达成第二轮共识后,生成一个新的区块链公布经过验证的信任评估结果,具备安全性和高效性。全性和高效性。全性和高效性。
技术研发人员:
闫峥 韩昊翔
受保护的技术使用者:
西安电子科技大学
技术研发日:
2022.10.10
技术公布日:
2023/2/23