IPFS它是一個去中心化的分佈式的存儲系統。
我們每天使用的網絡是建立在底層通訊協議上的,這個底層通訊協議就是OSI 參考模型,分為7層,物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。
物理層和數據鏈路定義了信號怎麼讓網卡接受並識別。
網絡層和傳輸層定義了網絡節點之間如何尋址,也叫 TCP/IP層。
會話層、表示層、應用層其實可以合稱為應用層,http協議在這一層讓當今的互聯網生態繁榮發展,手機,電腦,pad 使用瀏覽器體現了 HTTP 協議的應用。
以上協議都是建立在中心化的網絡上的,中心化網絡帶來的問題現在已經相當的突出,文字審查,信息壟斷等,而IPFS是一個點對點的傳輸網絡,每個文件在這個網絡上都有一個唯一的hash指紋id。那麼,文件尋址通過這個id就可以了。
用戶將自己的硬盤貢獻出來成為礦工,獲取filecoin得到回報。存儲文件的過程大約如下:
1.用戶發出訂單(用 filecoin出價,請求存儲文件),系統撮合礦工和訂單,一旦撮合成功,進入第二步。
2.用戶發送文件給礦工,礦工收到文件之後放到數據庫裡,進行加密,驗證之後放到鏈上。
3.礦工不斷以復制證明的方式和規則來證明他們在工作,客戶端支付的金額是分期付款進行的,隨著出塊,線性像前推進給礦工進行支付。
4.文件索引:用戶請求文件並支付filecoin到檢索市場之後,相應速度最快的礦工拿到這個文件的分發權。
為了確保礦工誠實地工作並且能公平獲取代幣,在共識算法上,IPFS使用的是複制量證明。這種共識能夠防範以下三種常見的攻擊方式:女巫攻擊,外源攻擊和生成攻擊,他們的共同特點是不誠實的礦工實際存儲的數據大小要比聲稱存儲的數據小,這樣不誠實的礦工就能獲得本不該他獲得的報酬。
女巫攻擊(Sybil Attack):
利用n個身份,承諾存儲n份數據D,而實際上存儲小於n份(比如1份),但是卻提供了n份存儲證明,攻擊成功。
外部數據源攻擊(Outsourcing Attack):
當攻擊者礦工收到檢驗者要求提供數據D的證明的時候,攻擊者礦工從別的礦工那裡生成證明,證明自己一直存儲了數據D,而實際上沒有存儲,攻擊成功
生成攻擊(Generation Attack):
攻擊者A可以使用某種方式生成數據D,當檢驗者驗證的時候,攻擊者A就可以重新生成數據D來完成存儲證明,攻擊成功
Filecoin 基於 Storage Provider 單位時間提供給網絡的空間來決定他們的投票權,這種機制就叫 PoSt,PoSt 是由一系列 Proof of Replication(PoReps)推算得來。因為存儲了所要求的數據的replicas 的Provider 需要向客戶出示證明( Proofs),方式就是通過解決Client 提出的密碼學問題(Cryptographic Problems),這根比特幣的挖礦形式上是一樣的,不同之處在於,這個密碼學問題是基於數據文件(sealed version of data)的,而作為存儲提供商,必須在其實際保存了客戶的全部文件副本的情況下才能解決該問題,因為只有Provider 可以輕易訪問這些數據。當他們提出證明時,可以很容易的被其他節點驗證,而這些節點無需存有數據。
ipfs上挖礦主要需要做以下幾件事情:
1.文件存儲。擁有硬盤容量將在共識機制上扮演比較重要的角色,容量越大越好。
2.打包區塊
3.文件檢索請求服務。當有用戶要求檢索文件時,最快交付給用戶的礦工將獲取挖礦獎勵收益。所以擁有帶寬+SSD的礦工將具有一定的優勢。
簡單總結挖礦的幾點核心為:
硬盤容量和挖礦回報成正比
分發相應能力和挖礦回報成正比
專線帶寬,必須是大城市的專線帶寬,因為大城市使用量更高
具有自我恢復的能力
來源:簡書