市值: $2.827T -4.84%
體積(24小時): $188.512B 68.83%
恐懼與貪婪指數:

28 - 害怕

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

選擇語言

選擇語言

選擇貨幣

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

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

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-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