-
bitcoin $102274.766886 USD
-0.86% -
ethereum $3445.482411 USD
0.14% -
tether $0.999921 USD
0.00% -
xrp $2.407079 USD
-0.05% -
bnb $958.016992 USD
-0.44% -
solana $153.234399 USD
-1.27% -
usd-coin $0.999803 USD
-0.04% -
tron $0.294992 USD
-1.08% -
dogecoin $0.171610 USD
-0.61% -
cardano $0.551507 USD
-1.25% -
hyperliquid $38.775479 USD
-0.11% -
chainlink $15.318016 USD
-0.12% -
bitcoin-cash $516.587118 USD
1.70% -
stellar $0.281060 USD
-0.56% -
zcash $520.151940 USD
16.63%
什么是重入攻击以及它如何利用智能合约漏洞?
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),我们将及时删除。
- 便士生产停止:美元的历史性举动
- 2025-11-13 12:45:01
- 升级您的厨房并赢得新烟罩和净水器的土耳其之旅!
- 2025-11-13 13:00:02
- Ripple、XRP、警告:应对 Deepfake 加密货币诈骗格局
- 2025-11-13 08:50:01
- 美国造币厂、便士和流通:一个时代的终结?
- 2025-11-13 08:45:01
- Penny's End:为了节省成本而停止生产
- 2025-11-13 13:00:02
- Penny's End:生产停止引发节省成本的争论
- 2025-11-13 10:40:01
相关百科
透明交易和屏蔽交易有什么区别?
2025-11-10 17:59:40
了解加密货币中的透明交易1. 透明交易是大多数公共区块链(如Bitcoin和以太坊)上的标准交易形式。每个细节,包括发送者地址、接收者地址和交易金额,对访问区块链账本的任何人都是可见的。 2. 这些交易依赖于假名而非真正的匿名。虽然用户身份没有明确地与地址绑定,但行为模式和外部数据通常可用于使参与者...
什么是“加密空投农民”以及他们使用什么策略?
2025-11-09 15:39:43
什么是加密货币空投农民? 1. 加密货币空投农民是指积极参与区块链项目以获得免费代币分配(称为空投)的个人。这些参与者经常使用去中心化应用程序 (dApp)、创建钱包、铸造 NFT 或执行特定的链上交易,以增加被选中的机会。 2. 空投挖矿已发展成为加密货币领域的半专业活动。这些农民不是被动持有资产...
什么是未花费的交易输出(UTXO)以及Bitcoin如何使用它?
2025-11-12 01:40:17
了解未花费交易输出(UTXO)的概念1. 未花费的交易输出,通常称为 UTXO,是 Bitcoin 如何记录所有权和验证交易的基本组成部分。每个 UTXO 代表已发送到特定地址但尚未花费的离散数量的 bitcoin。这些产出充当新交易的构建块,其功能类似于传统金融中的实物硬币或票据。 2. 用户发送...
如何跨多个钱包和链跟踪加密货币投资组合?
2025-11-12 16:19:42
加密生态系统中去中心化交易所的演变1. 去中心化交易所(DEX)通过消除中介机构并通过智能合约实现点对点交易,改变了用户交易数字资产的方式。与中心化平台不同,DEX 在以太坊、币安智能链和 Solana 等区块链网络上运行,让用户完全控制自己的资金。 2. Uniswap 和 SushiSwap 等...
加密保险协议如何运作?
2025-11-08 00:39:48
了解加密保险协议1. 加密保险协议的运作方式是针对因持有数字资产而造成的损失提供财务保护。这些损失可能源于黑客攻击、智能合约故障或交易所破产。用户用加密货币支付保费来参与通过去中心化治理管理的保险池。 2. 这些协议通常构建在以太坊或 Polygon 等区块链网络上,利用智能合约自动进行索赔验证和支...
什么是代币可组合性以及为什么它被称为“DeFi 乐高”?
2025-11-09 06:39:59
Bitcoin 在去中心化金融中的作用1. Bitcoin 仍然是去中心化金融的基石,作为整个区块链生态系统的价值和去信任性的基准。其固定的供应量和可预测的发行时间表使其成为波动市场条件下的首选价值储存手段。 2. 许多 DeFi 协议现在通过 WBTC 等包装版本集成 Bitcoin,使其能够用于...
透明交易和屏蔽交易有什么区别?
2025-11-10 17:59:40
了解加密货币中的透明交易1. 透明交易是大多数公共区块链(如Bitcoin和以太坊)上的标准交易形式。每个细节,包括发送者地址、接收者地址和交易金额,对访问区块链账本的任何人都是可见的。 2. 这些交易依赖于假名而非真正的匿名。虽然用户身份没有明确地与地址绑定,但行为模式和外部数据通常可用于使参与者...
什么是“加密空投农民”以及他们使用什么策略?
2025-11-09 15:39:43
什么是加密货币空投农民? 1. 加密货币空投农民是指积极参与区块链项目以获得免费代币分配(称为空投)的个人。这些参与者经常使用去中心化应用程序 (dApp)、创建钱包、铸造 NFT 或执行特定的链上交易,以增加被选中的机会。 2. 空投挖矿已发展成为加密货币领域的半专业活动。这些农民不是被动持有资产...
什么是未花费的交易输出(UTXO)以及Bitcoin如何使用它?
2025-11-12 01:40:17
了解未花费交易输出(UTXO)的概念1. 未花费的交易输出,通常称为 UTXO,是 Bitcoin 如何记录所有权和验证交易的基本组成部分。每个 UTXO 代表已发送到特定地址但尚未花费的离散数量的 bitcoin。这些产出充当新交易的构建块,其功能类似于传统金融中的实物硬币或票据。 2. 用户发送...
如何跨多个钱包和链跟踪加密货币投资组合?
2025-11-12 16:19:42
加密生态系统中去中心化交易所的演变1. 去中心化交易所(DEX)通过消除中介机构并通过智能合约实现点对点交易,改变了用户交易数字资产的方式。与中心化平台不同,DEX 在以太坊、币安智能链和 Solana 等区块链网络上运行,让用户完全控制自己的资金。 2. Uniswap 和 SushiSwap 等...
加密保险协议如何运作?
2025-11-08 00:39:48
了解加密保险协议1. 加密保险协议的运作方式是针对因持有数字资产而造成的损失提供财务保护。这些损失可能源于黑客攻击、智能合约故障或交易所破产。用户用加密货币支付保费来参与通过去中心化治理管理的保险池。 2. 这些协议通常构建在以太坊或 Polygon 等区块链网络上,利用智能合约自动进行索赔验证和支...
什么是代币可组合性以及为什么它被称为“DeFi 乐高”?
2025-11-09 06:39:59
Bitcoin 在去中心化金融中的作用1. Bitcoin 仍然是去中心化金融的基石,作为整个区块链生态系统的价值和去信任性的基准。其固定的供应量和可预测的发行时间表使其成为波动市场条件下的首选价值储存手段。 2. 许多 DeFi 协议现在通过 WBTC 等包装版本集成 Bitcoin,使其能够用于...
查看所有文章














