第142篇 合约安全-重入锁

本篇介绍最常见的一种智能合约攻击-重入攻击,它曾导致以太坊分叉为 ETH 和 ETC(以太经典),并介绍如何避免它。

1.重入攻击

重入攻击是智能合约中最常见的一种攻击,攻击者通过合约漏洞(例如fallback函数)循环调用合约,将合约中资产转走或铸造大量代币。

著名的重入攻击事件:2016年,The DAO合约被重入攻击,黑客盗走了合约中的 3,600,000 枚 ETH,并导致以太坊分叉为 ETH 链和 ETC(以太经典)链。

距离 The DAO 被重入攻击已经6年了,但每年还是会有几次因重入漏洞而损失千万美元的项目,因此理解这个漏洞非常重要。

0xAA 抢bank的故事

为了让大家更好理解,这里讲一个"黑客0xAA抢bank"的故事。

以太坊bank的柜员都是机器人(Robot),由智能合约控制。当正常用户(User)来bank取钱时,它的服务流程:

  1. 查询用户的 ETH 余额,如果大于0,进行下一步。
  2. 将用户的 ETH 余额从bank转给用户,并询问用户是否收到。
  3. 将用户名下的余额更新为0

一天黑客 0xAA 来到了bank,这是他和机器人柜员的对话:文章来源地址https://uudwc.com/A/yAqkm

  • 0xAA : 我要取钱,1 ETH
  • Ro

原文地址:https://blog.csdn.net/wonderBlock/article/details/127570250

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年07月30日 03:11
JavaScript高级——ES6基础入门
下一篇 2023年07月30日 03:11