Filecoin終極指南:工作原理概述、解析協議及可能的改進

Filecoin終極指南:工作原理概述、解析協議及可能的改進 | 火星號精選

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

原文作者:Vaibhav Saini

編譯:星際大陸

自2009年開始進行權力下放革命以來,出現了許多有前途的項目,並改變了我們在這個世界上的看法和生活方式。協議實驗室(Protocol Labs)就是這樣的項目之一,它催生了IPFS之類的項目。

Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选

IPFS缺乏激勵層,可以幫助其大規模採用,因此它的最終目標是取代HTTP。這就是Filecoin進入的地方。自發布以來,Filecoin在社區中引起了很多興趣。隨著2020年12月測試網絡的啟動,您可以探索很多東西。

Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选

網絡上有很多有關其技術和經濟的信息,既令人困惑又不知所措。因此,這裡我們合併了“一個來源”中的所有可用信息。如果您喜歡像Filecoin這樣的高科技Web3概念,並通過交互式教程簡單地進行了解釋,請前往此處。

Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选

首先,我們將討論文件幣的技術方面,然後在下一篇文章中討論其經濟方面。但是在深入研究核心技術之前,讓我們分析一下當今文件存儲市場的狀況。

當今文件存儲市場狀況

如今,Amazon S3成為互聯網上文件存儲的主力軍。原因有很多:

1.令人難以置信的便宜:每GB存儲 $ 0.023。每10,000個讀取請求0.04美分。

2.太快了

3.這是可靠的:嗯,它已經發生了幾次宕機,有效地使大部分互聯網離線。但仍具有 99.9%的正常運行時間。

4.它具有高度的可擴展性。

5.並且提供了很棒的開發經驗。它可以輕鬆地與其他Amazon服務套件集成以進行擴展(例如CloudFront)

在我們擁有如此出色的雲存儲服務的世界中,任何競爭都必須表現得比這更好,或者至少是同等水平。在小範圍內,分散式網絡無法正常運行。但是,如果它(IPFS)被大規模採用(比BitTorrent更高的採用率),則可能證明它是Internet的更好版本,因此將開啟全新的經濟。

技術概述

我們將其分為4個部分:1.Filecoin網絡工作原理概述?

2.對Filecoin協議的深入研究

3.其他問題(白皮書中未討論)

4.Filecoin協議的可能改進

01 Filecoin網絡工作原理概述

Filecoin中有3組用戶:客戶端,存儲礦工和檢索礦工。客戶付費存儲和檢索數據。他們可以從可用的服務提供商中進行選擇。如果他們想存儲私有數據,則需要在將其提交給提供者之前對其進行加密。

存儲礦工存儲客戶的數據以獲得獎勵。他們決定願意保留多少空間來存儲。在客戶和存儲礦工達成協議後,礦工有義務繼續提供其存儲數據的證據。每個人都可以查看證據,並確保存儲礦工可靠。

檢索礦工根據他們的要求提供客戶的數據。他們可以從客戶端或存儲礦工那裡獲取數據。檢索礦工和客戶使用小額支付來交換數據和硬幣:數據被分成幾部分,客戶每件支付少量硬幣。檢索礦工還可以充當存儲礦工。

最後,網絡代表了驗證客戶端和礦工行為的所有完整節點。這些節點對可用存儲進行計數,檢查存儲證明並修復數據故障。

本文中使用的一些術語:

片段:片段是客戶端存儲在分散存儲網絡中的數據的一部分。例如,可以將數據(可能是一個目錄)有意地分為許多部分,並且每個部分可以由一組不同的存儲礦工存儲。

扇區:扇區是Storage Miner提供給網絡的一些磁盤空間(可以認為是與特定存儲提供者的磁盤空間的特定部分相關聯的唯一ID)。礦工將客戶的物品存放在其所在的部門,併為其服務賺取代幣。為了存儲碎片,存儲礦工必須向網絡保證其扇區。

AllocTable:AllocTable是一種數據結構,可跟蹤零件及其分配的扇區。AllocTable在分類帳中的每個塊上都進行更新,其Merkle根存儲在最新的塊中。在實踐中,該表用於保留DSN的狀態,以便在驗證驗證期間快速查找。

訂單:訂單是請求或提供服務的意圖聲明。客戶向市場提交投標訂單以請求服務(分別是用於存儲數據的存儲市場和用於獲取數據的檢索市場),而礦工則提交請求訂單以提供服務。

訂單簿:訂單簿是訂單集。Filecoin為存儲市場和檢索市場維護單獨的訂單。

承諾:承諾是向網絡提供存儲(特別是扇區)的承諾。存儲礦工必須向賬本(文件幣區塊鏈)提交認捐才能開始在存儲市場中接受訂單。質押包括質押部門的規模和存儲礦工存放的抵押品。

Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选

用戶通過下訂單來分享他們的意圖。客戶提交投標訂單,指定要支付的價格。礦工提交要價單,並指定要收取的價格。當買入和賣出訂單匹配時,客戶和礦工都簽署交易訂單並將其提交給區塊鏈。出價和要價訂單共同構成了存儲市場(文件存儲市場)和檢索市場(文件檢索市場)。讓我們深入研究這些市場,看看它們如何運作。

存儲市場

它是由網絡運行的去中心化交易所,所有要價和投標都存儲在區塊鏈中,用於在Filecoin網絡上存儲數據。

客戶向存儲訂單簿提交一個投標訂單(使用PUT協議,在下一節中說明)。客戶必須存放訂單中指定的硬幣並指定他們要存儲的副本數量。客戶可以提交多個訂單,也可以在訂單中指定複製因子。更高的冗餘度(更高的複製因子)導致對存儲故障的更高容忍度(如下所述)。

存儲礦工通過通過Manage.PledgeSector在區塊鏈中通過質押交易存入抵押品來保證其對網絡的存儲。抵押品(文件貨幣)在提供服務的時間內存放,如果礦工為其承諾存儲的數據生成存儲憑證,則將其退還。如果某些存儲證明失敗,則會損失一定比例的抵押品。一旦質押交易出現在區塊鏈中,礦工就可以在存儲市場中提供其存儲:他們設置價格並將要價單添加到市場的訂單簿中。

Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选
Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选

所有存儲分配對網絡中的每個參與者都是公共的。在每個塊中,網絡都會檢查是否存在每個作業所需的證明,檢查它們是否有效,並採取相應的措施:1、如果缺少任何證據或證據無效,則網絡會通過利用存儲礦工的抵押品對他們進行懲罰,

2、如果大量證據缺失或無效(由系統參數Δfault定義),則網絡會認為Storage Miner有故障,將訂單結算為失敗,然後將同一塊的新訂單重新引入市場。

3、如果每個存儲該礦工的Storage Miner有故障,則該礦工將丟失,並且客戶將獲得退款。

檢索市場

這是一個脫鏈交換,客戶端和檢索礦工以對等方式彼此發現。一旦客戶和礦工就價格達成協議,他們便開始使用小額付款逐筆交換數據和硬幣。

讓我們看看它是如何工作的。

檢索礦工通過在網絡上散播他們的要價單來宣佈他們的作品:他們設置價格並將要價單添加到市場的訂單簿中。

Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选

加起來下圖顯示了網絡中發生的所有活動。

Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选Filecoin终极指南:工作原理概述、解析协议及可能的改进 | 火星号精选

02 對Filecoin協議的深入研究

Filecoin引入了分散存儲網絡(DSN)的概念。DSN是一種描述獨立客戶端和存儲提供程序的網絡的方案。DSN聚合由多個獨立存儲提供商提供的存儲,並進行自我協調以為客戶端提供數據存儲和數據檢索。協調是分散的,不需要受信任的各方:這些系統的安全操作是通過協議來實現的,這些協議可以協調和驗證各個方執行的操作。DSN可以採用不同的協調策略,包括拜占庭協議,八卦協議或CRDT,具體取決於系統的要求。DSN涉及三個功能的實現:put,get和manage。Put允許客戶端在唯一標識符下存儲數據。Get允許客戶端使用標識符檢索數據。管理編排網絡通過測量空間可供出租,審核供應商和修復可能的數據錯誤。管理協議通常由存儲提供商與客戶端或審核員網絡一起運行(這涉及拜占庭式故障,將在下面討論)。

DSN具有幾個屬性。前兩個是必需的。

1.數據完整性意味著客戶端始終會收到與存儲相同的數據,而存儲提供商無法說服客戶端獲取錯誤的數據。

2.可檢索性只是意味著客戶端將能夠隨著時間的推移檢索其數據。

DSN的可選屬性:

1.公開可驗證性允許網絡上的每個人在不知道數據本身的情況下驗證數據是否正在存儲。

2.可審核性允許驗證數據是否在正確的時間段內存儲。

3.激勵兼容旨在獎勵優秀的服務提供商並懲罰劣質的提供商。

4.實現機密性:希望將其數據私有存儲的客戶端,必須先加密其數據,然後才能將其提交給網絡。

容錯能力DSN可以容忍兩種可能的故障:

管理故障:這些故障是拜占庭式故障,由管理協議中的參與者(存儲提供者,客戶和審計員)引起。DSN方案依賴於其下劃線Manage協議的容錯能力。違反管理錯誤的容錯假設可能會損害系統的生命力和安全性。例如,考慮一個DSN方案,其中Manage協議要求使用拜占庭協議(因為節點可以對其進行審計)來審計存儲提供程序(如果它們正在根據協議條件存儲應存儲的所有數據)。在這樣的協議中,網絡從存儲提供商那裡接收存儲證明,並運行拜占庭協議(BA)同意這些證明的有效性。如果廣管局容忍不超過f如果故障總數達到n個,則我們的DSN可以容忍f

存儲錯誤:存儲錯誤是拜占庭式錯誤,它們阻止客戶端檢索數據:即存儲礦工丟失了碎片,檢索礦工停止提供碎片。成功的Put執行如果將其輸入數據存儲在 m個獨立的存儲提供程序中(總共 n個),並且可以容忍多達 f個拜占庭式提供程序,則允許執行(f,m)。參數 f和 m取決於協議的實現;協議設計者可以修復 f和 m或將選擇留給用戶,從而將Put(data)擴展為Put(data,f,m)。如果少於 f,則對存儲的數據執行Get執行成功。錯誤的存儲提供商。例如,考慮一個簡單的方案,其中將協議設計為使每個存儲提供程序都存儲所有數據。在該方案中,m = n並且f = m-1。總是f = m-1嗎?不可以,某些方案可以使用擦除編碼來設計,其中每個存儲提供商都存儲數據的特定部分,因此需要m個存儲提供商中的x個來檢索數據。在這種情況下,f = MX。

共識算法

Filecoin DSN協議可以在允許對Filecoin證明進行驗證的任何共識協議之上實施。工作量證明方案通常需要解決其解決方案不可重用或需要大量浪費計算才能找到的難題。

不可重用的工作:

大多數無許可的區塊鏈都要求礦工解決一個棘手的計算難題,例如反轉哈希函數。通常,這些難題的解決方案是無用的,除了保護網絡安全之外,沒有其他內在價值。一些以太坊(執行智能合約邏輯)和Primecoin(尋找新素數)等區塊鏈試圖利用一些計算能力來完成有用的工作。

浪費工作:解決難題,就機器和能源消耗而言,確實是非常昂貴的,尤其是如果這些難題僅依賴於計算能力的話。當挖掘算法令人尷尬地並行時,解決難題的主要因素是計算能力。

嘗試減少浪費:理想情況下,網絡的大部分資源應用於有用的工作。一些努力要求礦工使用更節能的解決方案。例如,Spacemint要求礦工專用於磁盤空間而不是計算。儘管這些磁盤具有更高的能源效率,但它們仍然被“浪費”,因為它們充滿了隨機數據。其他努力用傳統的基於股權證明的拜占庭協議來替代解決難題的方法,在該協議中,利益相關者按與系統中貨幣份額成比例的方式對下一個區塊進行投票。

因此,Filecoin礦工所做的工作不是浪費浪費的工作量證明計算,而是使他們能夠參加共識。

有用的工作:如果計算的結果對網絡有價值,而不僅僅是保護區塊鏈,那麼我們認為礦工在共識協議中所做的工作是有用的。

Filecoin提出了一個有用的工作共識協議,其中網絡選舉礦工創建新區塊的可能性(我們將其稱為礦工的投票權)與他們當前正在使用的存儲空間成正比網絡。Filecoin協議的設計使礦工寧願投資於存儲,也不願投資於計算能力以並行化挖掘計算。礦工提供存儲並重復使用計算,以證明存儲了數據以參與共識。

採礦能力建模

電源故障容限:在此技術報告中,電源故障容限是一種抽象形式,可以根據參與者對協議結果的影響來重新構造拜占庭式故障。每個參與者控制一些權力,其中 n是網絡中的總權力,而 f是有缺陷或敵對參與者所控制的權力的一部分。

Filecoin的功率:在Filecoin中,礦工 M在時間t的功率p是M的存儲分配的總和。影響我的中號是的分數中號的功率超過在網絡中的總功率。在Filecoin中,power具有以下屬性:

1.公用:網絡中當前正在使用的存儲總量是公用的。通過閱讀區塊鏈,任何人都可以計算每個礦工的存儲分配-因此任何人都可以在任何時間點計算每個礦工的電量和電量總量。

2.可公開驗證:對於每個存儲分配,要求礦工生成時空證明,以證明正在提供服務。通過閱讀區塊鏈,任何人都可以驗證礦工聲稱的權力是否正確。

3.變量:在任何時間點,礦工都可以通過承諾新扇區並填充該扇區來向網絡添加新存儲。通過這種方式,礦工可以隨著時間改變他們擁有的電量。

要詳細瞭解此功能如何在共識算法中發揮作用(在數學上),請參閱白皮書。

我們還需要一種機制來防止惡意礦工可以利用三種攻擊來獲取未提供的存儲的獎勵:Sybil攻擊,Outsourcing攻擊,Generation攻擊。

Sybil攻擊:通過創建多個Sybil身份,惡意礦工可以假裝存儲(並獲得報酬)比實際存儲的副本多,但只能存儲一次數據。

外包攻擊:惡意礦工可能依賴於從其他存儲提供商快速獲取數據,來承諾存儲比其實際存儲數量更多的數據。

生成攻擊:惡意礦工可能聲稱存儲了大量數據,而他們卻使用一個小程序按需高效地生成了這些數據。如果程序小於據稱存儲的數據,則這會增加惡意礦工贏得Filecoin塊獎勵的可能性,該可能性與礦工當前使用的存儲成比例。

存儲提供商必須說服他們的客戶,他們已經存儲了要付費存儲的數據。實際上,存儲提供商將生成存儲證明(PoS),以供區塊鏈網絡(或客戶端本身)驗證。

為了使存儲行為公開可驗證,Filecoin引入了兩種共識算法:複製證明(PoRep)和時空證明(PoSt)。

複製證明(PoRep)是一種新穎的存儲證明,它允許服務器(即證明者P)說服用戶(即驗證者V)某些數據D已複製到其自己的唯一專用物理存儲中。我們的方案是一個交互式協議,證明方P:(a)承諾存儲某些數據D的n個不同副本(物理上獨立的副本),然後(b)說服驗證者V,P確實存儲了每個副本通過質詢/響應協議。PoRep改進了PoR和PDP方案,防止了Sybil攻擊,外包攻擊和生成攻擊。時空證明:存儲證明方案使用戶可以在挑戰時檢查存儲提供商是否正在存儲外包數據。我們如何使用PoS方案來證明某些數據在一段時間內被存儲。這個問題的自然答案是要求用戶反覆(例如,每分鐘)向存儲提供商發送挑戰。但是,每次交互所需的通信複雜性可能成為Filecoin等系統的瓶頸,在該系統中,存儲提供商需要將其證明提交給區塊鏈網絡。

為了解決這個問題,我們引入了一個新的證明,即“時空證明”,驗證者可以在其中檢驗證明者是否在一段時間內存儲其外包數據。

1.直覺是要求證明者生成順序存儲證明(在我們的示例中是複製證明),作為確定時間的一種方式。

2.遞歸地組合執行以生成簡短證明。

Filecoin終極指南:工作原理概述、解析協議及可能的改進 | 火星號精選

證明者從驗證者那裡收到隨機質詢(c),並在指定的迭代次數t內使用證明的輸出作為另一個的輸入,依次生成複製證明。因此,確保完成的所有工作都是可重用的(如上所述)。PoSt&PoRep使用zk-SNARKS,使證明非常簡短且易於驗證。

智能合約

智能合約使Filecoin的用戶能夠編寫有狀態的程序,這些程序可以花費令牌,請求在市場中存儲/檢索數據以及驗證存儲證明。用戶可以通過將交易發送到分類賬中觸發合約中函數調用的交易來與智能合約進行交互。我們擴展了智能合約系統,以支持Filecoin特定的操作(例如,市場操作,證明驗證)。

Filecoin支持特定於數據存儲的合同,以及更通用的智能合同:

文件合同:我們允許用戶對他們提供或提供存儲服務的條件進行編程。有幾個值得一提的例子:(1)與礦工簽約:客戶可以在不參與市場的情況下預先指定提供服務的礦工;(2)付款策略:客戶可以為礦工設計不同的獎勵策略,例如合同可以隨著時間的推移,礦工的工資越來越高,另一個合同可以設定由受信任的Oracle告知的存儲價格;(3)票務服務:合同可以使礦工存放代幣並代表其用戶支付存儲/取回費用, (4)更復雜的操作:客戶端可以創建允許數據更新的合同。

智能合約:用戶可以將程序與其交易相關聯,就像在其他系統中(例如在以太坊中)一樣,它們不直接依賴於存儲的使用。我們預見到諸如分散式命名系統,資產跟蹤和眾籌平臺之類的應用程序。

跨鏈互動

橋樑是旨在連接不同區塊鏈的工具。在仍在進行中的同時,我們計劃支持跨鏈交互,以將Filecoin存儲引入其他基於區塊鏈的平臺,並將其他平臺的功能引入Filecoin。

其他平臺上的Filecoin:其他區塊鏈系統,例如比特幣,Zcash,尤其是以太坊和Tezos,允許開發人員編寫智能合約;但是,這些平臺提供的存儲功能非常少,而且成本很高。我們計劃提供一個橋樑,為這些平臺提供存儲和檢索支持。我們注意到IPFS已被多個智能合約(和協議令牌)使用,作為引用和分發內容的一種方式。添加對Filecoin的支持將使這些系統能夠保證存儲IPFS內容,以交換Filecoin令牌。

Filecoin中的其他平臺:我們計劃提供橋樑,以將其他區塊鏈服務與Filecoin連接。例如,與Zcash集成將允許支持發送請求以私密存儲數據。

03 其他一些問題

在這裡,我們列出了一些潛在的問題,這些問題在白皮書中沒有得到很好的討論。

檢索市場的可伸縮性:小額支付系統(檢索市場)在檢索協議上產生了很多開銷。為了達到與當今的集中式基礎架構相匹配的檢索速度,需要大量採用文件幣和IPFS,以創建密集狀態通道網絡。

審查制度(非法內容):正如我們過去在Napster和海盜灣看到的那樣,缺乏審查制度最終將導致網絡上的非法內容,有效地將暗網帶到了表面。可能的解決方案可能是基於AI的協議,這些協議會隨著時間的推移而學習,並自動檢測非法內容並採取必要的措施。但是為了使網絡成為民主的網絡,該協議需要由用戶自己來管理(從而引入拜占庭行為),以決定內容是否需要採取某些措施。 因此,總結審查制度對於不同的人而言是一個不同的問題,它需要一種更具個性化的方法,而不是一箇中央公開的方法。Filecoin的工作是為數據管理創建市場,而不是提出審查管理政策。因此,可以在文件幣的基礎上將此“個性化”審查層轉移到應用程序。

04 Filecoin協議的可能改進

在這裡,我們列出了Filecoin協議中的一些可能的改進。

Tahor-LAFS加密方案:在增加價值時,客戶端首先將其加密(使用對稱密鑰),然後將其分成可管理大小的段,然後對它們進行擦除編碼以實現冗餘。因此,例如,“ 2-of-3”擦除編碼意味著該段總共被分割為3個片段,但是其中的任意2個片段都足以重構原始片段(有關ZFEC的更多信息)。這些段然後成為共享,存儲在特定的存儲節點上。存儲節點是共享的數據存儲庫;用戶不依賴它們來保證數據的完整性或機密性。

Filecoin終極指南:工作原理概述、解析協議及可能的改進 | 火星號精選

最終,加密密鑰和一些有助於找到正確的存儲節點的信息將成為“功能字符串”的一部分(更多有關編碼過程的信息)。重要的一點是,功能字符串對於從Grid檢索值既是必需的又是足夠的—如果太多節點變得不可用(或脫機)並且您不能再檢索足夠的份額,則此操作將失敗。有寫功能,讀功能和驗證功能。可以離線使用一種“權威性較低”的功能。也就是說,具有寫功能的人可以將其轉變為讀功能(無需與服務器交互)。驗證能力可以確認值的存在和完整性,但不能解密內容。可以將可變值和不可變值都放入Grid中。自然,不可變的值根本沒有寫能力。

令人敬畏的IPFS是一個社區維護和更新的項目,工具列表,或幾乎任何與IPFS相關的東西,非常棒。要查看更多信息,或將您的信息添加到列表中,請訪問GitHub上的Awesome IPFS。

關於作者:Vaibhav Saini是TowardsBlockchain(麻省理工學院劍橋創新中心孵化的初創公司)的聯合創始人。他是高級區塊鏈開發人員,曾在以太坊,Quorum,EOS,Nano,哈希圖,IOTA等多個區塊鏈平臺上工作。


分享到:


相關文章: