区块链网络安全保障攻击与防御

阅读: 评论:0

第42卷第1期通信学报V ol.42No.1 2021年1月Journal on Communications January 2021 区块链网络安全保障:攻击与防御
江沛佩1,2,王骞1,2,陈艳姣3,李琦4,5,沈超6
(1. 空天信息安全与可信计算教育部重点实验室,湖北武汉 430072;2. 武汉大学国家网络安全学院,湖北武汉 430072;
3. 武汉大学计算机学院,湖北武汉 430072;
4. 清华大学网络科学与网络空间研究院,北京 100084;
5. 北京信息科学与技术国家研究中心,北京 100084;
6. 西安交通大学网络空间安全学院,陕西西安 710049)
摘  要:随着区块链技术的迅猛发展,区块链系统的安全问题正逐渐暴露出来,给区块链生态系统带来巨大风险。
通过回顾区块链安全方面的相关工作,对区块链潜在的安全问题进行了系统的研究。将区块链框架分为
数据层、网络层、共识层和应用层4层,分析其中的安全漏洞及攻击原理,并讨论了增强区块链安全的防御方案。最后,在现有研究的基础上展望了区块链安全领域的未来研究方向和发展趋势。
关键词:区块链安全;智能合约;隐私保护
中图分类号:TP309
文献标识码:A
DOI: 10.11959/j.issn.1000−436x.2021035
Securing guarantee of the blockchain network:
attacks and countermeasures
JIANG Peipei1,2, WANG Qian1,2, CHEN Yanjiao3, LI Qi4,5, SHEN Chao6
1. Key Laboratory of Aerospace Information Security and Trusted Computing, Ministry of Education, Wuhan 430072, China
2. School of Cyber Science and Engineering, Wuhan University, Wuhan 430072, China
3. School of Computer Science, Wuhan University, Wuhan 430072, China
4. Institute for Network Sciences and Cyberspace, Tsinghua University, Beijing 100084, China
5. Beijing National Research Center for Information Science and Technology, Beijing 100084, China
6. School of Cyber Science and Engineering, Xi’an Jiaotong University, Xi’an 710049, China
Abstract: While the security of blockchain has been the central concern of both academia and industry since the very start, new security threats continue to emerge, which poses great risks to the blockchain ecosystem. A systematic study was conducted on the most state-of-the-art research on potential security issues of blockchain. Specifically, a taxono-my was developed by considering the blockchain framework as a four-layer system, and the analysis on the most re-cent attacks against security loopholes in each layer was provided. Countermeasures that can strengthen the blockchain were also discussed by highlighting their fundamental ideas and comparing different solutions. Finally, the forefront of research and potential directions of blockchain security were put forward to encourage further studies on the security of blockchain.
Keywords: blockchain security, smart contract, privacy protection
收稿日期:2020−08−19;修回日期:2020−10−21
通信作者:王骞,****************
基金项目:国家重点研发计划基金资助项目(No.2020YFB1005500);国家自然科学基金资助项目(No.U20B2049, No.61822207, No.61972296, No.61822309, No.61773310);北京信息科学与技术国家研究中心基金资助项目(No.BNR2020RC0101)Foundation Items: The National Key Research and Development Program of China (No.2020YFB1005500), The National Natural Science Foundation of China (No.U20B2049, No.61822207, No.61972296, No.61822309, No.61773310), Beijing National Research Center for Information Science and Technology (No.BNR2020RC0101)
·152·通信学报第42卷
1 引言
自2009年面世以来,比特币[1-2]作为首个完全去中心化的加密货币在学业界和工业界越来越受到关注。比特币交易的底层数据结构是区块链,大量参与者在区块链上创建交易记录,不需要任何可信第三方参与。区块链作为以比特币为代表的数字加密货币体系的核心支撑技术,逐渐成为一种日益普及、全新的去中心化基础架构与分布式计算范式,并引领了人类信用进化史的新一代革新。从技术层
面讲,区块链技术实现了交易的去中心化和一定的匿名性,非实名和交易安全是区块链技术最大的优势。除了虚拟货币以外,区块链还在食品、医疗、汽车、运输业等领域提供数据溯源、公平交易等技术支持[3],例如,文献[4]利用区块链技术实现了对物流系统中交易的监管,其监管架构和我国管理体系吻合,是报道可见的第一个落地的可监管区块链系统。目前,区块链的广泛运用引起了相关政府部门、金融行业机构、科技企业和资本市场的高度关注。
然而,随着区块链的快速发展与普及,其潜在的安全漏洞也逐渐暴露出来。2020年7月底,西班牙加密货币交易平台2gether遭攻击,损失约140万美元[5]。最近,在以太经典(ETC, Ethereum classic)平台上爆发的一起51%攻击导致大约价值560万美元的加密货币被双倍消费[6]。由此可见,区块链技术的漏洞可能导致无法挽回的财产损失和隐私泄露。目前,国内研究者针对区块链安全问题进行了系统的综述[7-10],但这些工作与本文的侧重点和覆盖面有所差别。例如,文献[7]侧重于宏观层面的区块链技术发展;文献[9-10]侧重于介绍区块链威胁和漏洞相关研究,没有详细调研针对区块链威胁的具体防御措施。本文除了调研关于区块链安全漏洞的最新进展外,还详细介绍了目前最先进的防御方法,系统地调研了区块链系统的安全性问题。作为一个集成框架,区块链系统可分为4层:数据结构层、网络层、共识层和应用层。本文从区块链系统结构角度出发,深入分析数据结构层、网络层、共识层和应用层的安全漏洞、攻击原理以及对应的防御措施。
在数据结构层,最主要的安全威胁源于区块状态的不一致性和底层密码协议的脆弱性。区块链的底层
数据结构由区块组成,区块之间通过哈希指针链接。由于可信中心节点的缺失,区块链节点之间可能会存在状态的不一致性,这为分叉攻击的实施带来了可能性。同时,区块链网络还存在吞吐量有限、效率低的问题,这削弱了现有区块链平台的适用性。因此,研究者致力于研究设计可扩展区块链系统,遗憾的是,可扩展区块链的设计加重了区块链的不一致性。针对这一问题,研究者提出了一系列同时保证区块链一致性和可扩展性的协议[11-14]。另外,区块链的安全性由底层密码协议保证,密码协议的漏洞若被攻击者利用[15-16],会对区块链中数据的真实性、私密性造成危害,甚至可能造成严重的财产损失。
在网络层,攻击的主要目的是破坏区块传播所需的网络基础设施,其中路由攻击[17]是最常见的攻击之一。它会导致挖矿计算资源浪费,甚至为双重支付攻击提供便利。
在共识层,人们需要着重关注矿池的安全问题。随着区块链全网计算能力的不断增强,采矿难度不断升级,独立矿工的收益越来越难以保障。为了实现稳定的收入流,矿工们联合挖矿,组成矿池。然而,矿池的出现引入了再中心化的威胁,一定程度上破坏了区块链系统的安全支柱,这有利于实施51%攻击和双重支付攻击[18-19]。同时,矿池技术的发展也引起了激烈的竞争和攻击,如自私挖矿[20]、块克制(BWH, block withholding)攻击[21]、块克制后分叉(FAW, fork after withholding)攻击[22]等,这些攻击将会导致挖矿资源浪费。
南京 imax
在应用层,随着加密货币的不断发展和广泛应用,市场对更透明、更智能、更高效的交易需求逐渐增强,这催生了链下支付通道和智能合约的出现。智能合约被视为区块链2.0的标志[23],然而,智能合约的漏洞可能引发安全问题和隐私泄露问题,如交易跟踪、支付中止和虫洞攻击等[24-26]。随着智能合约的日益普及,其安全性已经引起了广泛关注[27-30]。另一方面,匿名货币系统的出现进一步加强了加密货币的匿名性,但现有的匿名货币系统仍存在隐私泄露问题[31-33]。
2 区块链系统模型
区块链系统是多种技术和机制的巧妙结合,可分为数据结构层、网络层、共识层和应用层4层,如图1所示。基于区块链特殊的数据结构、网络
第1期江沛佩等:区块链网络安全保障:攻击与防御·153·
结构和共识协议,区块链具有分散化、不可篡改性、可追溯性和透明性等特性。本节将从区块链层次结构的角度来概述区块链采用的工作机制,从而帮助读者深入理解各个层次的安全威胁和防御。
远在北京的家图1  区块链系统架构
2.1数据结构层
区块链底层的数据结构是区块,区块之间通过哈希指针链接并形成区块链网络。区块由区块头和区块体构成。区块头中包含关于该区块的主要信息,如上一个块的哈希值、默克尔树根和块时间戳等。根据区块头中的哈希值,可以定位到上一个区块的地址。区块体包含了实际数据,如交易信息等,区块体的内容由区块所有者通过私钥进行签名。由于哈希函数具有单向性和抗碰撞性,并且数字签名具有不可伪造性,区块链的区块内容是不可变且防篡改的。区块链中另一个基础数据结构是默尔克树。默克尔树是一个由哈希值组成的二叉树,它的每一个节点都是由子节点经过哈希函数得到的。在区块链系统中,默尔克树被用来验证交易的完整性,自下而上逐层计算默尔克树的哈希值即可快速验证交易。
2.2网络层
区块链系统网络层通信的基础结构是基于TCP连接的非结构化对等(P2P, peer-to-peer)网络。非结构化网络易于构造,并且对高度动态的网络拓扑(例如,对等者的频繁进出等)具有很强的稳健性。由于区块链网络的目标是尽可能快地分发信息,以达成对区块链的共识,因此在挖矿过程中,新发现的区块会在整个网络中通过泛洪传播。2.3共识层
中国医药指南
1) 挖矿过程
在共识层中,分布式的参与者对区块链状态达成一致的过程被叫作挖矿。具体来说,为了在区块链网络中达成一致意见,矿工需要运行一个具有容错性质的共识协议,以确保他们都同意附加到区块链条目的顺序。如果要向区块链添加新区块,每个矿工都必须遵循共识协议中指定的一组规则。区块链通过使用工作量证明(PoW, proof of work)机制来实现分布式共识,该机制要求参与者通过破解密码谜题来证明自己的计算能力。成功计算出解决方案的参与者将生成一个区块,并获得铸造该比特币的奖励。
在加密货币平台中,货币的交换以交易链的形式表示。交易链的完整性、真实性和正确性均由分布式矿工验证,他们是去中心化系统的安全支柱。具体来说,挖矿的主要过程如下。
①矿工将大量待验证的事务捆绑在一个称为块的单元中,并在给定块的情况下执行PoW 算法。
②矿工在解开了这个难题后,立即在整个网络上发布关于该区块的广播,以获得采矿奖励。
③在成功添加到分布式公共账本(即区块链)之前,该块将被网络中大多数的矿工验证。
钋元素④当挖掘到的区块成功添加到区块链中时,挖掘该块的矿工将获得一个区块的奖励。
2) 矿池
解开谜题的矿工将获得丰厚的回报,这吸引了大量的矿工参与,显著提高了比特币网络的整体计算能力。密码谜题的难度会随时间变化,系统会根据实际情况将挖掘一个区块的平均时间调整到几乎不变(大约10 min)。由于生成块的概率与计算能力成正比,单个矿工在有限的计算能力下获得奖励的概率非常低。针对这一局限性,矿工们形成矿池,将众的力量聚集在一起。在矿池中,矿工们可以解决更简单的密码谜题,并将解决方案(也叫作份额)提交给矿池管理员。然后,矿池管理员将检查该份额是一个部分工作证明(PPoW, partial proof of work)还是一个完整工作证明(FPoW, full proof of work)。注意到,PPoW对应简单的密码谜题,FPoW对应原始的密码谜题。接着,管理员分发正比于预估计算能力的奖励给矿工。最终,每个矿工就可以稳定地获得与预期相符的报酬。
·154·通信学报第42卷
2.4应用层
1) 链下支付通道
目前,比特币网络的最大吞吐量为每秒7笔交易(TPS, transaction per second),这意味着用户可能需要等待数十分钟甚至更长的时间才能确认交易。显然,这远远不能满足实际需求。针对这一问题,研究者探究了一系列提高区块链系统可扩展性的方案。提高吞吐量的方法之一是构建链下交易机制[34],在用户之间建立支付通道,以处理频繁的微交易。链下支付通道的工作流程如图2所示。在链下
支付通道中,只有在打开和关闭通道时才会访问区块链。提交开启交易后,用户将资金存入相互认可的地址中,并在关闭通道时以最接近的余额返还资金。此外,支付通道网络(PCN, payment channel network)[35]使没有直联通道的用户能通过网络中的一个路径彼此连接。
图2  链下支付通道的基本执行流程
2) 匿名货币
虽然传统加密货币能在一定程度上提供交易匿名性,但实际上比特币网络中的假名地址是伪匿名的。攻击者可以从公开账本中挖掘出许多关于交易的敏感信息,比如交易用户真实身份等。针对这一问题,研究者提出了全新的分布式匿名交易加密货币,如Dash[36]、Zcash[37]、Monero[38]等。这些匿名货币利用zk-SNARKs[39]和环签名[40]等密码学工具来保护交易的不可追溯性。
3) 智能合约
在应用层,最具影响力的技术之一是智能合约[23],它是在以太坊区块链中一段特定地址上的程序。以太坊区块链是目前最受欢迎的支持智能合约的去中心化平台。智能合约由合约中可执行单元的函数和智能合约状态数据组成。在智能合约中,程序代码记录多方之间的逻辑合约条款,并预定义触发条件和响应动作。智能合约中函数是由时间或事件(例如添加到区块链中的事务)触发的,并由达成共识的矿工存储和执行,执行的正确性由区块链的共识协议保证。此外,智能合约还可以接收、存储和发送自己的值。理想情况下,可以认为智能合约是由一个可信的全局机器执行的,它将诚实地执行每条指令。在智能合约的辅助下,金融交易规则可以在没有可靠第三方的情况下执行。
3区块链安全威胁及攻击
去中心化是区块链系统最吸引人的特性之一,但这一特性也带来了潜在威胁。在区块链自由市场中,恶意参与者可能会利用区块链系统的潜在威胁来获取非法利益。本节将从数据结构层、网络层、共识层、应用层讨论针对区块链的安全威胁,并在表1中进行了总结。
3.1数据结构层安全威胁
区块链的基本组成部分为区块。在交易过程中,不断有新的区块链接到区块链中,而链接过程存在区块链状态不一致和分叉的威胁。另外,区块链底层高度依赖密码算法,攻击者可以利用密码系统的漏洞造成用户私钥泄露,从而引发财产损失等安全问题。
1) 区块链状态不一致性
由于区块链系统中缺乏可信中心节点,交易信息由多个节点共同维护,而这种自由的交易增加了区块链状态的不确定性。具体来说,区块链的安全性建立在绝大多数矿工或计算能力是可信的并且工作在最长的链上这一假设。但实际上,区块链系统的一致性是具有不确定性和概率性的,它需要通过长时间的时延来确认交易,以避免攻击者篡改和利用。不一致的一个主要后果是分叉。如果某个恶意的矿工能成功分叉出一条合法的链,其他所有矿工将切换到这条新的最长链上[21]。这样一来,所有只发生在旧链上的交易都将被取消,从而导致重复消费(即双花攻击[41-42])和交易反转等一系列问题,造成财产损失。
2) 用户私钥泄露
在比特币交易系统中,交易过程是将资产的所有权从发送方地址转移到接收方的公共地址,该交易内容由签名者使用私钥签名。通常,用户通过比特币钱包存储私钥,比特币钱包是一种树状层次化确定性结构,其私钥和地址由一个主种子生成。在比特币钱包标准BIP32架构中[43],给定主公钥和子
第1期江沛佩等:区块链网络安全保障:攻击与防御·155·
私钥,攻击者可以非常容易地恢复出主私钥。Courtois 等[15]通过分析比特币钱包密钥管理方案中的随机数和随机事件里的关联性,提出了一种私钥恢复组合攻击。这种攻击能够破坏存储在系统中的密钥安全性,更严重的是,父节点私钥泄露将直接导致子节点私钥泄露,这也被叫作特权升级攻击。另一方面,区块链底层所使用的椭圆曲线数字签名算法(ECDSA, el-liptic curve digital signature algorithm)中随机数的重用也可能被攻击者分析、利用,从而使用户私钥暴露[16,44-45]。如果攻击者获取了受害用户的私钥,他/她就能伪造该用户的签名并完成任意交易,比如将受害用户的资产转移到非法账户上。
3.2网络层安全威胁
在网络层,区块链网络的基础网络基础设施漏洞和自身P2P网络结构是引发安全问题的主要原因。
路由攻击[17]是一种被广泛研究的网络攻击,在路由攻击中,自主系统通过劫持边界网关协议(BGP, border gateway protocol)[46]来拦截和操纵比特币流量。Apostolaki等[17]指出,网络基础设施具有2个有利于路由攻击的特点:第一,少数几个自主系统承载大部分比特币节点;第二,路由可以拦截到大量比特币节点的连接。基于这2个特点,可以进行分割攻击和时延攻击。在分割攻击中,AS层攻击者通过劫持边界网关协议,从区块链网络中隔离一组节点P,这些节点P在总挖掘能力中占有相当大的比例。通过利用集中的比特币矿池,攻击者只需劫持39个前缀就可以隔离占总挖掘能力近50%的节点。分割攻击要求攻击者完全控制受害者的流量,而时延攻击则只需时延区块向单个节点的传播,甚至可能只拦截一个连接。由于区块链流量是未加密的,且节点在向一个节点请求阻塞后20 min内不会再向另一个节点请求阻塞,攻击者可以通过拦截区块链流量来延迟或阻塞在某些连接上的传播。
通过路由攻击,攻击者可以隔离网络的一部分节点或时延区块传播,这会造成巨大的挖矿能力浪费和收入损失,并使网络暴露于各种各样的漏洞中,如双花攻击[41-42]等。
3.3共识层安全威胁
区块链的实现很大程度上得益于共识层的设
表1区块链安全威胁和防御方法
安全问题威胁和攻击描述负面影响防御方法层次
区块链状态不一致性蓄意分叉
有意地分叉合法链,并在其上进
行交易
双重支付,交
易反转
集体签名Rapid ChainChain-
Space 数据结
构层
密码系统漏洞用户私钥泄露分析密码系统漏洞,推测用户私钥财产损失加强密码系统安全性
网络基础设施漏洞路由攻击隔离部分网络或时延块传播
采矿资源浪
费,双重支付
增加节点连接的多
样性,加密通信
网络层
再中心化51%攻击、双花攻击、网络
分区
攻击者控制网络中大量算力
财产损失,交
易审查,区块
链系统损坏
SmartPoolProof-of-Personhood共识层
矿池竞争自私挖矿
选择性地传播被挖掘的块来使
其他诚实矿工的块失效
采矿资源浪费
采矿资源浪费
更新Beacon值,
联合费用
共识层BWH 发送PPoW,而不发送FPoW
FAW 自私挖矿和BWH的结合恶意分叉
支付通道的安全漏洞交易跟踪通过相同通道的关联跟踪交易信息泄露
信息泄露
BOLT
应用层支付中止通道容量不足导致的交易中止 Fulgor、Rayo
虫洞攻击窃取合法矿工的报酬财产损失AMHL
匿名货币交易隐私泄露交易指纹识别
短期负荷预测分析比特币交易中数额、节点输
入输出数量,追踪交易
信息泄露减少交易信息泄露
应用层侧信道攻击
通过时间信息推断交易发出者
和接受者的身份
信息泄露使用无时间差别加密算法
智能合约漏洞重入攻击在智能合约能终止前重新进入
函数
张中庆
财产损失,不
公平挖矿
正式认证
符号化执行
运行时间监测
应用层

本文发布于:2023-08-14 10:09:12,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/357303.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:区块   交易   攻击
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图