-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
什么是智能合约中的重入攻击?
Reentrancy attacks exploit Ethereum’s external call mechanism, allowing malicious contracts to recursively drain funds before state updates—famously enabling The DAO hack.
2025/12/24 02:20
了解重入攻击
1. 当恶意合约在初始执行完成之前重复回调另一个合约的易受攻击的函数时,就会发生重入攻击。
2. 此漏洞利用以太坊智能合约中的外部调用机制,在状态更改最终确定之前将控制权转移到外部地址。
3. 攻击者部署一个包含回退或接收函数的合约,该函数会触发目标提款或转账逻辑的递归调用。
4. 由于以太坊以单线程、同步的方式执行调用,并且默认情况下不强制执行原子状态更新,因此在回调窗口期间余额或标志可能保持不变。
5. 因此,在没有适当检查的情况下,资金可能会从同一余额中多次被耗尽,从而违反了系统预期的经济不变性。
著名的历史例子:DAO 黑客事件
1. 2016 年 6 月,名为 The DAO 的去中心化自治组织被盗走约360 万枚 ETH ,当时价值超过 5000 万美元。
2. 该漏洞存在于分割函数中,该函数允许用户在提案通过后撤回其份额,但在转移资金后更新了贡献者的余额。
3. 攻击者部署了一个带有后备函数的合约,该函数在余额更新发生之前递归调用 split 函数。
4. 每次递归调用都会读取原始余额值,从而可以从相同的分配金额中重复提取。
5. 该事件引发了以太坊区块链的硬分叉,导致以太坊和以太坊经典成为两条独立的链。
实现可重入的技术条件
1. 对不受信任地址的外部调用必须先于关键状态修改,例如余额更新或访问标志切换。
2. 合约必须依赖反映所有权或权利的可变存储变量,而不强制执行重入防护。
3. 缺乏互斥模式(例如使用锁定的布尔值或重入修饰符)会使嵌套调用上下文中的入口点不受保护。
4. 由于缺乏gas补贴限制和自动恢复行为,使用call()等低级调用而不是transfer()或send()等更安全的替代方法会增加风险。
5. 从过时或未经审核的库继承的合约可能会无意中暴露具有继承的可重入表面的函数。
今天部署的缓解策略
1. 检查-效果-交互模式要求验证条件、更新内部状态,然后才执行外部调用。
2. 重入防护(例如 OpenZeppelin 的ReentrancyGuard )使用锁定的布尔值来防止活动执行期间函数重入。
3. 使用transfer()或send()代替原始call()会强制执行2300-gas 限制,使得后备函数无法执行复杂的逻辑,包括进一步的可重入调用。
4. Slither 和 MythX 等静态分析工具可检测开发和 CI 管道期间潜在的重入向量。
5. Certora 和 KEVM 等正式验证框架在任意调用序列(包括嵌套外部调用)下验证契约不变量。
常见问题解答
Q1.重入攻击会发生在以太坊以外的区块链上吗? A1。是的。如果合约复制相同的有缺陷的交互模式,任何与 EVM 兼容的链(包括 BNB Chain、Polygon 和 Arbitrum)都同样容易受到影响。具有类似外部调用语义的非 EVM 链,例如 Solana 在某些条件下的跨程序调用,也面临类似的风险。
Q2。使用 require() 语句足以防止重入吗? A2。不需要。Require 语句验证先决条件,但不会阻止重新输入。它们在状态改变之前运行,并且一旦发生外部调用就无法限制后续回调。
Q3。基于代理的可升级合约是否会引入额外的可重入表面? A3。是的。如果实现合约缺乏重入保护,并且代理在不拦截或验证调用深度的情况下转发调用,则可升级模式可以继承或放大现有漏洞。
Q4。即使没有恶意合约,闪电贷也能触发重入吗? A4。是的。闪电贷攻击通常将价格预言机操纵与重入结合起来,以耗尽流动性池或贷款协议,如针对 dYdX、Harvest Finance 和 BurgerSwap 的攻击——所有这些都依赖于关键路径内不受保护的外部调用。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- 比特币、eCash 分叉和空投动态:深入探讨加密货币的最新争议
- 2026-05-03 12:55:01
- 2026 年迈阿密共识:Web3、区块链、加密货币、NFT、Metaverse,会议,5 月 5 日 — 华尔街与数字前沿相遇的地方
- 2026-05-02 12:45:01
- 美联储维持利率稳定,地缘政治紧张局势引发比特币价格下跌
- 2026-05-01 06:45:01
- 比特币矿工为电网供电:收购俄亥俄州天然气厂开启数字黄金新时代
- 2026-05-01 00:45:01
- MegaETH的MEGA代币登陆纽约:为实时区块链设定新的性能基准
- 2026-05-01 00:55:01
- Solana 的滑坡:价格预测表明阻力损失和潜在的进一步下跌
- 2026-05-01 06:45:01
相关百科
什么是加密货币风险管理?哪些规则区分赢家和输家?
2026-06-12 11:59:57
加密货币风险管理的核心原则1. 每个头寸的规模必须根据总资本的固定百分比确定——通常每笔交易不超过 1.5%。 2. 私钥和助记词绝不会以数字方式存储在联网设备上;物理备份仍然是唯一可接受的标准。 3. 智能合约交互需要在签署任何交易之前手动验证字节码哈希和函数签名。 4. 交易所账户仅持有交易活跃...
什么是工作量证明 (PoW)?为什么Bitcoin仍然使用它?
2026-06-13 04:03:54
PoW核心机制1. 工作量证明要求矿工对区块头数据与可变随机数进行重复的 SHA-256 哈希计算。 2. 目标条件要求生成的散列以特定数量的前导零开始,并动态调整以保持一致的块间隔。 3. 每次尝试在计算上都是独立的;不存在捷径——只有强力迭代才能产生有效的解决方案。 4. 一旦发现,解决方案将在...
什么是 MEV(最大可提取值)?它如何影响日常交易者?
2026-06-15 04:56:00
MEV的定义和起源1. MEV 代表最大可提取价值,该术语由以太坊过渡到权益证明后的“矿工可提取价值”演变而来。 2. 它描述了在最终确定之前通过对区块内的交易进行重新排序、插入或审查所获得的利润。 3. 这个概念是由一位名叫 Pmcgoohan 的分析师于 2014 年首次提出的,当时以太坊主网启...
什么是 ICO?为什么这么多投资者在 ICO 热潮中亏损?
2026-06-13 05:00:12
市场波动模式1. Bitcoin的价格波动往往与宏观经济数据的发布相关,尤其是美国CPI和非农就业报告。 2. 在上海或 Dencun 分叉等重大协议升级期间,以太坊往往会表现出更高的波动性。 3. 稳定币脱钩——例如 2023 年硅谷银行倒闭后 USDC 暂时偏离 1 美元——引发了永续期货市场的...
什么是区块链预言机?为什么智能合约没有它就无法工作?
2026-06-15 14:39:34
区块链预言机的定义是什么1. 区块链预言机是一种可信的第三方服务,可将外部数据传递给部署在链上的智能合约。 2. 它充当安全管道,通过与链下环境隔离的设计,使区块链能够摄取经过验证的现实世界输入。 3. 预言机不属于共识层;相反,它们作为外部数据中继运行,由加密证明、多源聚合或去中心化验证器集管理。...
什么是现实世界资产 (RWA) 代币化?为什么它是一个热门趋势?
2026-06-14 03:29:36
定义及核心机制1. RWA代币化是指将实物或传统金融资产的所有权或经济权利表示为区块链上的数字代币的过程。 2. 每个代币都对应于对基础资产(例如房地产、政府债券、知识产权使用费或商品储备)的可验证、合法可执行的债权。 3. 本次发行依赖于特殊目的载体 (SPV) 等结构化法律包装、托管安排和特定司...
什么是加密货币风险管理?哪些规则区分赢家和输家?
2026-06-12 11:59:57
加密货币风险管理的核心原则1. 每个头寸的规模必须根据总资本的固定百分比确定——通常每笔交易不超过 1.5%。 2. 私钥和助记词绝不会以数字方式存储在联网设备上;物理备份仍然是唯一可接受的标准。 3. 智能合约交互需要在签署任何交易之前手动验证字节码哈希和函数签名。 4. 交易所账户仅持有交易活跃...
什么是工作量证明 (PoW)?为什么Bitcoin仍然使用它?
2026-06-13 04:03:54
PoW核心机制1. 工作量证明要求矿工对区块头数据与可变随机数进行重复的 SHA-256 哈希计算。 2. 目标条件要求生成的散列以特定数量的前导零开始,并动态调整以保持一致的块间隔。 3. 每次尝试在计算上都是独立的;不存在捷径——只有强力迭代才能产生有效的解决方案。 4. 一旦发现,解决方案将在...
什么是 MEV(最大可提取值)?它如何影响日常交易者?
2026-06-15 04:56:00
MEV的定义和起源1. MEV 代表最大可提取价值,该术语由以太坊过渡到权益证明后的“矿工可提取价值”演变而来。 2. 它描述了在最终确定之前通过对区块内的交易进行重新排序、插入或审查所获得的利润。 3. 这个概念是由一位名叫 Pmcgoohan 的分析师于 2014 年首次提出的,当时以太坊主网启...
什么是 ICO?为什么这么多投资者在 ICO 热潮中亏损?
2026-06-13 05:00:12
市场波动模式1. Bitcoin的价格波动往往与宏观经济数据的发布相关,尤其是美国CPI和非农就业报告。 2. 在上海或 Dencun 分叉等重大协议升级期间,以太坊往往会表现出更高的波动性。 3. 稳定币脱钩——例如 2023 年硅谷银行倒闭后 USDC 暂时偏离 1 美元——引发了永续期货市场的...
什么是区块链预言机?为什么智能合约没有它就无法工作?
2026-06-15 14:39:34
区块链预言机的定义是什么1. 区块链预言机是一种可信的第三方服务,可将外部数据传递给部署在链上的智能合约。 2. 它充当安全管道,通过与链下环境隔离的设计,使区块链能够摄取经过验证的现实世界输入。 3. 预言机不属于共识层;相反,它们作为外部数据中继运行,由加密证明、多源聚合或去中心化验证器集管理。...
什么是现实世界资产 (RWA) 代币化?为什么它是一个热门趋势?
2026-06-14 03:29:36
定义及核心机制1. RWA代币化是指将实物或传统金融资产的所有权或经济权利表示为区块链上的数字代币的过程。 2. 每个代币都对应于对基础资产(例如房地产、政府债券、知识产权使用费或商品储备)的可验证、合法可执行的债权。 3. 本次发行依赖于特殊目的载体 (SPV) 等结构化法律包装、托管安排和特定司...
查看所有文章














