市值: $2.1693T -2.59%
成交额(24h): $67.3751B 30.24%
恐惧与贪婪指数:

35 - 恐惧

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

选择语种

选择语种

选择货币

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

什么是重入攻击以及如何在合约中防止它?

Reentrancy attacks exploit unchecked external calls in smart contracts, allowing attackers to drain funds by re-entering functions before state updates—highlighted by the $60M DAO hack.

2025/11/10 16:20

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

1. 当恶意合约在初始执行完成之前反复回调易受攻击的函数时,就会发生重入攻击。这种递归行为利用了智能合约中外部调用的顺序和状态变化。

2. 核心漏洞在于在更新内部状态之前发送资金或进行外部调用的合约。攻击者可以利用这个窗口,通过重新进入提现功能来多次提现资金。

3. 最臭名昭著的例子之一是 2016 年的 DAO 黑客事件,由于可重入缺陷,价值超过 6000 万美元的以太币被耗尽。攻击者使用后备函数递归调用提款机制。

4. 这些攻击不仅限于以太币传输。如果没有适当的保护措施,对用户控制的合约的任何外部调用都可能被武器化。

5.重入仍然是去中心化应用程序中最关键的安全风险之一,特别是在处理大量用户资金的 DeFi 协议中。

支持重入的常见模式

1. 遵循“先调用,后更新”模式的合约本质上很容易受到影响。在减少用户余额之前发送以太币或代币允许攻击者重新进入,更新后的余额仍反映原始金额。

2. 依赖于低级调用(如call()delegatecall()send()且未经适当检查的函数会增加暴露风险。这些方法会触发接收者的回退或接收功能,其中可能包含恶意逻辑。

3. 拉拉-推式支付模式使用不当会带来风险。基于推送的系统在交易期间主动发送资金,为递归利用创造了机会。

4.跨多个接口的复杂合约交互放大了危险。当一个合约调用另一个合约并且两者都具有可变状态时,跟踪执行流程变得困难,从而增加了监督的机会。

5.如果状态更新不是原子的并且在外部交互之后发生,即使看似安全的代码也可能受到损害。

有效的预防策略

1. 严格应用检查-效果-交互 (CEI) 模式。始终验证输入,更新内部状态变量,然后才进行外部调用。该序列消除了重新进入窗口。

2. 使用 OpenZeppelin 的ReentrancyGuard等库提供的互斥锁或重入防护。它们强制执行锁定机制,防止函数在执行时重新进入。

3.限制低级调用的使用。更喜欢像transfer()这样的高级传输函数,它们具有内置的保护,例如通常会阻止递归执行的气体津贴限制。

4. 实施提款模式而不是直接付款。让用户通过单独的功能发起资金检索,最大限度地减少敏感操作期间的外部调用次数。

5.应将定期审计和静态分析工具集成到开发生命周期中,以在部署之前检测潜在的重入向量。

常见问题解答

回退函数在重入攻击中的作用是什么?当合约收到没有数据的以太币时,回退函数会自动执行。攻击者精心设计恶意回退,重新调用易受攻击的函数,从而创建一个循环,在原始交易完成之前耗尽资金。

同一个合约中的不同函数之间可以发生重入吗?是的。当一个函数进行外部调用并返回到同一合约的另一个函数时,就会发生跨函数重入,从而利用尚未更新的共享状态。适当的国家管理和警卫对于阻止此类路径至关重要。

代理合约是否不受重入影响?不会。如果逻辑实现包含未经检查的外部调用,代理合约仍然容易受到攻击。由于代理将调用委托给可升级的逻辑合约,因此逻辑层中的任何缺陷(包括可重入性)仍然可以被利用。

Gas 限制如何影响重入尝试?一些早期的防御依赖于消耗所有可用的气体来阻止递归。然而,现代攻击通过使用精确的气体估计来规避这一点。仅仅依靠gas limit是不可靠的;结构代码模式提供更强的保护。

免责声明:info@kdj.com

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

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

相关百科

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

ADA永续合约的最大杠杆是多少?

ADA永续合约的最大杠杆是多少?

2026-07-28 07:40:32

ADA 永续期货杠杆因交易所而异,具体取决于司法管辖区、用户级别和风险管理政策。截至 2026 年 7 月,主要平台实施不同的上限。特定于交易所的 ADA 杠杆限制1.币安合约对ADA/USDT永续合约采用动态杠杆模型。具有 Tier-1 状态的经过验证的用户可以获得高达25 倍的杠杆。在 KYC ...

ADA合约保证金率为何会触发警告?

ADA合约保证金率为何会触发警告?

2026-07-22 09:00:26

ADA 合约保证金比率机制1. 各大交易所的ADA永续合约采用根据持仓规模、杠杆水平和当前标记价格实时计算的动态保证金比例。 2. 保证金比率等于(钱包余额+未实现盈亏)除以维持保证金要求,以百分比表示。 3. 当该比率低于交易所定义的维持阈值(通常为 5% 至 10%,具体取决于杠杆率)时,系统将...

ADAUSDT永续合约资金费率是多少?

ADAUSDT永续合约资金费率是多少?

2026-07-24 20:19:46

ADAUSDT永续合约资金费率定义及目的1. ADAUSDT永续合约资金费率是卡尔达诺(ADA)与主要加密货币交易所Tether(USDT)衍生品头寸之间采用的定期费用兑换机制。 2. 作为价格锚定工具,确保ADAUSDT永续合约价格与基础ADA/USDT现货指数价格保持紧密一致。 3、与传统期货不...

TON永续交易建议使用多少杠杆?

TON永续交易建议使用多少杠杆?

2026-07-27 17:20:10

TON 永续交易机制1. TON永续合约在去中心化和中心化交易所运行,保证金模式各异。 2. 资金费率按小时计算,取决于现货价格和永续价格之间的基础,影响多头/空头成本动态。 3. 当维持保证金低于交易所定义的阈值(通常以头寸价值的百分比表示)时,就会触发强平。 4. TON 区块链的原生速度可实现...

TON 期货强平价格公式是什么?

TON 期货强平价格公式是什么?

2026-07-23 09:19:45

TON 期货强平机制1. 当交易者的保证金余额低于交易所设定的维持保证金要求时,TON 期货就会被清算。 2、保证金比例低于或等于100%时,系统自动触发强制平仓,计算公式为(可用保证金/所需保证金)×100%。 3. 强平价格不是固定的,它会随着市场走势、头寸规模、杠杆水平和资金费率的调整而动态变...

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

ADA永续合约的最大杠杆是多少?

ADA永续合约的最大杠杆是多少?

2026-07-28 07:40:32

ADA 永续期货杠杆因交易所而异,具体取决于司法管辖区、用户级别和风险管理政策。截至 2026 年 7 月,主要平台实施不同的上限。特定于交易所的 ADA 杠杆限制1.币安合约对ADA/USDT永续合约采用动态杠杆模型。具有 Tier-1 状态的经过验证的用户可以获得高达25 倍的杠杆。在 KYC ...

ADA合约保证金率为何会触发警告?

ADA合约保证金率为何会触发警告?

2026-07-22 09:00:26

ADA 合约保证金比率机制1. 各大交易所的ADA永续合约采用根据持仓规模、杠杆水平和当前标记价格实时计算的动态保证金比例。 2. 保证金比率等于(钱包余额+未实现盈亏)除以维持保证金要求,以百分比表示。 3. 当该比率低于交易所定义的维持阈值(通常为 5% 至 10%,具体取决于杠杆率)时,系统将...

ADAUSDT永续合约资金费率是多少?

ADAUSDT永续合约资金费率是多少?

2026-07-24 20:19:46

ADAUSDT永续合约资金费率定义及目的1. ADAUSDT永续合约资金费率是卡尔达诺(ADA)与主要加密货币交易所Tether(USDT)衍生品头寸之间采用的定期费用兑换机制。 2. 作为价格锚定工具,确保ADAUSDT永续合约价格与基础ADA/USDT现货指数价格保持紧密一致。 3、与传统期货不...

TON永续交易建议使用多少杠杆?

TON永续交易建议使用多少杠杆?

2026-07-27 17:20:10

TON 永续交易机制1. TON永续合约在去中心化和中心化交易所运行,保证金模式各异。 2. 资金费率按小时计算,取决于现货价格和永续价格之间的基础,影响多头/空头成本动态。 3. 当维持保证金低于交易所定义的阈值(通常以头寸价值的百分比表示)时,就会触发强平。 4. TON 区块链的原生速度可实现...

TON 期货强平价格公式是什么?

TON 期货强平价格公式是什么?

2026-07-23 09:19:45

TON 期货强平机制1. 当交易者的保证金余额低于交易所设定的维持保证金要求时,TON 期货就会被清算。 2、保证金比例低于或等于100%时,系统自动触发强制平仓,计算公式为(可用保证金/所需保证金)×100%。 3. 强平价格不是固定的,它会随着市场走势、头寸规模、杠杆水平和资金费率的调整而动态变...

查看所有文章

User not found or password invalid

Your input is correct