代币合约发布之前一定要做好安全审计才能发,这是唯一值得且必须做的提前风控。
5月24日15点30分,慢雾科技联合创始人余弦做客「3点钟MarsBit创始学习群」,开展主题为"智能合约安全"的互动问答。
余弦表示,代币合约发布之前一定要做好安全审计才能发,这是唯一值得而且必须做的提前风控。审计智能合约是相关工具作为辅助+人的经验,但还是需要人来做最后把关。

嘉宾介绍:
余弦,慢雾科技联合创始人。十多年网络攻防实战经验。慢雾科技,专注区块链生态安全。
以下为对话原文整理:

余弦:我们做了200多份主流代币合约的安全审计,上图是我们的一个审计的每个项目。
我们的分类标准,可以认为很有参考意义。这次EDU、BAI 的问题,前面我发了那个连接里也提了,主要问题就是:权限控制的问题。
当然溢出这个问题在 EDU 和 BAI 里出现得很微妙,因为溢出默认不会自己抛异常,所以微妙地溢出,微妙地导致这个 transferFrom 居然可以任意盗币。
我们现在遇到的几乎所有智能合约的安全问题都是以太坊上的,毕竟目前以太坊是最成熟的发币平台,也有不少Dapp运行其中。
其他有智能合约的区块链项目也会有类似安全问题。但是溢出这个,简直是上古时代的东西,以太坊的EVM里出现这个,超出预料。
秦逸飞:溢出的问题有没有办法提前风控?
余弦:代币合约发布之前一定要做好安全审计才能发,这就是唯一值得而且必须做的提前风控。
当然还有一些辅助手法,比如:锁账户,锁各种函数,甚至可以更“坏”一些,可以锁住后,再把被盗的转回,但这种代币合约,我看了都害怕,Owner 权限太大了。
给大家分享下我们审计智能合约的做法吧,相关工具作为辅助+人的经验来最后把关。最终还是需要人来做最后的把关,否则一些逻辑上的漏洞有时候很复杂,有些合约可不是简单的几百行标准合约代码。
我们的做法里,还会用到慢雾区(一个专注区块链生态安全的社区,由慢雾科技创建并引导发展)伙伴的力量。
Cipher:代码漏洞很难完全避免吧?
余弦:很难,你想百分之百的安全,我们也害怕。我们团队经常感慨:如履薄冰。因为我们有时候出具的审计报告,我们的结论,万一错了呢?万一是 EVM 未知漏洞在特殊场景导致的安全问题呢?
以太坊 -> EVM ->Solidity 编写智能合约。以前大家觉得 HTTPS 很安全,然后 2014 爆发的那个心脏出血,让全球噩梦了一番。大家觉得远程黑进入操作系统这是上古操作,去年的 NSA 方程式组织被偷的一堆网络军火,让全球又噩梦了一番。
Cipher:怎么看形式化验证在区块链合约代码审计领域的使用?
余弦:这是个好问题,形式化验证的这批人我是发自内心欣赏的,算法实践高手。但是,我以前提过他们会遇到两大挑战:1. 这种算法实践到底实践得好不好全面不全面的挑战;2. 真正的网络攻防的挑战如何应对。
在我们的角度来看,形式化可以大大提高我们的效率。但是不是全部,我是搞网络攻防实践出来的,我们所看待的区块链生态面临的安全挑战是方方面面。我们需要真的懂什么是真正的黑客攻击。攻击者不会和你仅玩算法对抗,他会方方面面来黑掉你,只要他觉得你值得被黑。
合约也是如此。所以我说我们的模式:工具辅助提高效率+人来做最后的把关。有些玩形式化验证的公关文宣传有时候真是不敢苟同,比如“黑客的噩梦”。黑客会笑:我让你看看什么才是噩梦。
本文为MarsBit原创稿件,版权归MarsBit所有,未经授权不得转载,转载须在文章标题后注明“文章来源:MarsBit(微信:hxcj24h)”,若违规转载,MarsBit有权追究法律责任。