Filecoin的終極指南:深挖Filecoin白皮書

買賣虛擬貨幣
前言:按照計劃Filecoin將於12月11日測試網上線,而在2020年3月主網上線。作為去中心化儲存的專案,Filecoin透過構建儲存和檢索市場,類似於儲存市場的去中心化的Airbnb,它能對中心化的儲存市場帶來衝擊和顛覆嗎?從技術上,它到底是什麼?如何來解讀?本文作者“Vasa”,由“藍狐筆記”社群的“SIEN”翻譯。自2009年開啟去中心化的革新以來,湧現了很多有前途的專案,並且改變我們看待世界的看法和生活方式。其中之一是Protocol Labs,它催生了讓人驚歎的專案如IPFS。IPFS缺少可以幫助其實現大規模採用的激勵層,它的最終極目標是取代HTTP。這就是Filecoin的來歷。自發布以來,Filecoin在社羣中贏得了很多關注。但由於它的代幣經濟(眾籌和投資策略),它失去了不少支持者。顯然,有些人似乎對它的計劃不滿。網路上有很多關於它的技術和代幣經濟的資訊,有些讓人困惑且不知所措。這裡我們將在一個地方解決問題,告訴你什麼是Filecoin。所以,現在繫好安全帶,然後來一杯咖啡,這會是個很長的歷程。在我們深入分析其核心技術之前,我們先分析下當前檔案儲存市場的狀況。
檔案儲存市場現狀如今,Amazon S3是網際網路上檔案儲存的巨頭。原因有很多:· 非常便宜:每GB儲存0.023美元,每10,000次讀取請求0.04美分;· 非常快· 可靠:確實,它發生過幾次大的宕機,並導致網際網路的很大部分離線。但它仍然有99.9%的正常執行時間。· 高度可擴充套件
提供很棒的開發者體驗。它可輕鬆地與其他Amazon服務套件整合,以實現擴充套件(例如CloudFront)這個世界上,我們已經擁有了如此出色的雲端儲存服務,任何競爭者都必須有更優秀的服務,或者至少達到同等的水平。就小規模的情況而言,去中心化網路做得不出色。但是,如果IPFS被大規模採用(比BitTorrent有更大規模的採用),那麼,這可能會被證明是更好的網際網路版本,而且還將開啟全新的經濟。技術概述有四個部分:· Filecoin網路如何運作?
· Filecoin協議的深入研究· 其他問題(白皮書上未涉及的)· Filecoin協議的可能改進Filecoin網路如何運作?在Filecoin中有3組使用者:客戶、儲存礦工以及檢索礦工。客戶為儲存和檢索資料的服務付費。他們可以從可用的服務提供商中進行選擇。如果他們想儲存隱私資料,他們需要先對其進行加密,然後再提交給服務提供商。
儲存礦工儲存客戶的資料以獲得獎勵。他們自行決定為儲存提供多少空間。在客戶和儲存礦工達成協議之後,礦工有義務持續提供其儲存資料的證明。每個人都可以檢視該證明,並確儲存儲礦工是可靠的。檢索礦工根據客戶的請求給他們提供資料。他們可以從客戶或儲存礦工那裡獲取資料。檢索礦工和客戶使用小額支付來交換資料和代幣:資料被切分成碎片,客戶為每個碎片支付少量代幣。檢索礦工也可以同時充當儲存礦工。最後,網路代表了驗證客戶和礦工行為的所有完整節點。這些節點對可用儲存進行計數、檢查儲存證明、以及修復資料錯誤。本文中的一些術語:碎片:碎片是指客戶儲存在去中心化儲存網路中的資料的一部分。例如,可以將資料(可能是一張貓的圖片)有意地切分成許多碎片,且每個碎片可以被儲存進入不同的儲存礦工中。扇區:扇區是儲存礦工向網路提供的一些磁碟空間(可以認為是唯一ID,它跟特定儲存礦工的磁碟空間的特定部分相關聯)。礦工在他們的扇區中儲存客戶的資料碎片,併為其服務賺取代幣。為了儲存碎片,儲存礦工必須向網路保證其扇區。
分配表:分配表是一種資料結構,它持續跟蹤碎片及其分配的扇區。分配表在分類賬上的每個區塊都會更新,其Merkle root會儲存在最新的區塊中。在實踐中,分配表用於保持DSN的狀態,以便於在驗證證明時快速查詢。訂單:訂單是請求或提供服務的宣告。客戶向市場提交買盤訂單以請求服務(其中包括在儲存市場請求資料儲存,在檢索市場請求資料檢索),礦工則提交賣盤訂單以提供服務。訂單簿:訂單簿是訂單集。Filecoin為儲存市場和檢索市場維持單獨的訂單。保證:保證是向網路提供儲存(尤其是扇區)的承諾。儲存礦工必須向賬本(filecoin區塊鏈)提交他們的保證,以在儲存市場中接受訂單。保證包括包括扇區大小的保證以及其存入的質押代幣。

使用者透過下訂單來表達其意向。客戶提交買盤訂單,並指定其想支付的價格。礦工提交賣盤訂單,並指定其想收取的價格。當買盤和賣盤訂單匹配,客戶和礦工雙方簽署交易訂單協議並將其提交至區塊鏈。

買盤和賣盤訂單一起形成儲存市場(檔案儲存的市場)和檢索市場(檔案檢索的市場)。我們可以深入研究這些市場,看看它們如何運作。

儲存市場

它是由網路執行的去中心化交易所,其中所有的賣盤和買盤都存在區塊鏈上,用於在Filecoin網路上儲存資料。

客戶使用PUT協議向儲存訂單簿提交買盤訂單。客戶必須在指定的訂單中存入代幣,並指定他們想要儲存的複製數量。客戶可以提交多個訂單,也可以在一個訂單中指定複製數量。更高的冗餘度(藍狐筆記注:此處指更多的複製數量)能產生更高的儲存故障的容錯性。

儲存礦工透過存入質押代幣向網路保證其儲存,其保證透過Manage.PledgeSector在區塊鏈中進行保證交易。質押代幣會在儲存礦工願意提供服務的期間記憶體入質押,如果礦工生成他們所承諾的資料儲存證明,代幣會被返回。

如果某些儲存證明失敗,儲存礦工則會損失與之成比例的抵押代幣。

一旦保證交易出現在區塊鏈上(因此在分配表中),礦工便可以在儲存市場中提供其儲存:他們設定價格並透過Put.AddOrders向市場訂單簿提交賣盤訂單。

當賣單和買單匹配(透過Put.MatchOrders),客戶將資料碎片發給礦工。

當接收到碎片,礦工執行Put.ReceivePiece。接收到資料之後,礦工和客戶都簽署交易訂單並將其提交到區塊鏈上(在儲存市場訂單簿)。

儲存礦工的儲存被劃分為多個扇區,每個扇區包含分配給礦工的碎片。網路透過分配表持續跟蹤每個儲存礦工的扇區。此時(當交易訂單協議簽署),網路將資料分配給礦工,並在分配表上留下一條記錄。

當儲存礦工扇區充滿,該扇區密封。密封是緩慢和有序操作,它將扇區中的資料轉換為副本,該副本是跟儲存礦工的公鑰相關聯的資料的唯一物理副本。在複製證明(Proof-of-Replication)期間,密封是必要的操作。

當為儲存礦工分配資料時,他們必須重複生成複製證明以確保他們在儲存資料。證明會發布到區塊鏈上,並由網路對其進行驗證。

所有儲存分配對網路中的所有參與者公開。每個區塊,網路會檢查對每個分配任務所要求的證明是否存在,檢查它們是否有效,並採取對應措施:

· 如果任何證明缺失或無效,網路會拿走礦工的部分抵押代幣,以示懲罰;

· 如果大量的證明缺失或無效(由系統引數Δfault定義),網路會認為儲存礦工有故障,將訂單結算為失敗,然後重新將資料碎片作為新訂單引入市場;

· 如果每個儲存礦工儲存該碎片都有故障,則該碎片會丟失,客戶會收到退款。

檢索市場

這是鏈外的點對點交易市場,客戶和檢索礦工相互發現彼此。一旦客戶和礦工同意價格,他們便開始透過小額支付逐筆交易資料和代幣。

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

檢索礦工透過他們在網路中釋出其賣盤訂單來宣告服務:他們設定價格,並向市場的訂單簿新增賣盤訂單。

一旦訂單匹配,檢索礦工向客戶傳送碎片(礦工傳送部分資料,而客戶傳送部分支付代幣,根據碎片進行)。當碎片收到,礦工和客戶會簽署協議訂單,並提交到區塊鏈上。

總結

下圖顯示發生在網路上的所有活動

對Filecoin協議的深入研究

Filecoin引入去中心化儲存網路(DSN)的概念。DSN是一種描述獨立客戶和儲存提供商網路的方案。DSN聚合由多個獨立儲存提供商提供的儲存,並進行自我協調,以為客戶提供資料儲存和資料檢索的服務。

協調是去中心化的,且不需要可信的第三方:這些系統的安全操作是透過協議達成的,這些協議可以協調和驗證各方參與者的操作。(藍狐筆記注:跟Airbnb透過中心化公司的排程不同,它是無需信任第三方的)

DSN可以根據系統要求採用不同的策略進行協調,包括拜占庭協議、八卦協議、或CRDT。

DSN涉及3個功能的實現:存入、獲取和管理。“存入”允許客戶在唯一識別符號下儲存資料。“獲取”允許客戶使用唯一識別符號檢索資料。“管理”是對去中心化儲存市場網路的管理,它測量可供出租的空間、稽覈儲存提供商、以及修復可能的資料故障。管理協議通常由儲存提供商和客戶或網路的稽覈者一起執行。

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

· 資料完整性意味著客戶總是可以收到其存入的相同資料,而儲存提供商如果提供錯誤資料,則無法讓客戶放心。
· 可檢索性則意味著客戶可以隨時間推移檢索其資料。

DSN的其他屬性:

公開可驗證性,它則允許網路中的任何人在無需知道資料的情況下驗證資料是否被儲存。
可稽覈性,它允許驗證資料是否在正確的時間段內被儲存。
激勵相容,它旨在獎勵好的服務提供商,懲罰差的提供商。
實現機密性:它希望對其資料進行私密儲存的客戶在其提交到網路之前必須加密其資料。

容錯能力

DSN應該對兩種型別的可能錯誤進行容錯:

· 管理容錯

這是在管理協議中由參與者(儲存提供商,客戶&稽覈員)導致的拜占庭容錯。DSN機制依賴於它管理協議的容錯。違反管理錯誤的容錯假設可能會損害系統的活性和安全。

例如,考慮一下DSB機制,其中的管理協議要求拜占庭協議(由於節點可以向稽覈者謊報)來稽覈儲存提供商(如果他們根據約定的條件儲存應存的所有資料)。

在這樣的協議中,網路從儲存提供商那裡收取儲存證明,並執行拜占庭協議來驗證這些證明的有效性。如果拜占庭協議在總共n個節點中最多可以容忍f個錯誤,那麼,我們的DSN可以容忍f< n/2個錯誤節點。在違反這些假設的情況下,稽覈就會受到影響,從而導致系統變得無用。

· 儲存容錯

儲存容錯也是拜占庭容錯,它們會阻止客戶檢索資料:即是說,儲存礦工丟失了資料碎片,檢索礦工停止提供服務。如果將其“存入”資料儲存在m個獨立的儲存提供商(總共n個),且它能容錯最多f個拜占庭提供商,那麼,成功的“存入”執行是(f,m)-容錯。引數f和m取決於協議的實現;協議設計者可以修復f和m或者讓使用者作出選擇,而將Put(data)擴充套件為Put(data,f,m)。

如果錯誤的儲存提供商少於f個,則對儲存資料的“獲取”執行成功。例如,考慮下簡單的方案,其中,將“存入”協議設計為每個儲存提供商都儲存所有資料。在這個方案中,m=n,且f=m-1。

那麼,總是會f=m-1嗎?不是的。一些方案可以設計為使用糾刪碼,其中每個儲存提供商儲存特定部分的資料,這樣在總共m個儲存提供商中需要x個來檢索資料;在這種情況下,f=m-x。

共識演算法

Filecoin的DSN協議可以在任何共識協議基礎上執行,它允許驗證Filecoin的證明。工作量證明機制通常需要解決謎題,它的答案無法重用或要求耗費大量計算來尋找。(藍狐筆記注:也就是無記憶性,每次都重新開始)

· 不可重用的工作

大多數無須許可的區塊鏈要求礦工解決棘手的計算謎題,例如逆向雜湊函式。通常,這些難題的答案都是毫無用處的,且沒有其他內在價值,除了為網路提供安全之外。一些區塊鏈,例如以太坊(執行智慧合約邏輯)和Primecoin(尋找新質數)試圖使用部分算力來完成有用的工作。

· 浪費的工作

解決謎題可能在機器和能源消耗成本方面非常昂貴,尤其是,如果這些謎題僅僅依賴於算力。當挖礦演算法令人尷尬地並行時,解決謎題的主要因素是計算能力。

· 嘗試減少浪費

理想情況下,網路的大部分資源應該花費在有用的工作上。一些努力也在嘗試要求礦工使用更加節能的解決方案。例如,Spacemint要求礦工用專用的磁碟空間而不是計算。儘管更加節能,這些磁碟依然是“浪費”的,因為它們充滿的是隨機的資料。

其他努力還包括使用基於PoS的傳統拜占庭協議來替代解決謎題的方法。其中,代幣質押的利益相關者在系統中根據其成比例的代幣佔比進行下一個區塊的投票。

Filecoin礦工的工作,不是進行浪費的PoW證明計算,他們生成PoST(Proof-of-Spacetime),以參與共識。

· 有用的工作

我們認為,如果除保護區塊鏈的安全之外,計算結果也對網路有價值,那麼,在共識協議中礦工做的工作是有用的。

Filecoin提出一種有用的工作共識協議,其中網路選舉礦工生成新區塊的概率跟他們當前在網路中的儲存空間比例成正比。Filecoin協議的設計使得礦工寧願投資於儲存,而不是投資平行挖礦的算力。礦工提供儲存,並重用計算,以證明資料正被儲存,以參與共識。

建模挖礦能力

· 權力故障容錯

權力故障容錯是一種抽象形式,它根據參與者對協議結果的影響力來重構拜占庭容錯。

每個參與者控制一些權力,其中n是網路中的總權力,f是部分權力,由錯誤方或惡意行為者控制。

· Filecoin中的權力

在Filecoin中,礦工M在時間t的權力p是M的儲存分配的總和。M的影響力I是M的權力佔整個網路全部權力的比例。在Filecoin中,權力具有如下屬性:

· 公開

網路中當前在用的儲存總量是公開的。透過讀取區塊鏈,任何人都能計算每個礦工的儲存分配,因此,任何人都可以在任何時間點計算每個礦工的權力和網路中的總權力。(藍狐筆記注:這裡的權力,類似於其網路中的影響力,能直接用於選舉生成區塊的礦工。)

· 可公開驗證

對於每個儲存分配,礦工要求生成PoST時空證明(Proof-of-Spacetime),證明其正在提供的服務。透過讀取區塊鏈,任何人都可以驗證一個礦工聲稱的權力是否正確。

· 變數

在任何時間點,透過承諾新的扇區並填充扇區,礦工可以向網路增加新的儲存。透過這種方式,礦工可以隨著時間改變其擁有的權力比例。

我們還需要一種機制來防止三種型別的攻擊,惡意的礦工能夠利用他們並無真實提供的儲存來獲得獎勵:女巫攻擊(Sybil Attack)、外包攻擊(Outsourcing Attack)、生成攻擊(Generation Attack)。

· 女巫攻擊

透過建立多個女巫身份,惡意礦工可以假裝其儲存比實際更多的副本(並由此獲得報酬),但實際上只儲存資料一次。

· 外包攻擊

透過依賴於從其他儲存提供商那裡快速獲取資料,惡意礦工承諾儲存超出其實際儲存能力的資料。

· 生成攻擊

惡意礦工可以聲稱儲存了大量的資料,而他們卻使用一個小程式按需求高效地生成了這些資料。如果程式小於所聲稱的儲存資料,這會增加惡意礦工在Filecoin中贏得區塊獎勵的概率,這個可能性與礦工當前使用中的儲存成正比。

儲存提供商必須說服他們的客戶,他們已經儲存了他們付費儲存的資料。實際上,儲存提供商會生成儲存證明(PoS),以供區塊鏈網路或客戶自己進行驗證。

為了讓儲存行為公開可驗證,Filecoin引入了兩種共識演算法:Proof-of-Replication(PoRep)和Proof-of-Spacetime(PoSt),也就是複製證明和時空證明。

複製證明(PoRep)是一種新穎的儲存證明,它允許伺服器(證明者P)說服使用者(驗證者V)某些資料D已經被複制到其自己的唯一專用物理儲存中。

我們的機制是互動式的協議,其中證明方P:

(a)承諾儲存某些資料D的n個不同副本(物理上獨立的副本)

(b)說服驗證者V相信,P確實透過質詢/響應協議儲存了每個副本。PoRep改進了PoR和PDP機制,防止女巫攻擊、外包攻擊以及生成攻擊。

Proof-of-Spacetime(時空證明):PoS(儲存證明)機制允許使用者檢查儲存提供商是否在質詢期間儲存外包資料。我們如何使用PoS(儲存證明)機制來證明某些資料在一段時間內被儲存了呢?

這個問題的自然答案是要求使用者反覆地(例如每分鐘)向儲存提供商傳送質詢。然而,每次互動所要求的通訊複雜度可能會是成為像Filecoin這樣系統的瓶頸,其中儲存提供商需要將其證明提交到區塊鏈上。

為了解決這個問題,我們引入新的證明Proof-of-Spacetime,也就是時空證明,其中驗證者可以檢查證明者是否在一段時間記憶體儲她/他的外包資料。

直覺是要求證明者

· 生成有次序的儲存證明(Filecoin中是複製證明),作為確定時間的方式。
· 遞迴組合執行以生成簡短證明

證明者從驗證者那裡收到隨機質詢(c)),併為指定迭代次數t使用證明的輸出作為另一個的輸入,依次生成複製證明。因此,確保完成的所有工作都是可重用的(如上所述)。

PoSt & PoRep使用zk-SNARKS,使得證明很簡潔且易於驗證。

智慧合約

智慧合約支援Filecoin使用者編寫有狀態的程式,這些程式可以花費代幣、在市場中請求資料的儲存/檢索、驗證儲存證明。使用者可以透過傳送交易到分類賬與智慧合約進行互動,這些交易可以觸發合約中的功能呼叫。我們擴充套件了智慧合約系統,以支援Filecoin的特定操作,例如市場操作、證明驗證。

Filecoin支援特定的資料儲存合約,以及更通用的智慧合約。

· 檔案合約
我們允許使用者對他們提供儲存服務的條件進行程式設計。有幾個例子值得一提:

· 與礦工簽約
客戶可提前指定提供服務的礦工,而無需參與市場。

· 付款策略
客戶可以為礦工設計不同的獎勵策略,例如合約可以設定為隨著時間推移向礦工支付越來越高的費用,或者合約可以設定可信預言機告知的儲存價格。

· 票證服務
合約可以允許礦工存放代幣,以代表其使用者支付儲存/檢索的費用。

· 更多複雜的操作
客戶可以建立允許資料升級的合約。

· 智慧合約
使用者可以將程式與其交易相關聯,就像其他的系統(如以太坊)那樣,這些系統不直接依賴於儲存的使用。我們可以預見到這些應用:DNS(藍狐筆記注:去中心化的域名系統)、資產跟蹤以及眾籌平臺。

跨鏈互動

橋樑是旨在連線不同區塊鏈的工具。我們計劃支援跨鏈互動,以將Filecoin儲存引入其他基於區塊鏈的平臺,並將其他平臺的功能引入Filecoin。

· 其他平臺上的Filecoin:其他區塊鏈系統,如比特幣、Zcash、尤其是以太坊和Tezos,允許開發者編寫智慧合約;然而,這些平臺提供很少的儲存能力,且成本極高。

我們計劃提供一個橋樑,為這些平臺提供儲存和檢索的支援。我們注意到IPFS已經被好幾個智慧合約使用,作為引用和分發內容的一種方式。增加對Filecoin的支援將允許這些系統可以保證儲存IPFS內容,以交換Filecoin代幣。

· Filecoin中的其他平臺:我們計劃提供橋樑,以將其他區塊鏈服務與Filecoin連線起來。例如,與zcash整合將允許傳送儲存隱私資料的請求。

其他一些問題

這裡我們列出一些白皮書上沒有充分討論的潛在問題:

· 檢索市場的可擴充套件性

小額支付系統(檢索市場)在檢索協議上產生了許多開銷。為了達到與如今中心化基礎設施相匹配的檢索速度,Filecoin和IPFS需要大量的採用,以建立密集的狀態通道網路。(藍狐筆記注:如果檢索市場規模很大,那麼其小額支付需要較高的吞吐量支援)

· 審查制度(非法內容)

正如我們過去在Napster和the Priate Bay(海盜灣)所看到的一樣,缺乏審查將最終導致網路上產生非法內容,將暗網帶到明面上。可能的解決方案是,基於AI驅動的協議能夠隨著時間推移進行學習,且能自動檢測非法內容,並採取必要的行動。

但為了讓網路成為共同治理的網路,該協議需要由使用者自己來管理(引入拜占庭行為),以決定該內容是否需要被採取措施。

· 開源?

從上述問題推斷,也有可能剛開始時為了保護網路免遭非法內容侵擾,它可能由Protocol Labs管理。這可能意味著是一個封閉的軟體,可以免費使用,但不能公開用於修改。

但即便他們這麼做,也可能無濟於事。因為人們可以在其上面執行未經審查的版本(透過修改原始軟體)。

· 代幣波動

考慮到Filecoin將會在交易所上市這一點,在這種市場中,到底小額支付系統(儲存和檢索會設計小額支付)有多大可行性?(藍狐筆記注:作者的意思是說,Filecoin代幣在市場上是波動的,很難作為小額支付的貨幣,需要穩定幣才行)。

從當前的市場成熟度和去中心化領域來看,代幣更像是投資工具,而不是效用工具。這也是我們今天沒有看到基於代幣的專案被太多采用的最大原因之一。

Filecoin協議改進的可能性

這裡我們列出Filecoin協議中可能的改進。

· Tahor-LAFS加密方案

當增加價值時,客戶首先將其加密(用對稱金鑰),然後將其分成可管理大小的份,之後Erasure Code以實現冗餘。(藍狐筆記注:EC編碼,也稱為糾刪碼,它可以將n份原始資料,增加m份資料,並能透過n+m份中的任意n份資料,還原為原始資料)。

因此,例如,“3份中的2份”糾刪碼意味著總共有3份,其中任何2份都足以重建原始資料。這些份可以成為共享,儲存在特定的儲存節點上。儲存節點是共享的資料庫;使用者不依賴於它們來保證資料的完整性或機密性。

最終,加密金鑰和一些有助於發現正確儲存節點的資訊成為“功能字串”的部分。重要的是,功能字串對於從Grid中檢索值既是必須的又是足夠的。如果太多的節點變得不可用或離線,你無法獲得檢索足夠的共享,這種情況下它會失敗。

· 有寫入、讀取以及驗證能力

可以離線使用一種“權威性較低”的能力,也就是說,具有寫入能力的人可以將其轉換為讀取能力(無需與伺服器互動)。

驗證能力可以確認值的存在和完整性,但不能解密內容。可以將可變和不可變的值都放入Grid中。當然,不可變的值是不可能有寫入功能的。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;