Page 272 - 《软件学报》2021年第5期
P. 272

1496                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021

                 技术的发展受到了学术界和工业界的广泛关注                 [1−4] ,其重要性甚至已经上升至我国的国家科技发展战略层面.
                    然而,区块链的多技术融合架构在赋予区块链技术多种优良技术特性的同时,也因为自身结构的复杂性和
                 应用场景的多样性,而导致区块链面临诸多安全威胁.恶意攻击者可能针对区块链应用的底层技术缺陷、低耦
                                                    [5]
                                                                                            [6]
                 合性等安全漏洞展开攻击,从而非法攫取利益 .据区块链安全公司派盾(Peck Shield)的数据显示 :2019 年全年
                 大约发生了 177 起区块链安全事件,给全球造成的经济损失高达 76.79 亿美元,环比增长了 60%.随着区块链应
                 用进程的不断推进,越来越多的安全问题和攻击方式出现在人们的视野中,其中既存在针对区块链技术架构的
                                                                      [9]
                                                    [8]
                                         [7]
                 普适性攻击方式,例如 51%攻击 、双花攻击 、交易顺序依赖攻击 等,也存在针对特殊场景的特定攻击方式,
                 譬如芬尼攻击     [10] 、粉尘攻击 [11] 等.这些安全问题不仅会导致直接的经济损失,还会引起社会各界对区块链技术
                 的质疑,严重影响了区块链技术的发展进程.因此,只有采用有效的防御策略和相关技术,才能保证区块链良好
                 的网络环境,促进区块链技术的快速发展.
                    本文第 1 节概述区块链技术的系统架构、发展历程及安全态势,按照区块链层级架构对区块链网络中现有
                 的安全问题进行归纳总结,确定层级分类、攻击关联分析两个综述维度.第 2 节~第 6 节从层级分类的横向维度
                 出发,分别从攻击场景、攻击目标、攻击原理等方面分析论述已有区块链攻击的共性与特性,并在分析相应解
                 决方案的同时,给出一些有效的防御策略.第 7 节从攻击关联分析的纵向维度出发,研究跨层级的区块链攻击场
                 景,分析并归纳出一系列的区块链攻击簇,并针对性地构建出一个相对全面的区块链安全防御体系.第 8 节总结
                 全文,评估区块链技术当前的安全态势,展望区块链技术在未来复杂服务场景中面临的机遇与挑战.
                 1    区块链概述


                 1.1   区块链简介
                    2008 年,Nakamoto 首次提出一种基于 P2P 网络、分布式数据存储、共识机制等技术的电子现金系统——
                 比特币  [12] .该系统允许用户节点自由加入、退出,因此具备公开透明的特点;系统中的节点在不需要中心化机构
                 的情况下,通过 P2P 网络维护分布式账本即可实现点对点的可信交易,所以该系统具备去中心化的特点;全网节
                 点间不需要彼此信任,通过共识机制即可对各节点维护的账本达成一致认知,因此,该系统具备去信任化的特
                 点;在维护账本的过程中,系统中的交易被矿工打包成区块并广播至全网,用户节点根据该区块中存储的上一区
                 块的 hash 值进行链式存储.当入链“深度”超过 6 之后,该区块中的数据将无法被篡改,所以该系统具备不可篡改
                 性 [13] .因此,比特币可以看作是一个由全网节点集体维护的分布式账本,为解决传统服务架构中的信任问题带来
                 了新思路,在诸多领域中都具有十分重要的研究和应用价值                     [14] .
                    区块链则是在比特币技术基础上提炼发展而来的新兴技术体系                        [15] ,在比特币原有技术架构上增加了智能
                 合约、密码学技术等计算机技术,具备更好的可编程性和数据隐私保护.其发展历程可以大致分为 3 个阶段                                   [16] .
                    •   区块链 1.0,可编程货币时代,这个阶段奠定了区块链技术的理论基础,初步形成了相对完善的技术体
                        系,应用场景主要为数字金融领域,经典应用为比特币.
                    •   区块链 2.0,可编程应用时代,通过引入新型的共识算法、智能合约等技术,赋予区块链更好的可编程性
                        和兼容性.应用场景由金融服务领域向游戏、医疗、教育等领域延伸,代表应用为以太坊                              [17] .
                    •   区块链 3.0,可编程社会时代,各行业的区块链应用发生融合,形成以现实社会为依托的区块链生态体
                        系.由 2.0 时代的与行业相结合,转变为与社会相结合.
                    随着人们对区块链技术的不断重视,无论是区块链技术的理论研究还是应用开发都得到了快速的发展.到
                 目前为止,关于区块链技术的理论研究已经进入 2.0,甚至 3.0 阶段,而区块链的应用开发则处于 1.0 到 2.0 的过
                 渡阶段  [18] .大量数字货币钱包应用的研发部署以及交易所、商家的出现,使得区块链技术与金融服务行业相结
                 合,形成了一个相对成熟的新支付体系.与此同时,各大银行携手金融科技公司组建区块链大联盟,例如 R3
                 CEV [19] ,China Ledger [20] 等,通过成立区块链实验室来发展核心业务,尝试对区块链 2.0 阶段展开深入探索,旨在
                 研究区块链技术与传统行业实际应用场景的兼容性,并以此建立区块链在 2.0 阶段的发展标准,加快区块链技
                 术的应用进程.此外,Cisco     [21] 联合金融及其他行业公司组成超级账本(Hyperledger)         [22] 联盟,对区块链在 3.0 阶段
   267   268   269   270   271   272   273   274   275   276   277