市值: $2.8177T 0.21%
成交额(24h): $129.977B -30.15%
恐惧与贪婪指数:

28 - 恐惧

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

选择语种

选择语种

选择货币

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

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

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-01-11 21:19:34

去中心化金融的演变1. DeFi 协议已经从简单的借贷扩展到包括结构性产品、保险机制和衍生品交易。 2. 智能合约审计变得更加严格,多公司验证流程现已成为主要协议发布的标准。 3. 跨链互操作解决方案现在支持 40 多个不同的区块链网络,无需中心化桥梁即可实现资产转移。 4. 收益聚合策略已经发展到...

中本聪是谁? (Bitcoin 的创造者)

中本聪是谁? (Bitcoin 的创造者)

2026-01-12 07:00:05

笔名的由来1. Satoshi Nakamoto 是开发 Bitcoin、撰写其原始白皮书并设计和部署其第一个实现的个人或团体使用的名称。 2. 该名称首次出现于 2008 年,当时一份名为“Bitcoin:点对点电子现金系统”的白皮书被发布到密码学邮件列表中。 3. 尚未确认可验证的身份,所有已知...

什么是加密货币空投以及如何获得?

什么是加密货币空投以及如何获得?

2026-01-22 14:39:35

了解加密货币空投1. 加密空投是向多个钱包地址分配免费代币或代币,通常由区块链项目发起,以提高知名度、奖励早期支持者或分散代币所有权。 2. 这些分配可能不需要任何前期成本,尽管有些分配需要最低限度的参与,例如持有特定的加密货币、关注社交媒体帐户或加入社区渠道。 3. 空投通常与协议升级、主网启动或...

什么是 DeFi 中的无常损失以及如何避免它?

什么是 DeFi 中的无常损失以及如何避免它?

2026-01-13 11:59:34

了解无常损失1. 当存入自动做市商(AMM)流动性池的代币价值与外部持有的代币价值出现偏差时,就会发生无常损失。 2. 出现这种现象的原因是大多数AMM采用恒定乘积公式,池内代币价格的比例必须与外部市场价格保持一致。 3. 当一对资产中的一种资产相对于另一种资产大幅升值时,套利者通过购买较便宜的资产...

如何桥接不同区块链之间的加密资产?

如何桥接不同区块链之间的加密资产?

2026-01-14 18:19:42

跨链桥机制1. 原子交换实现了两个区块链之间直接的点对点资产交换,无需中介,依靠哈希时间锁定合约来保证公平性和最终性。 2. 可信桥通过中心化或半中心化托管人进行操作,这些托管人持有用户存款并在目标链上铸造包装代币。 3. 去信任桥使用智能合约和加密证明(例如轻客户端或零知识验证)来验证状态转换,而...

什么是白皮书以及如何阅读白皮书?

什么是白皮书以及如何阅读白皮书?

2026-01-12 07:19:48

了解白皮书结构1. 加密货币领域的白皮书充当基础技术和概念文件,概述了区块链项目的目的、架构和机制。 2. 通常以摘要或执行摘要开始,介绍项目旨在解决的问题和建议的解决方案。 3. 引言部分定义了核心术语,在现有技术或经济限制范围内建立了背景,并引用了先前的工作或类似系统。 4. 技术规范如下,详细...

加密货币和区块链技术的未来是什么?

加密货币和区块链技术的未来是什么?

2026-01-11 21:19:34

去中心化金融的演变1. DeFi 协议已经从简单的借贷扩展到包括结构性产品、保险机制和衍生品交易。 2. 智能合约审计变得更加严格,多公司验证流程现已成为主要协议发布的标准。 3. 跨链互操作解决方案现在支持 40 多个不同的区块链网络,无需中心化桥梁即可实现资产转移。 4. 收益聚合策略已经发展到...

中本聪是谁? (Bitcoin 的创造者)

中本聪是谁? (Bitcoin 的创造者)

2026-01-12 07:00:05

笔名的由来1. Satoshi Nakamoto 是开发 Bitcoin、撰写其原始白皮书并设计和部署其第一个实现的个人或团体使用的名称。 2. 该名称首次出现于 2008 年,当时一份名为“Bitcoin:点对点电子现金系统”的白皮书被发布到密码学邮件列表中。 3. 尚未确认可验证的身份,所有已知...

什么是加密货币空投以及如何获得?

什么是加密货币空投以及如何获得?

2026-01-22 14:39:35

了解加密货币空投1. 加密空投是向多个钱包地址分配免费代币或代币,通常由区块链项目发起,以提高知名度、奖励早期支持者或分散代币所有权。 2. 这些分配可能不需要任何前期成本,尽管有些分配需要最低限度的参与,例如持有特定的加密货币、关注社交媒体帐户或加入社区渠道。 3. 空投通常与协议升级、主网启动或...

什么是 DeFi 中的无常损失以及如何避免它?

什么是 DeFi 中的无常损失以及如何避免它?

2026-01-13 11:59:34

了解无常损失1. 当存入自动做市商(AMM)流动性池的代币价值与外部持有的代币价值出现偏差时,就会发生无常损失。 2. 出现这种现象的原因是大多数AMM采用恒定乘积公式,池内代币价格的比例必须与外部市场价格保持一致。 3. 当一对资产中的一种资产相对于另一种资产大幅升值时,套利者通过购买较便宜的资产...

如何桥接不同区块链之间的加密资产?

如何桥接不同区块链之间的加密资产?

2026-01-14 18:19:42

跨链桥机制1. 原子交换实现了两个区块链之间直接的点对点资产交换,无需中介,依靠哈希时间锁定合约来保证公平性和最终性。 2. 可信桥通过中心化或半中心化托管人进行操作,这些托管人持有用户存款并在目标链上铸造包装代币。 3. 去信任桥使用智能合约和加密证明(例如轻客户端或零知识验证)来验证状态转换,而...

什么是白皮书以及如何阅读白皮书?

什么是白皮书以及如何阅读白皮书?

2026-01-12 07:19:48

了解白皮书结构1. 加密货币领域的白皮书充当基础技术和概念文件,概述了区块链项目的目的、架构和机制。 2. 通常以摘要或执行摘要开始,介绍项目旨在解决的问题和建议的解决方案。 3. 引言部分定义了核心术语,在现有技术或经济限制范围内建立了背景,并引用了先前的工作或类似系统。 4. 技术规范如下,详细...

查看所有文章

User not found or password invalid

Your input is correct