市值: $2.2115T -4.53%
體積(24小時): $156.2812B 12.63%
恐懼與貪婪指數:

23 - 極度恐懼

  • 市值: $2.2115T -4.53%
  • 體積(24小時): $156.2812B 12.63%
  • 恐懼與貪婪指數:
  • 市值: $2.2115T -4.53%
加密
主題
加密植物
資訊
加密術
影片
頂級加密植物

選擇語言

選擇語言

選擇貨幣

加密
主題
加密植物
資訊
加密術
影片

什麼是智能合約中的重入攻擊?

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),我們將及時刪除。

相關知識

如何參與加密貨幣空投? (免費代幣)

如何參與加密貨幣空投? (免費代幣)

2026-04-11 05:59:35

了解空投機制1. 空投是區塊鏈專案發起的協議級原生代幣分發,用於獎勵特定的鏈上或鏈下行為。 2. 資格取決於捕捉錢包餘額、交易歷史或跨指定網路(如以太坊、Base 或 Solana)的互動模式的鏈上快照。 3. 代幣分配根據 NFT 所有權、流動性提供期限或跨多個鏈的重複橋使用等標準而有所不同。 4...

什麼是真實世界資產(RWA)代幣化? (市場趨勢)

什麼是真實世界資產(RWA)代幣化? (市場趨勢)

2026-04-10 19:20:06

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少每個區塊新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下一次減少將使其達到 3.1...

如何避免加密貨幣中的網路釣魚詐騙? (網路安全)

如何避免加密貨幣中的網路釣魚詐騙? (網路安全)

2026-04-15 07:00:14

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少每個區塊新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下一次減少將使其達到 3.1...

硬幣和代幣有什麼不同? (資產類型)

硬幣和代幣有什麼不同? (資產類型)

2026-04-12 21:40:28

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中區塊獎勵大約每 210,000 個區塊或大約每四年減半。 2. 2024 年 4 月減半事件後,目前區塊獎勵為每區塊 3.125 BTC。 3. 這種減少直接影響礦工收入,壓縮利潤率,除非交易費用上漲或比特幣價格上漲所...

如何檢查智能合約審核情況? (安全驗證)

如何檢查智能合約審核情況? (安全驗證)

2026-04-11 14:00:26

市場波動模式1. Bitcoin 在重大宏觀經濟公告期間,24 小時內價格波動往往超過 15%。 2. 山寨幣指數表現出相對於 BTC 更高的貝塔係數,放大了流動性衝擊期間的收益和損失。 3. 在閃崩事件期間,交易所訂單簿深度下降了 40% 以上,引發了永續合約市場的級聯清算。 4. 穩定幣流入中心...

如何使用Ledger硬體錢包? (設備設定)

如何使用Ledger硬體錢包? (設備設定)

2026-04-21 12:40:18

市場波動模式1. Bitcoin 在重大宏觀經濟公告期間,24 小時內價格波動往往超過 15%。 2. 在熊市階段,山寨幣與 BTC 的相關性飆升至 0.92 以上,壓縮了獨立走勢。 3. 當資金費率連續三小時突破±0.15%時,衍生性商品平台上的交易所訂單簿深度將下降超過60%。 4. 在地緣政治...

如何參與加密貨幣空投? (免費代幣)

如何參與加密貨幣空投? (免費代幣)

2026-04-11 05:59:35

了解空投機制1. 空投是區塊鏈專案發起的協議級原生代幣分發,用於獎勵特定的鏈上或鏈下行為。 2. 資格取決於捕捉錢包餘額、交易歷史或跨指定網路(如以太坊、Base 或 Solana)的互動模式的鏈上快照。 3. 代幣分配根據 NFT 所有權、流動性提供期限或跨多個鏈的重複橋使用等標準而有所不同。 4...

什麼是真實世界資產(RWA)代幣化? (市場趨勢)

什麼是真實世界資產(RWA)代幣化? (市場趨勢)

2026-04-10 19:20:06

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少每個區塊新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下一次減少將使其達到 3.1...

如何避免加密貨幣中的網路釣魚詐騙? (網路安全)

如何避免加密貨幣中的網路釣魚詐騙? (網路安全)

2026-04-15 07:00:14

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少每個區塊新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下一次減少將使其達到 3.1...

硬幣和代幣有什麼不同? (資產類型)

硬幣和代幣有什麼不同? (資產類型)

2026-04-12 21:40:28

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中區塊獎勵大約每 210,000 個區塊或大約每四年減半。 2. 2024 年 4 月減半事件後,目前區塊獎勵為每區塊 3.125 BTC。 3. 這種減少直接影響礦工收入,壓縮利潤率,除非交易費用上漲或比特幣價格上漲所...

如何檢查智能合約審核情況? (安全驗證)

如何檢查智能合約審核情況? (安全驗證)

2026-04-11 14:00:26

市場波動模式1. Bitcoin 在重大宏觀經濟公告期間,24 小時內價格波動往往超過 15%。 2. 山寨幣指數表現出相對於 BTC 更高的貝塔係數,放大了流動性衝擊期間的收益和損失。 3. 在閃崩事件期間,交易所訂單簿深度下降了 40% 以上,引發了永續合約市場的級聯清算。 4. 穩定幣流入中心...

如何使用Ledger硬體錢包? (設備設定)

如何使用Ledger硬體錢包? (設備設定)

2026-04-21 12:40:18

市場波動模式1. Bitcoin 在重大宏觀經濟公告期間,24 小時內價格波動往往超過 15%。 2. 在熊市階段,山寨幣與 BTC 的相關性飆升至 0.92 以上,壓縮了獨立走勢。 3. 當資金費率連續三小時突破±0.15%時,衍生性商品平台上的交易所訂單簿深度將下降超過60%。 4. 在地緣政治...

看所有文章

User not found or password invalid

Your input is correct