区块链安全和共识机制
摘要:区块链技术作为一种分布式去中心化的技术,在无需第三方的情况下,使得未建立信任的交易双方可以达成交易。因此,区块链技术近年来也在金融,医疗,能源等多个行业得到了快速发展。然而,区块链为无信任的网络提供保障的同时,也面临着一些安全隐患。本文就从区块链共识层面,分析了区块链存在的攻击问题。并且我们还分析总结了未来共识算法可能的发展方向。
关键字:区块链;共识算法;共识攻击;分布式安全
Abstract: Blockchain technology, as a distributed and decentralized technology, enables both parties to reach a transaction without establishing trust without a third party. Therefore, blockchain technology has also developed rapidly in finance, medical treatment, energy and other industries in recent years. However, while blockchain provides protection for untrusted networks, it also faces some security risks. This paper analyzes the attack problems of blockchain from the perspective of blockchain consensus. And we also analyze and summarize the possible development direction of consensus algorithm in the future.
Keywords: blockchain;consensus algorithm;consensus attack;distributed security
目录
一、区块链概述
1、区块链基本概念
2、区块链安全挑战
3、本文章节安排
二、区块链主流共识算法
1、PoW工作量证明
2、PoS权益证明
三、基于区块链共识的攻击
1、双花攻击
2、51%攻击
3、自私挖矿
4、无利害关系问题
四、共识算法未来发展
1、PoW与PoS算法相结合
2、原生PoS算法的改进
3、原生PoW算法的改进
4、传统分布式一致性算法的改进及其他
五、总结与展望
六、参考文献
一、区块链概述
1、区块链基本概念
图1.区块链结构
区块链技术起源于比特币,是以比特币为代表的众多数字货币方案的底层核心技术,最初设计目的是解决电子支付中过度依赖可信第三方的问题[1]。比特币通过哈希函数将交易区块按时间顺序前后相连,形成链式结构,区块链结构如图1所示。每个区块包含交易信息和区块头部两部分。交易信息是区块的主体部分,将交易以 Merkle树结构存储。最终生成 Merkle树的根作为交易摘要被记录在区块头部中,便于交易的验证和查找. 区块头部还记录了版本号、区块高度、随机数nonce、时间戳等信息[2]。
区块链是一种典型的分布式账本技术,通过共识等多边自治技术手段支持数据验证、共享、计算、存储等功能。从区块链的组织结构和运行原理来看,可以狭义地将区块链视为一种以区块为单位的、按照时间顺序前后相连的单向链式数据结构,通过共识机制、密码学组件和系统容错等技术保证分布式网络中节点共享数据的一致性和安全性。从应用角度来看,区块链是一种集成了密码学算法、分布式网络、共识机制、博弈论等技术的复合分布式网络技术,利用链式区块结构存储数据,利用共识机制实现交易的更新和共享,利用密码学技术保证交易的安全性,利用自动化脚本代码实现可编程性和自治性,利用经济学激励机制激发节点自主维护系统稳定,构成了一种全新的、自治的分布式基础架构与计算范式。
图2.区块链安全目标
2、区块链安全挑战
根据网络系统的安全需求,结合区块链的特点,区块链系统构建的基本安全目标是通过密码学和网络安全等技术手段,保护区块链系统中的数据安全、共识安全、隐私保护、智能合约安全和内容安全[3]。各安全目标之间的关系如图2所示。
共识机制是区块链的核心,共识安全对区块链的数据安全起到重要的支撑作用。本文引用比特币骨干协议[4]中定义的一致性和活性两个安全属性来衡量和评估区块链的共识安全。
一致性:要求任何已经被记录在区块链上并达成共识的交易都无法更改,即一旦网络中节点在一条区块链上达成共识,那么任意攻击者都无法通过有效手段产生一条区块链分叉,使得网络中的节点抛弃原区块链,在新区块链分叉上达成共识。一致性是共识机制最重要的安全目标。根据共识机制在达成共识的过程中是否出现短暂分叉,一致性又分为弱一致性和强一致性。
活性:要求诚实节点提交的合法数据终将由全网节点达成共识并被记录在区块链上。合法数据包括诚实节点提交的合法交易、正确执行的智能合约中间状态变量、结果等。活性保证了诚实节点能够抵抗拒绝服务攻击,维护区块链持续可靠运行。
3、本文章节安排
本文第一章节对比特币基本概念以及存在的安全问题做了一个系统介绍。第二章介绍了区块链的主流的共识算法,主要介绍了PoW工作量证明机制[5]和PoS权益证明机制。第三章介绍区块链传统共识机制下可能存在的安全隐患。第四章介绍了区块链共识算法未来的发展现状。并在第五章对本文作一个总结以及对未来区块链发展的作一个展望。
二、区块链主流共识算法
1、PoW工作量证明
图3.PoW共识机制流程图
PoW(Proof of Work),即工作量证明,闻名于比特币,俗称"挖矿”。PoW共识机制是通过竞争记账的方式来解决区块链网络中一致性的问题。当一笔交易产生后,每一个想要记账的节点需要依靠自己的计算能力与他人竞争,争夺记账的权力。PoW共识机制流程图如图3所示。从流程图中看出,PoW工作量证明的流程主要经历三步:
1.生成Merkle根哈希;
2.组装区块头;
3.计算出工作量证明的输出;
i. 工作量证明的输出=SHA256(SHA256(区块头))。
ii. if(工作量证明的输出<目标值),证明工作量完成。
iii.if(工作量证明的输出>=目标值),变更随机数,递归,继续与目标值比对。
经过PoW共识后,最终获得记账权的人,他所打包的区块会连接到区块链的链上。同时它处理的数据也会被全网的其他节点记录在各自的小账本中。
PoW的优势在于,它将每个节点的算力都加入进网络的交易认证中,使得网络去中心化性更强,节点的作恶成本更高。理论上,除非有人掌握了全网51%以上的算力,否则网络的任何东西都是无法被篡改的。但PoW也存在一定的劣势,如浪费了大量资源,性能效率较低等。
2、PoS权益证明
PoS权益证明的原理类似于现实世界中的股份制,拥有股份越多,话语权就越强,获得记账机会的概率就越大。PoS算法要求节点验证者必须质押一定的资金才有挖矿打包资格,并且区域链系统在选定打包节点时使用随机的方式,当节点质押的资金越多时,其被选定打包区块的概率越大。
POS机制的优点就是不需要拼算力挖矿,不会浪费能源,同时缩短了共识达成的时间,记账效率提高了。POS机制的缺点也是非常明显,首先就是去中心化程度弱,容易出现强者恒强的情况,持币大户持币生息,从而出现垄断问题。另外一点就是安全程度,POS机制实现较为复杂,容易产生安全漏洞。
三、基于区块链共识的攻击
1、双花攻击
双花攻击又叫双重消费攻击,顾名思义,就是指同一个货币被花费了多次。在区块链网络中,每个用户的每一次交易都可以对应一个网络请求。而区块链整个系统会进行对此请求的验证。其中包括检查其资产的有效性,是否已经使用已花费的资产来进行交易。经过全网节点的检验后,广播这个成功验证的账本。
区块链网络能够通过以下两种方式应对双花攻击。一是每一笔交易都会有记录,他会提前确认这个比特币的状态,如果它已经被标记为划掉,那么交易会被拒绝。二是如果在此次交易被确认前先发起一笔交易,也就是这个时间段的交易还未被记账成区块block时,进行矛盾的第二笔交易,那么在记账时这些交易会被矿工拒绝。
2、51%攻击
比特币白皮书中,有过这样的表述:诚实节点控制算力的总和,大于有合作关系的攻击者算力的总和,该系统就是安全的。换句说,当系统中有合作关系的恶意节点所控制的算力,超过诚实节点所控制的算力,系统就是有被攻击的风险。
所谓51%的攻击,就是利用比特币网络采用PoW竞争记账权和“最长链共识”的特点,使用算力优势生成一条更长的链“回滚”已经发生的“交易行为”。51%是指算力占全网算力的51%,比特币网络需要通过哈希碰撞来匹配随机数从而获得记账权,算力衡量的是一台计算机每秒钟能进行哈希碰撞的次数。算力越高,意味着每秒钟能进行越多次的哈希碰撞,即获得记账权的几率越高。在理论上,如果掌握了50%以上的算力,就拥有了获得记账权的绝对优势,可以更快地生成区块,也拥有了篡改区块链数据的权利。当一个网络足够大时,如果恶意节点想发动51%攻击,那么他必须要掌握50%以上的算力,因此比特币自诞生以来从未遭受过51% 的攻击。
3、自私挖矿
自私挖矿攻击是一种针对比特币挖矿与激励机制的攻击方式,它的目的不是破坏比特币的运行机制,而是获取额外的奖励,并让诚实矿工进行无效计算。简而言之,自私挖攻击的核心思想是矿池故意延迟公布其计算得到的新块,并构造一条自己控制的私有分支,造成链的分叉。由于攻击门槛相对较低,且收益好,理论上,这种攻击更容易出现,并且其仅对使用PoW共识有效果,对PoS等不适用。自私挖矿是针对比特币协议的一种攻击,但很多相关文献中的论点没有正确地证明这种攻击的合理性。他们缺乏对攻击成本和每单位时间的损益进行适当的分析。
4、无利害关系问题
无利害关系(Nothing At Stake Attacks)问题指的是,权益证明机制中的矿工最佳的策略是在所有的叉上进行挖矿,因为签名的制造非常便宜。
解决方法可以将保证金加入剑手协议意味着无利害关系问题被正式解决。这里的剑手协议是指如果你在同一个层级的分叉上同时签署了两份协议,那么你就会失去你所能得到的区块奖励。只有当验证节点缴纳存款保证金的时候,它签署的承诺才有意义。当一个保证金节点在相同高度处创建或签署两个区块时,则其存款保证金就会被削减,并且这种行为会被认为是“明显不良的行为”。此类攻击仅针对PoS共识。
四、共识算法未来发展
自2014年起,随着比特币和区块链技术快速进入公众视野,许多学者开始关注并研究区块链技术,共识算法也因此进入快速发展的时期。我们从四条主线分别介绍未来区块链共识算法可能发展的方向。
1、PoW与PoS算法相结合
研究者基于PoW和PoS算法的有机结合,相继提出了权益-速度证明(PoSV)、燃烧证明(PoB),行动证明(PoA)等,致力于取长补短,解决PoW与PoS存在的能源消耗与安全风险问题。
图4.PoA共识过程
2014年4月,拉里雷恩提出了PoSV共识算法, 针对PoS中币龄是时间的线性函数这一问题进行改进, 致力于消除持币人的屯币现象。PoSV将PoS中币龄和时间的线性函数修改为指数式衰减函数,即币龄的增长率随时间减少最后趋于零。因此新币的币龄比老币增长地更快,直到达到上限阈值,这在一定程度上缓和了持币者的屯币现象。2014年5月发行的Slimcoin借鉴了比特币和点点币的设计,基于PoW和PoS首创提出了PoB共识算法。其中,PoW共识被用来产生初始的代币供应,随着时间增长,区块链网络累积了足够的代币时,系统将依赖PoB和PoS共识来共同维护。PoB共识的特色是矿工通过将其持有的Slimcoin发送至特定的无法找回的地址(燃烧)来竞争新区块的记账权,燃烧的币越多则挖到新区块的概率越高。PoA共识也是基于PoW和PoS,其共识过程如图4所示。其中采用PoW挖出的部分代币以抽奖的方式分发给所有活跃节点,而节点拥有的权益与抽奖券的数量即抽中概率成正比。
2、原生PoS算法的改进
原生PoS共识算法的改进目标主要是解决其固有的无利害关系问题。为解决无利害关系问题,形成了Tendermint等新共识算法。2014年提出的Tendermint的重大突破是使用区块、哈希链接、动态验证器集合和循环的领导者选举,实现了第一个基于PBFT的PoS共识算法。为解决无利害关系问题,Tendermint节点需要缴纳保证金,如果作恶则保证金就会被没收。Tendermint是一种拜占庭容错的共识算法,具有抵御双花攻击的鲁棒性,并且可以抵御网络中至多三分之一的破坏者的攻击。
3、原生PoW算法的改进
原生PoW共识算法的改进目标主要是实现比特币扩容或者降低其能耗。研究者相继提出了消逝时间证明(PoET)和运气证明(PoL)。
PoET是超级账本HyperLedger采用的共识算法,其基本思路是每个区块链节点都根据预定义的概率分布生成一个随机数,来决定其距离下一次获得记账权的等待时间。PoET共识的意义在于使得区块链系统不必消耗昂贵算力来挖矿,从而提高了效率,同时也真正实现了“一CPU一票”的公平性。类似地,PoL共识采用TEE平台的随机数生成器来选择每一轮共识的领导者(记账人),从而可降低交易验证延迟时间和交易确认时间,实现可忽略的能源消耗和真正公平的分布式挖矿。
4、传统分布式一致性算法的改进及其他
传统分布式一致性算法大多是非拜占庭容错的,因而难以应用于区块链场景(特别是公有链)。为此,研究者结合Raft和PBFT算法的优势,于2014年提出拜占庭容错的Tangaroa算法.Tangaroa继承了Raft简洁和容易理解的优势,同时在拜占庭错误环境下也能够维持安全性、容错性和活性。
五、总结与展望
区块链解决了分布式网络中的一致性问题, 颠覆了依赖可信第三方实现大规模组织管理控制的传统技术架构, 应用逐渐延伸至金融、物联网、智能制造等众多领域, 成为全球学术界的研究热点。区块链行业风风火火发展的同时, 技术本身存在的共识安全薄弱、隐私泄露、系统漏洞、等问题,阻碍区块链的发展。
而良好的共识机制有助于提高区块链系统的性能效率, 提供强有力的安全性保障, 支持功能复杂的应用场景, 促进区块链技术的拓展与延伸。但现如今存在的共识算法在不同层面有着大大小小的问题隐患。因此,通过不断改进共识算法,使其朝着更加安全可靠高效节能的方向发展,这也为区块链技术能够应用于各领域打了一个重要基础。
六、参考文献
- Yuan Yong, Wang Fei-Yue. Blockchain: the state of the artand future trends. Acta Automatica Sinica, 2016, 42(4):481-494
- Yuan Yong, Zhou Tao, Zhou Ao-Ying, Duan Yong-Chao, Wang Fei-Yue. Blockchain technology: from data intelligence to knowledge automation. Acta Automatica Sinica, 2017, 43(9): 1485-1490
- Qin Bo, Chen Li Chang-Hao, Wu Qian-Hong, Zhang YiFeng, Zhong Lin, Zheng Hai-Bin. Bitcoin and digital flat currency. Journal of Cryptologic Research, 2017, 4(2): 176-186
- Garay J, Kiayias A, Leonardos N. The bitcoin backbone protocol: analysis and applications. In: Proceedings of the 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques. Sofla, Bulgaria:EUROCRYPT, 2015. 281-310
- Dwork C, Naor M. Pricing via processing or combatting junk mail. In: Proceedings of the 12th Annual International Cryptology Conference. California, USA: CRYPTO, 1992. 139-147