-
bitcoin $77312.762885 USD
-1.13% -
ethereum $2468.308331 USD
-0.25% -
tether $0.999590 USD
0.00% -
bnb $715.374786 USD
-0.49% -
xrp $1.357398 USD
-1.97% -
usd-coin $0.999853 USD
0.00% -
solana $99.885399 USD
-1.73% -
tron $0.338723 USD
-0.28% -
hyperliquid $80.054099 USD
-3.93% -
zcash $1110.459433 USD
-8.91% -
dogecoin $0.084036 USD
-1.66% -
monero $510.459364 USD
-0.32% -
chainlink $11.534709 USD
-2.37% -
unus-sed-leo $9.086508 USD
-1.16% -
cardano $0.209045 USD
-2.23%
什麼是重入攻擊以及它如何利用智能合約漏洞?
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),我們將及時刪除。
- 歐盟金融團體向立法者施壓,要求他們重新考慮代幣化證券的上限,著眼於美國的競爭
- 2026-09-11 12:50:02
- Bitget API 使交易者能夠透過差價合約存取黃金、外匯和股票
- 2026-09-11 12:55:01
- 比特幣的流沙:ETF 買家帳面損失導致賣方風險大幅下降
- 2026-09-11 12:55:01
- ChatGPT 金融服務:重塑初級銀行家的格局
- 2026-09-11 13:00:01
- 由於民主黨和共和黨發生衝突,《清晰法案》在垂直整合方面面臨黨派分歧
- 2026-09-11 12:40:01
- Altseason 2026、Memecoins 和流動性:紐約風格的加密十字路口深度探索
- 2026-09-11 12:45:01
相關知識
什麼是 DAI?它與 USDT 有何不同?
2026-09-08 17:00:22
市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...
為什麼穩定幣會失去 1 美元的掛鉤?
2026-09-08 02:00:03
儲備組成和透明度差距1. 許多穩定幣聲稱完全由現金或短期美國國債支持,但儲備揭露往往缺乏即時驗證機制。 2. 第三方證明可能僅每季進行一次,從而留下較長的窗口,使不匹配的資產負債結構仍未被發現。 3. 一些發行人持有的商業票據或逆回購協議存在未反映在公共資產負債表中的交易對手風險。 4. 鏈下銀行關...
什麼是加密貨幣中的自我託管以及為什麼它很重要?
2026-09-10 04:19:32
定義和核心機制1. 自我保管是指個人保留對其私鑰的完全控制權,而不將該權力委託給任何第三方服務的做法。 2. 自我託管錢包的伺服器上不持有資產;相反,它提供了一個使用本地儲存的加密金鑰與區塊鏈網路互動的介面。 3. 使用者的裝置(無論是智慧型手機、桌上型電腦或硬體模組)託管種子短語和私鑰,並且在正常...
什麼是閃電網路? Bitcoin 交易如何變得更快?
2026-09-08 07:00:16
閃電網路核心架構1. 閃電網路作為直接建構在 Bitcoin 區塊鏈之上的第二層協定運行,完全依賴 Bitcoin 的加密安全模型,無需引入新的共識規則。 2. 使用2-of-2多重簽名地址在參與者之間建立雙向支付通道,雙方必須共同簽名才能將資金移出通道。 3. 每個通道都透過鏈上融資交易進行初始化...
什麼是加密預言機?區塊鏈如何取得真實世界的數據?
2026-09-08 19:20:07
定義和核心功能1. 加密預言機是一種可信任的第三方服務,可作為區塊鏈網路和外部資料來源之間的橋樑。 2. 它獲取、驗證鏈下訊息,並將其傳遞給部署在鏈上的智能合約,例如價格、體育比分、天氣狀況或 API 響應。 3. 如果沒有預言機,智能合約將與現實世界的事件隔離,無法執行依賴外部觸發器的邏輯。 4....
Bitcoin 與萊特幣:主要區別是什麼?
2026-09-08 20:20:11
起源和基礎架構1. Bitcoin 於 2009 年出現,作為首個去中心化加密貨幣,建立在使用 SHA-256 雜湊演算法的工作量證明共識機制之上。 2. 萊特幣於 2011 年作為 Bitcoin 開源程式碼庫的直接分支推出,但用 Scrypt 取代了 SHA-256,有意提高了早期 ASIC 主...
什麼是 DAI?它與 USDT 有何不同?
2026-09-08 17:00:22
市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...
為什麼穩定幣會失去 1 美元的掛鉤?
2026-09-08 02:00:03
儲備組成和透明度差距1. 許多穩定幣聲稱完全由現金或短期美國國債支持,但儲備揭露往往缺乏即時驗證機制。 2. 第三方證明可能僅每季進行一次,從而留下較長的窗口,使不匹配的資產負債結構仍未被發現。 3. 一些發行人持有的商業票據或逆回購協議存在未反映在公共資產負債表中的交易對手風險。 4. 鏈下銀行關...
什麼是加密貨幣中的自我託管以及為什麼它很重要?
2026-09-10 04:19:32
定義和核心機制1. 自我保管是指個人保留對其私鑰的完全控制權,而不將該權力委託給任何第三方服務的做法。 2. 自我託管錢包的伺服器上不持有資產;相反,它提供了一個使用本地儲存的加密金鑰與區塊鏈網路互動的介面。 3. 使用者的裝置(無論是智慧型手機、桌上型電腦或硬體模組)託管種子短語和私鑰,並且在正常...
什麼是閃電網路? Bitcoin 交易如何變得更快?
2026-09-08 07:00:16
閃電網路核心架構1. 閃電網路作為直接建構在 Bitcoin 區塊鏈之上的第二層協定運行,完全依賴 Bitcoin 的加密安全模型,無需引入新的共識規則。 2. 使用2-of-2多重簽名地址在參與者之間建立雙向支付通道,雙方必須共同簽名才能將資金移出通道。 3. 每個通道都透過鏈上融資交易進行初始化...
什麼是加密預言機?區塊鏈如何取得真實世界的數據?
2026-09-08 19:20:07
定義和核心功能1. 加密預言機是一種可信任的第三方服務,可作為區塊鏈網路和外部資料來源之間的橋樑。 2. 它獲取、驗證鏈下訊息,並將其傳遞給部署在鏈上的智能合約,例如價格、體育比分、天氣狀況或 API 響應。 3. 如果沒有預言機,智能合約將與現實世界的事件隔離,無法執行依賴外部觸發器的邏輯。 4....
Bitcoin 與萊特幣:主要區別是什麼?
2026-09-08 20:20:11
起源和基礎架構1. Bitcoin 於 2009 年出現,作為首個去中心化加密貨幣,建立在使用 SHA-256 雜湊演算法的工作量證明共識機制之上。 2. 萊特幣於 2011 年作為 Bitcoin 開源程式碼庫的直接分支推出,但用 Scrypt 取代了 SHA-256,有意提高了早期 ASIC 主...
看所有文章














