没有合适的资源?快使用搜索试试~ 我知道了~
智能合约的合约安全和隐私安全研究综述1
需积分: 0 0 下载量 72 浏览量
2022-08-03
21:20:52
上传
评论
收藏 830KB PDF 举报
温馨提示
试读
30页
摘要区块链作为对等网络中的一种分布式账本技术,集成了密码学、共识机制、智能合约等多种技术,提供一种新型信任体系构建方法。智能合约具有公开透明、实时更新、准确执行
资源推荐
资源详情
资源评论
计算机学报
CHINESE JOURNAL OF COMPUTERS
———————————————
本课题得到国家重点研发计划项目(No.2019YFE0105500)、国家自然科学基金(No.61872078)资助.胡甜媛,博士研究生,计算机学会(CCF)会员
(A1495G),主要研究领域为软件工程、区块链安全.E-mail: [email protected]. 李泽成,博士研究生,计算机学会(CCF)会员(F8380G),主要研
智能合约的合约安全和隐私安全研究综述
胡甜媛
1)
李泽成
2)
李必信
1)
包骐豪
1)
1
)
东南大学计算机科学与工程学院,南京,
210096
2
)
香港理工大学计算系,香港,
999077
摘 要 区块链作为对等网络中的一种分布式账本技术,集成了密码学、共识机制、智能合约等多种技术,提供一种新型
信任体系构建方法。智能合约具有公开透明、实时更新、准确执行等显著特点,在区块链中为信息存储、交易执行和资产管
理等功能的实现提供了更安全、高效、可信的方式。但是,智能合约本身仍然存在安全问题,影响了区块链技术的进一步推
广使用。所以,近年来围绕智能合约安全问题的相关研究比较多,为了帮助相关人员更好地理解和掌握其中的研究思路,本
文采用 Mapping study 方法,通过收集 2015 年以来公开发表的关于智能合约安全问题的各类文献,并进一步通过文献筛查、
问题设置、信息提取、结果获取和分析等步骤,总结智能合约安全相关研究的现状和未来发展趋势如下:1)目前智能合约
自身面临的安全问题和挑战主要体现在合约安全和隐私安全两方面(问题和挑战)。在调查的 45 篇文献中,有 29 篇主要文
献针对合约安全,16 篇文献针对隐私安全。2)智能合约安全保障目前采用的方法主要包括形式化验证、模糊测试、零知识
证明、可信执行环境等(保障方法)。3)针对合约安全的研究目前主要集中在合约实现、测试阶段,而针对智能合约设计、
部署及运维阶段的研究比较少;针对隐私安全的研究主要集中在合约数据隐私保护,而针对合约代码隐私安全的比较少(覆
盖范围)。4)智能合约安全保障研究目前主要从合约实现人员、合约测试人员的角度进行,而从合约维护人员和合约用户
角度展开的研究较少(研究角度)。5)未来研究应该围绕智能合约的全生命周期的每个阶段安全问题进一步推进,先验方
法和后验方法、定性方法和定量方法、静态方法和动态方法的结合是大势所趋(发展趋势)。综上,本文通过调研发现了现
有研究的不足,并建议了进一步的研究工作。
关键词 区块链;智能合约;合约安全;隐私安全
中图法分类号 TP309
Contractual Security and Privacy Security of Smart Contract: A System
Mapping Study *
HU Tian-Yuan
1)
LIZe-Cheng
2)
LI Bi-Xin
1)
BAO Qi-Hao
1)
1)
(School of Computer Science and Engineering, Southeast University, Nanjing 211189, China)
2)
(Department of Computing, Hong Kong Polytech University, Hong Kong 999077)
Abstract As a distributed ledger technology in a peer-to-peer network, blockchain integrates cryptography,
consensus mechanisms, smart contracts and other technologies to provide a new trust system construction
method. The smart contract, which is transparent, real-time, deterministic, provides a safer, more efficient, and
credible way for the realization of functions such as storage, transaction execution, and asset management.
However, the smart contract itself still suffers from some vulnerabilities, which hinders its further promotion and
adoption. Therefore, there has been plenty of related research on smart contract security issues recently. In this
2 计算机学报
paper, we adopt the mapping study method and collect published papers on smart contract security since 2015.
Through literature screening, problem sets, information extraction, result acquisition, and analysis, we
summarize the smart contract security research status and future trends as follows: 1) Current security problems
and challenges are mainly reflected in contract security and privacy security. Among the 45 documents surveyed,
29 focused on contract security, and 16 focused on privacy security. 2) The main contract security enhancement
techniques include formal verification, fuzzing, zero-knowledge proof, and trusted execution environment. 3)
Existing contract security researches mainly focused on implementing and testing smart contracts. By contrast,
little research explored contract security problems in design, implementation, and runtime stages; Current
privacy security researches mainly focused on contract data privacy rather than contract code privacy. 4) The
research on smart contract security is mainly carried out from the perspective of contract implementation and
testing staff, while there is relatively little research from the perspective of maintainersand users. 5) Future
researches should focus on the security issues at each stage of the smart contract lifecycle. The combination of
priori and posterior methods, qualitative and quantitative methods, static and dynamic methods is an irresistible
trend. To sum up, this paper has found the deficiencies of existing researches through investigation and suggested
further research directions.
Key words blockchain; smart contract; contract security; privacy security; mapping study
1 引言
2009 年,比特币开启区块链时代,区块链技术
是比特币的基础,它支持去中心化计算模式的转
变。区块链系统应用传统的密码学原理结合区块链
特有的数据结构实现了安全的数据存储和共享。在
P2P 网络中,共识机制为区块链系统提供了一种剔
除可信第三方的可信数据共享机制,为上层应用提
供安全的账本支持,区块链在不可信环境下建立起
信任关系,实现价值传递和信任传递。并且由于智
能合约的引入,区块链应用已经远远超出加密货币
的范畴,以智能合约为代表的第二代区块链平台及
应用呈现爆发性增长
[1]
。智能合约作为一种可自动
执行的数字化协议,为区块链增添可编程属性,为
实现可编程社会提供可能
[2]
。智能合约与区块链的
结合被认为是区块链世界中一次里程碑式升级,随
着第一个结合区块链与智能合约的平台以太坊的
诞生,迎来“区块链 2.0”时代。
目前,区块链技术在各个领域的应用范围越来
越广,区块链的安全性和隐私保护特性是推动区块
链长远发展的重要因素。然而,由于这一新兴技术
发展时间较短、尚不成熟,各类安全事故频频发生,
引起社会各界对区块链安全问题的广泛关注。
针对以太坊去中心化应用(Ethereum
Decentralized Application, ETH DApp),本文统
计了 2016 年 1 月至 2020 年 6 月发生的 16 起重大
攻击事件如表 1 所示
①
。通过表 1 看出,16 起事件
中有 13 起事件是由于智能合约被攻击导致的,智
能合约自身存在的缺陷、合约之间的调用等都是影
响合约安全的重要因素。
表 1 ETH DApp 攻击事件
序号
攻击时间
攻击目标
损失金额
攻击原因
1
2016-06-17
The DAO
$60,000,000
重入攻击
2
2017-07-19
Parity
$31,000,000
DelegatedCall 调用
3
2017-11-06
Parity
$1,500,000,000
无保护自杀
4
2018-04-22
BEC
$6,000,000,000
整数溢出
5
2018-07-10
Bancor
$12,000,000
疑似私钥被盗
6
2018-07-31
Fomo 3D
-
合约伪随机数生成
7
2018-08-01
Fomo 3D
$3,000,000
贪婪挖矿激励机制
8
2018-10-09
SpankChain
$40,000
重入攻击
9
2020-02-15
bZx
$350,000
多个智能合约调用
10
2020-02-18
bZx
$645,000
多个智能合约调用
11
2020-04-18
Uniswap
$220,000
合约重入攻击
12
2020-04-19
Lendf.Me
$25,000,000
合约重入攻击
13
2020-04-25
Hegic
$28,537
合约漏洞
14
2020-50-18
tBTC
-
合约漏洞
15
2020-06-18
Bancor
$135,229
合约函数漏洞
16
2020-06-23
DDM
$40,000
恶意劫持
目前对于区块链技术的安全和隐私保护,业界
处于初级探索阶段。频发的智能合约攻击事件严重
威胁区块链生态安全,亟需智能合约安全保障技术
支持。于是,很多人开始重视并研究智能合约安全,
相关研究成果也越来越多。然而,由于研究者来自
不同学科领域,大家关注角度不同,采用的技术方
法不同,解决的安全问题和预期目标也不同,所以
现有研究成果缺乏一定系统性,研究思路也不够清
晰,无法为解决智能合约安全问题形成有力指导。
基于当前智能合约安全的研究工作,本文旨在
①ETH DApp attacks,https://hacked.slowmist.io/?c=ETH%20DApp
胡甜媛等:智能合约的合约安全和隐私安全研究综述 3
通过深度调研并分析已有智能合约涉及的合约安
全和隐私安全方面的相关研究,发现当前研究中存
在的不足,提出需要解决的问题并建议有潜力的研
究方向。为此,首先根据 Mapping Study(映射研究)
方法确定 3 类感兴趣的问题,然后在选定的电子数
据库中广泛检索 2015 年至 2020 年发表的智能合约
安全方面的论文,选择有代表性的 45 篇论文,并
根据需求信息模板从每篇论文中提取关注的信息,
最后通过对信息深度分析、归纳和总结,回答上述
3 类研究问题,发现现有研究不足并进一步建议研
究方向。具体来说,本文主要贡献如下:
(1)分析了智能合约安全问题和挑战。从智
能合约的生命周期出发,分析智能合约在设计、实
现、测试、部署、运维不同阶段面临的安全问题和
挑战,以及隐私安全涉及的合约代码安全和合约数
据安全面临的安全问题和挑战,明确了研究目标。
(2)总结了智能合约安全保障方法。针对智
能合约安全面临的问题和挑战,从智能合约生命周
期的角度归纳整理不同阶段的安全保障方法,主要
包括合约设计、合约实现、合约测试和合约部署及
运维安全保障方法;从合约代码隐私和合约数据隐
私角度归纳整理智能合约隐私安全保障方法。
(3)发现了现有方法存在的不足。针对不同
的智能合约安全问题和保障方法,分析现有研究的
优势和不足。大量研究集中在合约实现、测试阶段,
其他阶段的相关研究较少;已有的智能合约测试方
法未形成全面、体系的智能合约检测框架;对运行
中的智能合约,未实现灵活、有效的合约维护、升
级机制;已有的智能合约隐私保护方法存在性能不
高、可扩展性较低、未实现完全去中心化等不足。
(4)建议了进一步研究方向和目标。建议未
来研究要做到先验方法和后验方法融合、定性方法
和定量方法融合、静态方法和动态方法融合。
2 基本术语
2.1 智能合约
智能合约是被部署在区块链上可自动执行的
数字化协议,也是可按照预设合约条款自动执行的
计算机程序,主要包含相关代码和数据集。智能合
约作为区块链的激活器,其自动化和可编程特性使
其可以封装分布式区块链系统中各节点的复杂行
为,成为区块链构成的虚拟世界中的智能软件代理
机器人。本质上,智能合约既不是合约也不智能,
具有较低的法律效应,目前智能合约规则也无法自
动化实现。但区块链上智能合约具有众多特性,如
可编程、不可篡改、去信任等,通过智能合约可以
灵活嵌入各种数据和数字资产,安全高效地交换信
息、管理资产。区块链中数字资产可以分为数字货
币与非数字货币,由关于该资产的数字文件实现,
区块链上交易的数字资产类型日渐丰富,有能源、
实体资产和知识产权等,由现实中的资产数字化而
来。智能合约为传统商业模式变革带来可能,为构
建可编程资产、系统和社会奠定基础。
2.2 智能合约应用平台
目前,具有代表性的智能合约应用平台主要是
以 太 坊 ( Ethereum ) 和 超 级 账 本
(HyperledgerFabric)。其中,以太坊作为公有链
的代表,其智能合约主要采用 Solidity 语言编写;
超级账本作为联盟链(私有链)的代表,其智能合
约又称为链码(Chaincode),由 Java 或 Golang 语
言编写。以太坊作为最早的智能合约平台,使用较
为广泛,因此本文智能合约安全研究主要围绕以太
坊平台展开。
以太坊作为去中心化应用平台,其智能合约负
责存储业务逻辑(程序代码)和应用程序的相关状
态。与比特币、莱特币等搭建自己的区块链运行平
台的加密数字货币不同,通过以太坊发布的加密数
字货币一般称为代币(Token),代币没有自己的
区块链,而是以智能合约形式运行在以太坊平台
上。以太坊不仅仅支持数字货币,还通过智能合约
支持更多应用场景,例如金融、游戏、公证等。
在以太坊中,一个智能合约实际上是一串代码
的合集,包括代码中各种函数以及代码运行过程产
生的各种状态。以太坊支持多种高级编程语言,专
门的编译器将合约编译成字节码后部署到区块链。
发布者在以太坊平台发布合约后,智能合约作为一
段程序被运行在网络中所有节点上,合约发布者无
法修改已发布的合约。由于智能合约一般运行在隔
离的沙箱执行环境中,智能合约会被所有节点执
行,并且任何人都可以发布执行合约,为了防止以
太坊网络发生蓄意攻击或滥用的现象,以太坊协议
规定交易或合约调用的每个运算步骤都需要收取
费用,gas 就是该费用的计数单位。
由于智能合约代码涉及数字资产,一旦合约代
码缺陷被利用可能造成巨大损失,所以如何保证智
能合约安全至关重要。
4 计算机学报
2.3 智能合约安全
目前,智能合约发展仍然处于初级阶段,传统
编程模式和软件生命周期需要进行有效的改造来
适应智能合约的安全需求。区块链系统应用智能合
约来实现复杂的交易,区块链系统要求合约的数据
及其在数据上运行的代码都要公开,每个矿工都要
模拟执行合约,该过程不仅涉及智能合约本身的安
全问题,还存在隐私泄露的风险。本文认为智能合
约安全主要体现为合约安全和隐私安全。
合约安全主要针对合约设计文档、合约代码、
合约运行状态等,要求智能合约不存在设计缺陷、
代码漏洞等不足,涉及智能合约的设计、实现、测
试、运维及部署等多个阶段。
隐私安全主要针对智能合约代码隐私及合约
执行过程中涉及的相关数据隐私,要求保护程序代
码以及程序执行过程中的交易数据不会被非授权
节点获取,主要体现在区块链系统的合约代码和合
约数据两方面。
3 综述方法
Mapping Study(映射研究)是系统性文献综述
(Systematic Literature Review,SLR)的一种,其
目的是对某一研究领域进行广泛的概述
[3]
。本文之
所以选择 Mapping Study 作为调查方法,是因为本
文的目标是分析智能合约安全的研究现状,总结现
有研究取得的成果,探索智能合约安全的未来研究
方向。 本文遵循 系统 性文 件综 述的 方法 ,参 考
Kitchenham 和 Charters
[3]
提出的指南,根据 Mapping
Study 方法的思想,按照以下顺序进行调研分析:
(1)设置研究问题:针对智能合约安全定义
相关研究问题,包括智能合约利益相关者、安全问
题及挑战、安全保障方法、保障方法验证等;
(2)确定文献筛选策略并选择主要文献:针
对智能合约安全主题,定制检索关键词,在选定数
据库中检索相关研究,并筛选出主要文献;
(3)评估主要文献质量:定制质量评估标准,
评估主要文献是否满足质量标准;
(4)定义信息抽取模板,抽取主要文献的关
键信息:定制信息抽取模版,根据信息抽取模版中
的规则抽取与研究问题相关的主要内容。
(5)抽取结果及分析:报告信息抽取的结果,
并进行关联性、趋势性分析等(参见第 4 节)。
(6)讨论现有方法的不足,归纳总结未来可
能的研究方向(参见第 5 节)。
下面,介绍综述研究的各个步骤。
3.1 研究问题
在任何系统性综述中,明确研究问题最重要
[3]
。
本文从智能合约研究人员的角度,总结提炼出如下
三类研究问题(如表 2 所示):通识问题(General
Question,GQ)、聚焦问题(Focused Question,FQ)
和统计问题(Statistical Question,SQ)。
表 2 研究问题列表
问题类别
具体问题
通识问题
GQ1
智能合约安全涉及哪些利益相关者?
GQ2
智能合约面临哪些安全问题和挑战?
GQ3
智能合约安全主要有哪些保障方法?
GQ4
智能合约安全保障方法如何验证?
聚焦问题
FQ1
引起智能合约安全威胁的原因有哪些?
FQ2
现有智能合约的合约安全保障方法有效性如何?
FQ3
现有智能合约的隐私安全保障方法有效性如何?
FQ4
现有研究方法有哪些不足?
统计问题
SQ1
智能合约安全的研究热度如何?
SQ2
智能合约安全的研究报告或研究论文发表在哪些载体上?
通识问题(GQs)涉及到区块链系统中智能合
约安全相关的通识问题。GQ1 关注谁参与智能合约
安全保障过程?智能合约从设计到使用涉及多个
阶段,智能合约安全保障包含多个方面,完整安全
保障过程有哪些人参与,都是直接影响智能合约安
全的主导因素。GQ2 关注智能合约目前存在哪些安
全问题和挑战?真实存在的安全问题是引起研究
者对智能合约安全产生关注的主要原因;鉴于已有
的智能合约安全问题,智能合约安全保障技术发展
面临哪些挑战?GQ3 关注如何通过具体的方法保
障智能合约的合约安全和隐私安全?针对已有的
不同类型的问题和挑战,现有研究通过哪些安全保
障技术 实现了合 约安全保障和 隐私 安全 保障 ?
GQ4 关注智能合约安全保障方法如何进行验证?
不同的安全保障方法实现不同目的,其安全保障对
象和安全保障形式各有不同。
聚焦问题(FQs)在回答了 GQs 问题的基础上,
对智能合约安全做出进一步的分析,主要分析现有
的智能合约安全保障技术相关的具体问题以及现
有研究不足。其中,FQ1 聚焦于智能合约安全威胁
产生的原因;FQ2 关注智能合约的合约安全保障方
法的有效性;FQ3 关注智能合约的隐私安全保障方
法的有效性;最后,FQ4 关注现有智能合约的合约
安全和隐私安全保障方法的优势和不足。
从文献发表的角度来看,统计问题(SQs)提
供了另一种观察当前研究现状的方式。SQ1 关注文
胡甜媛等:智能合约的合约安全和隐私安全研究综述 5
献的发表时间和数量;SQ2 关注文献发表的载体,
可以看出相关研究的趋势和成熟度。
3.2 研究策略与选择
在确定了研究问题的基础上,本小节主要介绍
如何选择研究问题相关的文献,主要包括全面文献
检索和主要文献筛选。
3.2.1 全面研究检索
首先采用全面的检索策略,找到与研究问题相
关的文献,包括检索关键词构建和检索范围界定。
为了获得更好的搜索结果,对关键词组进行细化和
优化。Kitchenham 等人
[3]
建议将搜索问题分解为各
个搜索单元,包括其同义词、缩略语和替代拼写等,
然后通过布尔运算进行组合
[3]
。PIO(Population,
Intervention, and Outcome)标准是定义这种搜索单
元的合适方式
[4]
,Population 涉及到与技术和标准相
关的术语,Intervention 解决的是软件方法论(或技
术、工具、程序)中的一个具体问题。本文的检索
关键词公式如式(1)所示:
检索关键词 = population AND intervention (1)
在本文的智能合约安全场景下,population 和
intervention 的定义如表 3 所示。
表 3 主要研究检索词
类型
检索词
Population
中
文
形式化验证、模型检测、符号执行、抽象解释、
模糊测试、抽象语法树、安全多方计算、
可信执行环境、零知识证明{非交互零知识证明,
简洁非交互零知识证明}
英
文
Formal Verification, Model Checking,
Symbolic Execution, Fuzzing, Abstract Semantic
Tree (AST), Zero-Knowledge Proof (ZKP),
Non-Interactive Zero-Knowledge Proof (NIZK),
Zero-Knowledge Succinct Non-Interactive
Arguments of Knowledge Proof (zk-SNARKs),
Secure Multiple-party Computation (SMPC),
Trusted Execution Environment (TEE)
Intervation
中
文
智能合约安全,合约缺陷{合约漏洞},
代码安全,代码缺陷{代码漏洞},合约隐私
英
文
Smart Contract Security{Safety},
Contract Defect{Vulnerability},
Code Security{safety}, Contract Privacy
Code Defect{Vulnerability},
通过表 3 构建的检索关键词进行检索,本文选
取了表 4 中 10 个电子数据库作为本文的检索范围。
这些数据库涵盖了计算机科学与工程领域内最相
关的期刊和会议(包括研讨会)。在研究选择时,
通过人工过滤,排除不同数据库产生的重复结果。
本文将开始年份设置为 2015 年、结束年份设置为
2020 年。此外,由于智能合约隐私保护方面的研究
相对较少,因此文献搜索过程中可以关注部分具有
权威性的技术文档。
表 4 选择的电子数据库
序号
电子数据库
网址
1
知网
https://www.cnki.net/
2
万方
http://www.wanfangdata.com.cn/
3
ACM Digital Library
http://portal.acm.org/
4
EI Compendex
http://www.engineeringvillage.org/
5
Google Scholar
http://scholar.google.com/
6
IEEE Xplore
http://ieeexplore.ieee.org/
7
DBLP Bibliography
http://dblp.uni-trier.de/
8
Springer Link
http://www.springerlink.com/
9
Science Direct
http://www.sciencedirect.com/
10
Web of Science
http://www.isiknowledge.com/
3.2.2 主要文献筛选
由于初步检索后得到的文献数量较多,需要对
其进行筛选,从最初的检索结果中排除不相关的文
献,选择最具代表性的文献作为主要文献。首先,
由于不同电子数据库的特点,搜索结果中包含杂
质,如与搜索关键词直接相关的会议名称,将其人
工删除以保证结果的准确性;其次,检查文献的标
题和摘要,排除不涉及智能合约安全和安全保障技
术的研究;还有部分研究在技术上相似,因此选择
最具代表性的作为主要文献;最后,本文共选择 45
篇文献作为研究的主要参考资料,其中包含 3 篇技
术文档。
3.3 质量评估
针对 45 篇文献,论文的质量评估至关重要,
本文给出如下 8 个论文质量评估标准:
QA1:是否有关于研究目的的明确说明?
QA2: 是否有关于研究背景的充分描述?
QA3: 是否有关于研究问题相关工作的回顾?
QA4: 是否有关于智能合约安全保障方法描述?
QA5:方法是否经过验证?
QA6:是否明确与研究目的和宗旨相关的结论?
QA7:是否明确的研究结果陈述?
QA8:是否建议进一步研究方向?
表 5 显示了对每篇主要文献应用质量评估标准
的结果。其中,√表示“是”,×表示“否”。除了
Bartoletti 等
[5]
等 9 篇文献不包含未来工作展望
(Q8),大部分研究满足本文设计的标准。由于缺
失 Q8 不影响研究结果,本文不将其删除。
3.4 信息抽取
最后,本文设计一个信息抽取模版表来收集解
决研究问题的信息,主要针对 45 篇主要文献进行
信息抽取。表 6 显示了主要文献的每个信息抽取细
节,该表格帮助本文从主要文献中提取相关信息,
并了解这些研究如何解决本文设置的智能合约安
全相关的研究问题。
剩余29页未读,继续阅读
资源评论
黄浦江畔的夏先生
- 粉丝: 12
- 资源: 299
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功