文│ 中国电子技术标准化研究院 李鸣 孙琳 王晨辉
我国政府高度重视金融科技、数字货币和区块链技术的创新发展。2019 年 10月 24 日,中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习,中共中央总书记习近平在主持学习时指出,区块链技术应用已延伸到数字金融、物联网、智能制造、供应链管理、数字资产交易等多个领域。我国在区块链领域拥有良好基础,要加快推动区块链技术和产业创新发展,积极推进区块链和经济社会融合发展。2020 年 8 月14 日,商务部印发的《关于印发全面深化服务贸易创新发展试点总体方案的通知》指出,将在京津冀、长三角、粤港澳大湾区及中西部具备条件的试点地区开展数字人民币试点工作。
同时,随着电子商务等新业务形态的出现,消费者对及时性支付的消费意愿,以及普惠金融的社会需求,电子支付凭借其快速、便利的特点,正逐步取代现金成为主要的支付手段。本文将重点分析区块链技术在数字货币领域的应用,以及面临安全风险,并给出应对措施。
一、区块链技术特点
在 ISO 22739:2020《区块链和分布式记账技术词汇》以及国家标准《信息技术 区块链和分布式记账技术 参考架构(征求意见稿)》中,区块链被定义为“使用密码技术链接将共识确认过的区块按顺序追加形成的分布式账本”。广义上来讲,区块链技术是由多个网络节点构成分布式账本的技术范式,具有防篡改、高可追溯、不可抵赖等技术特点。
区块链的起源可以追溯至 2008 年,中本聪发布了论文《比特币:一种点对点的电子现金系统》。区块链是从比特币网络中的块链式数据结构与分布式账本技术体系中提炼出的底层技术。与传统中心化技术手段不同,区块链的每个节点均保留同样的账本数据,保证了数据的公开透明,使数据具有较高的安全性,可以解决电子支付中各相关方间信任成本高、对账时间长、流程繁琐等问题;同时,通过引入数字认证和时间戳技术,确保数据具有较高的可追溯性和不可抵赖性,有效支持反洗钱和反恐等监管要求,并解决数字货币双重支付等问题。正因为这些独特的技术优势,当前大多数字资产交易在设计时,更青睐于考虑采用或部分采用区块链技术。
二、区块链与数字货币的融合
数字货币是一种不以物理介质为载体、由数字化形式表示的货币形式。国际货币基金组织发布的论文《数字货币的崛起》,将数字货币分为央行数字货币、加密货币、电子货币等几种类型。根据数字货币的发行方、支付方式、价值等不同属性,区块链技术与之结合的方式也不同。
央行数字货币是主权货币的数字化表示,由法定货币发行机构创建和发行并对该货币承担责任。简单来说,就是把人民币、美元、欧元等纸质现金转化为电子形式。例如中国的 DCEP、欧盟的数字欧元、瑞典的 E-krona、新加坡的 Ubin 项目等。与发行实物现金相比,政府在发行央行数字货币时,通常会更加重视系统安全、监管、数据伪造、用户隐私等安全问题,因此,面对区块链等新兴技术的态度也会更加谨慎。目前,大部分的央行数字货币项目仍处于对区块链技术的探索阶段,大多计划采用区块链与现有中心化技术相融合的技术方案,例如将区块链应用于央行数字货币的分发、银行间对账等环节。
电子货币是一种类似债务的支付工具,消费者需要先向发行者购买电子货币,再使用该电子货币进行交易,例如中国的支付宝、美国的 PayPal 等。电子货币具有便利性、普遍性、交易成本低等特点。与央行数字货币相比,电子货币不能作为一种稳定的价值储存方式。但由于各国的央行数字货币均处于探索和试验验证的阶段,电子货币很好地弥补了人们对于便捷支付的需求,所以国内电子货币的普及非常迅速。据统计,微信支付和支付宝的交易额已超过了 VISA 和万事达卡在全球范围内的总和。因为区块链中的智能合约可以提高交易的自动化程度,时间戳可以确保交易的可查询和不可篡改,共识算法可以实现各账户间的可信价值传输。支付宝、PayPal 等电子支付服务商已经开始积极探索区块链在电子货币中的应用。据了解,研究方向大多集中在跨境支付、供应链金融等领域。
加密货币是一种具有匿名性、以电子的形式存在、没有集中发行方、使用不受地域限制的数字货币。加密货币没有和任何人或组织绑定在一起,它的价值来源于信任,即当使用某种加密货币的人越多、信任它的人越多,其价值越高。主流的加密货币包括比特币、以太币等。当前,各国对比特币等加密货币的态度不一。日本、德国、加拿大等国家已承认比特币作为货币的合法化,中国、英国、法国等国家将比特币视作需谨慎投资的金融工具或商品,而美国、俄罗斯、印度等国家则保持观望和谨慎的监管态度,并未对比特币的性质明确表态。因为加密货币是使用区块链技术通过算法自动产生的,区块链技术可以应用于加密货币的产生、分 发、 交易、销毁等各个环节。以比特币为例,依据特定算法,在产生新的区块时,系统自动增发比特币,并作为奖励自动分配给具有记账权的节点用户,节点用户可使用收到的比特币进行交易等操作。
三、基于区块链技术的数字货币面临的安全风险
区块链技术的可信、共识、防篡改等特点为构建数字货币的网络环境提供了技术保障。但其自身也存在多种安全风险。
一是加密算法存在被破解的风险。区块链运用了大量的加密算法来保证系统的安全性,例如通过使用非对称加密的数字签名算法,确保交易的身份验证和不可抵赖;通过使用多种哈希算法来实现工作量证明等共识机制。如果这些用于实现身份验证、账户身份信息保护、共识机制的加密算法被破解,则可能造成身份冒用、个人用户信息泄露、数字货币丢失、系统被控等风险,给个人财产安全以及社会发展稳定带来严重危害。从技术发展来看,随着密码学和量子计算等新技术的应用和发展,目前广泛应用的加密算法将面临被破解的风险,可能导致数字货币被非法获取或个人隐私泄漏等风险。例如,当前在区块链中普遍使用的椭圆曲线加密算法,其安全性是基于椭圆曲线上的有理点构成 Abel加法群上椭圆离散对数的计算难题。据最新资料显示,通过量子攻击破解 128 位密钥长度的椭圆曲线加密算法大约需要 2330 量子比特和 1260 亿量子门,而IBM 发布的量子技术路线图显示,其现实将于 2023年突破千个量子比特,2029 年实现百万量子比特。
二是协议安全需要更严格的证明和考验。区块链使用了大量的底层协议,如共识机制、数据发布规则等。如果这些协议存在安全问题,会给基于区块链的数字货币系统造成严重的破坏,并且可能会导致系统面临硬分叉的风险。由于共识机制的不一致性,当解决区块链的安全问题或其他错误时,进行区块链协议升级就会造成分叉。其中硬分叉是共识发生改变时,未升级的节点拒绝验证已经升级的节点产生的区块,已经升级的节点可以验证未升级节点产生的区块,两种节点各自延续自己认可的链,导致形成两条不同的链。硬分叉可能会影响整个区块链系统的一致性,破坏区块链系统的抗干扰性能 , 并影响数字货币系统的安全和可靠程度。例如以太坊的 THE DAO 事件之后,为了降低损失进行协议升级,因为软分叉修复方案全部失败,最终导致系统硬分叉,以太坊分裂成为 ETH 和 ETC 两条链,这违反了区块链的最长链原则以及唯一性。
三是区块链将面临智能合约漏洞风险。智能合约是以代码形式表现的一系列承诺,包括相关方履行这些承诺的协议,是区块链技术中的重要技术。智能合约的特点是自动化执行、不可逆转。但是,智能合约语言本身和合约设计中可能存在安全漏洞。以以太坊为例,目前已知的智能合约漏洞包括交易顺序依赖、时间戳依赖、误操作异常、可重入攻击等。在调用执行合约时,利用这些漏洞可能会造成相关方的财产损失。新加坡和英国多位研究人员的技术报告《对贪婪、挥霍以及自杀性合约的大范围调查》指出,包含 440 万个以太币的 34000 多份以太坊智能合约技术由于信息编码体系不完善,可能存在容易被攻击的漏洞,以及未完成独立审计的智能合约的风险。发生在 2017 年的智能合约代码问题就导致 5 亿美元损失,一半金额涉及以太币。设想这些安全问题出现在央行数字货币或电子货币系统中,对政府及企业造成的损失将更为严重。
四是网络攻击风险仍然不能忽视。区块链技术采用对等网络结构和消息广播机制,节点可以自由加入或退出网络,路由欺骗、地址欺骗等攻击将导致节点一致性算法结果的波动。如果基于区块链的数字货币系统缺乏协调控制机制进行管理,一个节点遭受攻击时,与该节点连接的用户将无法进行相应的操作。例如,麻省理工学院研究专家发现比特币网络面临日食攻击的问题,当攻击者针对某个管理节点发起日食攻击时,可以垄断被攻击节点的所有进出,将其与网络中其他节点隔离开,从而获得该节点的控制权。
四、应对措施
区块链的安全风险已经严重制约了加密货币的发展,降低了央行数字货币和电子货币采用区块链技术的可能性。制定完善的法律法规、标准和制度,并利用有效的技术手段解决安全风险至关重要。
从法律法规、标准和制度的视角来看,数字货币在采用区块链技术时应更为严格和谨慎。建议监管机构制定符合我国数字货币发展的法律法规和监管政策,相关标准化组织及核心企业制定区块链技术规范和符合数字货币领域需求的标准,研究不同区块链类型的安全问题,划分不同应用场景的安全等级,加强基于区块链技术的数字货币系统的安全管理能力。
从技术的角度,建议开发安全性更高的算法。在构建基于区块链的数字货币时,采用安全性更高的密码算法来增加攻击难度,尽早设计抗量子攻击算法。另外需要制定和规范密钥生成的方法,对密钥质量进行合格性检验。同时,加强国密算法在技术方案中的应用,积极开展密码算法的本地化改造。
针对协议安全问题,建议优化区块链协议设计。一是应尽量采用软分叉,通过基于区块链的数字货币系统协议功能设计优化,降低系统分叉的风险。二是通过设置节点授权管理等措施,降低双重支付等风险。例如在联盟链中,可设置少数管理员节点,对参与者权限进行有效控制,解决仅依靠算力优势就可以获取记账权和算力攻击等问题。
针对智能合约漏洞风险,建议在设计验证脚本和智能合约代码时,加强软件代码安全审计。例如, 在设计脚本语言时,可以限制循环指令的使用,并要求程序创建人按照程序执行步数支付成本等。此外,系统应设计完善的容错机制,结合运行环境隔离等机制,确保代码在规定的时间内如期执行。
对于网络层访问安全,应该根据不同场景的业务需求,分析是否需要使用非许可链,并注册网络中节点的身份。对于许可链,建议采用 VPN 专网、防火墙、网闸隔离等技术用来保护节点的物理网络和主机。在进行央行数字货币或电子货币系统设计和开发时,建议采用区块链与其他中心化技术相结合的设计方案,最大限度地保障系统安全。在规避安全风险的同时,实现基于区块链技术的数字货币的可信、防伪造、不可篡改、可追溯。
(本文刊登于《中国信息安全》杂志2021年第3期)
声明:本文来自中国信息安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。