Raft Finance被盜360萬美元,DeFi漏洞的數學難題
BlockBeats 律動財經 2023-11-19 18:30
DeFi 建設者們面臨數學難題——如果他們在智能合約中使用的逼近法不防範漏洞,駭客就能從他們的協議中竊取資金。
上周,駭客從穩定幣協議 Raft Finance 中竊取了 360 萬美元。駭客利用閃電貸發動了一次攻擊,其原理是利用了 Raft 智能合約中的精度損失漏洞。這類漏洞是由於數字逼近時產生的捨入錯誤導致的,使得駭客能夠獲得額外的市佔率代幣。
儘管 Raft 經歷了 Trail of Bits 和 Hats Finance 等公司的多次審計,但這個漏洞沒有被修補。
Raft Finance 的被黑事件只是一系列 DeFi 盜竊行為中的最新一例,攻擊者針對的是精度損失漏洞。像 Balancer 和 Onyx 這樣的 DeFi 協議也曾受到過此類攻擊。實際上,像 Onyx 一樣,DeFi 借貸協議 Compound 的分叉版本也被發現在其代碼中包含了捨入錯誤,這些錯誤被利用,就像 Hundred Finance 和 Midas Capital 的情況一樣。
逼近法或說捨入是使用一個接近但與原始數字的真實值不完全相同的數字,其可能導致捨入誤差和精度喪失,尤其是在執行大量數學計算的複雜 DeFi 協議中。
「我確實認為 DeFi 在整數捨入方面面臨着數學挑戰,」智能合約開發者兼安全研究員泰勒·韋伯告訴 DL News。
在逼近法造成的誤差數量不多時並不是問題,但當誤差不斷累積到足夠大的程度時,駭客就會像他們在無數次攻擊中所做的那樣利用這些誤差值。
「一些 DeFi 應用的高度動態和創新行為可能使攻擊者將精度損失放大到相當大的程度,」匿名的加密審計公司 Trust Security 負責人 Trust 告訴 DL News。
「閃電貸機制與高流動性 AMM 的結合使得駭客能夠大規模利用理論上的『價值喪失』問題,」Trust 補充道。
難以檢測
在加密領域,捨入錯誤和精度喪失是普遍存在的,而這背後有幾個原因。
主要原因是支持加密的計算邏輯與分數不太兼容。
「EVM 幾乎與其他任何計算架構類似,即不支持以分數形式進行計算,因此必然會損失精度,」Trust 說。
與此同時,代幣的小數點位數各不相同。例如,USDC 有六位小數,而 DAI 有 18 位。在進行兩種代幣交換的交易池中,必須設計某種形式的精度縮放以考慮不同的小數點位數。精度縮放涉及調整次要資產的小數點位數以匹配主要資產的小數點位數。
此外,與其他算術問題一樣,捨入錯誤,是智能合約審計員極難檢測到的。實際上,這些漏洞在審計過程中經常被忽略,導致即使經過了大量審計的協議仍然會成為駭客利用此漏洞的受害者。
「一種文化的改變」
Raft Finance 的駭客事件引發了對認真對待捨入錯誤的討論。
「我認為問題並不在於我們受到 EVM 的整數限制,而是在於開發人員和審計員如何處理捨入錯誤類的漏洞,」Webb 說。
Webb 呼籲進行「文化改變」,希望 DeFi 的建設者和審計員能像對待遞歸調用漏洞一樣,對待捨入錯誤。
智能合約審計員 Joe Dakwa 告訴 DL News,健全的單元測試和模糊測試應成為標準最佳實踐。模糊測試是一種可以在智能合約上進行的測試,其中將隨機數據輸入到代碼中,以查看是否出現問題。
安全專家表示,類似於模糊測試的不變性測試也應被添加到測試組合中。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 從零開始學合約系列講座熱烈報名中
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇