市值: $2.2269T 1.08%
成交额(24h): $51.7314B 36.39%
恐惧与贪婪指数:

39 - 恐惧

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

选择语种

选择语种

选择货币

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

什么是重入攻击以及它如何利用智能合约漏洞?

Re-entrancy attacks exploit poorly ordered state changes in smart contracts, allowing hackers to recursively withdraw funds before balances update.

2025/11/12 19:59

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

1. 重入攻击是一个严重的安全漏洞,针对区块链平台上的智能合约,特别是基于以太坊的智能合约。当恶意合约在初始执行完成之前反复回调受害者合约时,就会发生此漏洞。攻击者利用状态更改和外部调用执行的顺序。

2. 在典型场景中,存在漏洞的合约会在更新其内部余额或状态之前将资金发送到外部地址。由攻击者控制的接收合约包含一个回退函数,该函数会自动触发对受害者的提款或转账函数的另一次调用。由于状态尚未更新,系统仍认为资金可用,允许重复提款。

3. 该缺陷最臭名昭著的例子之一是 2016 年 DAO 黑客攻击,价值超过 6000 万美元的以太币通过重入漏洞被耗尽。去中心化自治组织的智能合约允许在没有适当保护措施的情况下进行递归调用,从而导致巨大的财务损失,并最终导致以太坊区块链出现有争议的硬分叉。

4. 这些攻击之所以猖獗,是因为外部函数调用可以调用不受信任的合约中的代码。如果调用合约不遵循“检查-效果-交互”模式(其中状态更改发生在任何外部交互之前),那么利用的窗口就会打开。这一设计原则现在被认为在安全智能合约开发中至关重要。

5. 现代开发框架和审计工具已经发展到可以在编译或测试阶段检测此类漏洞。 Slither 和 MythX 等静态分析工具可以通过映射控制流和标记不安全的外部调用来识别容易重入的函数。

常见的剥削媒介

1. 主要向量涉及利用对未知地址进行外部调用的付费函数。当这些函数在发送以太币之前未能更新余额或标志时,它们会为递归条目创建一个空缺。攻击者使用专门设计用于重新进入目标函数的恶意回退逻辑来编写合约。

2.另一种方法是使用去中心化金融(DeFi)协议的闪电贷来放大损害。攻击者在没有抵押的情况下借用大量代币,使用它们来操纵合约条件,并在单个交易中执行重入循环。由于一切都是原子发生的,所以贷款被偿还,利润仍然存在。

3. 某些变体针对同一合约内的多个功能。例如,如果两个单独的函数访问共享状态但不使用互斥锁或重入防护,则攻击者可以在执行过程中在它们之间跳转。这种跨功能重入绕过了仅针对单个入口点的简单保护。

4. 库和代理模式引入了额外的复杂性。如果可升级合约委托调用不安全或无法跨实现正确初始化重入防护,则即使更新后遗留漏洞也可能仍然存在。这使得彻底的回归测试变得至关重要。

5. 预言机和外部数据源也可以被间接操纵,以触发特定市场条件下的重入行为。虽然不是直接向量,但它们与资金分配逻辑的集成在与不良的状态管理相结合时会增加攻击面。

针对重入的防御策略

1. 实现检查-效果-交互模式可确保所有状态修改发生在任何外部调用之前。这消除了攻击者所依赖的竞争条件。开发人员必须在处理资产转移的每个功能中优先考虑逻辑流程规则。

2. 使用可重入保护修饰符,例如 OpenZeppelin 的ReentrancyGuard ,引入了一种锁定机制,可防止函数在已执行时重新进入。这些锁通常基于布尔标志,这些标志在敏感操作开始时设置并在敏感操作结束时清除。

3. 限制外部调用期间转发的gas可以阻止恶意后备函数进行进一步的交互。通过将 Gas 限制为 2300 个单位(该数量仅足以进行基本日志记录),调用合约可防止复杂的重入逻辑成功运行。

4. 使用自动化工具和手动审核流程进行定期审核有助于发现开发过程中遗漏的边缘情况。同行评审和正式验证方法增加了保证层,特别是对于管理数百万资产的高价值 DeFi 应用程序。

5. 采用经过良好测试的库而不是编写自定义的低级函数可以降低引入细微错误的风险。值得信赖的开源组件会受到社区的持续审查,这使得它们比容易受到监督的定制解决方案更可靠。

常见问题解答

回退函数在重入攻击中起什么作用?当合约在没有指定特定函数的情况下收到以太币时,回退函数会自动触发。在攻击中,该函数包含恶意代码,该代码会立即回调受害者合约的提款方法,从而在状态更新发生之前启用递归。

非以太坊区块链中可以发生重入吗?是的,任何支持具有外部调用和可变状态的智能合约的区块链都可能容易受到攻击。当开发人员在没有针对新环境调整安全措施的情况下移植合约时,币安智能链、Polygon 和 Avalanche 等网络也遇到了类似的漏洞。

除了标准形式之外,是否还有其他类型的重入?是的,变体包括跨功能重入(其中一个功能通过另一个功能输入)和批处理漏洞(其中一组收件人在循环中支付而无需中间状态检查)。每一个都需要量身定制的缓解策略。

闪电贷如何实现重入攻击?闪电贷允许攻击者在单笔交易中临时借入大笔资金。他们利用这些资金来影响合约行为(例如触发支付条件),并在偿还贷款之前执行重入循环,将被盗资产保留在失败的交易范围之外。

免责声明:info@kdj.com

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

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

相关百科

什么是区块链安全?用户如何避免加密货币诈骗?

什么是区块链安全?用户如何避免加密货币诈骗?

2026-07-26 04:40:10

了解区块链安全基础知识1. 区块链安全依赖于加密哈希来确保链中每个区块的数据完整性。 2. 每个块都包含一个唯一的哈希值,该哈希值源自其内容和前一个块的哈希值,形成一个不可变的序列。 3.分布式账本架构意味着不存在单点故障——每个节点都维护账本的完整副本。 4. 工作量证明和权益证明等共识机制在添加...

什么是代币销毁?为什么项目要销毁代币?

什么是代币销毁?为什么项目要销毁代币?

2026-07-22 10:39:51

定义和技术执行1. 代币销毁是指通过将数字代币发送到不可访问的地址(通常称为销毁地址或吞噬者地址)来不可逆转地从流通中删除数字代币。 2. 这些地址没有私钥,使得任何转移的代币永久无法使用,并从功能性供应指标中有效删除。 3. 在基于以太坊的网络上,经常使用零地址(0x000…dead);在 BSC...

什么是循环供应?为什么代币供应很重要?

什么是循环供应?为什么代币供应很重要?

2026-07-21 13:40:08

什么是循环供应? 1. 流通量是指当前可在公开市场上交易和使用的代币数量。 2. 这些代币已分发给用户、交易所或公共钱包,并且没有被锁定、保留或保存在不可访问的合约中。 3. 如果分配给团队成员、顾问或基金会的代币仍处于归属计划或智能合约锁定状态,则不包括这些代币。 4. 循环供应是一个动态指标——...

什么是加密货币市值?它是如何计算的?

什么是加密货币市值?它是如何计算的?

2026-07-24 21:40:18

市场波动模式1. Bitcoin的价格波动通常与美国通胀报告和美联储利率决策等宏观经济指标相关。 2. 山寨币的走势经常跟随Bitcoin的走势,但在低流动性时期表现出更大的波动性。 3. 交易所交易基金(ETF)的流入和流出直接影响现货市场深度,改变短期价格发现机制。 4. 鲸鱼钱包活动(以超过 ...

什么是去中心化交易所(DEX)?比CEX安全吗?

什么是去中心化交易所(DEX)?比CEX安全吗?

2026-07-21 14:00:18

DEX核心架构1. 去中心化交易所完全在区块链基础设施上运行,不依赖中心化服务器或托管中介机构。 2. 智能合约控制所有交易执行、订单撮合和资产结算,无需人工干预。 3. 用户使用 MetaMask 或 Trust Wallet 等自助钱包直接与协议交互。 4. 流动性池取代了大多数现代 DEX 中...

什么是自我托管加密货币?为什么人们说“不是你的钥匙,不是你的硬币”?

什么是自我托管加密货币?为什么人们说“不是你的钥匙,不是你的硬币”?

2026-07-26 08:19:37

自我保管的核心原则1. 自我托管是指用户持有并管理自己的私钥,而不将控制权委托给任何第三方。 2. 私钥是授权链上交易的密码学秘密;如果丢失则无法再生。 3. 加密货币的所有权只能通过拥有这些密钥来证明,而不是通过交易所显示的账户余额来证明。 4. 当资金驻留在中心化交易所时,平台控制底层密钥;用户...

什么是区块链安全?用户如何避免加密货币诈骗?

什么是区块链安全?用户如何避免加密货币诈骗?

2026-07-26 04:40:10

了解区块链安全基础知识1. 区块链安全依赖于加密哈希来确保链中每个区块的数据完整性。 2. 每个块都包含一个唯一的哈希值,该哈希值源自其内容和前一个块的哈希值,形成一个不可变的序列。 3.分布式账本架构意味着不存在单点故障——每个节点都维护账本的完整副本。 4. 工作量证明和权益证明等共识机制在添加...

什么是代币销毁?为什么项目要销毁代币?

什么是代币销毁?为什么项目要销毁代币?

2026-07-22 10:39:51

定义和技术执行1. 代币销毁是指通过将数字代币发送到不可访问的地址(通常称为销毁地址或吞噬者地址)来不可逆转地从流通中删除数字代币。 2. 这些地址没有私钥,使得任何转移的代币永久无法使用,并从功能性供应指标中有效删除。 3. 在基于以太坊的网络上,经常使用零地址(0x000…dead);在 BSC...

什么是循环供应?为什么代币供应很重要?

什么是循环供应?为什么代币供应很重要?

2026-07-21 13:40:08

什么是循环供应? 1. 流通量是指当前可在公开市场上交易和使用的代币数量。 2. 这些代币已分发给用户、交易所或公共钱包,并且没有被锁定、保留或保存在不可访问的合约中。 3. 如果分配给团队成员、顾问或基金会的代币仍处于归属计划或智能合约锁定状态,则不包括这些代币。 4. 循环供应是一个动态指标——...

什么是加密货币市值?它是如何计算的?

什么是加密货币市值?它是如何计算的?

2026-07-24 21:40:18

市场波动模式1. Bitcoin的价格波动通常与美国通胀报告和美联储利率决策等宏观经济指标相关。 2. 山寨币的走势经常跟随Bitcoin的走势,但在低流动性时期表现出更大的波动性。 3. 交易所交易基金(ETF)的流入和流出直接影响现货市场深度,改变短期价格发现机制。 4. 鲸鱼钱包活动(以超过 ...

什么是去中心化交易所(DEX)?比CEX安全吗?

什么是去中心化交易所(DEX)?比CEX安全吗?

2026-07-21 14:00:18

DEX核心架构1. 去中心化交易所完全在区块链基础设施上运行,不依赖中心化服务器或托管中介机构。 2. 智能合约控制所有交易执行、订单撮合和资产结算,无需人工干预。 3. 用户使用 MetaMask 或 Trust Wallet 等自助钱包直接与协议交互。 4. 流动性池取代了大多数现代 DEX 中...

什么是自我托管加密货币?为什么人们说“不是你的钥匙,不是你的硬币”?

什么是自我托管加密货币?为什么人们说“不是你的钥匙,不是你的硬币”?

2026-07-26 08:19:37

自我保管的核心原则1. 自我托管是指用户持有并管理自己的私钥,而不将控制权委托给任何第三方。 2. 私钥是授权链上交易的密码学秘密;如果丢失则无法再生。 3. 加密货币的所有权只能通过拥有这些密钥来证明,而不是通过交易所显示的账户余额来证明。 4. 当资金驻留在中心化交易所时,平台控制底层密钥;用户...

查看所有文章

User not found or password invalid

Your input is correct