市值: $2.1738T -2.42%
體積(24小時): $66.3515B 17.58%
恐懼與貪婪指數:

35 - 害怕

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

選擇語言

選擇語言

選擇貨幣

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

什麼是重入攻擊以及如何在合約中防止它?

Reentrancy attacks exploit unchecked external calls in smart contracts, allowing attackers to drain funds by re-entering functions before state updates—highlighted by the $60M DAO hack.

2025/11/10 16:20

了解智能合約中的重入攻擊

1. 當惡意合約在初始執行完成之前反復回調易受攻擊的函數時,就會發生重入攻擊。這種遞歸行為利用了智能合約中外部調用的順序和狀態變化。

2. 核心漏洞在於在更新內部狀態之前發送資金或進行外部調用的合約。攻擊者可以利用這個窗口,通過重新進入提現功能來多次提現資金。

3. 最臭名昭著的例子之一是 2016 年的 DAO 黑客事件,由於可重入缺陷,價值超過 6000 萬美元的以太幣被耗盡。攻擊者使用後備函數遞歸調用提款機制。

4. 這些攻擊不僅限於以太幣傳輸。如果沒有適當的保護措施,對用戶控制的合約的任何外部調用都可能被武器化。

5.重入仍然是去中心化應用程序中最關鍵的安全風險之一,特別是在處理大量用戶資金的 DeFi 協議中。

支持重入的常見模式

1. 遵循“先調用,後更新”模式的合約本質上很容易受到影響。在減少用戶餘額之前發送以太幣或代幣允許攻擊者重新進入,更新後的餘額仍反映原始金額。

2. 依賴於低級調用(如call()delegatecall()send()且未經適當檢查的函數會增加暴露風險。這些方法會觸發接收者的回退或接收功能,其中可能包含惡意邏輯。

3. 拉拉-推式支付模式使用不當會帶來風險。基於推送的系統在交易期間主動發送資金,為遞歸利用創造了機會。

4.跨多個接口的複雜合約交互放大了危險。當一個合約調用另一個合約並且兩者都具有可變狀態時,跟踪執行流程變得困難,從而增加了監督的機會。

5.如果狀態更新不是原子的並且在外部交互之後發生,即使看似安全的代碼也可能受到損害。

有效的預防策略

1. 嚴格應用檢查-效果-交互 (CEI) 模式。始終驗證輸入,更新內部狀態變量,然後才進行外部調用。該序列消除了重新進入窗口。

2. 使用 OpenZeppelin 的ReentrancyGuard等庫提供的互斥鎖或重入防護。它們強制執行鎖定機制,防止函數在執行時重新進入。

3.限制低級調用的使用。更喜歡像transfer()這樣的高級傳輸函數,它們具有內置的保護,例如通常會阻止遞歸執行的氣體津貼限制。

4. 實施提款模式而不是直接付款。讓用戶通過單獨的功能發起資金檢索,最大限度地減少敏感操作期間的外部調用次數。

5.應將定期審計和靜態分析工具集成到開發生命週期中,以在部署之前檢測潛在的重入向量。

常見問題解答

回退函數在重入攻擊中的作用是什麼?當合約收到沒有數據的以太幣時,回退函數會自動執行。攻擊者精心設計惡意回退,重新調用易受攻擊的函數,從而創建一個循環,在原始交易完成之前耗盡資金。

同一個合約中的不同函數之間可以發生重入嗎?是的。當一個函數進行外部調用並返回到同一合約的另一個函數時,就會發生跨函數重入,從而利用尚未更新的共享狀態。適當的國家管理和警衛對於阻止此類路徑至關重要。

代理合約是否不受重入影響?不會。如果邏輯實現包含未經檢查的外部調用,代理合約仍然容易受到攻擊。由於代理將調用委託給可升級的邏輯合約,因此邏輯層中的任何缺陷(包括可重入性)仍然可以被利用。

Gas 限制如何影響重入嘗試?一些早期的防禦依賴於消耗所有可用的氣體來阻止遞歸。然而,現代攻擊通過使用精確的氣體估計來規避這一點。僅僅依靠gas limit是不可靠的;結構代碼模式提供更強的保護。

免責聲明:info@kdj.com

所提供的資訊並非交易建議。 kDJ.com對任何基於本文提供的資訊進行的投資不承擔任何責任。加密貨幣波動性較大,建議您充分研究後謹慎投資!

如果您認為本網站使用的內容侵犯了您的版權,請立即聯絡我們(info@kdj.com),我們將及時刪除。

相關知識

AVAX 期貨保證金要求是如何計算的?

AVAX 期貨保證金要求是如何計算的?

2026-07-23 15:40:03

AVAX 期貨保證金結構1. AVAX期貨保證金由兩個不同的部分組成:初始保證金和維持保證金。這些是根據當前市場價格、波動性、未平倉合約和合約規模即時計算的。 2. 初始保證金作為履約保證金,以彌補短期(通常是一個交易時段)內潛在的不利價格變動。它以頭寸名義價值的百分比表示。 3. 維持保證金設定為...

ADA永續合約的最大槓桿是多少?

ADA永續合約的最大槓桿是多少?

2026-07-28 07:40:32

ADA 永續期貨槓桿因交易所而異,取決於司法管轄區、使用者層級和風險管理政策。截至 2026 年 7 月,主要平台實施不同的上限。特定於交易所的 ADA 槓桿限制1.幣安合約對ADA/USDT永續合約採用動態槓桿模型。具有 Tier-1 狀態的經過驗證的用戶可以獲得高達25 倍的槓桿。在 KYC 完...

ADA合約保證金率為何會觸發警告?

ADA合約保證金率為何會觸發警告?

2026-07-22 09:00:26

ADA 合約保證金比率機制1. 各大交易所的ADA永續合約採用根據持倉規模、槓桿水平和當前標記價格即時計算的動態保證金比例。 2. 保證金比率等於(錢包餘額+未實現損益)除以維持保證金要求,以百分比表示。 3. 當該比率低於交易所定義的維持門檻(通常為 5% 至 10%,取決於槓桿率)時,系統將啟動...

ADAUSDT永續合約資金費率是多少?

ADAUSDT永續合約資金費率是多少?

2026-07-24 20:19:46

ADAUSDT永續合約資金費率定義及目的1. ADAUSDT永續合約資金費率是卡爾達諾(ADA)與主要加密貨幣交易所Tether(USDT)衍生性商品部位之間採用的定期費用兌換機制。 2. 作為價格錨定工具,確保ADAUSDT永續合約價格與基礎ADA/USDT現貨指數價格保持緊密一致。 3.與傳統期...

TON永續交易建議使用多少槓桿?

TON永續交易建議使用多少槓桿?

2026-07-27 17:20:10

TON 永續交易機制1. TON永續合約在去中心化和中心化交易所運行,保證金模式各異。 2. 資金費率以小時計算,取決於現貨價格和永續價格之間的基礎,影響多頭/空頭成本動態。 3. 當維持保證金低於交易所定義的門檻(通常以頭寸價值的百分比表示)時,就會觸發強平。 4. TON 區塊鏈的原生速度可實現...

TON 期貨強平價格公式是?

TON 期貨強平價格公式是?

2026-07-23 09:19:45

TON 期貨強平機制1. 當交易者的保證金餘額低於交易所設定的維持保證金要求時,TON 期貨就會被清算。 2.保證金比例低於或等於100%時,系統自動觸發強制平倉,計算公式為(可用保證金/所需保證金)×100%。 3. 強平價格不是固定的,它會隨著市場趨勢、部位規模、槓桿水準和資金費率的調整而動態變...

AVAX 期貨保證金要求是如何計算的?

AVAX 期貨保證金要求是如何計算的?

2026-07-23 15:40:03

AVAX 期貨保證金結構1. AVAX期貨保證金由兩個不同的部分組成:初始保證金和維持保證金。這些是根據當前市場價格、波動性、未平倉合約和合約規模即時計算的。 2. 初始保證金作為履約保證金,以彌補短期(通常是一個交易時段)內潛在的不利價格變動。它以頭寸名義價值的百分比表示。 3. 維持保證金設定為...

ADA永續合約的最大槓桿是多少?

ADA永續合約的最大槓桿是多少?

2026-07-28 07:40:32

ADA 永續期貨槓桿因交易所而異,取決於司法管轄區、使用者層級和風險管理政策。截至 2026 年 7 月,主要平台實施不同的上限。特定於交易所的 ADA 槓桿限制1.幣安合約對ADA/USDT永續合約採用動態槓桿模型。具有 Tier-1 狀態的經過驗證的用戶可以獲得高達25 倍的槓桿。在 KYC 完...

ADA合約保證金率為何會觸發警告?

ADA合約保證金率為何會觸發警告?

2026-07-22 09:00:26

ADA 合約保證金比率機制1. 各大交易所的ADA永續合約採用根據持倉規模、槓桿水平和當前標記價格即時計算的動態保證金比例。 2. 保證金比率等於(錢包餘額+未實現損益)除以維持保證金要求,以百分比表示。 3. 當該比率低於交易所定義的維持門檻(通常為 5% 至 10%,取決於槓桿率)時,系統將啟動...

ADAUSDT永續合約資金費率是多少?

ADAUSDT永續合約資金費率是多少?

2026-07-24 20:19:46

ADAUSDT永續合約資金費率定義及目的1. ADAUSDT永續合約資金費率是卡爾達諾(ADA)與主要加密貨幣交易所Tether(USDT)衍生性商品部位之間採用的定期費用兌換機制。 2. 作為價格錨定工具,確保ADAUSDT永續合約價格與基礎ADA/USDT現貨指數價格保持緊密一致。 3.與傳統期...

TON永續交易建議使用多少槓桿?

TON永續交易建議使用多少槓桿?

2026-07-27 17:20:10

TON 永續交易機制1. TON永續合約在去中心化和中心化交易所運行,保證金模式各異。 2. 資金費率以小時計算,取決於現貨價格和永續價格之間的基礎,影響多頭/空頭成本動態。 3. 當維持保證金低於交易所定義的門檻(通常以頭寸價值的百分比表示)時,就會觸發強平。 4. TON 區塊鏈的原生速度可實現...

TON 期貨強平價格公式是?

TON 期貨強平價格公式是?

2026-07-23 09:19:45

TON 期貨強平機制1. 當交易者的保證金餘額低於交易所設定的維持保證金要求時,TON 期貨就會被清算。 2.保證金比例低於或等於100%時,系統自動觸發強制平倉,計算公式為(可用保證金/所需保證金)×100%。 3. 強平價格不是固定的,它會隨著市場趨勢、部位規模、槓桿水準和資金費率的調整而動態變...

看所有文章

User not found or password invalid

Your input is correct