市值: $2.2032T 1.06%
成交额(24h): $37.9282B -32.34%
恐惧与贪婪指数:

36 - 恐惧

  • 市值: $2.2032T 1.06%
  • 成交额(24h): $37.9282B -32.34%
  • 恐惧与贪婪指数:
  • 市值: $2.2032T 1.06%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

什么是重入攻击?智能合约如何防御它?

Re-entrancy attacks exploit unchecked external calls in smart contracts, allowing attackers to recursively withdraw funds before state updates, as seen in the $60M DAO hack.

2025/11/13 03:40

了解智能合约中的重入攻击

1. 当恶意合约在初始执行完成之前重复回调另一个合约的易受攻击的函数时,就会发生重入攻击。此漏洞利用了状态更改和外部调用执行的顺序。

2. 最臭名昭著的例子是 2016 年 DAO 黑客攻击,攻击者通过递归地从未能在发送以太币之前更新余额的合约中提取资金,损失了超过 6000 万美元。

3. 这些攻击通常针对对不受信任的合约进行外部调用、同时将关键状态变量保持在不一致状态的函数。

4. 在递归调用过程中,攻击者的后备或接收函数再次触发相同的提款逻辑,有效绕过访问控制或余额检查。

5. 核心漏洞在于违反了检查-效果-交互模式,其中状态修改应始终在外部调用之前进行,以防止执行期间的操纵。

Solidity 中常见的脆弱模式

1. 在不首先更新内部会计的情况下将以太币或代币发送到用户控制的地址的功能是重入的主要目标。

2. 使用低级调用(例如使用本机以太币传输进行调用)的合约尤其面临风险,因为它们转发所有剩余的 Gas,从而实现复杂的回调逻辑。

3. 当调用本身触发递归条目时,依赖调用后验证的逻辑会失败,从而使这些检查在损坏完成之前无效。

4. 如果父合约没有强制实施适当的保护,即使子合约看起来是安全的,继承结构也可能会无意中暴露函数。

5. 如果委托调用机制允许通过共享存储布局进行状态损坏,则库或代理模式可能会传播漏洞。

有效的防御机制

1. 严格实现“检查-效果-交互”模式:始终验证输入、更新状态变量,然后继续进行外部调用。

2. 使用已建立的库(例如 OpenZeppelin 的 ReentrancyGuard)中的重入防护,它使用互斥锁来阻止递归条目。

3. 优先选择通过转账发送方式转移资金,而不是调用,因为这些方法限制了gas转发并减少了攻击面。

4、采用拉拉式支付模式,由用户领取资金,而不是自动调度,消除外呼风险。

5. 在开发过程中应用严格的静态分析工具和形式验证,以在部署之前检测潜在的递归路径。

常见问题解答

是什么让后备函数在重入场景中变得危险?当回退函数包含重新调用调用合约的业务函数的逻辑时,它就会变得危险。如果原始合约在进行外部调用之前尚未更新其状态,则此递归触发器可以利用过时的余额或权限。

多个合约交互中是否可以发生重入?是的,当同一合约内的不同函数在没有适当同步的情况下访问共享状态时,跨函数重入是可能的。攻击者可能会触发一个外部调用的函数,然后在状态更新发生之前使用回退进入第二个易受攻击的函数。

非以太坊合约是否不受重入影响?不,处理 ERC-20 传输的代币合约也可以被利用。如果代币传输触发接收者挂钩(如批准+回调),并且接收合约在传输中操纵发送者的状态,则会出现类似的递归漏洞。

编译器升级如何帮助减少重入?新版本的 Solidity 包括更安全的默认值和针对已知反模式的警告。例如,明确的可见性说明符和改进的汽油津贴规则减少了意外行为。然而,编译器功能本身并不能消除需要架构规则的逻辑缺陷。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

什么是模块化区块链以及为什么它是下一个大趋势?

什么是模块化区块链以及为什么它是下一个大趋势?

2026-06-20 02:19:37

市场波动模式1. Bitcoin 在宏观经济不确定时期,单个交易时段内价格波动通常超过 5%。 2. 在熊市阶段,山寨币与 BTC 的相关性升至 0.85 以上,表明独立价格走势减弱。 3. 在去中心化平台上的主要拉高和抛售周期之前,来自未知钱包的交易流入激增超过 300%。 4. 当分散的订单簿中...

什么是帐户抽象以及为什么它对 Web3 很重要?

什么是帐户抽象以及为什么它对 Web3 很重要?

2026-06-17 14:39:56

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...

什么是零知识证明以及它如何保护隐私?

什么是零知识证明以及它如何保护隐私?

2026-06-17 12:59:37

市场波动模式1. Bitcoin 在流动性较低的时期,单个交易时段内的价格波动通常超过 5%。 2. 过去 18 个月,山寨币与 BTC 的相关性平均高于 0.85,表明对 Bitcoin 方向走势的强烈依赖。 3. 期货未平仓合约飙升往往先于急剧反转,特别是当多空比率超过 4.0 时。 4. 通过...

什么是 zk-Rollup 以及为什么每个人都在谈论它?

什么是 zk-Rollup 以及为什么每个人都在谈论它?

2026-06-25 06:39:37

市场波动模式1. 在ETF流入报告或宏观经济数据发布等高流动性事件期间,Bitcoin的价格走势往往会出现超过5%的剧烈盘中波动。 2. 过去两年,山寨币与 BTC 的相关性有所加强,前 50 名代币中超过 70% 在熊市阶段显示出 0.8 以上的皮尔逊系数。 3. 当现货交易量在 24 小时内飙升...

什么是 Chainlink 以及区块链预言机如何工作?

什么是 Chainlink 以及区块链预言机如何工作?

2026-06-19 13:00:17

市场波动模式1. Bitcoin 和以太坊等主要加密货币在 24 小时窗口内价格波动超过 15% 的情况经常发生。 2. 亚洲交易时段的流动性缺口频繁引发永续掉期市场的级联清算。 3. 鲸鱼钱包变动(定义为超过 1,000 BTC 或 50,000 ETH 的转账)与现货订单簿中的短期方向偏差密切相...

什么是区块链中的预言机以及为什么需要它?

什么是区块链中的预言机以及为什么需要它?

2026-06-21 19:39:38

定义和核心功能1. 区块链中的预言机是一种可信的第三方服务,为在去中心化网络上运行的智能合约提供外部数据。 2. 由于区块链虚拟机的确定性和隔离执行环境,智能合约无法原生访问链下信息,例如价格反馈、天气预报或 API 响应。 3. 预言机充当安全桥梁,以链上逻辑可使用的格式获取、验证和交付真实世界的...

什么是模块化区块链以及为什么它是下一个大趋势?

什么是模块化区块链以及为什么它是下一个大趋势?

2026-06-20 02:19:37

市场波动模式1. Bitcoin 在宏观经济不确定时期,单个交易时段内价格波动通常超过 5%。 2. 在熊市阶段,山寨币与 BTC 的相关性升至 0.85 以上,表明独立价格走势减弱。 3. 在去中心化平台上的主要拉高和抛售周期之前,来自未知钱包的交易流入激增超过 300%。 4. 当分散的订单簿中...

什么是帐户抽象以及为什么它对 Web3 很重要?

什么是帐户抽象以及为什么它对 Web3 很重要?

2026-06-17 14:39:56

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...

什么是零知识证明以及它如何保护隐私?

什么是零知识证明以及它如何保护隐私?

2026-06-17 12:59:37

市场波动模式1. Bitcoin 在流动性较低的时期,单个交易时段内的价格波动通常超过 5%。 2. 过去 18 个月,山寨币与 BTC 的相关性平均高于 0.85,表明对 Bitcoin 方向走势的强烈依赖。 3. 期货未平仓合约飙升往往先于急剧反转,特别是当多空比率超过 4.0 时。 4. 通过...

什么是 zk-Rollup 以及为什么每个人都在谈论它?

什么是 zk-Rollup 以及为什么每个人都在谈论它?

2026-06-25 06:39:37

市场波动模式1. 在ETF流入报告或宏观经济数据发布等高流动性事件期间,Bitcoin的价格走势往往会出现超过5%的剧烈盘中波动。 2. 过去两年,山寨币与 BTC 的相关性有所加强,前 50 名代币中超过 70% 在熊市阶段显示出 0.8 以上的皮尔逊系数。 3. 当现货交易量在 24 小时内飙升...

什么是 Chainlink 以及区块链预言机如何工作?

什么是 Chainlink 以及区块链预言机如何工作?

2026-06-19 13:00:17

市场波动模式1. Bitcoin 和以太坊等主要加密货币在 24 小时窗口内价格波动超过 15% 的情况经常发生。 2. 亚洲交易时段的流动性缺口频繁引发永续掉期市场的级联清算。 3. 鲸鱼钱包变动(定义为超过 1,000 BTC 或 50,000 ETH 的转账)与现货订单簿中的短期方向偏差密切相...

什么是区块链中的预言机以及为什么需要它?

什么是区块链中的预言机以及为什么需要它?

2026-06-21 19:39:38

定义和核心功能1. 区块链中的预言机是一种可信的第三方服务,为在去中心化网络上运行的智能合约提供外部数据。 2. 由于区块链虚拟机的确定性和隔离执行环境,智能合约无法原生访问链下信息,例如价格反馈、天气预报或 API 响应。 3. 预言机充当安全桥梁,以链上逻辑可使用的格式获取、验证和交付真实世界的...

查看所有文章

User not found or password invalid

Your input is correct