当前位置:主页 > 管理论文 > 移动网络论文 >

ContractGuard:面向以太坊区块链智能合约的入侵检测系统

发布时间:2021-06-09 12:42
  以太坊智能合约本质上是一种在网络上由相互间没有信任关系的节点共同执行的已被双方认证程序。目前,大量的智能合约被用于管理数字资产,使智能合约成为黑客的重要攻击对象。常见的攻击方法是通过利用智能合约的漏洞来实现特定操作的入侵攻击。ContractGuard是首次提出面向以太坊区块链智能合约的入侵检测系统,它能检测智能合约的潜在攻击行为。ContractGuard的入侵检测主要依赖检测潜在攻击可能引发的异常控制流来实现。由于智能合约运行在去中心化的环境以及在高度受限的环境中运行,现有的IDS技术或者工具等以外部拦截形式的部署架构不适合于以太坊智能合约。为了解决这些问题,通过设计一个嵌入式的架构,实现了把ContractGuard直接嵌入智能合约的执行代码中,作为智能合约的一部分。在运行时刻,ContractGuard通过相应的context-tagged无环路径来实现入侵检测,从而保护智能合约。由于嵌入了额外的代码,Contract Guard一定程度上会增加智能合约的部署开销与运行开销,为了降低这两方面的开销,基于以太坊智能合约的特性对ContractGuard进行优化。实验结果显示,可有... 

【文章来源】:网络与信息安全学报. 2020,6(02)

【文章页数】:21 页

【部分图文】:

ContractGuard:面向以太坊区块链智能合约的入侵检测系统


智能合约入侵检测系统的基本思路

模型图,合约,智能,以太


部署后,智能合约的外部/公共函数可以使用3种不同的方法进行调用。第1种方法是用户通过客户端发送交易进行调用,该交易的信息包含目标函数的签名哈希和函数所需的参数。这是一种可以更改账户余额和智能合约状态的写入操作。“矿工”将会向发送方收取以太币,以支付交易过程中所产生的Gas费用。第2种方法是通过智能合约直接调用另一个智能合约的函数。这种操作本质上是智能合约间的消息调用。第3种方法是由客户端在本地调用智能合约中的view函数或pure函数,该函数不会修改状态也不需要花费Gas。3.1.3 数据管理模型

序列,上下文,图例,合约


为了获得智能合约运行过程中的信息,ContractGuard需要先构建智能合约的函数调用图。函数调用图是指在给定的具体智能合约中,将智能合约存在的所有函数作为图中的节点,而调用的上下文信息则表示为调用函数f前函数之间的调用序列[35]。例如,在图3(c)中,函数B的调用上下文信息可以为S→b1,也可以为S→a1→c1→b2,还可以为S→a1→c2→b2,具体信息由实际运行情况决定。由于递归,函数调用图可能包含循环,与在CFG中将回边替换为代用边一样,每一条递归的边都将换成从智能合约入口到函数调用处的边。例如,将图3(c)中的智能合约调用图转换为图3(d)中的,结果中存在函数C的4个调用上下文信息:S→a1→c1,S→a1→c2,S→b1→c3和b*→c3。


本文编号:3220599

资料下载
论文发表

本文链接:https://www.wllwen.com/guanlilunwen/ydhl/3220599.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户bb012***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com