Gaia ——BlockStack 去中心化儲存服務

買賣虛擬貨幣
我們先理解傳統的web或移動app如何與儲存互動。每當使用者登入到app時,app從遠端儲存器中獲取使用者資料並將其顯示給使用者。所有複雜的計算都執行在雲伺服器上,而不是客戶端上,客戶端充當一個簡易的顯示終端。

下面是兩個虛構角色Alice和Bob與傳統web/移動app互動的例子。

假設我們有兩個使用者Alice和Bob。他們都有 App:Whatsapp,Facebook 或者 Snapshot。他們與App的提供者互動。這些App基本上執行SQL或者其他資料庫為使用者提供服務。當Alice想要使用即時通訊應用與Bob互動時,Alice將訊息傳送給服務提供者,而服務提供者將訊息傳送給Bob。

例如,Alice首先向儲存伺服器傳送資訊“Hi”,然後儲存伺服器將資訊傳送給Bob。互動路徑是 Alice→儲存伺服器→Bob,Alice←→Bob之間沒有直接路徑。這是個中心化的過程,服務提供者代表Alice和Bob傳遞資料,並控制如何共享資料。Alice和Bob都是透過查詢中新心伺服器來查詢彼此的訊息。服務提供者總是信任的唯一來源。

中心化儲存帶來的問題

1.讀取寫入資料與使用者身份標識沒有嚴格關聯。 不能保證Bob收到的訊息確實來自於Alice,或者訊息是篡改的。而且,這些大公司也並不是免費提供服務的。他們向廣告商出售使用者資料,從使用者資料中牟利。這樣,他們可以更好地鎖定潛在客戶。在某些情況下,他們的做法是違法的:德國一家法院本月剛剛裁定,Facebook非法收集資料,違反了消費者相關的法律。

2. 使用者不能選擇不同的儲存提供者 ,只有app才能選擇儲存器以及把使用者資料儲存在什麼位置

3.使用者無法控制誰檢視他們的資料,儲存器總是可以檢視他們的資料

Blockstack 如何解決中心化儲存問題

以便使使用者能夠控制自己的資料,並嚴格地將自己的資料與使用者身份標識關聯起來。Blockstack提供了去中心化儲存系統(Gaia)和區塊鏈命名系統(blockchain naming system即BNS)。使用者可以使用BNS提供的數字身份登入到blockstack App。使用者資料將與使用者公鑰強關聯。App將代表使用者讀寫資料到Gaia hub(當且僅當使用者允許時)。所有使用者資料將被傳輸到他們的Gaia hub。Gaia hub可以由使用者自己擁有,也可以使用blockstack提供的預設儲存空間。blockstack 在預設情況下,hub用於儲存由使用者的公鑰加密的使用者資料。這樣,儲存器只能看到加密好的資料塊。

介紹 Gaia

Gaia是由完全由使用者擁有的儲存,使用者決定誰能看到它,並將其寫入儲存。他們可以隨時更改儲存器。它是基於驅動程式模型構建的分散式高效能儲存系統,支援許多儲存服務。它是基於驅動程式模型構建的分散式高效能儲存系統,支援許多儲存服務。只需做很少的工作,開發人員就可以透過Gaia為Dropbox、azure、S3 實現儲存。

Gaia vs IPFS:Gaia和IPFS的主要區別在於,Gaia使用者對他們的資料的控制權,但在IPFS中有一個開放的網路,你的資料被放置在不同的人的裝置上。

Blockstack app 如何儲存資料以及使用者如何控制自己的資料?

假設現在Alice正在使用一個blockstack 訊息App。她使用自己的Gaia服務和她自己的公鑰進行互動。Bob有相同的App。Alice和Bob都想和對方交流。為了相互通訊,Alice 的 Gaia服務和Bob 的Gaia服務之間必須有讀/寫路徑。

問題出現了,Blockstack App如何與Gaia儲存互動,以及Gaia如何為使用者提供全面控制?

使用者和儲存後端都定義了URL。Blockstack App定義了使用者儲存的URL路徑。它根據使用者從不同的儲存器進行讀寫,這種方式允許使用者對資料的控制。查詢路徑允許使用者控制和儲存他們的資料。

Blockstack App 如何在 Gaia 中查詢資料?

這個過程分 4 步:

1.在虛擬鏈中查詢名稱以獲得(名稱、雜湊)對
2.將使用者名稱解析為資料(透過BNS和Atlas網路控制),以獲得相應的區域檔案
3.從zonefile中發現儲存後端URI,並查詢連線到儲存後端的URI
4. 從Gaia服務中獲取資料

解釋

App將給定的使用者名稱解析為某些資料。假設我們有一個使用者sidra.id。App將使用blockstack.js 程式庫中的Blockstack BNS。Atlas網路獲取根檔案(區域檔案),這個檔案定義很多關於名稱的資訊。它還將提供儲存 App資料的URL。

一旦App完成了對 App根檔案 的查詢。申請者將能夠獲得更具體的資料。假設想查詢檔案foo.json。然後,唯一的要求是執行一個正常的URL獲取。最後的設定是在Gaia規範中定義的。

如何更改 Gaia的儲存器? 在系統中,如果使用者想要更改正在執行的Gaia儲存器。因為使用者擁有自己的使用者名稱,所以他們可以很容易地將不同的資料與他們的使用者名稱相關聯,這允許他們選擇不同的App路由。這最終允許他們更改App執行這些查詢的方式。查詢定義了資料的控制,只要使用者能夠控制資料的查詢就控制了資料。

Gaia 介面

Gaia是一個儲存後端,它提供了一個簡單的介面。因此,App可以像普通的post、get和put請求工作一樣進行讀寫。Gaia定義了三種路徑:

1. PUT/store/<public-key-hash>/<file-name> 透過App代表使用者向Gaia服務寫入資料
2. GET/store/<public-key-hash>/<file-name>從公鑰雜湊定義的使用者中讀取檔案

寫一個 Gaia hub

Blockstack App代表使用者編寫,例如,app呼叫PUT請求將一些資料提交到Gaia服務,並提供和驗證頭,就像公鑰簽名文字一樣。Gaia服務將驗證此App實際上被授權向使用者Gaia寫入資料。

從 Gaia 中讀取資料

1. 獲取zone檔案和資料
2. 驗證zonefile hash 是否匹配使用者公鑰

結論

Gaia是Blokckstack App的儲存後端。它提供了使用者擁有自己資料的能力,但是儲存的資料仍然依賴於傳統的DNS服務和複雜的雲端儲存。它還將大多數使用者裝置無法處理的計算負載強加給使用者。對於去中心化的網際網路來說,使用者隱私還有很長的路要走。大多數使用者還沒有為這種變化做好準備。DApp需要對使用者友好,並使其他人做的工作更少才能成功。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;