发布时间:2020-01-08所属分类:经济论文浏览:1次
摘 要: 摘 要 区块链是比特币底层的核心技术, 展示了在自组织模式下实现大规模协作的巨大潜力, 为解决分布式网络中的一致性问题提供了全新的方法. 随着比特币的广泛流通和去中心化区块链平台的蓬勃发展, 区块链应用也逐渐延伸至金融、物联网等领域, 全球掀起了区块
摘 要 区块链是比特币底层的核心技术, 展示了在自组织模式下实现大规模协作的巨大潜力, 为解决分布式网络中的一致性问题提供了全新的方法. 随着比特币的广泛流通和去中心化区块链平台的蓬勃发展, 区块链应用也逐渐延伸至金融、物联网等领域, 全球掀起了区块链的研究热潮. 然而, 区块链为无信任的网络环境提供安全保障的同时, 也面临安全和隐私方面的严峻挑战. 本文定义了区块链系统设计追求的安全目标, 从机制漏洞、攻击手段和安全措施三方面对区块链各层级的安全问题进行全面分析, 提出了区块链的平行安全概念框架, 并总结未来区块链安全问题的研究重点. 本文致力于为区块链研究提供有益的安全技术理论支撑与借鉴.
关键词 区块链, 可证明安全, 隐私保护, 安全威胁, 监管
区块链技术起源于比特币[1] , 是以比特币为代表的众多数字货币方案的底层核心技术, 最初设计目的是解决电子支付中过度依赖可信第三方的问题. 区块链将哈希函数、Merkle 树、工作量证明 (Proof of work, PoW)[2] 等成熟的技术进行重组, 结合公钥加密、数字签名和零知识证明等密码学技术, 成为一种全新的分布式基础架构和计算范式[3] .
区块链极具潜力, 其应用已从最初的数字货币延伸至金融、物联网、智能制造等多个领域, 引起了产业界和政府的广泛关注. 为了推进区块链技术的研究和应用, 国内外先后成立了 R3 CEV、超级账本项目 (Hyperledger) 和中国分布式总账基础协议联盟等区块链联盟, 关注区块链技术的理论创新和应用推广. 各国政府机构也高度关注区块链的发展, 加紧部署区块链发展战略与政策. 2015 年 12 月, 英国政府发布了《分布式账本技术: 超越区块链》[4] , 预测区块链将引起新一轮技术变革, 建议加快区块链理论推广与应用开发进程. 我国工信部于 2016 年 10 月发布了《中国区块链技术与应用发展白皮书(2016)》[5] . 国务院在《“十三五” 国家信息化规划》中将区块链列入战略性前沿科技之一. 同年, 世界经济论坛也对区块链在金融场景下的应用进行预测分析, 认为区块链将在跨境支付、保险、贷款等多方面重塑金融市场基础设施[6] .
随着理论研究的深入, 区块链展现出蓬勃生命力的同时, 自身的安全性问题逐渐显露. 针对区块链数字货币应用的安全威胁也呈现高发态势. 各大交易平台被盗事件频发、智能合约漏洞凸显、匿名交易实施犯罪等安全事件更加引发公众对区块链安全性的质疑和对其发展前景的忧虑. 2014 年 2 月 28 日, 曾经世界规模最大的比特币交易平台 Mt.Gox 声称遭受交易延展性攻击 (Transaction malleability attack)[7], 85 万个比特币被盗, 损失估计约 4.67 亿美元, Mt.Gox 最终破产. 2016 年 6 月 17 日, 黑客利用以太坊智能合约漏洞攻击去中心自治组织 (Decentralized autonomous organization, DAO) 的众筹项目 The DAO, 导致 300 多万以太币资产被分离出 The DAO 资金池, 以太坊被迫进行硬分叉弥补损失. 2017 年 5 月 12 日, 比特币勒索病毒 WannaCry 在全球范围内爆发, 百余国家遭到袭击, 其中包括我国部分高校和政府机构网络.
区块链的应用发展迫切地需要系统的安全性研究作为指南. 各国权威机构也将研究重点转向区块链的安全性. 2016 年 12 月, 欧盟网络与信息安全局 ENISA 发布《分布式账本技术与网络安全: 加强金融领域的信息安全》[8] , 结合传统网络空间安全问题, 分析了区块链面临的安全技术挑战. 2018 年 1 月, 美国国家标准与技术研究院 NIST 发布了《区块链技术总览》[9] , 总结了区块链应用在区块链控制、恶意用户、无信任和用户身份等方面的局限性和概念误区.
区块链发展还处于初级探索阶段, 研究区块链的安全性问题具有多方面的意义. 第一, 研究区块链的安全性有助于促进科学创新. 区块链不是独立而生的技术, 其安全性涉及底层加密方案、分布式一致性、网络系统安全以及经济学激励机制等诸多层面. 区块链的安全性研究给多学科提出了更高的技术要求, 必将促进密码学、分布式、网络安全、博弈论等学科的创新发展. 第二, 研究区块链的安全性有助于加速技术推广. 目前, 理论安全性分析不完备、缺乏代码评估、安全事件频发等不安全因素限制了区块链的发展. 研究安全高效的区块链方案可适用于更多的应用场景, 逐步拓宽的应用实例也将在实践中更好地检验区块链的安全性. 第三, 研究区块链安全性有助于实现可信的可编程社会. 区块链支持的智能合约具有可编程性和自动执行性, 呈现出一定的智能化特征. 研究区块链的安全性, 有助于提高智能合约的安全性和模块化, 简化开发过程, 增强互操作性. 安全的区块链架构和自动执行的智能合约可以从技术上强制合约的执行, 降低违约风险, 构建可信的可编程社会. 第四, 研究区块链的安全性有助于实现可控监管. 区块链的不可篡改性和匿名性为实现监管带来了挑战. 监管机制可以预防、检测系统中的不法行为, 是系统受攻击后的安全修复手段. 分析现有区块链漏洞、潜在攻击和隐私保护机制有利于制定网络监测策略, 设计更高效、安全的监管机制.
本文着眼于区块链技术中的安全问题, 定义了区块链系统设计的安全目标, 梳理了区块链各层级存在的安全隐患, 对现有的安全措施进行对比分析, 提出了用于评估区块链网络攻防策略的平行安全概念框架, 并对未来区块链安全方向的研究重点进行展望, 以期对未来区块链技术的理论研究和应用发展有所助益.
本文的组织结构为: 第 1 节简要介绍区块链的基本概念, 包括比特币区块链的运行原理、区块链的一般定义、特点、分类和面临的安全技术挑战; 第 2 节从安全性和隐私保护两方面给出了区块链的系统级安全性目标; 第 3 节从安全角度剖析区块链的体系架构, 分析区块链各层次存在的安全隐患、潜在的攻击和现有的安全措施; 第 4 节提出区块链上的平行安全概念框架; 第 5 节提出未来区块链在安全方面的重点研究方向; 第 6 节总结全文.
1 区块链概述
2008 年 10 月, 化名为 “中本聪” 的学者在密码学论坛上公开了《比特币: 一种点对点的电子现金系统》一文[1] , 提出了利用 PoW 和时间戳机制构造交易区块的链式结构, 剔除了可信第三方, 实现了去中心化的匿名支付. 比特币于 2009 年 1 月上线并发布创世块, 标志着首个基于区块链技术应用的诞生. 根据 BTC.com 网站数据显示, 截至 2018 年 9 月 20 日, 已发行 1 700 余万枚比特币, 总市值超过 1 100 亿美元. 比特币是迄今为止区块链技术最成功的应用, 是众多区块链平台的开发基础, 也是学术界的研究重点. 本节以比特币为例, 简要介绍比特币区块链的工作原理、区块链的定义、特点、分类和面临的安全技术挑战等基本内容.
1.1 比特币的工作原理
比特币运行在 P2P 网络中, 是一种开放的电子现金系统, 允许节点自由加入, 无需通过可信第三方注册认证. 节点使用公钥的哈希值作为自己的数字假名, 也被称为地址, 具备一定的匿名性. 交易是比特币网络中传播和存储的基本数据实体, 常利用数字签名实现代币等数字资产所有权的转移. 交易不仅要经过验证, 还要在打包成区块后经全网节点达成共识, 才会被记录到比特币的区块链中. 比特币中采用的 PoW 机制保证网络中节点共同维护一份相同的区块链账本. PoW 的实质是求解一个满足部分碰撞的哈希值的原像. 节点竞争完成 PoW 求解的过程被称为挖矿, 这些节点被称为矿工. 矿工通过挖矿来竞争记账权, 即对区块链进行写操作的权限. 矿工挖矿成功后, 可以将打包好的交易区块连接到区块链末尾, 并获得一笔比特币奖励, 以 coinbase 格式保存在区块中. 比特币每产生 2016 个区块, 根据这些区块的生成速率来调整 PoW 的难度, 保证平均 10 分钟生成一个区块. 比特币中首个区块被称为创世块, 也是区块链的头部, 最新链接到区块链上的则为尾部. 挖矿生成区块的过程也是比特币的发行过程. 初始每个区块奖励 50 枚比特币, 每 4 年减半, 直至达到最小的单位聪 (Satoshi, 1 Satoshi = 10−8 BTC) 不能再减半为止, 后续挖矿不再发行比特币, 总量约 2 100 万.
比特币通过哈希函数将交易区块按时间顺序前后相连, 形成链式结构, 区块链结构如图 1 所示. 每个区块包含交易信息和区块头部两部分. 交易信息是区块的主体部分, 将交易以 Merkle 树结构存储. 最终生成 Merkle 树的根作为交易摘要被记录在区块头部中, 便于交易的验证和查找. 区块头部还记录了区块位置、PoW 参数、时间戳和填充字段等信息. 区块通过保存前驱区块的哈希值来实现区块间的连接关系, 标识自己在区块链中的位置. PoW 参数主要包括比特币采用的 PoW 难度和矿工求解得到的随机数, 用于验证矿工是否挖矿成功. 时间戳表明生成区块时矿工的本地时间. 填充字段内包含当前区块链的版本参数等信息.
新用户生成公私钥对和地址后加入比特币网络, 可通过挖矿或者他人转账的方式获得比特币. 用户首先创建并广播交易. 网络中的节点接收交易后, 将该交易转发给相邻的几个节点, 通过泛洪式的传播机制将交易在整个比特币网络中进行传播. 矿工收到交易首先进行验证, 若交易有效, 则保存在自己本地的交易池中, 等待打包成区块; 若交易无效, 则丢弃. 之后, 矿工按照一定规则从交易池中选取交易, 构造 Merkle 树. 然后将当前区块链尾部区块的哈希值、Merkle 树的根和 PoW 难度作为求解 PoW 的输入, 通过穷举的方式得到满足条件的随机数, 填充区块的头部信息. 随后, 矿工将新生成的区块连接到区块链尾部并广播新区块链, 等待网络节点达成共识. 其他矿工收到一个或多个新区块链后, 会对新区块链中的交易、PoW 等进行逐一验证, 并与本地存储的区块链进行对比. 最终, 诚实的矿工将在最长的有效区块链上达成共识, 并在尾部继续挖矿.
1.2 区块链的基本概念
区块链是一种典型的分布式账本技术, 通过共识等多边自治技术手段支持数据验证、共享、计算、存储等功能. 在不同应用场景下, 区块链可以存储并处理不同数据. 为了简化表述, 本文以交易作为区块链存储和处理的数据主体展开介绍.
从区块链的组织结构和运行原理来看, 可以狭义地将区块链视为一种以区块为单位的、按照时间顺序前后相连的单向链式数据结构, 通过共识机制、密码学组件和系统容错等技术保证分布式网络中节点共享数据的一致性和安全性. 从应用角度来看, 区块链是一种集成了密码学算法、分布式网络、共识机制、博弈论等技术的复合分布式网络技术, 利用链式区块结构存储数据, 利用共识机制实现交易的更新和共享, 利用密码学技术保证交易的安全性, 利用自动化脚本代码实现可编程性和自治性, 利用经济学激励机制激发节点自主维护系统稳定, 构成了一种全新的、自治的分布式基础架构与计算范式[3] .
如何在分布式网络中实现一致性是区块链技术的核心问题之一. 历经 10 年发展, 区块链先后具备去中心化、可追溯性、不可篡改性、不可伪造性、不可否认性和可编程性等特点.
去中心化是区块链发展伊始最显著的优势. 相比于传统的分布式一致性协议, 区块链大多建立在开放网络中. PoW 等共识机制能有效解决拜占庭将军问题, 允许节点数量扩展, 在部分节点偏离协议执行甚至实施恶意攻击的情况下, 仍能保证一致性. 而大多数 Paxos 系列的分布式一致性算法并不考虑拜占庭将军问题[10−11] , 在恶意节点实施主动攻击时, Paxos 算法无法保证消息传输的一致性. 虽然实用的拜占庭容错协议 (Practical Byzantine fault tolerance, PBFT)[12] 等拜占庭一致性算法可以在部分节点实施恶意攻击的情况下保持系统稳定, 但是这些算法在异步网络中最多支持 1/3 容错, 通信复杂度高, 效率较低, 不适用于允许节点自由加入的开放式网络环境. 去中心化的区块链还可以避免单点失效问题, 系统吞吐量不受单一节点限制. 在 Raft[13]、VR (Viewstamped replication, VR)[14] 等依赖强领导关系的一致性算法中, 如果领导节点宕机或者被攻击者控制, 那么整个系统的安全性和吞吐量都将受到严重影响, 系统的恢复过程也十分复杂. 相比之下, 区块链中 PoW、权益证明 (Proof of stake, PoS)[15] 等共识机制不需要中心节点或特权节点, 在设计上避免了单点失效问题.
区块链结合密码学技术, 可以保证交易的可追溯性、不可篡改性、不可否认性和不可伪造性, 支持数据安全共享和大规模协同计算, 也可实现对用户身份和机密数据的隐私保护, 更适用于需要高隐私性和安全性的分布式应用场景中. 可追溯性是指交易的每次变更都会按照时间顺序记录在区块链上, 前后关联, 可以查询交易从发布源头到最新状态间的整个变更流程. 不可篡改性和不可否认性指交易等数据一经验证达成共识被写入区块链后, 任何人无法对数据进行修改和抵赖. 不可伪造性指任何人无法通过有效手段伪造可通过矿工验证的交易, 更无法伪造整条交易变更记录. 相比传统的中心化数据库, 利用哈希函数的单向性和耐碰撞性、数字签名的防伪认证功能和分布式共识的容错能力, 区块链极大增加了攻击者恶意篡改、伪造和否认数据操作的攻击难度和成本, 有效提升数据的安全性.
以太坊 (Ethereum) 平台上支持的智能合约为区块链增添了可编程属性[16] , 将区块链构建成一个可编程的数据共享平台[17] . 具有可编程性的区块链高效地解决了传统合约中依赖中介等第三方维系、合约执行成本高的问题, 降低了合约参与方违约风险和诚实合约方的经济损失.
根据区块链维护过程中是否需要中心节点或者权限优势节点授权, 区块链可以被分为无许可区块链 (Permissionless blockchain) 和许可区块链 (Permissioned blockchain) 两类[18] .
无许可区块链是一种完全去中心的分布式账本技术, 允许节点自由加入和退出, 无须通过中心节点注册、认证和授权. 网络节点地位平等, 共享整个区块链账本, 可自由选择是否参与数据验证、挖矿等维护系统稳定的关键环节. 无许可区块链不依赖中心节点提供安全保障, 需要大量网络节点自主参与, 提供数据冗余. 因此, 无许可区块链要具备支持大规模网络和数据扩展的能力, 对共识机制的扩展性、容错能力和效率能耗等方面提出了更高的要求. 一般地, 无许可区块链缺乏身份认证和隐私保护机制, 还需要依靠经济激励机制激励网络节点自发地维护系统, 面临安全隐患多、匿名性弱、激励策略不相容等问题. 无许可区块链适用于完全公开的、全民监督的、全网自治的应用场景中, 如食品安全供应链溯源、知识产权管理等. 比特币就是经典的无许可区块链应用案例, 此类应用也是目前区块链研发的主流. 本文更侧重研究无许可区块链中的安全性问题.
相关知识推荐:基于区块链技术的战略性新兴产业知识产权管理及政策研究
相比于无许可区块链, 许可区块链中存在一个或多个节点具有较高权限, 这些节点可以是可信第三方, 也可能几个高权限节点之间仍然互不信任, 需要协商制定区块链维护规则和访问控制权限, 仅经过相应功能授权的节点才可访问数据、参与系统维护[19] , 与区块链去中心化的设计初衷相违背. 许可区块链是一种受限共享分布式账本技术, 具有维护成本低、共识效率高、匿名性强、数据吞吐量大等优势. 但是, 许可区块链往往面临高权限节点易受攻击、信任缺失等问题. 多数许可区块链共识不依赖复杂的计算问题, 计算敏感度低, 降低了攻击者的攻击成本. 许可区块链适用于小范围的、数据交互频繁的组织间或组织内部共享数据服务等应用场景, 如跨行清算、医疗保险理赔等. 英国央行联合伦敦大学提出的法定数字货币框架 RSCoin 方案是典型的许可区块链[20] , 由央行作为中心节点负责身份认证、下层节点分组和区块链数据整合等操作, 现已进入实验测试阶段.
1.3 区块链的安全挑战
区块链在数字货币领域的发展如火如荼, 展现出蓬勃生命力的同时, 也面临安全和隐私方面的严峻挑战.
首先, 区块链面临理论模型与实际网络状况相差甚远的安全性分析的挑战[21] . 本质上, 无中心节点的区块链的安全性依赖于大量的数据冗余. 即使攻击者有能力控制某节点进而伪造、篡改、删除该节点的有效数据, 但是要同时对众多网络节点实施攻击是十分困难的. 然而, 在实际区块链网络中, 由于各节点具备的安全防护等级参差不齐, 攻击者可以利用网络拓扑结构, 仅凭少量资源即可成功实施小范围攻击, 破坏系统的安全性与稳定性[22] .
其次, 区块链结构复杂, 缺乏系统级安全评估手段. 区块链的发展仍处于初级探索阶段, 它所包含的共识算法、激励机制、智能合约等关键环节的安全性尚待评估, 也缺乏代码评估机制以检测系统漏洞[23] . 区块链建立在对等网络 (Peer to peer, P2P) 中, 与客户端/服务器 (Client/Sever, C/S) 网络系统结构不同, 传统的防火墙、入侵检测等网络安全技术不能完全适用.
另外, 计算技术的发展为区块链安全性带来威胁. 随着量子计算的发展, 区块链底层依赖的哈希函数、公钥加密算法、数字签名、零知识证明等技术的安全性也将受到影响[24] .
最后, 完全去中心的匿名区块链系统缺乏有效的监管手段[25] , 当攻击者对系统安全性造成威胁、非法用户利用区块链实施违法行为时, 系统无法对攻击者和非法用户进行追责. 一旦攻击成功, 由于区块链的不可篡改性, 非法交易无法撤回, 将给用户造成不可逆转的经济损失. 匿名的区块链平台也将成为犯罪行为滋生、不良内容传播的温巢.
SCISSCIAHCI