IPFS由胡安在2014年5月份發(fā)起,目前為止已經(jīng)誕生了5年時間,而基于IPFS開發(fā)的Filecoin存儲激勵項目則旨在為我們的網(wǎng)絡(luò)提供更加完善、體驗更好的存儲服務(wù)。
愿景很美好,但我們首先要弄清楚,它是怎么保證整個存儲服務(wù)的正常運行呢?Filecoin的工作證明機制在圍繞著核心的復(fù)制證明PoRep與時空證明PoSt之外還涉及不少其他的證明機制。今天我們用超直白的話和大家解說Filecoin的工作證明機制
Filecoin存儲的工作流程
首先,我們來了解下Filecoin完成存儲需要的關(guān)鍵流程和角色。
挑戰(zhàn)(challenge)
系統(tǒng)對礦工提問一個或多個問題進(jìn)行驗證,回答正確,則挑戰(zhàn)成功,否則失敗。類似于BTC的工作量證明,依靠一系列大量的計算,最終得出首次記賬權(quán)。
證明者(prover):
礦工想要完成挑戰(zhàn)(challenge)就需要向Filecoin系統(tǒng)提供真實有效的證明。
檢驗者(verifier):
系統(tǒng)代表用戶向礦工發(fā)起挑戰(zhàn)(challenge),以此檢測礦工是否完成了數(shù)據(jù)存儲任務(wù)。
數(shù)據(jù)(data):
指用戶向礦工發(fā)起存儲需求的數(shù)據(jù)或者已被礦工存儲的數(shù)據(jù)。
證明(proof):
礦工完成挑戰(zhàn)(challenge)時的回答。
流程:
檢驗者(verifier)向礦工(prover)發(fā)起挑戰(zhàn)(challenge),礦工提交證明(proof),再由系統(tǒng)檢驗礦工的答復(fù)來判斷是否通過本次挑戰(zhàn)(challenge)。
Filecoin存儲的證明機制
存儲證明 Proof-of-Storage,PoS:
Filecoin利用存儲空間進(jìn)行證明作為它的工作量證明機制,最初時將其命名為存儲證明 Proof-of-Storage,目前已升級為PoRep。證明礦工在對應(yīng)的時間內(nèi)存儲了特定的數(shù)據(jù),不嚴(yán)格來說硬盤的儲存量即代表其算力,相比POW機制耗費的巨大能源,其消耗不值一提。
復(fù)制證明 Proof-of-Replication,PoRep:
PoRep 是PoS的進(jìn)階版,可以證明礦工已將 數(shù)據(jù)(data)存儲,并保證每份數(shù)據(jù)存儲的獨立性,同時防止女巫攻擊,外源攻擊和生成攻擊。
數(shù)據(jù)持有性證明 Provable-Data-Possession,PDP:
礦工完成了用戶存儲數(shù)據(jù)的訂單后,為了證明數(shù)據(jù)已經(jīng)被自己存儲,用戶可以多次驗證礦工是否將其數(shù)據(jù)保持存儲的狀態(tài)
可檢索證明 Proof-of-Retrievability,PoRet:
與PDP類似,證明礦工存儲的數(shù)據(jù)是可以用來查詢的。
空間證明 Proof-of-Space,PoSpace:
Filecoin提出的關(guān)于存儲量證明的概念,PoSpace是PoW的一種,不同的是PoW使用的是計算資源,而PoSpace使用的是存儲資源。
時空證明 Proof-of-SpaceTIme,PoSt:
時空證明,礦工證明自己花費了SpaceTIme資源, 即:一定時間內(nèi)的存儲空間的使用,PoSt是基于復(fù)制證明(Proof-of-ReplicaTIon,PoRep)實現(xiàn)的。
Protocol Labs團(tuán)隊為什么要將系統(tǒng)搞得這么復(fù)雜?
區(qū)塊鏈里面任何精巧的系統(tǒng)都需要精心設(shè)計(比如BTC),讓系統(tǒng)能夠依靠自身機制一直運行下去,目的不外乎下面兩個:
● 保證礦工能夠老老實實的幫助用戶存儲數(shù)據(jù)
● 公平的分配代幣
《 PoRep & PoSt 》有啥作用?
復(fù)制證明:Proofs-of-ReplicaTIon
PoRep必須能夠防范以下三種常見的攻擊方式:女巫攻擊、外源攻擊、生成攻擊。
他們的共同特點是攻擊礦工實際存儲的數(shù)據(jù)大小要比聲稱存儲的數(shù)據(jù)小,這樣攻擊礦工就能獲得本不該他獲得的報酬。
● 女巫攻擊(Sybil Attack):
利用n個身份,承諾存儲n份數(shù)據(jù)D,而實際上存儲小于n份(比如1份),但是卻提供了n份存儲證明,攻擊成功。
● 外部數(shù)據(jù)源攻擊(Outsourcing Attack):
當(dāng)攻擊者礦工收到檢驗者要求提供數(shù)據(jù)D的證明的時候,攻擊者礦工從別的礦工那里生成證明,證明自己一直存儲了數(shù)據(jù)D,而實際上沒有存儲,攻擊成功。
● 生成攻擊(Generation Attack):
攻擊者A可以使用某種方式生成數(shù)據(jù)D,當(dāng)檢驗者驗證的時候,攻擊者A就可以重新生成數(shù)據(jù)D來完成存儲證明,攻擊成功。
時空證明:Proofs-of-Spacetime
時空證明提出了證明鏈(proof-chain)的數(shù)據(jù)結(jié)構(gòu),證明鏈把一些挑戰(zhàn)(challenge)和證明(proof)鏈接起來,在證明鏈的基礎(chǔ)上添加上時間段,這樣就得到了一段時間內(nèi)的礦工存儲數(shù)據(jù)的證明,這就是時空證明(Proof-of-Spacetime,PoSt)。
PoSt可以證明在該段時間內(nèi)礦工存儲了特定的數(shù)據(jù),并且利用時間戳錨定這些證明鏈,這樣即使檢驗者(verifier)不在線,也能夠在將來去驗證礦工在該段時間內(nèi)是否生成了證明鏈,PoSt會被提交到鏈上用來產(chǎn)生新的區(qū)塊(Block)。
結(jié)語
通過用戶存儲數(shù)據(jù)以及礦工完成存儲以及一系列驗證的過程來看,F(xiàn)ilecoin已經(jīng)成熟到一定的程度了,但不可否認(rèn)還有許多諸如零知識證明等還能繼續(xù)優(yōu)化的地方。
相信了解Filecoin的工作證明機制之后,大家都發(fā)現(xiàn)了它的魅力所在:以一套精密運作的系統(tǒng),通過向存儲資源貢獻(xiàn)者發(fā)放FIL的形式,或者向檢索服務(wù)提供者發(fā)放FIL的形式,激勵大家參與貢獻(xiàn)自己的存儲資源與帶寬資源。
這就在全球范圍內(nèi),極大地增加了網(wǎng)絡(luò)的節(jié)點數(shù)量,讓整個分布式存儲網(wǎng)絡(luò)變成了一個巨大的存儲空間。在整套機制的配合下,IPFS在跟HTTP的競爭中擁有了更強的發(fā)展優(yōu)勢,看到這你也就明白了Filecoin為何受到如此多的資本以及組織的青睞。