卷积神经网络在智能合约审计中的应用

栏目: 数据库 · 发布时间: 6年前

内容简介:传统智能合约代码审计,多使用纯人工或者形式化验证等切片穷举的方式,而且涉及到代码审计审计人员水平高低不一样,容易导致审计结果出现偏差。人工方式受到个人能力所限,质量无法保证,且人力疏忽的可能性远高于自动化程序。传统自动化程序又无法发现逻辑、业务范畴的风险。以太坊支持图灵完备的智能合约协议,整个生态有许多人基于以太坊开发自己的Dapp,生态得到了蓬勃发展。这其中,绝大部分被广泛使用的合约,均为Token代币合约。这些合约,为用户的资产在区块链网络中流通提供了极大的助力。

引言

传统智能合约代码审计,多使用纯人工或者形式化验证等切片穷举的方式,而且涉及到代码审计审计人员水平高低不一样,容易导致审计结果出现偏差。人工方式受到个人能力所限,质量无法保证,且人力疏忽的可能性远高于自动化程序。

传统自动化程序又无法发现逻辑、业务范畴的风险。

背景

以太坊支持图灵完备的智能合约协议,整个生态有许多人基于以太坊开发自己的Dapp,生态得到了蓬勃发展。这其中,绝大部分被广泛使用的合约,均为Token代币合约。这些合约,为用户的资产在区块链网络中流通提供了极大的助力。

基于以太坊生态的合约代币,价值已相当客观,甚至有个别币种达到数亿美金。

同时,也不乏很多“问题币”,这些“问题币”在代码层面上实现的时候,开发人员由于自身水平问题或者限于项目开发时间制约,导致代码部署到以太坊之后,存在风险,所有的合约代码或opcode,都公开在区块链上,这就容易遭受到黑客的定向攻击,一旦黑客们开始尝试利用这些问题合约的漏洞,对很多项目来说,几乎就是灭顶之灾,交易所和用户损失惨重,所以一个合约部署之前,或者合约部署之后,安全专家可以对部署代码做安全审计,发现其中隐藏问题。目前仅以太坊上的合约项目,远大于全球安全专家数量,每一名安全专家在合约代码审计上所付出的精力太多,这就迫切需要一个自动化,智能化的系统,能自动审计日益增长的合约代码,同时要能保障其审计能力不会低于专家水平。

近年来,机器学习迅速发展,而其中的深度学习更是独领风骚,已经在视觉计算和自然语言处理等方向取得了显著的成绩,解决了众多场景下难题,我们研究人员借力深度学习技术,借助安全专家已经审计的大量合约做标签数据,研发了一套专门适用于智能合约代码审计的引擎,经过数据测试,其审计能力比肩人工审计,但是效率远超过人工。

模型结构

整个模型结构简要如下所示。

卷积神经网络在智能合约审计中的应用

方法

预处理阶段

通过专家的指导了解到,由于应用层代码里面大量人为定义的变量,如果选择源代码作为输入的时候,会有很多不可预知的因素在里面,比如两个合约,A合约函数声明function transfer(address _to, uint256 _value),B合约函数声明function transfer(address to, uint256 token)从源代码层面上来说,是有很大区别的,但是对代码解析器来说,这两者几乎没有区别的,所以我们选取编译后的opcode 作为整个模型的原始输入,收集到原始的opcode的之后,我们仍然需要人工处理,比如操作数,简单的统一处理,以一个特殊的字符串来替代,有特殊含义的立即数,则原样保留,在送到整个模型之前,采用词嵌入方法,得到数据的向量形式,来表征我们的样本数据。

卷积核的选择:

由于文本的数据表示与图片在形式上完全不同,所以核的大小需要与输入层的宽保持一致,经过计算后得到feature map。

池化操作:

文本的表征和图片相比,不存在通道概念,同时,也需要避免在batch上做池化操作,窗口滑动时候,按照步长1来滑动。

中间层特征合并:

我们把多类不同核之后的的特征,合并起来,作为下一层的输入,同时为了防治过拟合,引入dropout ,概率取0.5来操作。

全联接层:

经过dropout 的操作后,通过全联接层,我们计算特征潜在的权重,最后通过softmax 来输出最大可能性标签,用来预测结果。

训练表现:

训练准确率如下图所示:

卷积神经网络在智能合约审计中的应用

橙色线条代表测试样本的准确率,可以看到随着训练迭代次数的增加,准确率在缓慢攀升。目前由于积累的样本不够完善,可以看到训练过程中模型loss的波动比较大,但可以期待的是,随着样本的完善和积累,整体效果会愈发明显。

总结:

在特定场景下,深度神经网络展现了不俗的表现能力,我们希望借助深度学习模型强大的泛化能力,切实解决一些合约代码的安全问题,同时也在不断探索深度学习技术在区块链行业的新应用方向。

来源:降维区块链安全资讯

本文由布洛克专栏作者发布,代表作者观点,版权归作者所有,不代表布洛克科技观点

——TheEnd——

关注“布洛克科技”

卷积神经网络在智能合约审计中的应用


以上所述就是小编给大家介绍的《卷积神经网络在智能合约审计中的应用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法(第4版)

算法(第4版)

塞奇威克 (Robert Sedgewick)、韦恩 (Kevin Wayne) / 谢路云 / 人民邮电出版社 / 2012-10-1 / 99.00元

本书全面讲述算法和数据结构的必备知识,具有以下几大特色。  算法领域的经典参考书 Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系  内容全面 全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法  全新修订的代码 全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使......一起来看看 《算法(第4版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具