基于区块链的智能合约安全性分析.docxVIP

基于区块链的智能合约安全性分析.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

?

?

基于区块链的智能合约安全性分析

?

?

岳勇郭仲勇艾阳

摘要:随着区块链技术应用范围越来越广泛,也面临着诸多方面的安全威胁,智能合约引发的安全问题已经成为区块链安全性的主要问题。本文通过对智能合约安全性分析,提出相应的解决方案;通过合约安全审计方法、合约安全监测工具等措施对智能合约进行安全管理,保障信息系统安全。

关键词:区块链;智能合约;隐私保护;安全漏洞;安全审计

:TP309

0引言

智能合约是部署在区块链上的代码,利用协议和用户接口完成合约过程。在智能合约层,通过在智能合约上添加能够与用户交互的前台界面,并能与其它外部IT系统进行数据交互和处理,形成去中心化的应用(DAPP),实现各种行业应用。智能合约具有事件驱动、自动执行及价值转移等特点,通过智能合约处理各种事务,减少了人为干预的风险,能够在任何时刻响应用户需求,这样能够大大提升效率,节约时间和成本。由于智能合约整体处于初期阶段,需要重视其安全性、扩展性、以及与现实世界的法律体系的对接等问题,尤其是安全性问题得不到有效解决,将会严重阻碍价值互联网的推进步伐。

1?技术原理

1.1?智能合约的执行环境

目前以太坊和超级账本的智能合约技术相对更为成熟,在以太坊中合约代码在虚拟机中执行,超级账本中合约代码在容器中执行。虚拟机和容器都创造了一个封闭的沙箱环境,在封闭隔离的情况下执行合约代码。

以太坊虚拟机是一种图灵完备的,基于栈的后进先出特性设计的虚拟机,它可以将智能合约代码编译成可以在以太坊上执行的机器代码,并为智能合约提供一个完全封闭的运行环境,在以太坊中每个节点都创建了一个EVM虚拟机,当出现调用合约交易时,所有节点都会执行一遍合约并对结果进行共识。

超级账本采用了容器(docker)作为智能合约的执行环境,和虚拟机相比容器没有采用虚拟化技术,而是直接运行在底层操作系统上之上,因此在容器中合约的执行效率很高。但相较于虚拟机而言,容器的启动和执行过于消耗资源,这也成为了制约超级账本性能的关键因素。

1.2智能合约的运行机制

在一个智能合约内一般包含合约值和合约状态两个属性,在智能合约代码中写明了合约的应用场景和触发规则,一旦外部输入数据符合触发条件,可以就会开始执行并返回相应的结果。如下图1所示,由于区块链种类及运行机制的差异,不同平台上智能合约的运行机制也有所不同。智能合约的生命周期可以简单的分为开发、部署、执行三个阶段。

(1)开发阶段:合约开发阶段,主要是由多方协商,根据现实世界的合同规则编写相应的程序代码,编写过程中需要开发者熟悉合约代码的编写思维,尽可能简洁以防止代码出错。

(2)部署阶段:合约开发完成后,发起方用户对合约签名并发起一条交易,交易经过网络广播和节点验证后,跟这一时间戳内的其他交易一同保存在当前区块中,合约部署成功后将返回合约地址和相关接口信息,用户可以通过合约地址和接口信息对部署成功的合约进行调用。

(3)执行阶段:调用合约需要用户通过合约地址和接口信息发起交易,区块链内的其他节点为了获得系统预设的奖励会帮助新区块的产生。节点收到调用合约的相关交易后将在一个本地沙箱环境中执行合约(如以太坊虚拟机EVM),执行过程中,合约代码根据外部输入数据和合约状态信息判断当前合约状态是否满足合约触发条件以执行合约内的操作,符合条件的更新操作,在经过共识算法的验证后会进入区块链新的区块中。

2?智能合约安全性分析

智能合约的安全性通常可以从代码编写、合约虚拟机和区块链特性这三个维度展开,以下分别对这三个方面的安全性漏洞进行了分析,针对其中可能出现的问题也提出了相应的解决方案。

2.1?合约隐私泄露

即使在联盟链中,由于区块链交易信息公开,合约代码完全开源,合约从创建、部署到执行的整个过程都会被广播到参与联盟链的全部节点,导致合约参与者的真实身份有很大可能会被有意的攻击方识破。一些机密合约的隐私内容,有时不便公开,如果依然采用原先的部署、执行方式,将导致合约参与者的重要信息受到威胁。

解决方案:

(1)采用盲签名。盲签名技术即签名者在不知道所签文件内容的情况下进行签署,而发送者却可以从签名者对盲化后的文件签名中提取出有效签名,这体现了盲签名技术所具有的盲性和不可伪造性的特点。

(2)采用环签名。环签名是一种简化的类群签名,它是指环中的成员用他自己的私钥和其他环成员的公钥进行签名,这一过程并不需要征得其他成员的同意,签名的验证者可以知道签名来自这个环,但无法定位准确的环成员,这也是一种对合约参与者身份安全的保护方式。

(3)采用同态加密。同态加密是一种特殊的加密方法,对密文进行数据处理得到的结果跟对明文进行数据处理再加密的结果相同,即同态性。在区块链上应用同态加密技术可以对公开的数据进行加密,再进行数据处理,这种方式可以在

文档评论(0)

惩罚罪恶12345 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档