论文1:《智能合约:架构及进展》 欧阳丽炜等

本文内容较为基础,是一篇综述。
第1节概述智能合约,包括区块链简介、智能合约运行机制和基础架构模型以及主流的开发平台
第2节介绍了智能合约的各种问题,包括隐私问题、法律问题、安全问题、机制设计问题、性能问题和漏洞检测技术
第3节结合应用,从金融、管理等领域介绍了智能合约的典型应用
第4节展望了一下智能合约未来的发展趋势

总结来说,主要给我们讲述了智能合约是啥,能干啥。

论文2:智能合约安全漏洞检测技术研究综述 钱鹏等

本文从Solidity代码层、EVM执行层、区块链系统层三个方面介绍了智能合约的漏洞类型和案例;介绍了形式验证、符号执行、模糊测试、中间表示、深度学习5种漏洞检测技术以及其对应的开源工具、可检测漏洞类型、准确率、耗时等,并提出了他们的改进思路;最后,展望了深度学习在该领域的蓝图。

这是一篇对智能合约漏洞检测极具引导性的文献。

Solidity代码层:
可重入攻击(fallback进行循环调用)
整数溢出攻击(导致代币蒸发)
权限控制攻击(函数未指定访问控制)
异常处理漏洞(对底层call等函数为检查返回值,但其不会抛出异常)
拒绝服务漏洞(过量循环、gas超标)
类型混论漏洞(变量类型定义错误)
未知函数调用漏洞(本质还是调用fallback)
以太冻结漏洞(合约被未经授权的用户销毁)

EVM执行层:
短地址攻击(由于短地址会补0,这会导致地址后面紧跟的数据被篡改)
以太丢失漏洞(合约地址错误或空)
调用栈溢出错误(达到256上限,直接事务原子性rollback)
Tx.origin漏洞(该全局变量被恶意用于身份验证)

区块链系统层:
时间戳依赖、区块参数依赖、交易顺序依赖(可被矿工操控)

形式化验证法:
将代码转为形式化模型,模型检测列举出所有可能的状态并检验,演绎证明基于定理证明思想,采用逻辑公式描述系统和性质。

符号执行法:
将代码种的变量符号化,遍历所有的执行路径(维护一组约束)。利用约束求解器导向测试输入。

模糊测试法:
流行。随机生成测试用例,检测执行流种的异常。

中间表示法:
将solidity代码或字节码转化为具有高语义表达的中间表示,再分析。

深度学习法:
高准确率、良好的扩展性和适应性。


局限性分析:

形式化验证:
需要交互的验证和判断,自动化程度低。
依赖严谨的数据推导和验证,无法动态分析。
缺少对合约可执行路径的检测,较高的误报和漏报。

符号执行:
计算资源和事件开销高。
路径爆炸,漏报率较高。
不能完全自动化

模糊测试法:
依赖于精心设计的测试用例。
很难追踪漏洞的确切代码位置。

中间表示法:
依赖于预定义的语义规则,无法检测出复杂的业务逻辑,容易误报。
无法对所有执行路径进行遍历。

深度学习法:对智能合约进行预处理以构建有利于模型学习的数据集。
无法突出关键变量造成语义建模不足,检测结果不理想。
可解释性差

改进思路:
1.提高形式化验证自动化程度
2.提取符号执行终点路径,减少路径空间
3.完善测试用例,改进模糊测试工具
4.优化中间表现形式,结合动态执行
5.加强深度学习可解释性,融合专家规则

关键问题:
1.漏洞检测准确率低
2.漏洞类型覆盖率低
3.漏洞审计事件长
4.漏洞检测自动化
5.多种智能合约语言

深度学习研究方向:
1.构建统一且规范的智能合约漏洞库
2.构建基于深度学习的动静态分析模型
3.构建统一且可扩展的深度学习模型
4.构建可解释性的深度学习
5.构建统一的漏洞检测工具性能评估体系

智能合约漏洞检测论文整理相关推荐

  1. Oyente:智能合约漏洞检测工具的安装与使用

    写在前面 当你阅读到这篇 博客 时,大概率你已经阅读并尝试过 Oyente 官方安装指导,甚至可能还在其它地方搜过安装教程,如果没有就当我没说... 那为什么在有各种版本的教程的情况下我依旧去写一个新 ...

  2. 基于GNN的智能合约漏洞检测(tmp)方法部分翻译(1)

    背景 实在是没办法,不翻译印象不深... 我们的方法 为了解决现有工具在智能合约检测方面的不足,我们提出了一种超出传统基于规则的框架的方法.特别地,我们根据程序中的数据流和控制流关系将智能合约源代码提 ...

  3. 基于GNN的智能合约漏洞检测(tmp)方法部分翻译(2)

    合约图的规范化 大多数图神经网络在信息传播时都是内在的平等的,忽略了某些节点更重要的作用.而且,不同的合约源代码生成不同的图,从而阻碍了图神经网络的训练.因此,我们提出了一种节点消除过程来实现图的规范 ...

  4. 区块链论文7(oyente智能合约漏洞检测工具)

    Making Smart Contracts Smarter 文章路径 参考链接1 参考链接2 参考链接3 Abstract: Cryptocurrencies record transactions ...

  5. oyente—合约漏洞检测工具安装

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 oyente-合约漏洞检测工具安装 前言 一.oyente是什么? 二.安装 1.在docker安装 2.linux安装 1.首先就是 ...

  6. 这些智能合约漏洞,可能会影响你的账户安全!

    摘要:区块链联盟链智能合约形式化验证揭秘,解释了我们为什么要对区块链上的智能合约进行形式化验证,以及形式化验证的分类和业界针对每种分类所推出的形式化验证工具,最后作者描述了一下目前形式化验证的种种方法 ...

  7. 智能合约自动检测工具『链必验』,如何带你解锁Web3.0世界

    在我们发布[链必验]新版本之后,目前已有大批开发者前来试用,今天,我们还需要详细介绍这款工具. [链必验]智能合约自动检测工具,可用来检测区块链智能合约漏洞.平台针对每个用户模拟了一条单独的测试链,用 ...

  8. 智能合约漏洞攻击事件_智能合约百科全书攻击漏洞

    智能合约漏洞攻击事件 Applications on Ethereum manage financial value, making security absolutely crucial. As a ...

  9. Fabric智能合约安全检测工具 讨论帖

    最近闲来无事,思考对Fabric的智能合约进行安全检测,检测手段具有通用性,也应用到其他合约代码.目前考虑支持Golang 智能合约安全检测,搭建Demo发现技术难度不大,解析AST树,匹配相应的ch ...

  10. PeckShield:DeFi平台Opyn智能合约漏洞详解——攻击者空手套白狼!

    北京时间2020年08月05日,DeFi 期权平台 Opyn 的看跌期权(Opyn ETH Put)智能合约遭到黑客攻击,损失约37万美元. Opyn 是一个通用期权协议,于今年2月份转型为保险平台, ...

最新文章

  1. 独家 | 一文盘点数据集市和数据仓库的差异(附链接)
  2. @value 注入静态属性_SpringBoot使用@Value读取属性值
  3. 从呼叫中心到移动互联网的演进
  4. 使用netty搭建一个简单的聊天室
  5. Promises/A+规范中文翻译
  6. 基于xilinx vivado的XDMA IP的使用详解
  7. Linux中的动态链接库与静态链接库
  8. POJ 1742 Coins ( 经典多重部分和问题 DP || 多重背包 )
  9. Linux 中文无法显示或显示方块
  10. php 发送delete请求,PHP中使用CURL实现GET、POST、PUT、DELETE请求
  11. [LUOGU]P1451 求细胞数量
  12. 精度、延迟两不误,移动端性能新SOTA,谷歌TF开源轻量级EfficientNet
  13. RecycleView添加setEmptyView
  14. 到底工资要多少合适?
  15. 日志分析工具Awstats实战之Nginx篇-分析结果静态化
  16. 如何新建一个css到html,新建一个css样式
  17. Linux数据结构之radix-tree
  18. 创造与魔法怎么自建服务器,创造与魔法自建服攻略大全_创造与魔法自建服建造方法、福利_玩游戏网...
  19. 【论文写作——投稿和审稿】
  20. 操作实例:Linux上挂载移动硬盘和IPSAN上的NTFS分区

热门文章

  1. oracle 两表关联查询
  2. 数据库两个表关联查询
  3. 【HAVENT原创】Eureka 注册中心服务上线下线邮件提醒
  4. 如何打开win7系统诊断策略服务器,win7系统诊断策略服务已被禁用如何解决
  5. 求职招聘小程序 毕业设计毕业论文 开题报告和效果图参考(基于微信小程序毕业设计题目选题课题)
  6. 在使用Assimp库时编译器报错:C2589 “(”:“::”右边的非法标记 AssimpLoadStl
  7. 您的 App 包含 NSUserTrackingUsageDescription,这表示您将会请求追踪用户。要在
  8. sm是什么职位_职位或职级ED MD SM M 是什么意思?
  9. word 插入公式技巧
  10. Android WiFi功能实现,知其然必知其所以然! (二)