1. 程式人生 > >PP.io的三個階段,“強中心”——“弱中心”——“去中心”

PP.io的三個階段,“強中心”——“弱中心”——“去中心”

什麼是PP.io

PP.io是我和Bill發起的儲存專案,目的在於為開發者提供一個去中心化的儲存和分發平臺,能做到更便宜,更高速,更隱私。

當然做去中心化儲存的專案也有好幾個,FileCoin,SiaCoin,MaidSafe等,但是仔細看看他們流出的資料,官網,白皮書,文章以及各個社群的言論,可以看出他們注重這幾點,完全去中心化,安全性,完全的社群化治理,幾乎像比特幣一樣地宣傳區塊鏈精神,以便於把幣的價值通過共識做起來。甚至可以說,這些專案都是把儲存專案純粹當作區塊鏈專案來做得, 但是這樣能把去中心化儲存做好嗎?

首先要定義,什麼是“做好去中心化儲存”?

首先,去中心化儲存也是資料的網路儲存,資料儲存和比特幣等數字貨幣其實是不同的。

數字貨幣是錢,錢對安全性的要求非常高。每當我支付出一筆錢出去,我手上的錢就會變少,而錢支付的快和慢不是那麼重要。

資料網路儲存是使用場景,在網際網路上到處都需要資料儲存。對於個人使用者而言,蘋果的iCloud,Google Drive, 微軟的OneDrive就是資料儲存;而對於開發者而言,AWS S3和微軟的Axure就是對開發者的儲存服務。儲存是真正需要使用的產品,所以服務質量非常重要,貴了,慢了,資料丟了,網盤服務關停了,都有可能是使用者不使用的理由。在這個場景下,儲存價格合理,服務質量高,就非常重要了。所以儲存價格合理,服務質量高,才是真正地做好去中心化儲存。

可以再看看前面提到的幾個專案,他們輸出的資料、官網、白皮書、文章中幾乎沒有提到過服務質量(QoS)。甚至在社群裡還有人抱怨,去中心化儲存的價格相對於傳統雲端儲存的價格,不但沒有變低,反而還高了很多。
再仔細一想,去中心化儲存是現在才出現的嗎?其實不是,早就有了,如BitTorrent,Emule以及我之前設計的PPTV (資料早就存在很多節點上,並且廣闊地部署在全網,然後相互免費共享)。它們本質就是去中心化儲存。

所以我在設計PP.io專案的時候,想法和Filecoin、SiaCoin等幾個專案有很大的不同。我是把傳統P2P專案的精髓結合區塊鏈專案的特點來做,提出以使用者服務質量為導向的去中心化儲存專案。 也因為如此,PP.io專案的實施過程並上來就直接完全去中心,而要經歷3個階段,”強中心“、”弱中心“、”完全去中心“。

你沒有看錯,我們沒有一開始就直接完全去中心。這不同於現在的區塊鏈專案。下面詳細說一下,我是怎麼思考的。

首先我的觀點:區塊鏈解決的是信任問題,不是資料儲存問題。所以我在設計PP.io的時候,不會將儲存檔案放在鏈上,在鏈上只存放資產,合約,證明等和激勵相關的資訊。資料存放在分散的儲存節點節點上,使用P2P儲存技術來分配和排程,不存入區塊鏈,資料是可以被所有者刪除的,但也只能被資料所有者刪除。就像比特幣,只有所有者能發起轉賬一樣。
從本質上來說,PP.io擁有兩個系統:

一個是分散式儲存系統,是由P2P儲存技術構建,以Qos為導向,目標是做出不低於AWS S3的Qos(服務質量)

另外一個是區塊鏈系統,是由區塊鏈技術構建,以經濟激勵為導向,目標是做出良性的市場經濟,讓真正價廉物美的服務商獲得收益
在這裡插入圖片描述
圖1:分散式儲存系統 和 區塊鏈系統

這裡,我解釋一下我說的“中心”是什麼意思。

首先,我在設計PP.io的時候,儲存方面從頭到尾都是去中心的,資料永遠存放在去中心化的網路中。但是一個高效的P2P系統並不是只有儲存節點,還有一些中心化的伺服器。這些伺服器是用於管理大量的索引資訊,跟蹤資訊等,讓節點之間相互發現對方,讓節點之間相互協調。就像Bitorrent系統中的Tracker伺服器角色。這些伺服器是不存放資料的,但是如果沒有這些中心化伺服器,P2P網路會變得非常低效。PP.io系統中也存在這樣的角色,這就是我所謂的“中心”。

簡單地說,區塊鏈,激勵,儲存都是始終去中心的, 只有類似於Bittorrent的Tracker角色,才需要經歷3個階段。

這裡,我先詳細介紹一下PP.io中的儲存角色:

使用者節點:PP.io的消費者,通過消耗一定的PP.io Coin,來獲得儲存或下載資料的服務。

釋出源節點:釋出內容服務的節點,屬於一種特殊的使用者節點,它們通常不下線,且能夠長期提供下載服務;釋出源節點類似於IPFS

儲存節點:通過提供儲存空間和頻寬服務來獲得PP.io Coin激勵的節點。
檢索排程節點:可同時提供檢索和排程兩種服務, 並可獲得PP.io Coin激勵的節點,檢索功能方便為使用者快速定位到指定資料的位置,排程功能管理資料的上傳和下載,並根據供需關係調整儲存資料副本的流動。

監督節點:承擔儲存證明中的驗證任務並可獲得激勵的節點,監督節點確認儲存節點的總儲存容量,驗證使用者資料儲存下載,檢查儲存時空和下載頻寬的有效性;

其他去中心化儲存,如FileCoin, MaidSafe,都沒有單獨的監督節點角色,都要用他們的礦工節點兼做監督節點。我們核算了礦工節點的效能,如果承擔監督工作,會有大量的密碼學工作,就會要求所有礦工配置更高。FileCoin裡面的礦工作用,有點類似PP.io裡面的儲存節點,我們PP.io為了降低儲存節點的門檻,將提供儲存服務的角色和監督角色分開,所以將監督節點獨立出來了。

差不多介紹了基本資訊後,我該詳細介紹PP.io未來發展的3個階段了。
“強中心”階段 “Strong center” phase

這些節點是去中心化的:使用者節點,釋出源節點,儲存節點。

這些節點是中心化的:檢索排程節點,監督節點。

除此之外,我們還有一個結算中心,也是中心化的。負責計算節點之間的Token的支付。
這個階段,區塊鏈只有一條主鏈。主鏈上我們只存放資產資訊,也就是使用者有多少幣,相應的轉賬記錄。
在這裡插入圖片描述
圖2:“強中心”階段的架構圖

其實,StorJ現在也處於這個狀態,它的分散式儲存是自己做得,它的激勵直接使用的是以太坊上的ERC20代幣。它是靠中心化統計,然後每個月按時給礦工發工資的方式來激勵的。

“弱中心”階段

這些節點是去中心化的:使用者節點,釋出源節點,儲存節點

這些節點是聯盟部署的:檢索排程節點,監督節點。

聯盟部署就是必須有PP.io的許可才能加入並部署這樣節點。這樣做的目地是使用人為的方式來避免這些節點作惡,從而降低這個階段的開發難度。
之前的結算中心伺服器,在這階段演化成了一組側鏈,每條側鏈上有多個節點交替產生區塊。由出塊節點做結算,其他節點對結算的結果做驗證。側鏈和主鏈之間分別做共識,側鏈和主鏈之間通過預言機機制來通訊。
這條側鏈我們稱為合約鏈。如果這條側鏈的效能不夠,可以分裂出多條合約鏈。

這個階段,區塊鏈只有一條主鏈和多條合約鏈構成,資產,合約,證明均寫在區塊鏈上。但是合約鏈相關的節點是必須有授權才能部署的,簡單地說,合約鏈處於聯盟鏈狀態。
在這裡插入圖片描述
圖3:“弱中心”階段的架構圖

“去中心”階段

這個階段,所有節點都是去中心化的。這是PP.io的最終狀態,之前在”弱中心“狀態下聯盟部署的節點,如檢索排程節點,監督節點在這個階段就沒有接入限制了,任何人都可以加入PP.io網路並進行部署這些節點。
這個階段,區塊鏈依然保持一條主鏈和多條合約鏈構成。合約鏈也不在是聯盟鏈,變成了公鏈。區塊鏈共識演算法也會在這段階段實現最終共識演算法。
在這裡插入圖片描述
圖4:“去中心” 階段的架構圖

這裡我詳細解釋了PP.io的三個階段。這篇文章我先說到這裡,可能你有不少問題。不要著急,下一篇文章我會講解為什麼要把PP.io設計成三個階段。

文章作者:Wayne Wong
轉載請註明出處
如果有關於區塊鏈學習的交流,可以通過下面的方式聯絡我:
加我微信,注意備註: 區塊鏈
wechat:omnigeeker
github: omnigeeker (Wayne Wong)