区块链保护技术
2020-06-10韩秋月
韩秋月
(同济大学软件学院 上海市 201804)
迄今为止,区块链受到了国内外众多地区的关注,越来越多的国家政府对于区块链技术在未来公共服务提供、经济体制变革、社会生活机制优化上存在着巨大的潜在应用价值达成一致认识,并在推动区块链发展方面发挥着极重要的作用。习近平在中央政治局第十八次集体学习时强调,把区块链作为核心技术自主创新重要突破口,加快推动区块链技术和产业创新发展。区块链技术因其在金融、共享经济、物联网等方面存在很高的应用价值,也成功吸引了包括微软、IBM、阿里巴巴、腾讯、摩根大通在内的国内外企业巨头的一致关注。前不久,百度旗下百度金融正式加入Linux基金会旗下Hyperledger开源项目,成为该项目核心董事会成员。腾讯在2017年4月发布区块链方案白皮书,旨在打造区块链生态。阿里巴巴在2016年3月24日与普华永道达成合作,应用区块链打造透明可追溯的跨境食品供应链。可以看出,区块链已成为科技界和金融圈的热点。
伴随着区块链的迅速发展,许多安全问题与挑战也应运而生。近几年,区块链安全事件频发,信息传输的安全、交易安全等一系列安全问题得不到妥善解决,给企业和个人造成很多安全隐患。学术界和产业界对区块链系统中用户的隐私保护技术展开了深入研究,目前来说,比较典型的对交易内容进行隐私保护方案主要有:门罗币所采用隐秘地址与环签名,Zcash所采用的零知识证明技术,以太坊中智能合约的执行,以及应用较为广泛的硬件安全模块、硬件钱包、门限数字签名等。本文将对上述几种主要的保护方式进行介绍。
1 隐秘地址与环签名
门罗币是一种专注于隐私保护的数字货币,采用多种隐私保护机制,主要有隐秘地址与环签名。其中,为了防止外部人员从帐本中发现一笔资金的真实去向,门罗币对交易输出地址进行加密。在传统的数字货币中,交易输出地址的内容是接收方的公钥信息和地址信息,观察者可以直接发现资金的去向。在门罗币中,输出地址是由接收方的公钥和发送方产生的随机参数加密后得到的新地址信息,由于随机参数只有发送方掌握,因此观察者无法发现新地址信息和接收方之间的关系。通过产生不同的随机参数,可以保证每一次交易的输出地址都不同,并且保证这些地址之间没有关联。环签名具体指的是,当用户直接对一笔交易进行签名时,这笔交易的来源自然就被确定是该用户,但是如果用户另外引进一部分交易,将自己的签名跟这些签名进行混合,就又得到了一个新的签名,这样别人就无法确定这笔交易是否是来自该用户,只能判断来自于那些公钥组成的集合[1]。
2 零知识证明
零知识证明是一种证明方法,在证明者不向验证者泄露任何有效信息的情况下,使得验证者相信某个论断是正确的。Zcash是分布式匿名支付方案Zerocash的一种实现[2],是一种去中心化、开源的加密互联网货币,支撑Zcash是名为zk-SNARK的零知识证明技术。随着区块链的发展,越来越多区块链系统都开始引入零知识证明技术作为安全保护技术。下面以基于分解离散对数困难性的零知识证明为例,简单介绍该种保护技术,其中涉及到一些代数学基础,在此不作详细说明。
基于公共参数(G,g,h),哈希函数H(x),以及证明者的私有参数w,且h=gw,我们构造出零知识证明∏DL,证明了在无证书的情况下,其拥有和公钥gw对应的私钥w,具体过程如下:
验证者选取随机数e并发送给证明者;
关于正确性,在正常情形下有:
G为q阶循环群,正常情形下有:
关于安全性,针对P与V交互过程中可能泄露的传递值,给出安全性分析:
其中,H(x)为哈希函数不可逆推,在已知H(x)的情况下,无法推出x的值,也就无法推出r的值;y=r-we(mod q)中,在已知y,e,q的情况下,由于P随机选取的私有参数r未公开,其他人仍然无法推出r,w。
3 智能合约
经历了以比特币应用为代表的区块链1.0时代,目前已经进入了以智能合约为标志的区块链2.0时代[3]。以太坊是第一个也是目前全球最活跃的区块链2.0公有链,市值超过10亿美元。以太坊定位于区块链应用平台,在这个平台上,可以发布各种智能合约,并能与其他外部IT系统进行数据交互和处理,从而实现各种行业应用。区块链2.0 因为支持完整的程序运行,可以通过智能合约对发送和接收的信息进行自定义加密和解密,从而达到保护企业和用户隐私的目的。以太坊采用五层架构实现,从下到上分别是数据层、网络层、共识层、激励层、智能合约层。数据层是以太坊最底层的机构,主要实现了相关数据的存储以及账户和交易的安全与实现;网络层只要实现网络节点的连接和通信,无中心服务器,依靠用户群交换信息的互联网体系。共识层主要实现全网所有节点对交易和数据达成一致,以太坊采用两种共识机制,初期采用工作量证明机制,待网络中的以太币充分流通和分散后,改为采用交易速度更快、无资源消耗的权益证明机制;激励层主要实现以太币的发行和分配机制,运行智能合约和发送交易都需要向矿工支付一定的以太币;智能合约层赋予账本可编程的特性,区块链2.0通过虚拟机的方式运行代码实现智能合约的功能,如以太坊虚拟机。同时,这一层通 过在智能合约上添加能够与用户交互的前台界面,形成去中心化的应用[3]。
智能合约是部署在区块链的代码,区块链本身不能执行代码,代码的执行是每个节点在本地通过以太坊虚拟机实现的。以太坊的每个节点都会运行虚拟机,它不仅能够执行代码,还可以读写区块中可执行的代码和数据,校验数据签名等。部署在区块链上的智能合约段能够在本地产生原智能合约代码的数据串,客户端通过发起一笔交易,告诉以太坊节点需要调用的函数及相关参数,所有的以太坊节点都会接收到这笔交易,然后从区块链这个数据库中读取存储的智能合约运行代码,运行出结果,节点运行智能合约的结果将与其他以太坊节点进行对比,最后确认无误后,才将结果写入到区块链中,从而实现智能合约的正确执行。总地来说,以太坊能够让毫无任何关系的节点互相信任,并达成共识,而不需要任何权威机构作为中介,通过智能合约处理各种事务,减少了人为干预的风险,起到安全保护的作用。
4 硬件安全模块
硬件安全模块(Hardware Security Module,简称HSM)是一种能够安全地生成和存储密钥的计算机硬件设备。HSM设备可以通过多种方式用于区块链,利用这种既定的硬件技术来保护密钥。整体概括起来,HSM主要可通过以下几种方式来提升区块链系统的安全性:
(1)私钥的安全存储 :这是HSM最基本也是最重要的一种功能,在公有区块链中,一旦私钥遭到泄露,窃取私钥者可以代表私钥所有者做任何事情,通过HSM实现私钥的安全存储,对于区块链系统来说具有重要意义。
(2)签署并验证交易 :用户通过HSM在区块链系统中签署交易,并验证交易的合法性。
(3)加密,解密和使用密钥数据库中的密钥记录 :在实际应用中,需要使用密钥数据库来存储大量的密钥。HSM可以接收加密密钥并在安全环境中使用它来使用它。
5 硬件钱包
硬件钱包作为一种较为安全的手段,广泛应用于区块链保护技术中。硬件钱包使得用户的私钥与联网的设备相互隔离开来,令私钥处于离线的环境中,以此保护私钥的安全。下面介绍几种近年来,在区块链领域应用比较多的几种硬件钱包:
5.1 Ledger Nano S
Ledger Nano S 是法国加密货币硬件钱包公司Ledger于2016年8月推出的设备,该数字钱包支持包括比特币,以太坊,瑞波币在内的等数百种加密货币,内设安全芯片来保证私钥的功能。该设备具有很强的易用性,通过USB连接线与电脑相连接。当用户使用该数字钱包时,将钱包绑定在chrome浏览器的插件上,通过点击按钮来输入 PIN码并签署交易,Nano S还配置了显示屏,用于 PIN 码验证、种子修复、发送确认等功能,在市面上很受欢迎。
5.2 CoolWallet S
CoolWallet S由CoolBitX公司推出的,全球第一个专为移动装置设计的硬件钱包,可以通过蓝牙与手机app连接,一定程度上避免了联网带来的安全威胁。其内部可以存储多种加密货币,重量轻巧,耐折并且完全防水,便于携带,成为很多知名人士的首选。
5.3 Keepkey
KeepKey是美国KeepKey公司推出的一种用于加密数字货币存储的硬件钱包,在使用过程中,用户的私钥永久存储与Keepkey上。KeepKey采用独特的恢复机制防止设备丢失或损坏,该机制使得用户只需使用初始设置时生成的12个恢复单词就可以恢复设备,除此之外,用户还可以选择额外的短语附加在恢复单词里。由此,KeepKey提供了简单、安全的硬件钱包解决方案。
5.4 Trezor
Trezor是SatoshiLabs公司推出的硬件钱包,使用过程中,通过USB连接到电脑进而进行数字货币交易,操作便捷易懂。Trezor设有恢复备份功能,当用户的设备丢失的时候,用户可以使用自身设置的密语来快速重新获得密钥、比特币资金、历史记录等。此外,Trezor的还有一个特点是开源,任何人都可以审查代码其中的漏洞。
6 门限数字签名
一个(n,t)门限数字签名方案是一种将签名能力分发给n个签名者的协议,方案的参数t为隐私门限,即使攻击者控制了t个玩家,也不能伪造出一条合法的签名;若想恢复某个合法签名,至少需要t+1个玩家的协作。由于比特币、以太坊等热门的加密货币大多使用椭圆曲线数字签名算法(ECDSA),因此近年来出现了大量的门限ECDSA方案[4, 5]来保护区块链中的私钥,在此不作详细说明。
7 总结
区块链技术是一种全新的去中心化基础架构与分布式计算范式,正在逐步应用于各个领域当中。对区块链系统中用户隐私的进行保护是区块链系统安全运行的关键所在。近年来已出现多种区块链安全保护技术,随着区块链技术的不断发展,提高已有保护技术安全性以及研发新的保护技术是大势所趋。