区块链智能契约形式化:解决漏洞的方法和挑战外文翻译资料

 2022-08-09 15:20:44

英语原文共 16 页,剩余内容已隐藏,支付完成后下载完整资料


计算机与安全88 (2020)101654

目录可以在ScienceDirect上找到

电脑与安全

杂志主页:www.elsevier.com/locate/cose

区块链智能契约形式化:解决漏洞的方法和挑战

Amritraj Singh, Reza M. Parizi, Qi Zhang, Kim-Kwang Raymond Choo, Ali Dehghantanhaaabc,d

a

b

c

d

Kennesaw州立大学软件工程和游戏开发系,GA 30060,美国IBM Thomas J. Watson研究中心,纽约,10598

德克萨斯大学圣安东尼奥分校信息系统和网络安全系,美国网络科学实验室,加拿大安大略省圭尔夫大学计算机科学学院

a r t i c l e

输入输出

a b s t r a c t

文章历史:

作为一个分布式计算平台,区块链允许用户部署软件(称为

2018年9月30日

2019年10月20日

2019年10月21日

2019年10月22日上线

智能合同)为财富的下一代去中心化的应用程序不涉及一个可信的

第三方。然而,智能合同的优势是有代价的。和大多数技术一样,

智能欺诈存在潜在的安全威胁、漏洞和各种其他问题

大片。由于各种各样的业务逻辑,编写安全可靠的智能契约可能非常困难,

关键词:

以及平台的漏洞和限制。正式的方法最近被提倡到miti-

区块链

门这些漏洞。本文旨在对当前的形式化研究提供一个初步的研究

聪明的合同

在区块链上的所有智能契约相关平台上,这在文献中是罕见的。为此,a

正式的方法

验证

系统综述

及时、严谨、系统地对国内外最新的研究成果进行系统的回顾和评价

提供2015年至2019年7月期间的捕捞。本研究是在对一套理论进行综合评述的基础上进行的

从8个主要的在线数字数据库中提取了35篇研究论文。结果

指出最常用的形式化方法是定理证明,这是最常用的方法

验证与智能契约相关的安全属性,而其他技术如符号exe-

游戏和模型检查也经常使用。这些技术是最常用的

验证智能契约的功能正确性。从语言和自动化的角度来看,

有12种语言(领域特定/规范/通用)被提议或用于正式的-

智能契约在区块链上的组织,同时15个正式的方法特定的自动化工具/框架

,以减轻智能合约的各种弱点。从这项工作的结果来看,我们

进一步强调这一新兴领域未来研究的三个开放问题,包括:正式测试、

智能契约的自动验证,以及Ethereum的领域特定语言(dsl)。这些是-

问题提出需要进一步深入的研究。我们的研究也为未来的研究提供了可能

的方向。

爱思唯尔有限公司保留所有权利。

1.介绍

它在安全、隐私、金融、云计算、物联网等诸多领域都有广泛的应用。最近,智能契约(Cuccuru, 2017)已经成为区块链扩展其视野并将其转变为分布式计算平台的一个有前途的新用例。智能契约是自动执行的契约,用户可以将协议和信任关系编成代码,然后将它们存储在区块链主机上。智能合同可以提供自动交易,无需银行、法院或公证人等外部金融系统的监督,从而促进安全可靠的商业活动。这些事务是可跟踪的、透明的和不可逆的。明智的合同通常是书面的

使用领域特定的语言,如Ethereum上的Solidity2、Kadena上的3 Pact4、Tezos7平台上的5 Liquidity6来简化契约编程。在某些情况下,通用语言(如Kotlin、8 Go9和Java10)也被用来编写智能契约,这主要是由于开发人员的熟悉性和可用性。

尽管智能契约看起来很容易实现和理解,但在现实世界中却很难实现,因为我们正在向区块链2.0中更可伸缩的智能契约迈进。Parizi等人(2018)基于可用性和安全性对一个新的智能契约开发者进行了关于可靠性、契约和流动性语言的实证评估。他们实验的结果表明,在可用性方面,可靠性是最可用的语言新开发人员编写智能合同,但是,当涉及到安全、新开发人员倾向于编写脆弱与稳固的合同可能被恶意实体造成财务损失。其中一次臭名昭著的恶意攻击发生在2016年6月,当时DAO(分散自治组织)智能合同被操纵,窃取了大约200万以太(5000万美元)。该契约容易出现重入问题(Liu et al., 2018),因此,当根据契约规范只允许一个调用时,将对smart契约的“splitDAO”函数进行递归调用以提取醚。Atzei等人(2017)对soleness和Ethereum平台的一些臭名昭著的安全漏洞进行了总结和简要分析。他们在三个层次上对漏洞的原因进行了分类:可靠性、EVM和区块链。此外,作者还使用了实际的攻击来利用这些漏洞。同样,Destefanis等人(2018)提供了一个关于平价钱包事件的案例研究,该事件导致了2017年500k Ether11(1.5亿美元)的冻结。他们的分析结果表明,

该事件是糟糕 的编程实践的结果,而不是可靠性语言本身的缺陷。

上述研究和事件表明,无论是缺乏经验的还是经验丰富的智能合同开发人员,往往都能编写出易受攻击的智能合同,这些合同可能容易失败,容易受到恶意实体的攻击。认识到编写安全可靠的智能契约的挑战,来自学术界和工业界的研究人员最近开始关注在部署到区块链之前使用正式方法对智能契约进行验证。形式验证的过程包括证明契约代码对于其状态空间中的所有输入都是正确的,从而验证契约的行为是否符合其规范。这个过程通常使用具体的规范语言来描述函数的输入和输出是如何相互关联的。正式的验证过程对软件工程来说并不新鲜,主要用于设计飞机和医疗系统等安全关键系统。然而,由于在验证和验证过程中所涉及的成本和时间,它在其他传统行业中的使用受到了限制。

因此,为了回答这个显而易见的隐现的问题,“为什么我们需要在智能契约验证中使用正式的方法?”它

2 https://solidity.readthedocs.io/。

3 https://www.ethereum.org/。

4 http://kadena.io/docs/Kadena-PactWhitepaper.pdf。

5 http://kadena.io/。

6https://github.com/OCamlPro/liquidity/blob/master/docs/liquidity.md。

7 https://tezos.com/。

8 https://kotlinlang.org/。

9 https://golang.org/。

10https://docs.oracle.com/javase/8/docs/technotes/guides/language/index.html。

11 https://www.ethereum.org/ether。

是因为(1)智能合同是不可变的,即使一些平台如Hyperledger Fabric12允许聪明的合同更新,他们不能修补一个容易如果一个缺陷或漏洞未来表面,(2)许多智能存储和操作合同价值的资产,和(3)智能合约公共blockchains来自世界各地的访问。这使得它们对恶意用户进行攻击非常有吸引力。因此,形式化的验证是一种强大的方法,它可以减少契约中bug和漏洞的风险,并有助于防止恶意攻击。

近年来,关于智能合同正式化的研究数量稳步增长,但同一领域内的系统综述等严谨、正式的研究仍处于起步阶段。事实上,就我们所知,我们的工作是在智能合同形式化领域的第一次系统审查,以总结最新的研究和实践,并帮助将结果传递给教育者和实践者。研究围绕一组特定的研究问题(见3.1节)展开,然后通过对大量学术和专业研究的全面内容分析来解决这些问题。本研究的具体贡献如下:

bull;评估当前智能合同的正式化方法,同时突出该领域的创新方法和成就。

bull;分析形式化方法中与区块链智能契约相关的最常被研究的问题和漏洞。

bull;审查领域特定语言(dsl)和其他在文献中提出的缓解智能契约漏洞的正式语言。

bull;概述用于形式化智能契约的最先进的工具和框架。

bull;识别未解决的问题,缓解这些问题的可能解决方案,以及推进该领域重新搜索状态的未来方向。

本文其余部分的结构如下:第2节概述了区块链领域的一些相关文献综述/调查,并强调了区块链研究的差距。第三部分给出了论文的研究方法和整个论文的探索选择过程,以及对有效性和局限性的威胁。第四部分是关于研究问题的结果和讨论。在第5节中,我们将讨论一些有待解决的问题和未来可能解决这些问题的方向。最后,第6节报告结论。

2.相关文献回顾/调查

本节简要概述了最新的二级研究(即在稳步增长的领域,基于区块链的系统和突出的差距,在区块链研究,即智能合同形式化(所有相关工作的总结在区块链智能合同和正式方法的领域给出了附录A)。

Yli-huumo等人(2016)进行了系统的文献综述(SLR),以确定目前发表了哪些与区块链技术的一般概念相关的研究。他们在审查中排除了法律、经济和监管方面的研究,只关注技术性的区块链论文;他们发现,80%的受访者关注比特币项目,尤其是安全和隐私这一共同主题。自2016年以来,区块链的应用已经多样化,因此我们的研究着眼于确定在网络安全和区块链应用方面具体存在哪些研究。

https://www.hyperledger.org/projects/fabric。

12

图1所示。在整个挑选过程中纸张的磨损。

2016年底,Conoscenti等人(2016)进行了一项关于区块链的使用和适应性的SLR,具体涉及物联网和其他点对点设备。有趣的是,他们强调区块链可以用于数据滥用检测,而不需要中央报告机制。

Seebacher和Schuritz(2017)在2017年提供了一种单反,强调区块链对服务系统的影响越来越大。他们的SLR结果表明,区块链在服务系统的功能中起着不可或缺的作用。区块链促进了价值的共同创造,确保了信息的可用性,并在这样的系统中提供了

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[239082],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。