第142篇 合约安全-重入锁
本篇介绍最常见的一种智能合约攻击-重入攻击,它曾导致以太坊分叉为 ETH 和 ETC(以太经典),并介绍如何避免它。
爬虫学习
1.重入攻击
重入攻击是智能合约中最常见的一种攻击,攻击者通过合约漏洞(例如fallback函数)循环调用合约,将合约中资产转走或铸造大量代币。
解决方案
著名的重入攻击事件:2016年,The DAO合约被重入攻击,黑客盗走了合约中的 3,600,000 枚 ETH
,并导致以太坊分叉为 ETH
链和 ETC
(以太经典)链。
Thread线程类
距离 The DAO 被重入攻击已经6年了,但每年还是会有几次因重入漏洞而损失千万美元的项目,因此理解这个漏洞非常重要。
Dijkstra
0xAA
抢bank的故事
cout
为了让大家更好理解,这里讲一个”黑客0xAA
抢bank”的故事。
nba小程序
以太坊bank的柜员都是机器人(Robot),由智能合约控制。当正常用户(User)来bank取钱时,它的服务流程:
FSMC
- 查询用户的
ETH
余额,如果大于0,进行下一步。 - 将用户的
ETH
余额从bank转给用户,并询问用户是否收到。 - 将用户名下的余额更新为
0
。
一天黑客 0xAA
来到了bank,这是他和机器人柜员的对话:
Iceberg
- 0xAA : 我要取钱,
1 ETH
。 - Rob
声明:本站博客内容版权均属于原作者所有,这里所提供资源均只能用于参考学习用,书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。