欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[论文阅读】智能合约的漏洞检测--2 种漏洞检测方法

最编程 2024-03-10 07:19:46
...

在两篇论文中,主要提到的测试方法有:

  1. 符号执行:模拟程序的所有可能执行路径来检查代码中潜在错误
  2. 模糊测试:通过向程序提供随机生成的、异常的或无效的输入来观察其行为,以发现程序中的错误。
  3. 机器学习:通过将智能合约代码转化为模型能够识别的特征,构建机器学习或深度学习模型学习漏洞模式,然后对未知的智能合约进行安全漏洞检测。
  4. 形式化验证:利用数学方法证明程序的安全性。通过对问题建立数学模型,利用数学语言描述整个系统的全部状态,从而验证程序在各个状态下是否保持安全性和可靠性。
    下图是在机器学习方面著名的模型:

文献[2]模型1

文献[1]:模型2
其中图表征、序列表征和文本表征是指对代码进行怎么样的处理:

  1. 图表征:将源代码或字节码转换为控制流图、数据流图等表示形式,有效地抽象出智能合约代码的控制流逻辑、数据依赖关系等信息。反映代码中的语法和语义特征:GCN
  2. 序列表征:对源代码或字节码进行词法分析,提取变量访问、函数调用序列或语句调用序列等特征信息,并利用记忆力机制等方法学习提取出的序列信息:LSTM
  3. 文本表征:利用自然语言处理中的词嵌入算法,将智能合约转换为词向量。此方法直接把代码文本作为输入:Eth2Vec