APP下载

区块链安全与隐私保护前沿技术发展现状

2021-05-19张慧茹汪美荃李光顺

网络安全与数据管理 2021年5期
关键词:同态攻击者合约

张慧茹,汪美荃,李光顺

(曲阜师范大学 计算机学院,山东 日照276800)

0 引言

区块链本质上是一个去中心化的分布式数据库。在区块链技术中,有价值的信息以数据的形式永久存储,这些用于存储数据信息的载体构成区块。从技术上讲,区块是一种记录交易的数据结构,反映交易的资金流向,并以密码学方式保证记录是不可篡改和不可伪造的。

区块链具有去中心化、开放性、自治性、信息不可篡改和匿名性等特点[1]。区块链的去中心化可很好地实现可扩展性、健壮性、隐私性和负载均衡性,避免在集中式结构中出现单点故障的风险,因此区块链在问世之初就从不同方面解决了一些安全问题,但仍然存在自身的安全性问题。

本文介绍了区块链中存在的安全问题,包括底层代码、加密算法、协议和智能合约的安全,从安全角度分析了区块链系统中常见的漏洞和攻击手段,详细描述了区块链中安全与隐私保护的前沿技术,提出未来的研究方向与展望。

1 区块链安全问题

安全性是确保区块链系统稳定运行的基础,也是阻碍区块链应用推广的主要因素之一。目前区块链在性能、权限、安全等方面仍存在诸多问题,本文在现有研究的基础上,总结了区块链还待解决的四个安全问题。

1.1 底层代码安全

一条成熟的区块链(尤其是公有链),其代码必然是开源、共享、经过审计的。通过开放源代码,可以提高项目的可信度,并使更多的人参与其中。但开放源代码也使攻击者更容易攻击区块链系统。

1.2 加密算法安全

区块链使用大量加密算法确保安全性,但一些现有的加密算法存在一定的缺陷,使用有缺陷的加密算法会极大地影响安全性。另外,随着量子计算机的发展,它将给目前使用的密码体系带来重大的安全威胁[2]。理论上,最常用的加密算法都无法承受量子攻击,因此存在较大的风险。

1.3 协议安全

协议安全主要指共识机制、P2P 网络等存在的安全隐患,主要面临共识算法漏洞、流量攻击以及恶意节点等威胁。

1.4 智能合约安全

智能合约具备运行成本低、人为干预风险小等优势。然而,由于理论上仍然存在难以发现的漏洞,一旦被黑客利用,虚拟货币的财产就会被不法分子泄露和窃取。如果智能合约的设计出现问题,同样带来较大的损失。

2 常见的漏洞和攻击手段

本节主要介绍针对区块链的主流攻击手段,根据攻击行为与目标不同,将区块链上常见的攻击手段分为针对共识一致性的攻击、针对扩展性的攻击、针对激励策略的攻击、针对智能合约的攻击,如图1 所示。

图1 区块链常见的漏洞和攻击手段

2.1 针对共识一致性的攻击

2.1.1 双花攻击

双花攻击又被称为二次支付攻击或双重支付攻击,是指攻击者将一笔钱花费了两次甚至更多次的攻击行为,该方式对共识算法一致性会产生严重的破坏,因此,成为数字货币方案首先需要解决的安全性问题。

比特币使用带时间戳的区块链存储结构和基于哈希函数的工作量证明机制以抵御双花攻击。在攻击者可控制的算力低于全网50%的安全性假设条件下,攻击者能够产生一条包含交易且链接k个后序确认区块的概率呈指数下降趋势。因此,当系统的安全参数k设置较大时,能力受限的攻击者几乎无法实施双花攻击。

2.1.2 51%攻击

51%攻击是矿工使用算力作为竞争条件,当攻击者拥有或控制50%以上的算力时,即可控制区块链系统。攻击者利用自己在算力上的绝对优势,对区块的产生进行控制,进而制造分叉,能够轻易地产生双花攻击等恶意攻击行为,破坏了区块链的安全性和去中心化特性。51%攻击也指在PoS 区块链中拥有超过50%权益的优势攻击者可对PoS 区块链实施控制。51%攻击对个人来说几乎无法实现,但对于国家或者全球规模的大矿池而言,有一定几率实施成功。

2.2 针对扩展性的攻击

2.2.1 拒绝服务(Denail-of-Service,DoS)攻击

攻击是利用合理的服务请求占用过多的目标节点服务资源,增加目标节点网络负载,形成网络拥塞,导致合法用户无法正常得到服务的响应,攻击持续数分钟到数小时不等,极少数情况下甚至会持续数天。区块链在遭受DoS 攻击后,会出现吞吐量低、交易确认时间长、节点无法服务等情况,在时间、金钱等方面造成巨大浪费。

2.2.2 粉尘攻击

由于区块大小和产生区块的时间间隔有限,使得区块链系统的扩展性较差。粉尘攻击正是利用这一漏洞,通过广播大量的低交易金额、低交易费的垃圾交易,使区块链的网络负载增加,矿工交易池硬盘空间被占据,出现大量交易排队的现象,进而提升了DoS 攻击的可能性,影响区块链的共识效率和系统吞吐量。区块链的去中心化特性使得其很难完全拒绝粉尘攻击的交易,当网络中出现粉尘攻击时,只有提高交易费才能使正常的交易更快地被矿工打包记录。

2.3 针对激励策略的攻击

2.3.1 自私挖矿攻击

自私挖矿攻击(Selfish Mining Attack)是Eyal 等人于2013 年提出的一种针对工作量证明激励策略的攻击行为[1],即在区块生成中,一些节点可能会在自己成功完成工作量证明产生新区块后,有策略地进行区块的广播,在已有计算资源比例的奖励收益之上获得更高的收益。

Eyal 等人的研究表明,当网络中的节点随机选择区块链分叉进行拓展时,自私挖矿节点在原本拥有1/3 比例算力的基础上提升到1/2 区块奖励期望,这对共识算法的安全性和激励机制的公平性造成严重威胁。

2.3.2 扣块攻击

扣块攻击是一种涉及矿池内部的奖励分配问题,存在于矿池之间的攻击行为。矿工一旦找到一个满足工作量证明的解,发送给负责产生任务的矿池组织者,再由组织者生成区块并广播。组织者根据各矿工的算力比例对奖励进行分配。组织者降低挖矿难度,通过统计满足较低难度工作量证明部分解的数量来衡量矿工的算力。每找到一个部分解,记为一个份额,若矿工找到的部分解满足工作量证明的实际难度,则称这种类型的解为全解。仅当某个矿工找了全解,组织者才能打包并广播区块,矿池才能获得奖励。

扣块攻击与自私挖矿攻击类似,不仅在一定程度上降低了网络中的有效算力,而且使系统吞吐量降低,造成交易验证延迟甚至网络拥塞的情况,对区块链的可扩展性造成一定影响。

2.4 针对智能合约的攻击

2.4.1 时间戳依赖攻击

时间戳依赖合约指的是被智能合约使用的区块时间戳提供的具有随机性的合约,并且可以用来当作某些操作的触发条件。因为使用时间戳依赖合约必须要依赖当时区块的时间戳,所以不同区块的时间戳,就会有不同的执行结果。在网络中不同节点的本地时间戳也有区别。

以太坊规定,有一块新的区块被矿工处理时,若新的区块的时间戳比上一个区块的时间戳大,且两个时间戳的差值大于或等于900 s,即可认为该时间戳是合法的。因此,会有攻击者会利用部分合约依赖时间戳的特点,在合法的范围内修改时间戳的大小,以干扰智能合约的执行,实施时间戳依赖攻击。

2.4.2 误操作异常

部分智能合约的执行过程不仅需要执行合约本身,而且有时还需要调用其他某些智能合约,若该过程没有被调用合约的状态验证或者返回值验证,则智能合约的执行可能会受到威胁。部分被调用合约会存在执行异常,且结果会传递到调用合约上,从而影响合约的正常调用。

常见的误操作异常包括整数溢出和调用栈深度溢出。

3 区块链安全与隐私保护技术

3.1 安全多方计算

安全多方计算(Secure Multi-Party Computation,SMC)是指在没有可信第三方的情况下,多个参与方协同计算一个约定的函数,并保证每个参与主体仅获取自己的计算结果,在计算过程中无法通过交互数据推测其他实体的输入和输出信息。安全多方计算技术如图2 所示。

图2 安全多方计算技术

SMC 可抽象概括为数学模型,公式如下:

其中,x是各参与方的输入,y是各参与方对应的输出,f是各参与方约定的计算函数。在整个SMC 协议中,每个参与方只能看到自己的输入和输出,无法感知其他参与方的输入和输出。

SMC 具有输入隐私性、去中心化等特征,使数据在保持隐私性的同时又能被使用,从而对实现数据的隐私保护具有巨大价值。区块链可以通过使用SMC 技术提高其数据保密能力,以适应更多的应用场景。SMC 可以借助区块链技术进行冗余计算以实现可验证的特性。

随着SMC 技术得到越来越多的关注,研究人员将其与区块链技术相结合进行研究。刘峰等人设计了一种区块链上融合Pedersen 承诺与Schnorr 协议的安全多方计算协议[3],保证了签署消息的合理性与匿名验签的高效可行性。LI Y 等人提出了一个新的隐私保护框架,该框架基于一种创新的链式安全多方计算技术[4],能够在降低精度损失和计算复杂度的基础上实现更好的隐私保护。

3.2 零知识证明

零知识证明体系由两部分组成:宣称命题为真的证明者和确认命题为真的验证者。零知识证明是指在不透露任何其他信息的情况下,证明者能够使验证者相信某一陈述是真实的。任何零知识证明协议都应该满足三个属性[5]:

(1)完整性:如果陈述是真的,那么诚实的证明者可以说服诚实的验证者;

(2)可靠性:不诚实的证明者无法用虚假陈述说服验证者让其相信陈述是可靠的;

(3)零知识性:如果陈述属实,证明过程不向验证者泄露相关证明消息和内容。

在传统的区块链交易中,交易的细节对网络中的每一方都是可见的。相反,在零知识证明交易中,其他人仅知道已发生有效交易,但不知道发送方、接收方以及交易金额和其他详细信息。因此,零知识证明是连接链上数据与链下计算的关键技术,也是实现链上数据隐私保护的重要途径。

基于零知识证明的特性与优点,针对车辆网络中的隐私保护认证问题,GABAY G 等人利用区块链和智能合约支持的分布式应用,将零知识证明应用于区块链,实现保护隐私的身份验证,同时消除对中央权威机构的需要[6]。BOO E 等人提出了一个LiteZKP 框架,用于在资源有限的设备上使用基于智能合约的零知识证明协议支持多个匿名支付[7]。

3.3 联邦学习

联邦学习是指在进行机器学习的过程中,各参与方无需共享数据资源,使用自己的数据集训练本地机器学习模型,并将其上传到集中模型中进行汇总和平均,然后在集中式服务器中建立共享的全局模型[8]。联邦学习模型如图3 所示。

联邦学习具有以下优势与特点:

(1)数据只存储在本地,各参与方之间不共享,满足用户隐私保护和数据安全的需求;

(2)适应大规模数据模型训练,保证模型质量无损,提高模型训练速度;

(3)确保所有参与者以加密的方式交换信息和模型参数,同时保持参与者的地位对等和独立性。

图3 联邦学习模型

联邦学习旨在解决数据可信计算问题,区块链旨在解决数据可信存储问题。区块链提高了联邦学习的安全性和可靠性,联邦学习的引入也为“智能区块链”提供了更多的可能性。

基于区块链在联邦学习上的良好特性,目前很多学者都在讨论如何将联邦学习和区块链结合起来实现隐私保护。QU Y 等人提出了一种新的区块链支持的联邦学习方案[9],通过将区块链与联邦学习相结合,实现分散式隐私保护,防止雾计算场景中的单点故障。LU Y 等人提出了一个区块链授权的联邦学习框架[10],将区块链作为中间参数服务器集成到联邦学习中,提高学习的安全性和质量。

3.4 环签名

在环签名过程中,签名参数会按照一定顺序形成首尾相接的环,任何签名者都可以利用自己的公私钥和多个用户的公钥来生成一个环签名。签名的过程为自发式,签名者无需通知被选中的用户,仅需要知晓他们的公钥即可生成一个环结构,将自己的身份隐藏在环中,具有认证性、消息完整性和不可否认性,图4 描述了环签名的基本原理。

虽然环签名兼顾了认证功能和隐私保护功能,在发布机密信息、匿名举报等应用场景都发挥了巨大的作用,但在签名效率、签名长度等方面仍存在问题,签名者在生成环签名的过程中需要使用所有成员的公钥,随着成员签名数量的增多,不仅会直接降低签名算法的效率,签名长度也会增加。

为了更好地利用环签名的匿名性功能,YEON H 等人提出了防串谋可转换环签名[11],该签名可以对签名者进行身份验证,证实群中的其他成员并未生成签名,有效保护了用户的隐私信息。KYUNG-AH S提出了一个高效的基于双线性对运算的环签名方案[12],与传统环签名相比,运算效率有所提高。

图4 环签名基本原理

3.5 同态加密

同态加密(Homomorphic Encryption) 的核心思想是在不知道密钥的前提下,对密文进行计算,并使其能作用到解密后相对应的明文上。同态加密不仅仅具有加密功能,而且还支持对加密数据进行检索、比较等操作,解决将数据委托或者保存在第三方时的用户隐私保护问题。

然而,同态加密技术在区块链研究的多个方向还有很大的提升空间。例如效率方面,现有的动态加密技术仅能实现对单比特的运算,即明文m∈{0,1},效率相对较低;安全方面也相对欠缺,目前大多数的同态加密安全性都基于未被证实的困难问题,缺乏安全性支撑。

LI C 等人实现了一种对称同态加密方案[13]来提高加密算法的效率。然而,现有单同态加密技术仅允许拥有同态解密密钥的一方才可以解密,算法复杂度高,难以抵御某些窃取行为或多变的攻击。为了能够解决单同态加密技术的局限性,DING W X 等人提出了一种基于同态重加密的隐私保护数据处理系统[14],该处理系统能够支持七种基于密文的基本操作,能够很好地防止隐私的泄露。

3.6 可信执行环境

可信执行环境(Trusted Execution Environment,TEE)是位于CPU 内的一个安全区域。如图5 所示,系统级芯片的硬件和软件资源被划分为安全世界和正常世界,需要秘密执行的操作在安全世界执行,如指纹识别、安全认证等;其余操作在正常世界执行,如用户操作系统、各种应用程序等。监控模式用来对安全世界和正常世界进行模式转换[15],以保证数据和代码的机密性和完整性,为一系列敏感性操作提供高安全的执行环境,目前在数字内容保护、生物认证、移动金融服务等方面都有着良好的应用。

在可信执行环境上运行的应用叫可信应用(Trusted Application,TA),可信应用之间通过密码学技术保证处于隔离状态,且在未授权的情况下不能互相访问。可信应用在执行前需要做完整性验证,保证应用没有被篡改[16]。

基于可信执行环境保护敏感操作的优良特性,DAI W 等人提出了一个安全数据交易生态系统[17],使得买卖双方加解密过程在安全环境下进行,保障了交易数据的安全性。

图5 可信执行环境简要框架

4 结论

尽管现阶段区块链技术仍面临着安全、效率等负面问题的困扰,但区块链作为核心技术自主创新的重要突破口,其应用已延伸至数字金融、物联网、智能制造、供应链管理、数字资产交易等多个领域。构建区块链产业生态,需要加快区块链和人工智能、大数据、物联网等前沿信息技术的深度融合,推动集成创新和融合应用,真正做到“区块链+”。在未来,探索建立适应区块链技术机制的安全保障体系,推动区块链安全有序地发展,将成为研究重点。

猜你喜欢

同态攻击者合约
机动能力受限的目标-攻击-防御定性微分对策
关于半模同态的分解*
拉回和推出的若干注记
τ-内射模的若干性质①
正面迎接批判
一种基于LWE的同态加密方案
有限次重复博弈下的网络攻击行为研究
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望