搜搜币回顾 | Filecoin「双花交易」始末

據Filfox和FileStar的Filecoin礦工稱,幣安週三處理了一筆價值數百萬美元的Filecoin存款。這並不是一個真實的鏈上雙花交易,但由於filecoin的遠程調用(RPC)代碼的一個嚴重錯誤,幣安在一次存款後兩次將錢存入礦工的filecoin賬戶。

當相同的資金在區塊鏈上交易兩次時,就會發生“雙花交易”。比特幣的工作量證明算法的設計就是為了讓這種情況幾乎不可能發生。但似乎Filecoin的RPC代碼,一個由協議實驗室構建的分佈式存儲區塊鏈項目,有一個缺陷,用戶可以騙過交易所接受存款兩次。

(搜搜幣注:「雙花」(double spending),即雙重支付,指的是在數字貨幣系統中,由於數據的可複制性,使得系統可能存在同一筆數字資產因不當操作被重複使用的情況。)

RPC通道是交易所驗證存款合法性的信息通道。他們不直接核實。相反,他們通過該頻道發送消息說道,“這筆交易是否有進行存款”,然後從從FileCoin的軟件得到回應說,“是或不是”,比特幣開發者達斯汀·德特默(Dustin Dettmer )通過信息和CoinDesk解釋。

然後,他補充說,Filecoin開發人員提供給交易所的驗證存款的過程中有一個嚴重缺陷——允許用戶重複存入相同的代幣。

Dettmer說:“這讓黑客可以寫一張支票,但可以把它重新存入任意次數,就像孩子們在遊樂場裡用一枚硬幣把繩子綁在25美分硬幣上永遠玩一樣” “但這里後果更加嚴重,無限量的真實資金可能會被盜走。”

這一次的不是真正的「鏈上雙花」,因為該錯誤並未導致真正的雙重交易。

Filecoin 的RBF漏洞

週三,Filfox和FileStar礦工偶然發現了該漏洞。由於給交易所的6.1萬筆FIL交易(價值約460萬美元)耗時太長,該團隊用費用替代法(RBF)交易提高了費用,以加快交易速度。

當用戶廣播新交易以替換較舊的未確認交易並向其附加更高的採礦費時,便發生了逐費替換交易,目的是加快其確認速度。

但是,該RBF交易導致存款兩次出現在其Binance帳戶中,有效地將61,000 FIL變成了120,000 FIL。問題是第二個61k FIL從未真正進入Binance的錢包,Binance被誘騙兩次記入存款,原因是Filecoin的RPC代碼存在漏洞。該團隊立即向Binance和協議實驗室發出了警報。

從本質上講,該錯誤意味著Binance看到了這兩筆交易,忽略了它們之間的衝突並接受了這兩筆交易(對於收費用替代法的交易,通常第二種收費更高的交易被認為是有效的,而第一個交易被拒絕)。

該團隊說,每個與Filecoin交易對進行交易的交易所都使用相同的“ StateGetReceipt” RPC代碼來處理存款,所以理論上這個漏洞在任何交易所都是能被利用的。

“協議實驗室建議交換從RPC StateGetReceipt獲取消息收據,這有一個嚴重的錯誤。當有兩個消息具有相同的發件人和相同的鏈上隨機數時(這意味著雙花),StateGetReceipt會為兩個消息返回相同的結果,一個Filecoin開發人員在他們的通信中告訴挖礦公司。

礦工表示,Filecoin在幣安(Binance)、火幣(Huobi)和其他銀行的充值已被暫停。 CoinDesk已經聯繫了交易所Binance、Huobi和OKEx來驗證這些說法,但尚未收到回复。

Filecoin開發人員已經打開了一個GitHub問題來修復這個bug。在與CoinDesk的通信中,他們否認該缺陷是由RPC錯誤造成的,而是聲稱它源於Binance 的一個錯誤。

Filecoin 官方推特回應道:Lotus 團隊從交易所收到了一份報告,該報告涉及不正確地使用Lotus API 來判斷Filecoin 網絡中的傳輸/ 存款。團隊進行了調查,發現沒有網絡問題或API 錯誤。他們正在與相關交易所進行合作,以確保正確使用這些API。

搜搜币回顾 | Filecoin「双花交易」始末

今日凌晨,協議實驗室官方表示,經Filecoin 開發團隊確認,Filecoin 沒有雙花問題。根據鏈上狀態確認,用戶反饋存在雙花問題的第二條交易顯示「N/A」,並未成功。可能是由於飛狐瀏覽器Filfox 前端造成了誤會,使得某些用戶認為在交易所充值Filecoin 過程中有雙花可能。

當日,FIL因“雙花事件”影響下跌超5%。