• 沒有找到結果。

智能合约的合约安全和隐私安全研究综述

N/A
N/A
Protected

Academic year: 2022

Share "智能合约的合约安全和隐私安全研究综述"

Copied!
30
0
0

加載中.... (立即查看全文)

全文

(1)

第4卷 第1

年1 计  算  机  学  报

CHINESEJOURNALOFCOMPUTERS 4N

稿日期在线发布日期然科学基金 江苏省重点研发项目资助.胡甜媛,博士研究生中国计算机学会会员主要研究方向为软件工程区块链安全.

李泽成,博士研究生中国计算机学会会员主要研究方向为区块链安全.李必信(通信作者 教授博士生导师中国计算机学会会员主要研究领域为软件工程区块链安全.包骐豪,博士研 究生中国计算机学会会员主要研究方向为软件工程区块链安全.

智能合约的合约安全和隐私安全研究综述

胡甜媛

  李泽成

李必信

包骐豪

东南大学计算机科学与工程学院 南京 

香港理工大学计算系 香港 

  区块链作为对等网络中的一种分布式账本技术集成了密码学共识机制智能合约等多种技术提供一 种新型信任体系构建方法.智能合约具有公开透明实时更新准确执行等显著特点在区块链中为信息存储交易 执行和资产管理等功能的实现提供了更安全高效可信的方式.但是智能合约本身仍然存在安全问题影响了区 链技术的进一步推广使用.所以近年来围绕智能合约安全问题的相关研究比较多为了帮助相关人员更好地理 解和掌握其中的研究思路本文采用M方法通过收集25年以来公开发表的关于智能合约安全问 题的各类文献并进一步通过文献筛查问题设置信息提取结果获取和分析等步骤总结智能合约安全相关研究 的现状和未来发展趋势如下目前智能合约自身面临的安全问题和挑战主要体现在合约安全和隐私安全两方 问题和挑战在调查的篇文献中篇文献针对合约安全篇文献针对隐私安全智能合约安全保 障目前采用的方法主要包括形式化验证模糊测试零知识证明可信执行环境等保障方法针对合约安全的 究目前主要集中在合约实现测试阶段而针对智能合约设计部署及运维阶段的研究比较少针对隐私安全的 究主要集中在合约数据隐私保护而针对合约代码隐私安全的比较少覆盖范围智能合约安全保障研究目 前主要从合约实现人员合约测试人员的角度进行而从合约维护人员和合约用户角度展开的研究较少研究角 未来研究应该围绕智能合约的全生命周期的每个阶段安全问题进一步推进先验方法和后验方法定性方 和定量方法静态方法和动态方法的结合是大势所趋发展趋势综上本文通过调研发现了现有研究的不足 并建议了进一步的研究方向.

关键词 区块链智能合约合约安全隐私安全映射研究

中图法分类号   

犆 狅 狀 狋 狉 犪 犮 狋 狌 犪 犾 犛 犲 犮 狌 狉 犻 狋 狔 犪 狀 犱 犘 狉 犻 狏 犪 犮 狔 犛 犲 犮 狌 狉 犻 狋 狔 狅 犳 犛 犿 犪 狉 狋 犆 狅 狀 狋 狉 犪 犮 狋 犃 犛 狔 狊 狋 犲 犿犕 犪 狆 狆 犻 狀 犵 犛 狋 狌 犱 狔

HUTianYuan LIZeCheng LIBiXin BAOQiHao

 

 

犃犫狊狋狉犪犮狋 Asadistributedledgertechnologyinapeertopeernetworkblockchainintegrates cryptographyconsensusmechanismssmartcontractsandothertechnologiestoprovideanewtrust systemconstructionmethod.Thesmartcontractwhichistransparentrealtimedeterministic providesasafermoreefficientandcrediblewayfortherealizationoffunctionssuchasstorage transactionexecutionandassetmanagement.Howeverthesmartcontractitselfstillsuffers fromsomevulnerabilitieswhichhindersitsfurtherpromotionandadoption.Thereforethere hasbeenplentyofrelatedresearchonsmartcontractsecurityissuesrecently.Inthispaperwe adoptthemappingstudymethodandcollectpublishedpapersonsmartcontractsecuritysince

《 计

算 机

学 报

(2)

2015.Throughliteraturescreeningproblemsetsinformationextractionresultacquisitionand analysiswesummarizethesmartcontractsecurityresearchstatusandfuturetrendsasfollows

Currentsecurityproblemsandchallengesaremainlyreflectedincontractsecurityandprivacy security.Amongthe45documentssurveyed29focusedoncontractsecurityand16focusedon privacysecurity.Themaincontractsecurityenhancementtechniquesincludeformalverification fuzzingzeroknowledgeproofandtrustedexecutionenvironment.Existingcontractsecurity researchesmainlyfocusedonimplementingandtestingsmartcontracts.Bycontrastlittleresearch exploredcontractsecurityproblemsindesignimplementationandruntimestagesCurrent privacysecurityresearchesmainlyfocusedoncontractdataprivacyratherthancontractcode privacy.Theresearchonsmartcontractsecurityismainlycarriedoutfromtheperspectiveof contractimplementationandtestingstaffwhilethereisrelativelylittleresearchfromthe perspectiveofmaintainersandusers.Futureresearchesshouldfocusonthesecurityissuesat eachstageofthesmartcontractlifecycle.Thecombinationofprioriandposteriormethods qualitativeandquantitativemethodsstaticanddynamicmethodsisanirresistibletrend.Tosumup thispaperhasfoundthedeficienciesofexistingresearchesthroughinvestigationandsuggested furtherresearchdirections.

犓犲狔狑狅狉犱狊 blockchainsmartcontractcontractsecurityprivacysecuritymappingstudy

1    

2009年比特币开启区块链时代区块链技术 是比特币的基础它支持去中心化计算模式的转变. 区块链系统应用传统的密码学原理结合特有的数 据结构实现了安全的数据存储和共享.在P2P网 络中共识机制为区块链系统提供了一种剔除可信 第三方的可信数据共享机制为上层应用提供安全 的账本支持区块链在不可信环境下建立起信任关 系实现价值传递和信任传递.并且由于智能合约的 引入区块链应用已经远远超出加密货币的范畴以 智能合约为代表的第二代区块链平台及应用呈现爆 发性增长.智能合约作为一种可自动执行的数字 化协议为区块链增添可编程属性为实现可编程社 会提供可能.智能合约与区块链的结合被认为是 区块链世界中一次里程碑式升级随着第一个结合 区块链与智能合约的平台以太坊的诞生迎来区块 链2.0时代.

目前区块链技术在各个领域的应用范围越来 越广区块链的安全性和隐私保护特性是推动区块 链长远发展的重要因素.然而由于这一新兴技术发 展时间较短尚不成熟各类安全事故频频发生引 起社会各界对区块链安全问题的广泛关注.

针对以太坊去中心化应用EthereumDecen tralizedApplicationETHDApp本文统计了2016年

1月至2020年6月发生的16起重大攻击事件如表1 所示

.通过表1看出16起事件中有13起事件是 由于智能合约被攻击导致的智能合约自身存在的 缺陷合约之间的调用等都是影响合约安全的重要 因素.

 犎犇攻击事件

序号攻击时间 攻击目标 损失金额 攻击原因 127TO$ 重入攻击 229Py $0 犇调用 326Py $无保护自杀 422B 整数溢出 520Br $0 疑 621F 合约伪随机数生成 721FD $0 贪 829Sn$ 重入攻击 925b 多个智能合约调用 028b 多个智能合约调用 128Up $ 合约重入攻击 229Le$ 合约重入攻击 325Hc $ 合约漏洞 428t 合约漏洞 528Br $ 合约函数漏洞 623D

目前对于区块链技术的安全和隐私保护业界 处于初级探索阶段.频发的智能合约攻击事件严重 威胁区块链生态安全亟需智能合约安全保障技术 支持.于是很多人开始重视并研究智能合约安全

计  算  机  学  报

HD?c

《 计

(3)

相关研究成果也越来越多.然而由于研究者来自不 同学科领域大家关注角度不同采用的技术方法不 同解决的安全问题和预期目标也不同所以现有研 究成果缺乏一定系统性研究思路也不够清晰无法 为解决智能合约安全问题形成有力指导.

基于当前智能合约安全的研究工作本文旨在 通过深度调研并分析已有智能合约涉及的合约安全 和隐私安全方面的相关研究发现当前研究中存在 的不足提出需要解决的问题并建议有潜力的研究 方向.为此首先根据MappingStudy映射研究方 法确定3类感兴趣的问题然后在选定的电子数据 库中广泛检索2015年至2020年发表的智能合约安 全方面的论文选择有代表性的45篇论文并根据 需求信息模板从每篇论文中提取关注的信息最后 通过对信息深度分析归纳和总结回答上述3类研 究问题发现现有研究不足并进一步建议研究方向. 具体来说本文主要贡献如下

分析了智能合约安全问题和挑战.从智能 合约的生命周期出发分析智能合约在设计实现 测试部署运维不同阶段面临的安全问题和挑战 以及隐私安全涉及的合约代码安全和合约数据安全 面临的安全问题和挑战明确了研究目标.

总结了智能合约安全保障方法.针对智能 合约安全面临的问题和挑战从智能合约生命周期 的角度归纳整理不同阶段的安全保障方法主要包 括合约设计合约实现合约测试和合约部署及运维 安全保障方法从合约代码隐私和合约数据隐私角 度归纳整理智能合约隐私安全保障方法.

发现了现有方法存在的不足.针对不同的 智能合约安全问题和保障方法分析现有研究的优 势和不足.大量研究集中在合约实现测试阶段其 他阶段的相关研究较少已有的智能合约测试方法 未形成全面体系的智能合约检测框架对运行中的 智能合约未实现灵活有效的合约维护升级机制 已有的智能合约隐私保护方法存在性能不高可扩 展性较低未实现完全去中心化等不足.

建议了进一步研究方向和目标.建议未来 研究要做到先验方法和后验方法融合定性方法和 定量方法融合静态方法和动态方法融合.

2   基本术语

21 智能合约

智能合约是被部署在区块链上可自动执行的数

字化协议也是可按照预设合约条款自动执行的计 算机程序主要包含相关代码和数据集.智能合约作 为区块链的激活器其自动化和可编程特性使其可 以封装分布式区块链系统中各节点的复杂行为成 为区块链构成的虚拟世界中的智能软件代理机器 人.本质上智能合约既不是合约也不智能具有较 低的法律效应目前智能合约规则也无法自动化实 现.但区块链上智能合约具有众多特性如可编程 不可篡改去信任等通过智能合约可以灵活嵌入各 种数据和数字资产安全高效地交换信息管理资 产.区块链中数字资产可以分为数字货币与非数字 货币由关于该资产的数字文件实现区块链上交易 的数字资产类型日渐丰富有能源实体资产和知识 产权等由现实中的资产数字化而来.智能合约为传 统商业模式变革带来可能为构建可编程资产系统 和社会奠定基础.

22 智能合约应用平台

目前具有代表性的智能合约应用平台主要是以 太坊Ethereum和超级账本HyperledgerFabric. 其中以太坊作为公有链的代表其智能合约主要采 用Solidity语言编写超级账本作为联盟链私有 链的代表其智能合约又称为链码Chaincode由 Java或Golang等语言编写.以太坊作为最早的智 能合约平台使用较为广泛因此本文智能合约安全 研究主要围绕以太坊平台展开.

以太坊作为去中心化应用平台其智能合约负 责存储业务逻辑程序代码和应用程序的相关状 态.与比特币莱特币等搭建自己的区块链运行平台 的加密数字货币不同通过以太坊发布的加密数字 货币一般称为代币Token代币没有自己的区块 链而是以智能合约形式运行在以太坊平台上.以太 坊不仅仅支持数字货币还通过智能合约支持更多 应用场景例如金融游戏公证等.

在以太坊中一个智能合约实际上是一串代码 的合集包括代码中各种函数以及代码运行过程产 生的各种状态.以太坊支持多种高级编程语言专门 的编译器将合约编译成字节码后部署到区块链.发 布者在以太坊平台发布合约后智能合约作为一段 程序被运行在网络中所有节点上合约发布者无法 修改已发布的合约.由于智能合约一般运行在隔离 的沙箱执行环境中智能合约会被所有节点执行并 且任何人都可以发布执行合约为了防止以太坊网 络发生蓄意攻击或滥用的现象以太坊协议规定交 易或合约调用的每个运算步骤都需要收取费用gas

2期 胡甜媛等智能合约的合约安全和隐私安全研究综述

《 计

(4)

就是该费用的计数单位.

由于智能合约代码涉及数字资产一旦合约代 码缺陷被利用可能造成巨大损失所以如何保证智 能合约安全至关重要.

23 智能合约安全

目前智能合约发展仍然处于初级阶段传统编 程模式和软件生命周期需要进行有效的改造来适应 智能合约的安全需求.区块链系统应用智能合约来 实现复杂的交易区块链系统要求合约的数据及其 在数据上运行的代码都要公开每个矿工都要模拟 执行合约该过程不仅涉及智能合约本身的安全问 题还存在隐私泄露的风险.本文认为智能合约安全 主要体现为合约安全和隐私安全.

合约安全主要针对合约设计文档合约代码合 约运行状态等要求智能合约不存在设计缺陷代码 漏洞等不足涉及智能合约的设计实现测试运维 及部署等多个阶段.

隐私安全主要针对智能合约代码隐私及合约执 行过程中涉及的相关数据隐私要求保护程序代码 以及程序执行过程中的交易数据不会被非授权节点 获取主要体现在区块链系统的合约代码和合约数 据两方面.

3   综述方法

MappingStudy映射研究是系统性文献综述

SystematicLiteratureReviewSLR的一种其目 的是对某一研究领域进行广泛的概述.本文之所 以选择MappingStudy作为调查方法是因为本文的 目标是分析智能合约安全的研究现状总结现有研究 取得的成果探索智能合约安全的未来研究方向.本 文遵循系统性文件综述的方法参考Kitchenham和 Charters提出的指南根据MappingStudy方法

的思想按照以下顺序进行调研分析

设置研究问题.针对智能合约安全定义相 关研究问题包括智能合约利益相关者安全问题及 挑战安全保障方法保障方法验证等

确定文献筛选策略并选择主要文献.针对 智能合约安全主题定制检索关键词在选定数据库 中检索相关研究并筛选出主要文献

评估主要文献质量.定制质量评估标准评 估主要文献是否满足质量标准

定义信息抽取模板.抽取主要文献的关键 信息定制信息抽取模版根据信息抽取模版中的规

则抽取与研究问题相关的主要内容.

抽取结果及分析.报告信息抽取的结果并 进行关联性趋势性分析等参见第4节

讨论现有方法的不足归纳总结未来可能 的研究方向参见第5节

下面介绍综述研究的各个步骤. 31 研究问题

在任何系统性综述中明确研究问题最重要. 本文从智能合约研究人员的角度总结提炼出如下 三类研究问题如表2所示通识问题General QuestionGQ聚焦问题FocusedQuestionFQ

和统计问题StatisticalQuestionSQ

 研究问题列表

问题类别 具体问题 通识问题1 智能合约安全涉及哪些利益相关者?

2 智能合约面临哪些安全问题和挑战?

3 智能合约安全主要有哪些保障方法?

4 智能合约安全保障方法如何验证?

聚焦问题1 引起智能合约安全威胁的原因有哪些?

2 现有智能合约的合约安全保障方法有效性如何?

3 现有智能合约的隐私安全保障方法有效性如何?

4 现有研究方法有哪些不足?

统计问题1 智能合约安全的研究热度如何?

2 智

通识问题GQs涉及到区块链系统中智能合约 安全相关的通识问题.GQ1关注谁参与智能合约安 全保障过程?智能合约从设计到使用涉及多个阶 段智能合约安全保障包含多个方面完整安全保障 过程有哪些人参与都是直接影响智能合约安全的 主导因素.GQ2关注智能合约目前存在哪些安全问 题和挑战?真实存在的安全问题是引起研究者对智 能合约安全产生关注的主要原因鉴于已有的智能 合约安全问题智能合约安全保障技术发展面临哪 些挑战?GQ3关注如何通过具体的方法保障智能合 约的合约安全和隐私安全?针对已有的不同类型的 问题和挑战现有研究通过哪些安全保障技术实现 了合约安全保障和隐私安全保障?GQ4关注智能合 约安全保障方法如何进行验证?不同的安全保障方 法实现不同目的其安全保障对象和安全保障形式 各有不同.

聚焦问题FQs在回答了GQs问题的基础上 对智能合约安全做出进一步的分析主要分析现有 的智能合约安全保障技术相关的具体问题以及现有 研究不足.其中FQ1聚焦于智能合约安全威胁产

计  算  机  学  报

《 计

(5)

生的原因FQ2关注智能合约的合约安全保障方法 的有效性FQ3关注智能合约的隐私安全保障方法 的有效性最后FQ4关注现有智能合约的合约安 全和隐私安全保障方法的优势和不足.

从文献发表的角度来看统计问题SQs提供 了另一种观察当前研究现状的方式.SQ1关注文献 的发表时间和数量SQ2关注文献发表的载体可 以看出相关研究的趋势和成熟度.

32 研究策略与选择

在确定了研究问题的基础上本小节主要介绍 如何选择研究问题相关的文献主要包括全面文献 检索和主要文献筛选.

3.2.1 全面研究检索

首先采用全面的检索策略找到与研究问题相 关的文献包括检索关键词构建和检索范围界定.为 了获得更好的搜索结果对关键词组进行细化和优 化.Kitchenham等人建议将搜索问题分解为各个 搜索单元包括其同义词缩略语和替代拼写等 然后通过布尔运算进行组合.PIOPopulation InterventionandOutcome标准是定义这种搜索

单元的合适方式Population涉及到与技术和标 准相关的术语Intervention解决的是软件方法论

或技术工具程序中的一个具体问题.本文的检 索关键词公式如式所示

检索关键词=populationANDintervention 在本文的智能合约安全场景下population和 intervention的定义如表3所示.

 主要研究检索词

类型 检索词

形式化验证模型检测符号执行抽象解释 模糊测试抽象语法树安全多方计算 可信执行环境零知识证明非交互零知识证 简洁非交互零知识证明

智能合约安全合约缺陷合约漏洞 代码安全代码缺陷代码漏洞合约隐私

通过表3构建的检索关键词进行检索本文选 取了表4中10个电子数据库作为本文的检索范围.

这些数据库涵盖了计算机科学与工程领域内最相关 的期刊和会议包括研讨会.在研究选择时通过人 工过滤排除不同数据库产生的重复结果.本文将开 始年份设置为2015年结束年份设置为2020年.此 外由于智能合约隐私保护方面的研究相对较少因 此文献搜索过程中可以关注部分具有权威性的技术 文档.

 选择的电子数据库

序号 电子数据库 网址 1 知网

2 万方 3 AMDyh

4 E 5 G 6I 7 Dy h 8S 9S 0 W

3.2.2 主要文献筛选

由于初步检索后得到的文献数量较多需要对 其进行筛选从最初的检索结果中排除不相关的文 献选择最具代表性的文献作为主要文献.首先由 于不同电子数据库的特点搜索结果中包含杂质如 遇搜索关键词直接相关的会议名称将其人工删除 以保证结果的准确性其次检查文献的标题和摘 要排除不涉及智能合约安全和安全保障技术的研 究还有部分研究在技术上相似因此选择最具代表 性的作为主要文献最后本文共选择45篇文献作 为研究的主要参考资料其中包含3篇技术文档. 33 质量评估

针对45篇文献论文的质量评估至关重要本 文给出如下8个论文质量评估标准

QA1是否有关于研究目的的明确说明? QA2是否有关于研究背景的充分描述? QA3是否有关于研究问题相关工作的回顾? QA4是否有关于智能合约安全保障方法描述? QA5方法是否经过验证?

QA6结论是否与研究目的和宗旨相关? QA7是否有明确的研究结果陈述? QA8是否建议进一步研究方向?

表5显示了每篇主要文献的质量评估结果.其 中表示×表示.除了Bartoletti等人 等9篇文献不包含未来工作展望Q8大部分研究 满足本文设计的标准.由于缺失Q8不影响研究结 果本文不将其删除.

2期 胡甜媛等智能合约的合约安全和隐私安全研究综述

《 计

數據

表 5   主要文献质量评估 序 号 主 要 文 献 Q A 1 Q A 2 Q A 3 Q A 4 Q A 5 Q A 6 Q A 7 Q A 8 1B a r t o l e t t i e t a l[ 5 ]        × 2W o h r e r e t a l[ 6 ]         3W o h r e r e t a l[ 7 ]         4D e s t e f a n i s e t a l[ 8 ]    ×   
表 7   主要文献汇总 序号 主要文献 描述 S 1 B a r t o l e t t i e t a l[ 5 ] 以太坊智能合约的设计模式 S 2 W o h r e r e t a l[ 6 ] 安全模式描述了典型安全问题的解决方案 , 并可由S o l i d i t y 实现人员应用以减轻典型的攻击 S 3 W o h r e r e t a l[ 7 ] 设计模式为实现人员提供设计指南 S 4 D e s t e f a n i s e t a l[ 8 ] 主张建立区块链软件工程学科 S
表 1 0   合约数据隐私保护方案对比 指 标 方案 Z e t h e rF a b Z K P h a n t o mS o d s M P C R a z i e l O r i g o A r b i t r u m T CC O N F I D EE k i d e n 技术 Σ  B u l l e t sN I Z Kz k  S N A R K sS M P CS M P C + N I Z KO f f  c h a i n + Z K PV M + z k  S N A R K

參考文獻

相關文件

古今並重 全面均衡 研習能力 學生興趣. 配合

衷誠合作 衷誠合作 衷誠合作 衷誠合作 互相信任 互相信任 互相信任 互相信任 保護幼弱 保護幼弱 保護幼弱 保護幼弱 造福兒童

 熱水可令喉管及裝置釋 出更多雜質,應避免從 熱水水龍頭取水飲用或

瞭解各種安全防護 器具(含滅火器、安 全帽、護目鏡、防 凍手套、絕緣手 套、高空作業安全 帶、噪音防護及氣 銲設備回火安全裝 置等)之種類及功 用。.

凡中華民國國民,體能狀況良好,具有安全維護暨門禁安全管理、校園定 時巡視、校園夜間輪值暨安全警戒及突發狀況處置及通報等工作能力者

www.themegallery.com 總結 Company Logo.. 1) 要先開水喉最少兩分鐘.. *若食水在喉管裡停留的時間更長

〝电子签署〞(electronic signature)

(四)訓練場地各班次教室之環境條件、設備數量等級、建築