IPFS:Filecoin和複製證明

這篇文章主要來講一下Filecoin協議裡面的複製證明(Proof of Replication),由於協議涉及到很多概念,可能看起來有點暈乎乎的,小編盡量把複雜問題簡單化 ,力求給大家做大普及IPFS知識

概念:

  • 挑戰(challenge):系統對礦工發起提問,可能是一個問題或者一系列問題,礦工正確的答覆,則挑戰成功,否則失敗
  • 證明者(prover):礦工向Filecoin系統提供有效的證明,來完成挑戰(challenge)
  • 檢驗者(verifier):系統代表用戶向礦工發起挑戰(challenge),來檢測是否礦工完成了數據存儲任務
  • 數據(data):用戶向礦工提交的需要存儲或者礦工已經存儲的數據
  • 證明(proof):礦工完成挑戰(challenge)時候的回答

流程:系統(verifier)向礦工(prover)發起挑(challenge),礦工答覆證明(proof),系統檢驗礦工的答覆以判斷礦工是否通過本次挑戰(challenge)。

Filecoin涉及到的證明概念:

  • 數據持有性證明(Provable Data Possession ,PDP):用戶發送數據給礦工進行存儲,礦工證明數據已經被自己存儲,用戶可以重複檢查礦工是否還在存儲自己的數據
  • 可檢索證明(Proof-of-Retrievability,PoRet):和PDP過程比較類似,證明礦工存儲的數據是可以用來查詢的。
  • 存儲證明(Proof-of-Storage ,PoS):利用存儲空間進行的證明。工作量證明的一種,Filecoin上一篇論文使用了這個名字,新的論文則升級為PoRep
  • 複製證明(Proof-of-Replication,PoRep):新的 PoS(Proof-of-Storage),PoRep可以保證每份數據的存儲都是獨立的,可以防止女巫攻擊,外源攻擊和生成攻擊
  • 工作量證明(Proof-of-Work,PoW):證明者向檢驗者證明自己花費了一定的資源,PoW被用在加密貨幣,拜占庭共識和其他各種區塊鏈系統。BTC使用的就是這種類型的證明,依賴巨量的哈希計算和能源消耗來建立共識和保證btc網路的安全性
  • 空間證明(Proof-of-Space,PoSpace):Filecoin提出的概念,存儲量的證明,PoSpace是PoW的一種,不同的是PoW使用的計算資源,而PoSpace使用的是存儲資源
  • 時空證明(Proof-of-Spacetime,PoSt):時空證明,礦工證明自己花費了spacetime資源, 即:一定時間內的存儲空間的使用,PoSt是基於PoReps實現的
  • 複製證明(Proof of Replication,PoRep):PoRep 是PoS的進化版:用來證明 數據(data)已經被礦工存儲

為什麼要搞這麼複雜?

區塊鏈裡面任何精巧的系統都需要精心設計(比如BTC),讓系統能夠自己一直運行下去,搞這麼複雜目的不外乎下面兩個:

  • 保證礦工能夠老老實實的幫助用戶存儲數據
  • 公平的分配代幣

複製證明:Proofs-of-Replication

PoRep必須能夠防範以下三種常見的攻擊方式:女巫攻擊,外源攻擊和生成攻擊,他們的共同特點是攻擊礦工實際存儲的數據大小要比聲稱存儲的數據小,這樣攻擊礦工就能獲得本不該他獲得的報酬。

  • 女巫攻擊(Sybil Attack):利用n個身份,承諾存儲n份數據D,而實際上存儲小於n份(比如1份),但是卻提供了n份存儲證明,攻擊成功。
  • 外部數據源攻擊(Outsourcing Attack):當攻擊者礦工收到檢驗者要求提供數據D的證明的時候,攻擊者礦工從別的礦工那裡生成證明,證明自己一直存儲了數據D,而實際上沒有存儲,攻擊成功
  • 生成攻擊(Generation Attack):攻擊者A可以使用某種方式生成數據D,當檢驗者驗證的時候,攻擊者A就可以重新生成數據D來完成存儲證明,攻擊成功

防範生成攻擊比較困難,所有的PoS協議都會遇到這樣的問題,如何保證礦工真正的存儲了這些數據,目前這還是個待解決的問題,PoRep需要解決這個問題,Filecoin協議採用一種叫做 RepGame 的遊戲來一起解決這三種攻擊方式,PoRes還在此基礎上引入了時限性(Time Bounded),PoRes協議的實現可能有很多種方式,不管哪種實現方式都必須能夠防止上面的三中攻擊方式,並且要能夠通過RepGame遊戲的測試。

時空證明:Proofs-of-Spacetime

時空證明提出了證明鏈(proof-chain)的數據結構,證明鏈把一些的提問(challenge)和證明(proof)鏈接起來形成。在證明鏈的基礎上添加上時間段,這樣就得到了一段時間內的礦工存儲數據的證明,這就是時空證明(Proof of Spacetime,PoSt),PoSt可以證明在該段時間內礦工存儲了特定的數據,並且利用時間戳錨定這些證明鏈,這樣即使驗證者(verifier)不在線,也能夠在將來去驗證礦工在該段時間內生成了證明鏈,PoSt會被提交到鏈上用來產生新的Block。

PS: time-bounded Proof-of-Replication 和 Proofs-of-Spacetime的可實現結構目前Filecoin團隊還沒有給出來具體的細節,期待Filecoin下一篇論文。


本專欄的微信公眾號IPFS指南(ipfs_guide),致力於IPFS的知識的普及,如果你對IFPS、Filecoin,挖礦感興趣,敬請關注!

本專欄的文章允許轉載,但請註明:原文來自於知乎專欄:IPFS指南(IPFS指南)作者:飛向未來

推薦閱讀:

IPFS:世界正在悄然發生變化
一場IPFS引領下的共享之風正在走向區塊鏈
什麼是IPFS?(二)
IPFS的競爭對手們(一)
區塊鏈給我們帶來什麼(二)IPFS分散式文件系統

TAG:IPFS | FILECOIN | 区块链Blockchain |