智能合约的安全

安全对于区块链的开发是绝对必要的。智能合约一直受到灾难性黑客攻击的困扰,包括DAO黑客攻击、Parity钱包黑客攻击,以及第二次Parity钱包黑客攻击。如果你想要编写智能合约,你必须阅读这三个攻击的分析。

事实是,智能合约很难搞好。虽然编程工具链将会得到改进,使这些精确的攻击变得更加困难,但最终它们都是由于程序员的错误造成的。还有许多由智能合约编程产生的更微妙的bug,比如在前端集群(frontrunning)或安全生成随机性(secure generation of randomness)等方面。

作为一名智能合约开发者,你必须将安全性视为最重要的事情。在智能合约编程中没有“快速行动和打破常规”。这意味着任何处理大量资金流动的代码都应该通过像Oyente或Securify这样的静态分析程序来运行,进行彻底的测试,然后由经验丰富的智能合约审核员进行审计。你还应该尝试依赖预审计的组件,比如OpenZeppelin的开源合约。

为了加强你的安全性,我建议你使用OpenZeppelin开发的Ethernaut,这是一款你可以在智能合约中发现并攻击漏洞的游戏。他们中的很多人已经复制了对这个领域发生的智能合约的真实攻击。

Phil Daian也有一套优秀的智能合约黑客挑战称为 Hack This Contract。

在你做到了这些以后,我强烈建议你整本阅读由ConsenSys编译的Smart Contract Best Practices。希望在你的智能合约编程生涯中多次重温这个文档。bibliography 也值得安全专家进一步阅读。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章