-
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-07-26 04:40:10
了解區塊鏈安全基礎知識1. 區塊鏈安全依賴加密哈希來確保鏈中每個區塊的資料完整性。 2. 每個區塊包含一個唯一的雜湊值,該值源自於其內容和前一個區塊的雜湊值,形成一個不可變的序列。 3.分散式帳本架構意味著不存在單點故障-每個節點都維護帳本的完整副本。 4. 工作量證明和權益證明等共識機制在添加新區...
什麼是代幣銷毀?為什麼專案要銷毀代幣?
2026-07-22 10:39:51
定義和技術執行1. 代幣銷毀是指透過將數位代幣發送到不可存取的地址(通常稱為銷毀地址或吞噬者地址)來不可逆轉地從流通中刪除數位代幣。 2. 這些地址沒有私鑰,使得任何轉移的代幣永久無法使用,並從功能性供應指標中有效刪除。 3. 在基於以太坊的網路上,經常使用零位址(0x000…dead);在 BSC...
什麼是循環供應?為什麼代幣供應很重要?
2026-07-21 13:40:08
什麼是循環供應? 1. 流通量是指目前可在公開市場上交易和使用的代幣數量。 2. 這些代幣已分發給用戶、交易所或公共錢包,並且沒有被鎖定、保留或保存在不可訪問的合約中。 3. 如果分配給團隊成員、顧問或基金會的代幣仍處於歸屬計畫或智慧合約鎖定狀態,則不包括這些代幣。 4. 循環供應是一個動態指標-它...
什麼是加密貨幣市值?它是如何計算的?
2026-07-24 21:40:18
市場波動模式1. Bitcoin的價格波動通常與美國通膨報告和聯準會利率決策等宏觀經濟指標相關。 2. 山寨幣的走勢經常跟隨Bitcoin的走勢,但在低流動性時期表現出更大的波動性。 3. 交易所交易基金(ETF)的流入和流出直接影響現貨市場深度,並改變短期價格發現機制。 4. 鯨魚錢包活動(以超過...
什麼是去中心化交易所(DEX)?比CEX安全嗎?
2026-07-21 14:00:18
DEX核心架構1. 去中心化交易所完全在區塊鏈基礎設施上運行,不依賴中心化伺服器或託管中介機構。 2. 智能合約控制所有交易執行、訂單撮合和資產結算,無需人工幹預。 3. 使用者使用 MetaMask 或 Trust Wallet 等自助錢包直接與協定互動。 4. 流動性池取代了大多數現代 DEX ...
什麼是自我託管加密貨幣?為什麼人們說「不是你的鑰匙,不是你的硬幣」?
2026-07-26 08:19:37
自我保管的核心原則1. 自我託管是指使用者持有並管理自己的私鑰,而不將控制權委託給任何第三方。 2. 私鑰是授權鏈上交易的密碼學秘密;如果遺失則無法再生。 3. 加密貨幣的所有權只能透過擁有這些金鑰來證明,而不是透過交易所顯示的帳戶餘額來證明。 4. 當資金駐留在中心化交易所時,平台控制底層金鑰;用...
什麼是區塊鏈安全?用戶如何避免加密貨幣詐騙?
2026-07-26 04:40:10
了解區塊鏈安全基礎知識1. 區塊鏈安全依賴加密哈希來確保鏈中每個區塊的資料完整性。 2. 每個區塊包含一個唯一的雜湊值,該值源自於其內容和前一個區塊的雜湊值,形成一個不可變的序列。 3.分散式帳本架構意味著不存在單點故障-每個節點都維護帳本的完整副本。 4. 工作量證明和權益證明等共識機制在添加新區...
什麼是代幣銷毀?為什麼專案要銷毀代幣?
2026-07-22 10:39:51
定義和技術執行1. 代幣銷毀是指透過將數位代幣發送到不可存取的地址(通常稱為銷毀地址或吞噬者地址)來不可逆轉地從流通中刪除數位代幣。 2. 這些地址沒有私鑰,使得任何轉移的代幣永久無法使用,並從功能性供應指標中有效刪除。 3. 在基於以太坊的網路上,經常使用零位址(0x000…dead);在 BSC...
什麼是循環供應?為什麼代幣供應很重要?
2026-07-21 13:40:08
什麼是循環供應? 1. 流通量是指目前可在公開市場上交易和使用的代幣數量。 2. 這些代幣已分發給用戶、交易所或公共錢包,並且沒有被鎖定、保留或保存在不可訪問的合約中。 3. 如果分配給團隊成員、顧問或基金會的代幣仍處於歸屬計畫或智慧合約鎖定狀態,則不包括這些代幣。 4. 循環供應是一個動態指標-它...
什麼是加密貨幣市值?它是如何計算的?
2026-07-24 21:40:18
市場波動模式1. Bitcoin的價格波動通常與美國通膨報告和聯準會利率決策等宏觀經濟指標相關。 2. 山寨幣的走勢經常跟隨Bitcoin的走勢,但在低流動性時期表現出更大的波動性。 3. 交易所交易基金(ETF)的流入和流出直接影響現貨市場深度,並改變短期價格發現機制。 4. 鯨魚錢包活動(以超過...
什麼是去中心化交易所(DEX)?比CEX安全嗎?
2026-07-21 14:00:18
DEX核心架構1. 去中心化交易所完全在區塊鏈基礎設施上運行,不依賴中心化伺服器或託管中介機構。 2. 智能合約控制所有交易執行、訂單撮合和資產結算,無需人工幹預。 3. 使用者使用 MetaMask 或 Trust Wallet 等自助錢包直接與協定互動。 4. 流動性池取代了大多數現代 DEX ...
什麼是自我託管加密貨幣?為什麼人們說「不是你的鑰匙,不是你的硬幣」?
2026-07-26 08:19:37
自我保管的核心原則1. 自我託管是指使用者持有並管理自己的私鑰,而不將控制權委託給任何第三方。 2. 私鑰是授權鏈上交易的密碼學秘密;如果遺失則無法再生。 3. 加密貨幣的所有權只能透過擁有這些金鑰來證明,而不是透過交易所顯示的帳戶餘額來證明。 4. 當資金駐留在中心化交易所時,平台控制底層金鑰;用...
看所有文章














