【董天一】IPFSFilecoin和複製證實

做者簡介:董天一 ,IPFS/Filecoin中國區技術佈道人 ,《IPFS指南》做者。

畢業於北京大學軟件與微電子學院曾擔任甲骨文亞洲研發中心(中國)數據庫開發工程師。數據庫

資深區塊鏈技術開發者,現致力於IPFS/Filecoin在中國的技術推廣IPFS的競爭對手。安全

這篇文章主要來說一下Filecoin協議裏面的複製證實(Proof of Replication),因爲協議涉及到不少概念,可能看起來有點暈乎乎的,小編儘可能把複雜問題簡單化 ,力求給你們作大普及IPFS知識。網絡

![pic1]()

概念:

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

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

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下一篇論文。spa


相關文章和視頻推薦

[【董天一】關於IPFS的熱門問題]()設計

圓方圓學院聚集大批區塊鏈名師,打造精品的區塊鏈技術課程。在各大平臺都長期有優質免費公開課,歡迎報名收看。

公開課地址:https://ke.qq.com/course/345101

相關文章
相關標籤/搜索