说起Solidity,虽然还很初级,但无疑已成为今天区块链开发的常用语言之一,今天以太坊智能合约的很多字节码,都是用Solidity编译的。
不过由于Solidity和EVM之间的差异,开发者在使用这门语言时,遇到了很多坑,也学到了很多深刻的「教训」。
这篇文章,我们会详细且全面地梳理一下Solidity开发者跌过的17个坑,以及Solidity开发中最容易犯下的错误,同时,也会分享一些资源作为补充资料,以便进一步消化。以帮助其他开发者避免重蹈覆辙。
文章略长,全文共18,918字,都是干货,建议保存在电脑端慢慢看。
你可以把这篇文章看作是一个全面的Solidity「已知攻击向量和常见反模式的综合资源库」,从本文中,你将读到以下常见的坑,每个都会以:坑点分析、避坑技巧和真实案例三个部分进行展开。
未检查的CALL的返回值
竞争条件/非法预先交易
拒绝服务攻击(DOS)
另一个honey pot叫CryptoRoulette,也利用了这个技巧来收集一些以太币。你可以在下面地址找到详细的解读:
交易没有在payload中添加「0x」:
从智能合约攻防战中学得的教训:
扫码加入区块链大本营读者群,群满加微信 qk 入群
了解更多区块链技术及应用内容
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。