IPFS生態日趨成熟,Filenet攜手Filecoin共同打造共享存儲新格局

不斷有圈內開發者公開表示要支持Filenet,甚至一度宣稱已放棄Filecoin。緣由不言自明,Filecoin白皮書發佈已有1年時間,直到8月5日才公開工做。至於何時能夠開始挖礦?對此,官方一直沒有正面回答,上線時間被不斷延期。
近日,咱們聯繫到Filenet中國社區開發者,爲咱們分析一下爲何Filecoin項目開發如此困難、難在哪裏,咱們從技術的角度,經過幾個關鍵問題的解讀,來闡述清楚這個問題。web

Filecoin的挖礦方式是怎樣?安全

答:Filecoin挖礦有三種方式:存儲挖礦、檢索挖礦、打包區塊挖礦。存儲挖礦是由存儲用戶付費,經過存儲市場競爭得到收益。檢索挖礦是由檢索用戶付費,經過檢索市場得到收益。服務器

打包區塊挖礦只能由存儲礦工參與,得到打包的機會與有效存儲的數據大小佔整個市場數據總量的權重成正比。網絡

這種新穎的挖礦方式將存儲和檢索分開計算,而且由存儲礦工來打包區塊,增大了存儲的價值。存儲礦工挖礦須要抵押代幣,而且作好存儲服務,提供複製證實(PoRep)和時空證實(PoSt),不然就會損失代幣。存儲挖礦須要專業,很負責任才能作好,而檢索挖礦則沒有什麼門檻,想挖就挖。架構

什麼是複製證實?怎麼去實現?併發

答:複製證實是指存儲礦工爲用戶存儲數據時,必須真實地存儲用戶指定的數據和指定的份數,而且向系統提供證實。複製證實會面對三種攻擊:女巫攻擊,外部數據源攻擊,生成攻擊。女巫攻擊指的是聲稱本身存儲了多份文件,實際上只存儲了一份。外部數據源攻擊指的是不實際存儲文件,當用戶須要時,從別的數據源得到數據再轉發給用戶。生成攻擊是指經過一小段程序生成一大段文件,慌稱存儲了一大段文件,當用戶須要時,經過這段程序生成還原一大段文件。例如「從一到萬」,只用四個字就能夠生成一個一萬字的數據。svg

至於複製證實怎麼去實現,Filecoin官網目前並無透露任何細節,官方公佈的全部材料和郵件都只是講概念。咱們只有綜合如今的一些技術,瞭解一下項目的難度。性能

所謂的複製證實,通俗點講,就跟背課文同樣。一篇課文怎樣纔算是背熟了呢?天然課文中隨便抽取一段,都能滾瓜爛熟。複製證實也是如此,除了存儲文件以外,還要存儲一下可供驗證的信息。若是礦工存儲了這些數據就會計算出正確的答案。固然,礦工也有可能碰巧蒙上,或者說記住答案。這就要求咱們驗證的題庫要足夠大,從中隨機選題,驗證次數也要足夠多,這樣礦工猜對的機率就幾乎等於零,而且記住答案的開銷遠大於存儲數據的開銷,這樣礦工就不會做弊,而是老老實實存儲文件。區塊鏈

複製證實難就難在須要額外的開銷,包括額外的存儲資源,額外的計算資源,消息確認的延遲等等。讓原本高效低成本著稱的IPFS網絡變得毫無價值,甚至比普通中心化機房或CDN服務器代價還大。設計

Filecoin的複製證實還要求按數據份數計算,也就是用戶須要多少份,就要存多少,這樣是有悖常理的。正常狀況應該是用戶只需付一份錢,至於爲了安全爲了穩定,系統應該作多少備份,應該是系統考慮的事情。這個額外的需求也會進一步消耗系統性能。

Filecoin複製證實還要求抵抗生成攻擊。事實上,實現這個目標很是困難。通常意義來說,生成攻擊不該該算做弊。對於一個存儲系統來說,提交的數據我存了,須要的時候我能給出完整的數據,這就足夠了。比方說帶數據壓縮的文件系統,自己數據存入的時候,由一個程序壓縮,實際上不須要原來那麼大的存儲空間,取數據時,再由另外一個程序將數據解壓縮,這種文件系統實際很常見,但Filecoin認爲他是做弊了,並且這種做弊方式Filecoin很難排除。這個矛盾其實是由Filecoin的系統設計致使的,因爲Filecoin打包區塊挖礦跟有效存儲的大小有關,而這個漏洞會致使,用戶將一些生成攻擊產生的無效數據上傳到IPFS網絡。這一漏洞雖然列出來了,可是實際上很難解決。

什麼是時空證實?實現困難在哪?

答:時空證實要求礦工按期向系統提供證實,代表這段時間數據一直安然無恙地存放,沒有被刪除。時空證實會按期上傳到區塊鏈上,即使當時不在線的質疑者也能夠根據區塊鏈中的內容得到時空證實,從而判斷礦工是否有忠實地幹活。

時空證實要求礦工按期將存儲證實發到區塊鏈網絡中,這一技術實現並不難,然而額外的開銷是很是明顯的。一個IPFS的數據分片爲256K,每一個數據分片,在每一個證實週期(n個區塊週期間隔),會上傳一個時空證實。若是系統性能高,區塊產生速度快,時空證實產生的區塊間隔不是很大(太大會影響用戶結算時間),這裏產生的數據是很是大的。很快就會超過數據自己,而且不斷增加。同時,其餘礦工驗證這些數據的計算量更是驚人的。

Filecoin區塊鏈如何搭建?效率如何?

答:Filecoin區塊鏈基本上是按照時空證實的鏈條搭建,由於時空證實中包含每一個節點存放的每一個分片存儲多長時間的證實。這一信息足以計算出每一個節點有效存儲在全網絡中的比重有關,根據此機率選取節點得到打包收益。記帳、轉帳都是在這個基礎上來作。

Filecoin區塊鏈最困難的地方也在於此,因爲Filecoin區塊鏈跟實際存儲的數據大小有關,而這一信息更新很頻繁,而且記錄在整個去中心化網絡之中。實時收集這些數據,統計出全局的數據,同時還要驗證證實是否有效,這就在挑戰系統的極限了。同時,還要防止惡意攻擊和一些不誠信的行爲,安全方面的設計也是必不可少,這更是增長了系統的負擔。

目前區塊鏈轉帳都要求很高的TPS(每秒交易數),好一點的區塊鏈項目都能作到每秒上百萬。而Filecoin又跟存儲檢索相關,存儲跟檢索都須要支付代幣,而存儲檢索都沒法容忍延遲。一旦TPS起來了,併發用戶多了,帶來的數據處理量增長很是明顯,系統效率又降了。這是一個矛盾,按照如今Filecoin架構永遠沒法消除。試想一想,若是一套存儲系統給你,須要付費才能玩,而付費了還須要等待幾十分鐘才能確認收到,提供正常的服務,這樣的系統誰會接受。

最後:Filenet與Filecoin同做爲IPFS的激勵層,也都選擇了共享存儲的賽道,但很明顯,Filecoin落地有着自然的障礙。同比之下,Filenet發展得更爲迅速,也有更多的人正在向Filenet靠攏,而且已高舉Filenet的大旗向IPFS邁進!