㊀第52卷第3期郑州大学学报(理学版)Vol.52No.3㊀2020年9月J.Zhengzhou Univ.(Nat.Sci.Ed.)Sep.2020
收稿日期:2019-09-18
作者简介:王冠(1968 ),男,山西霍州人,副教授,主要从事信息安全㊁可信计算研究,E-mail:wangguan@㊂基于可信性评估的区块链共识机制的研究
王㊀冠1,2,㊀张文月1,2
(1.北京工业大学信息学部㊀北京100124;2.可信计算北京市重点实验室㊀北京100124)
摘要:共识算法是区块链的核心㊂为解决基于算力的共识算法存在的安全问题,一般采用基于历史行为的信任值
代替算力,但该方法只根据特定的行为决定每个节点的信任值,太过于简单,不适用于复杂的应用场景㊂因此提出
了一种基于可信性评估的区块链共识机制,利用区块链节点在整个区块链上的工作表现产生的信任值,来定义节
点的力量,信任值由信任值评估算法产生,在算力和时间方面增加攻击成本㊂经过对提出的共识机制的性能测试
和安全性分析,表明本文中的共识机制对于基于算力的攻击成本远超于其他共识算法㊂
关键词:可信性评估;信任值;共识组;算力攻击
中图分类号:TP301㊀㊀㊀㊀㊀文献标志码:A㊀㊀㊀㊀㊀文章编号:1671-6841(2020)03-0027-07DOI :10.13705/j.issn.1671-6841.2019428
0㊀引言
在区块链中,每个节点都是独立的,具有自治性㊂不同的节点维护着内容相同的区块链账本,同时也各自独立地将网络中产生的新的交易打包成一个区块,并广播给其他节点㊂区块链是线性的,所以同一时期只有一个新打包的区块能加入主链,以保证数据的一致性,因此,如何选择区块是区块链共识的重要任务之一㊂这个过程又称为如何分配记账权[1]㊂
基于算力的共识算法存在许多弱点,包括弱一致性㊁低交易吞吐量和一些共识攻击,比如51%攻击(可
以导致双重攻击[2-3],私自挖矿[4-5]),它意味着当算力达到51%这个阈值时,这种攻击几乎可以成功
㊂现有的基于算力,即工作量证明的区块链系统都依赖于这样的假设:攻击者不能拥有超过33%或者51%的算力,然而随着比特币攻击的复杂性,这个假设有可能不再成立㊂以SHA256哈希算法为例,产生这个算法的哈希碰撞需要248年,但是随着量子计算机技术的发展,此哈希算法有可能会在有限时间内被破解[6]㊂基于算力的共识算法在安全性和性能方面已经有了一些改进㊂有一种利用基于历史行为的信任值来代替算力的共识算法的机制[7-8],此机制可以根据历史行为检测恶意节点,降低恶意节点争夺记账权的成功率㊂此机制只是对特定的行为(比如身为领导者却没有在规定时间内打包新区块)进行监测,以此来决定每个节点的信任值,但由于简单,不适用于复杂的应用场景㊂文献[9]提出的Byzcoin 共识算法建立在Bitc-oin-NG 和实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT)的基础上㊂在Byzcoin 算法中,经过挖掘找到密钥块的节点在有限时间内会成为见证人,每次创造一个新的密钥块时,都会通过一组见证人之间的PBFT 视图变更协议选出新的领导者㊂新领导者每隔几秒就会提交一个包含新交易的区块㊂如果一组见证人已经通过验证并同意微块,则领导者提交微块㊂协议本质上是一个两阶段的PBFT 协议,通过集体签名的方案取代了MAC(media access control)认证㊂通过这种方式,每次创建新的密钥块时,证人组基于其计算能力动态地形成新的领导者,并且每隔几秒就可以提交一个包含一组事物㊁并且有足够数量证人集体签字的微块㊂当领导者是恶意的并且不产生微块,虽然Byzcoin 可以检测到它,但是却没有其他惩罚,不能阻止其再次成为领导者㊂所以,Byzcoin 遭受共识攻击的成本是相同的㊂
本文在现有的基于算力的共识机制的基础上,提出了一种基于可信性评估的区块链共识机制,并提出了一种节点信任值评估算法,经过性能测试和安全性分析,表明本文的共识机制对于基于算力的攻击成本远超