原力研究 | 灰度、“雙花”、減產(chǎn)讓Filecoin火了一把(上)

本文由IPFS原力區(qū)原作
Filecoin最近利好頻出,主要包括三件事:灰度公司3月17日正式宣布推出FIL信托產(chǎn)品、Filecoin“雙花”鬧劇以及SAFT六月公募到期。對此,我們一一展開分析。
一、Filecoin“雙花”鬧劇
那么這次Filecoin“雙花”事件到底是如何?前因后果又是如何?我們先回顧一下事情發(fā)生經(jīng)過。


要完整了解本次“雙花”事件,我們要先知道什么是雙花攻擊。
何為雙花攻擊?
雙花,即雙重支付,指的是在數(shù)字資產(chǎn)體系里,由于數(shù)據(jù)的可復制性,使得系統(tǒng)可能存在同一筆數(shù)字資產(chǎn)因不當操作被重復使用的情況。簡而言之,一筆數(shù)字資產(chǎn)重復支付,一筆錢被花掉兩次或多次,如支付寶錢包(綁定的銀行卡)里有100塊錢,消費了100元,結(jié)果支付寶出了bug,這一筆錢并沒有被銀行同步,還留在銀行卡里,于是我們又能拿著100塊錢去繼續(xù)消費,這就屬于雙花問題。
雙花會導致“通貨膨脹”,使加密資產(chǎn)被貶值,一般該情況出現(xiàn)在中心化交易所較多。
以區(qū)塊鏈的加密資產(chǎn)為例:2018年5月,某黑客針對 Bitcoin Gold 密幣交易所的基礎(chǔ)設(shè)施發(fā)動了多次“雙花”攻擊,并設(shè)法攫取了價值1800萬美元的 BTG,直接導致整個屬于BTG的市場需要再消化這1800萬美元的 BTG,間接會使BTG單價貶值。
為了更好的回顧這次Filecoin,我們需要了解主流的雙花攻擊類型:51%攻擊和競賽攻擊。
51%攻擊:攻擊者通過控制超過50%的哈希算力,這使他們可以刪除或修改交易的順序。從而實現(xiàn)多次發(fā)送交易,該情形在比特幣網(wǎng)絡(luò)上目前難以實現(xiàn),難以符合經(jīng)濟收益。
例如:我們支付寶的銀行卡只有100元,我們對外已經(jīng)消費了100元,然后通過控制銀行主腦來刪除該記錄(可理解為51%的控制算力修改),然后銀行沒有我的交易記錄,但實際上支付寶已經(jīng)使用了該100元,所以我的銀行卡仍然還有100元,故可以繼續(xù)消費。
BTG雙花攻擊就是51%攻擊的類型,主要是因為算力規(guī)模較小,當時黑客只需支付3400美元皆可順利完成攻擊。
競賽攻擊:使用相同的資金連續(xù)廣播(相同Nonce值)兩個沖突的交易,但只有一項高Gas費的交易得到確認。攻擊者的目標是通過驗證對他有利的交易來使另一個支付無效,如此以來相同的資金發(fā)送到他控制的地址。
例如:A向B轉(zhuǎn)賬100元(一般Gas費),同時也使用一樣的Nonce值發(fā)送另外一筆向B轉(zhuǎn)賬100元(高Gas費)。在區(qū)塊鏈世界,同一Nonce值只能確認一筆交易,因為第二筆Gas費更高會很順利轉(zhuǎn)賬給B 100元,而第一筆因為第二筆的成果而認定為失敗,所以會返還給A 100元,這樣以來,A和B各有兩個100元。
本次鬧劇不存在“雙花”攻擊
而這次Filecoin“雙花”事件就是在混淆概念,這次不可歸咎為競賽攻擊,而是一場人為的操作失誤。
從結(jié)果上看,以Filscan.io瀏覽器為例,該筆交易只有一筆轉(zhuǎn)賬成功。

61200枚FIL轉(zhuǎn)賬記錄,來源:Filscan.io,2021-3
以官方解釋說到,“l(fā)otus團隊所知問題源自于有兩條消息有相同的發(fā)送者/收到者詳細信息、相同的Nonce但擁有不同的Gas參數(shù)——被包含在同一Tipset中。像這樣兩個類似的消息是非常常見的,比如以改變與消息的Gas費來替代消息就會形成這樣兩條類似的消息。這樣的情況會由Filecoin網(wǎng)絡(luò)安全、正確地處理,不會導致兩次轉(zhuǎn)賬:兩條消息中的一條會被執(zhí)行,另一條被忽略”。
官方解釋意思是,F(xiàn)ilecoin主鏈之前就已經(jīng)針對競賽攻擊(相同Nonce)針對做好正確的處理交易,并不會因為高Gas費的替代行為而出現(xiàn)雙花現(xiàn)象,所以這塊印證了Filscan.io的數(shù)據(jù)準確。
那么該場鬧劇是如何引起?
官方很好歸納:“錯誤使用API。然而,根據(jù)人們對鏈的檢查方式,這會呈現(xiàn)出消息被處理了兩次的樣子。具體來說,有關(guān)交易所使用了一種錯誤的處理鏈狀態(tài)的方式——在tipset的每個塊上調(diào)用ChainGetBlockMessages,然后在這些消息上調(diào)用StateGetReceipt”。
因為交易所調(diào)用錯了API接口,導致呈現(xiàn)出雙花現(xiàn)象(實際并不是),該現(xiàn)象不是Filecoin網(wǎng)絡(luò)本身的bug,而是方法上錯誤,同時官方指出應該以ChainGetParentMessages和ChainGetParentReceipts來記賬。
同時交易所應以鏈上的真實數(shù)據(jù)源記賬,假若以某瀏覽器作為數(shù)據(jù)源,一旦其惡意修改數(shù)據(jù),也會導致“中心化的惡意”雙花攻擊行為。
總的來說,該場鬧劇總的來說是交易所的操作不當,從而使有心之人有意而為之。那么回過頭來,掀起了一場無需有的波浪,那么這次誰“雙花”了誰?
下篇,我們會繼續(xù)分析灰度加倉FIL信托事件以及Filecoin SAFT六月公募到期。
PS:本篇文章僅做研究分析,不做投資建議。
/End.


