SECBIT郭宇:智能合约审计的趋势是自动化和复杂化

8月31日晚,SECBIT安比实验师创始人郭宇及其团队做客链得得《无眠吐槽大会》,与群友们探讨合约安全问题和“漏洞”中的机会,并就智能合约安全现状、应用、关键技术、解决方案、智能合约游戏漏洞以及区块链安全的商业模式等进行了全方位的分享。

郭宇精彩观点汇总:
1、 以太坊上大量的合约存在各种花样的整数溢出漏洞,有些可以直接导致 token 归零;
2、 目前智能合约中存在最普遍的安全问题是整数溢出漏洞;
3、 最棘手的智能合约问题业务逻辑漏洞,业务逻辑漏洞难以用机器自动发现,也较容易逃脱安全专家的审查;
4、 合约审计的趋势是,越来越复杂,越来越自动化;
5、 慎用“不流行的合约协议”;
6、 区块链态势感知系统主要依赖几个关键技术,即快速多维度地检索历史交易、恶意交易模式识别和合约代码相似度分析;
7、 未来可能出现巨无霸式的区块链安全公司,但垄断但可能性不大;
8、 大部分智能合约安全问题具有一定的共性,研究结果可做移植;
9、 由于合约代码无法更改,已部署的 Fomo3D 模仿游戏合约中的漏洞无法挽救,不建议普通玩家投入资金。
10、 针对复杂合约的审计需求会越来越大,短期内无法自动化或者免费。


以下是链得得“吐槽大会”之吐槽郭宇实录

**主持人(仇杨涛)**:我先做一下自我介绍,我是链得得金融记者杨涛,主要跟踪报道全球上市公司的区块链布局和探索,欢迎大家提供新闻线索,我也十分乐意与大家一同去探索、发现“链”的价值。

**主持人**: 1.链得得怼友@zhfeng: 为什么用形式化验证解决智能合约安全问题?通过形式化验证的方式能不能得到“完美”的智能合约?

郭宇:形式化验证理论上可以解决所有的智能合约问题,但是实际上只能解决一部分的安全问题。形式化验证并不是银弹。

智能合约安全问题涉及的问题比较复杂,涉及到区块链共识协议,智能合约语言,智能合约编译器,智能合约gas机制等等。形式化验证比较擅长解决智能合约中由于业务逻辑而引入的bug。形式化验证也能很好地解决整数溢出这类问题,现在以太坊上大量的合约存在各种花样的整数溢出漏洞,有些可以直接导致 token 归零。

形式化验证这个术语中有个词 “验证”, 验证是比较 A 与 B是否一致。这么来看,如果要对智能合约的安全性进行验证,那么就需要能够精确地定义什么是“安全”。不幸的是,有些安全特性非常难以定义,比如涉及到区块链共识协议层面的问题。所以我说理论上是能解决安全问题,但是实际应用中,有些“安全”难以定义。

Fomo3D 最后的大奖被黑客利用技巧夺走,这种安全问题则是由于区块链共识协议导致的,目前很难用形式化验证来解决。通过形式化验证可以得到一个在安全假设下面的“完美”合约,但是这些安全假设可能包括:基于合约编译器的正确性,合约虚拟机没有bug 这些前提。这些前提其实并不是很可靠,历史上合约编译器出过不少的bug。

所以,智能合约的安全性是一个综合性问题,形式化验证适用于解决某些问题,但不是全部。

**主持人**: 2. 链得得怼友@寇静: 由于智能合约的不可篡改性,也就表明合约上线前的审计工作尤为重要,包括隐私泄露、代币转入转出、合约故障处理等在内的风险成为最关心的,目前智能合约存在最普遍的安全问题是什么?同时又有哪些问题最棘手?

郭宇:1 目前智能合约中存在最普遍的安全问题是 整数溢出漏洞。我们通过工具扫描以太坊上所有的智能合约,发现各种花样的整数溢出漏洞,最著名的案例就是4月份的美链BEC安全漏洞,整数运算在合约中出现的频次非常高,包括整数之间的比较操作。

但是由于以太坊智能合约语言在设计之初并没有对整数溢出这个问题充分考虑,而大多数的程序员在传统的编程语言中,也没有对整数溢出这个问题足够重视,但是在智能合约语言中,整数溢出问题则可能是致命的。

实际上&#x

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值