-
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%
什麼是智能合同中的重新攻擊?
A reentrancy attack exploits recursive function calls in smart contracts to drain funds, as seen in the infamous DAO hack.
2025/07/15 02:50
了解智能合約的基礎知識
智能合約是一份自執行的合同,其條款直接寫入代碼中。它在以太坊等區塊鏈平台上運行,並自動執行沒有中介機構的各方之間的協議。這些合同一旦部署後都是不可變的,這意味著代碼中存在的任何漏洞都無法改變驅逐後。這種不變性使得確保智能合約在上線之前可以免受所有可能的漏洞的安全至關重要。
這樣的利用之一是重新進入攻擊,該攻擊造成了加密貨幣生態系統中的重大損失。了解這種漏洞的工作方式需要掌握智能合約如何通過功能調用與外部帳戶和其他合同相互作用。
什麼是重新進入攻擊?
當惡意合同在初始執行完成之前反複調用另一個合同中的脆弱功能時,會發生重新攻擊。這種遞歸行為可以以意想不到的方式流失資金或操縱狀態變量。
經典的示例涉及合同處理以太轉移。如果功能在更新其內部餘額之前將以太發送到外部地址,則惡意合同可以在轉移期間重新輸入該功能,並反复流失合同的資金。 2016年臭名昭著的DAO駭客導致了6000萬美元的以太損失,這是由於重新進入的結果。
重新進入攻擊如何在實踐中起作用?
為了更好地理解重新進入攻擊的機制,請考慮以下簡化方案:
- 合同具有
withdraw()功能,允許用戶撤回其沉積以太。 - 該函數首先使用
call.value()將以太發送給用戶,然後將用戶的餘額更新為零。 - 惡意合同將自己註冊為用戶,並將以太存入目標合同。
- 當它調用
withdraw()時,目標合同會啟動以太轉移。 - 在轉移期間,惡意合同的後備功能(會自動觸發)再次呼叫
withdraw()。 - 由於餘額尚未更新,因此合同認為用戶仍然有可用的資金並發送更多的以太。
- 該循環一直持續到合同耗盡或氣體用完為止。
此過程利用合同中的操作順序 - 特別是在更新狀態之前發送以太。
重新輸入漏洞的類型
重新進入攻擊有幾種形式,每種攻擊都利用合同邏輯的不同方面:
- 單功能重新輸入:當單個函數包含外部呼叫和狀態更改時,就會發生這種情況。攻擊者在更新狀態之前在外部呼叫期間觸發重新進入。
- 跨功能重新輸入:在這裡,多個功能共享狀態變量。攻擊者可以在第一個仍在執行時重新輸入第二個功能,從而不一致地操縱共享數據。
- 授權重新輸入:此高級變體使用
delegatecall機制在另一個合同中執行代碼。如果不仔細處理,這可能會導致意外的重新進入場景。
每種類型都需要仔細的審核和特定的緩解策略,以防止剝削。
如何防止重新進入攻擊
防止重新進入攻擊涉及在合同設計和利用安全工具方面採用最佳實踐:
- 使用檢查效應 - 交互模式:在撥打任何外部呼叫之前,請務必更新合同的狀態。這樣可以確保沒有重新進入可以操縱現有的平衡或州。
- 實施重新進入警衛:諸如OpenZeppelin之類的庫提供了重新輸入後衛修飾符,該修飾符使用MUTEX變量阻止重新進入呼叫。
- 避免複雜的外部呼叫:最大程度地減少與未知或未經信任合同的互動。在必要時,請確保回調是安全的,並且不要觸發任意代碼。
- 使用推拉付款:而不是將資金推向用戶,而是讓他們啟動提款。這降低了遞歸排水的風險。
- 進行詳盡的審核:使用自動化工具和手動審查來檢測代碼庫中潛在的重新輸入矢量。
通過採用這些策略,開發人員可以大大減少成功重新進入攻擊的可能性。
真實世界的重新輸入示例
幾起備受矚目的事件強調了重新進入攻擊的毀滅性影響:
- DAO HACK(2016) :最著名的案件涉及一個分散的自治組織,其智能合同允許遞歸提款。攻擊者利用了這一點,以耗盡數百萬美元的乙醚。
- Fusion網絡攻擊(2021年) :黑客在協議中利用了一個跨功能重新輸入錯誤,導致了1400萬美元的損失。
- Warp Finance Hack(2021) :在不同職能上利用了多個重新入侵點,使攻擊者能夠耗盡近800萬美元的資產。
這些示例強調了嚴格的測試和遵守對確保編碼實踐的重要性。
常見問題
問:在非埃塞姆區塊鏈中可以重新進入攻擊嗎?是的,重新輸入攻擊會影響任何以外部呼叫和可變狀態支持智能合約的區塊鏈平台。儘管以太坊已經看到了最突出的案例,但二元智能鏈,Solana等人也存在類似的漏洞。
問:所有外部電話都危險嗎?不,但是應該謹慎對待外部呼叫。在更新臨界狀態變量之前製造時會出現危險。正確的編碼模式和保障措施可以減輕這種風險。
問:如何測試我的重新進入漏洞的合同?您可以使用靜態分析工具,例如Slither或Secrefify,執行手動代碼審核,並使用Brownie或Hardhat等框架模擬攻擊方案。使用重新進入警衛並遵循安全的開發實踐也有幫助。
問:Flash貸款攻擊與重新進入攻擊之間有什麼區別?儘管兩者都可以利用Defi協議,但Flash貸款攻擊依賴於借用大量資本而無需抵押並將其償還在同一交易中。重新入侵的重點是遞歸呼籲操縱合同狀態的職能。但是,有些攻擊結合了兩種技術,以增加影響。
免責聲明: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
相關知識
什麼是Bitcoin期貨合約乘數? BTC 頭寸規模解釋
2026-08-08 00:19:38
合約乘數定義及功能1. Bitcoin 期貨合約乘數決定每份合約在結算時以美元計價代表多少基礎 BTC。 2. 對於 CME 的標準 BTC 期貨,每份合約的乘數為 5 BTC ,這意味著每份合約追蹤 5 個 bitcoin 的價值。 3. 乘數在合約有效期間內保持固定,並作為保證金計算、損益計算和...
Doge幣期貨槓桿交易如何運作? DOGE合約指南
2026-08-07 23:40:05
期貨合約機制1. Doge幣期貨合約是在指定的未來日期以預定價格買賣固定數量的 DOGE 的標準化協議。這些工具在幣安期貨和 OKX 衍生性商品等受監管平台上進行交易。 2、每張合約代表100DOGE份,報價單位為USDT。最小訂單量為 1 份合約,價格變動單位設定為每 DOGE 0.0001 美元...
什麼是 XRP 期貨合約費率?如何降低 XRP 交易成本
2026-08-07 15:40:25
了解 XRP 期貨合約費率1. XRP期貨合約的費率由三個主要部分組成:吃單費、掛單費和資金費率。 2. 當訂單根據訂單簿上的現有流動性立即執行時,將收取接受者費用,通常為 0.04% 至 0.06%,具體取決於交易所和用戶的 VIP 等級。 3. 當訂單增加帳面流動性時,會收取掛單費用,並且通常會...
為什麼 Solana 期貨交易者使用高槓桿? SOL 合約風險解釋
2026-08-04 19:19:51
為什麼 Solana 期貨交易者青睞高槓桿1. Solana 的原生代幣 SOL 表現出明顯的日內波動,通常在單一交易時段內波動超過 8%,創造了頻繁的短期定向機會。 2. SOL 合約的平均永續資金費率在結構上仍低於 BTC 或 ETH 等價物,從而降低了長期持有槓桿頭寸的成本。 3. Raydi...
以太幣期貨全倉保證金如何保倉?
2026-08-07 16:00:08
以太坊期貨中的全倉保證金機制1. 全倉保證金使用整個錢包餘額(包括以 ETH 或穩定幣計價的所有可用資產)作為未平倉期貨頭寸的抵押品。 2. 當價格變動觸發追加保證金通知時,系統會從所有符合條件的餘額中提取資金,而不是隔離特定部位的資金。 3. 清算門檻根據所有持有代幣的即時資產淨值(而不僅僅是基礎...
什麼是Bitcoin永續合約保險基金? BTC期貨安全機制解釋
2026-08-08 01:00:31
定義及核心功能1. Bitcoin永續合約保險基金是加密貨幣交易所持有的儲備池,用來彌補抵押權不足部位強制平倉時所產生的損失。 2. 其運作獨立於用戶保證金餘額,並且完全透過強平頭寸的淨收益來提供資金——具體來說,是破產價格與強平訂單實際執行價格之間的差額。 3、基金不接受交易者的直接存款或匯兌收入...
什麼是Bitcoin期貨合約乘數? BTC 頭寸規模解釋
2026-08-08 00:19:38
合約乘數定義及功能1. Bitcoin 期貨合約乘數決定每份合約在結算時以美元計價代表多少基礎 BTC。 2. 對於 CME 的標準 BTC 期貨,每份合約的乘數為 5 BTC ,這意味著每份合約追蹤 5 個 bitcoin 的價值。 3. 乘數在合約有效期間內保持固定,並作為保證金計算、損益計算和...
Doge幣期貨槓桿交易如何運作? DOGE合約指南
2026-08-07 23:40:05
期貨合約機制1. Doge幣期貨合約是在指定的未來日期以預定價格買賣固定數量的 DOGE 的標準化協議。這些工具在幣安期貨和 OKX 衍生性商品等受監管平台上進行交易。 2、每張合約代表100DOGE份,報價單位為USDT。最小訂單量為 1 份合約,價格變動單位設定為每 DOGE 0.0001 美元...
什麼是 XRP 期貨合約費率?如何降低 XRP 交易成本
2026-08-07 15:40:25
了解 XRP 期貨合約費率1. XRP期貨合約的費率由三個主要部分組成:吃單費、掛單費和資金費率。 2. 當訂單根據訂單簿上的現有流動性立即執行時,將收取接受者費用,通常為 0.04% 至 0.06%,具體取決於交易所和用戶的 VIP 等級。 3. 當訂單增加帳面流動性時,會收取掛單費用,並且通常會...
為什麼 Solana 期貨交易者使用高槓桿? SOL 合約風險解釋
2026-08-04 19:19:51
為什麼 Solana 期貨交易者青睞高槓桿1. Solana 的原生代幣 SOL 表現出明顯的日內波動,通常在單一交易時段內波動超過 8%,創造了頻繁的短期定向機會。 2. SOL 合約的平均永續資金費率在結構上仍低於 BTC 或 ETH 等價物,從而降低了長期持有槓桿頭寸的成本。 3. Raydi...
以太幣期貨全倉保證金如何保倉?
2026-08-07 16:00:08
以太坊期貨中的全倉保證金機制1. 全倉保證金使用整個錢包餘額(包括以 ETH 或穩定幣計價的所有可用資產)作為未平倉期貨頭寸的抵押品。 2. 當價格變動觸發追加保證金通知時,系統會從所有符合條件的餘額中提取資金,而不是隔離特定部位的資金。 3. 清算門檻根據所有持有代幣的即時資產淨值(而不僅僅是基礎...
什麼是Bitcoin永續合約保險基金? BTC期貨安全機制解釋
2026-08-08 01:00:31
定義及核心功能1. Bitcoin永續合約保險基金是加密貨幣交易所持有的儲備池,用來彌補抵押權不足部位強制平倉時所產生的損失。 2. 其運作獨立於用戶保證金餘額,並且完全透過強平頭寸的淨收益來提供資金——具體來說,是破產價格與強平訂單實際執行價格之間的差額。 3、基金不接受交易者的直接存款或匯兌收入...
看所有文章














