是什麼讓Filecoin與眾不同?

買賣虛擬貨幣

和其它大型技術創新一樣,區塊鏈是我們已經使用和信任了幾十年的幾種成熟技術的結合體。“共識機制”自上世紀70年代開始研究,並在90年代發展成為一種打擊垃圾郵件的工具,它讓分散式系統中的使用者無需中央仲裁者就能達成協議。

Filecoin是建立在空間證明變化上的。它還與權益證明相關,因為權益關係不只是將通證作為權益關係,而是以已證明的儲存量存在,它決定了礦工出塊的概率。在構建分散式儲存網路時,我們著手構建一個證明結構。在這個結構中,共識是透過產生資料儲存來實現的。隨著testnet的釋出,我們將推出一組新的基於儲存的證明系統,以實現去中心化的共識。

當我們在2017年宣佈Filecoin的時候,我們開始著手建立一個建立在強大的去中心化市場上的去中心化儲存網路。為了培育這個市場,分散市場職能,鼓勵早期礦工的參與,我們建立了一個加密通證,這是Filecoin共識的副產品。此通證是在有用的工作(即有用的複製證明和時空證明)的基礎上生成的。 

這些證明的故事

Juan Benet最近在Zero Knowledge播客的採訪中探索了Filecoin證明結構的歷史。以下是這次採訪的摘錄: 

“Filecoin以多種不同的方式推動區塊鏈的發展。

複製證明是一個證明系統,用來驗證儲存礦工確實擁有他們所儲存的內容,並且沒有作弊。但你如何向網路證明,你確實在儲存一些東西,而不是撒謊?

Filecoin還試圖解決其它一些有趣的問題,包括更高的吞吐量一致性和可互操作、內容可定址的連結資料結構等。

說到底,這一切都是為了利用地球上所有未使用的儲存空間,用激勵措施來組織它們,建立最強大的計算儲存網路,並壓低這種儲存的價格

Filecoin對複製的證明既是對儲存的證明,也是對空間的證明,兩者略有不同。在Filecoin中,資料單元儲存在所謂的扇區中。你會以緩慢的編碼過程將磁碟上扇區中的特定資料密封起來,並將驗證提交給區塊鏈。密封是一項耗費大量精力的工作。想要偽造這樣的證明,你必須使用客戶端儲存在Filecoin上的原始資料來完成特定的工作。

證明系統是一種密碼協議,其中有證明者和驗證者——證明者將向驗證者證明一些東西。例如,在POW中,證明者需要做了一些計算,或者花費了一些計算週期。他們的典型證明就是雜湊。

儲存證明(Proofs of Storage)是證明我擁有某些資料的簡單證明系統。比如:我可以向你證明我有資料X,不需要顯示資料X,或者資料是幾個GB大,而是以更簡潔的方式。

是資料可恢復證明(Proof of Retrievability),我不僅要證明我有X,而且這些證明可以用來恢復X,以防我有惡意,想要隱瞞X。

空間證明(Proofs of Space)是另一種型別——我可以向你們保證我花費了一定的儲存空間。如果我存了1gb,然後生成一個隨機的GB,那麼我就可以證明我儲存了這個隨機的GB,而不是在儲存其它東西。這讓礦工可以使用儲存空間作為工作的證明。

有趣的部分是將空間證明與資料持有的普通證明結合起來——我希望X是有用的,而不僅僅是一個隨機字串。最難的部分是建立一個空間證明,它也被用來儲存有用的資料。這就是Filecoin網路的密碼協議中的複製證明——作為基本原語。

其它儲存證明是為了建立更值得信任的雲,因為它們可以向你證明它們正在備份你的資料。但是它們在正常的中心化雲環境中完全沒有使用,因為信任是契約式的。現在它們被用於整個去中心化領域,因為這是我們使用激勵結構來保證事情而不是合同協議。

我們還使用 SNARKs來證明一些複製的實際證明,這些證明產生了大量的輸出。我們想在這些複製證明上做很多挑戰,把它們聚合起來這樣它們就能以一種非常小、緊湊的方式進行鏈式反應。SNARKs是一個很好的方法,它給了你一種方法去證明你的正確性,然後你就可以把這個SNARK證明放在鏈上。接著,各方現在可以自己驗證一些極少的輸入,以及實際的SNARK證明,並知道證明已經正確生成。

在複製證明的過程中,我們使用,比如32GB,並應用非常慢的編碼,從而在一個節點可能是32位元組段的層中生成類似於網格的圖。生成一個圖需要一個連續的過程,並對每個節點進行連續雜湊。因為雜湊函式,它必須一個接一個地完成。

一種生成的圖是DRG(深度-半徑-圖)它們與這些擴充套件圖相連,形成一個複雜的晶格結構。最後,我們將原始資料編碼為我們所稱的副本,並將其提交為一個值。你可以獲取相同的源資料,並可以對其進行多次編碼,最終你將得到多個不同的、唯一編碼的副本。 

現在我們已經做到了,為了證明我們已經正確地進行了編碼,我們可以只取樣幾個挑戰來證明我們已經儲存了這個。假設我們在整個證明中隨機抽取了1000個挑戰,然後在SNARK中進行計算。我們取源編碼的資料,然後解碼,然後顯示它一直回到我們承諾的根。這就是我們想要簡潔的證明。否則它就是一個32位元組的“葉子”,整個Merkle鏈一直回到根將會是一個相當大的資料量,然後乘以1000。如果用100 KB或MB來生成一個證明,我們可以用SNARK壓縮它,我想大概是200B左右。

關於所有這些工作的一個偉大的故事就是我們所說的證明過山車。隨著時間的推移,你最終會建立大量不同的結構,所有這些不同的引數服務於所有這些不同的用例。

這個引數的選擇,在Filecoin中證明的選擇是我們花了這麼長時間來發布所有這些東西的最大原因。因為你選擇了一個結構,它有特定的形狀,產生了特定大小的artifacts ,也許這很好,然後你調整一些引數,比如,“嘿,也許我們想要扇區稍微大一點。“這使得其它一些引數必須改變。

很快你就進入了一個很大的、有很多不同變數的引數空間,一旦你在這裡調整一個東西,就會還有很多其它的東西也必須跟著改變。因為很多演算法都在最佳化,做複雜性管理,是非常困難的。因為很多這樣的結構、緩慢的編碼,你想用足夠慢的速度來證明它,但又要足夠快讓它不是很貴。進行撥號以使其恰到好處是一個非常困難的挑戰,然後釘上特殊的SNARK結構,以確保你可以高效,簡潔地完成此操作。

所有這些引數最佳化可能是如此緊張和困難,以至於我們實際上不得不編寫軟體來處理這些問題。我們有一個約束求解器來處理約束最佳化問題,即選擇Filecoin中的證明結構和引數。這是一個出乎意料的結果,其他團體現在可以用它來讓他們的生活更容易,但是我們必須寫這個。

我們使用了一個叫做Orient的工具,它在Github上,所有東西都是開源的(見Filecoin在Orient和Ubercalc中的引數)。它有一種特殊的語言,你可以在其中定義特定的演算法和它們生成的artifacts ,然後將它們組合成更大的演算法,並使用所有這些變數和引數。 然後你可以做實驗結果,比如某個雜湊函式需要多長時間,把資料代入一些引數然後計算出其它一些引數。例如,基於此雜湊函式以及在SNARK內部或外部花費的時間,這就是你想要使用的特殊的構造,因為它可以將時間最小化或將鏈上足跡最小化,而所有這些東西都是透過此求解器計算出來的。

製造區塊鏈技術,因為它的結構是如此的複雜——無論是單獨的原語還是它們是如何被編織成鏈的,所以我們需要這個軟體來幫助我們寫軟體。就像晶片製造一樣,晶片製造一直很順利,直到達到一定的密度,然後他們就不能手工生產晶片了。他們不得不開始使用軟體來佈置晶片。我認為我們已經在區塊鏈上達到了這一點,我們正在做的一些結構,就需要軟體來幫助我們設計。

我認為沒有其它網路使用複製證明,這是我們的一個優勢,我們創造了這個領域。這是一個區分因素

我們也是唯一一家擁有這種流動性市場結構的公司,這種結構意味著要根據一個要求和出價結構進行最佳化,在這種結構下,礦工和客戶能夠一起對價格進行推理,然後據此達成交易。

我認為,我們也是唯一以有效的儲存為後盾達成共識的。對於其它的網路,這可能是一種共識,並得到了空間證明的支援,但在我們的例子中,它是有用的。這是Filecoin最大的三個區別因素。

然後是透過libp2p與IPFS的緊密整合,以及其他一些已經在IPFS上大量使用的東西。將所有這些資料直接備份到Filecoin中會很容易。值得一提的是,IPFS是一個開放的網路,我們已經看到其它網路開始增加對它的支援,這也很酷。因為這個原因,它意味著要成為分離層。”

免責聲明:

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

推荐阅读

;