我們先理解傳統(tǒng)的web或移動(dòng)app如何與存儲(chǔ)交互。每當(dāng)用戶登錄到app時(shí),app從遠(yuǎn)程存儲(chǔ)器中獲取用戶數(shù)據(jù)并將其顯示給用戶。所有復(fù)雜的計(jì)算都運(yùn)行在云服務(wù)器上,而不是客戶端上,客戶端充當(dāng)一個(gè)簡(jiǎn)易的顯示終端。
下面是兩個(gè)虛構(gòu)角色Alice和Bob與傳統(tǒng)web/移動(dòng)app交互的例子。

假設(shè)我們有兩個(gè)用戶Alice和Bob。他們都有 App:Whatsapp,F(xiàn)acebook 或者 Snapshot。他們與App的提供者交互。這些App基本上運(yùn)行SQL或者其他數(shù)據(jù)庫(kù)為用戶提供服務(wù)。當(dāng)Alice想要使用即時(shí)通訊應(yīng)用與Bob交互時(shí),Alice將消息發(fā)送給服務(wù)提供者,而服務(wù)提供者將消息發(fā)送給Bob。

例如,Alice首先向存儲(chǔ)服務(wù)器發(fā)送信息“Hi”,然后存儲(chǔ)服務(wù)器將信息發(fā)送給Bob。交互路徑是 Alice→存儲(chǔ)服務(wù)器→Bob,Alice←→Bob之間沒(méi)有直接路徑。這是個(gè)中心化的過(guò)程,服務(wù)提供者代表Alice和Bob傳遞數(shù)據(jù),并控制如何共享數(shù)據(jù)。Alice和Bob都是通過(guò)查詢中新心服務(wù)器來(lái)查找彼此的消息。服務(wù)提供者總是信任的唯一來(lái)源。
中心化存儲(chǔ)帶來(lái)的問(wèn)題
1.讀取寫(xiě)入數(shù)據(jù)與用戶身份標(biāo)識(shí)沒(méi)有嚴(yán)格關(guān)聯(lián)。 不能保證Bob收到的消息確實(shí)來(lái)自于Alice,或者消息是篡改的。而且,這些大公司也并不是免費(fèi)提供服務(wù)的。他們向廣告商出售用戶數(shù)據(jù),從用戶數(shù)據(jù)中牟利。這樣,他們可以更好地鎖定潛在客戶。在某些情況下,他們的做法是違法的:德國(guó)一家法院本月剛剛裁定,F(xiàn)acebook非法收集數(shù)據(jù),違反了消費(fèi)者相關(guān)的法律。
2. 用戶不能選擇不同的存儲(chǔ)提供者 ,只有app才能選擇存儲(chǔ)器以及把用戶數(shù)據(jù)保存在什么位置
3.用戶無(wú)法控制誰(shuí)查看他們的數(shù)據(jù),存儲(chǔ)器總是可以查看他們的數(shù)據(jù)
Blockstack 如何解決中心化存儲(chǔ)問(wèn)題
以便使用戶能夠控制自己的數(shù)據(jù),并嚴(yán)格地將自己的數(shù)據(jù)與用戶身份標(biāo)識(shí)關(guān)聯(lián)起來(lái)。Blockstack提供了去中心化存儲(chǔ)系統(tǒng)(Gaia)和區(qū)塊鏈命名系統(tǒng)(blockchain naming system即BNS)。用戶可以使用BNS提供的數(shù)字身份登錄到blockstack App。用戶數(shù)據(jù)將與用戶公鑰強(qiáng)關(guān)聯(lián)。App將代表用戶讀寫(xiě)數(shù)據(jù)到Gaia hub(當(dāng)且僅當(dāng)用戶允許時(shí))。所有用戶數(shù)據(jù)將被傳輸?shù)剿麄兊腉aia hub。Gaia hub可以由用戶自己擁有,也可以使用blockstack提供的默認(rèn)存儲(chǔ)空間。blockstack 在默認(rèn)情況下,hub用于存儲(chǔ)由用戶的公鑰加密的用戶數(shù)據(jù)。這樣,存儲(chǔ)器只能看到加密好的數(shù)據(jù)塊。
介紹 Gaia
Gaia是由完全由用戶擁有的存儲(chǔ),用戶決定誰(shuí)能看到它,并將其寫(xiě)入存儲(chǔ)。他們可以隨時(shí)更改存儲(chǔ)器。它是基于驅(qū)動(dòng)程序模型構(gòu)建的分布式高性能存儲(chǔ)系統(tǒng),支持許多存儲(chǔ)服務(wù)。它是基于驅(qū)動(dòng)程序模型構(gòu)建的分布式高性能存儲(chǔ)系統(tǒng),支持許多存儲(chǔ)服務(wù)。只需做很少的工作,開(kāi)發(fā)人員就可以通過(guò)Gaia為Dropbox、azure、S3 實(shí)現(xiàn)存儲(chǔ)。
Gaia vs IPFS:Gaia和IPFS的主要區(qū)別在于,Gaia用戶對(duì)他們的數(shù)據(jù)的控制權(quán),但在IPFS中有一個(gè)開(kāi)放的網(wǎng)絡(luò),你的數(shù)據(jù)被放置在不同的人的設(shè)備上。
Blockstack app 如何存儲(chǔ)數(shù)據(jù)以及用戶如何控制自己的數(shù)據(jù)?

假設(shè)現(xiàn)在Alice正在使用一個(gè)blockstack 消息App。她使用自己的Gaia服務(wù)和她自己的公鑰進(jìn)行交互。Bob有相同的App。Alice和Bob都想和對(duì)方交流。為了相互通信,Alice 的 Gaia服務(wù)和Bob 的Gaia服務(wù)之間必須有讀/寫(xiě)路徑。
問(wèn)題出現(xiàn)了,Blockstack App如何與Gaia存儲(chǔ)交互,以及Gaia如何為用戶提供全面控制?

用戶和存儲(chǔ)后端都定義了URL。Blockstack App定義了用戶存儲(chǔ)的URL路徑。它根據(jù)用戶從不同的存儲(chǔ)器進(jìn)行讀寫(xiě),這種方式允許用戶對(duì)數(shù)據(jù)的控制。查找路徑允許用戶控制和存儲(chǔ)他們的數(shù)據(jù)。
Blockstack App 如何在 Gaia 中查找數(shù)據(jù)?

這個(gè)過(guò)程分 4 步:
1.在虛擬鏈中查找名稱以獲得(名稱、散列)對(duì)
2.將用戶名解析為數(shù)據(jù)(通過(guò)BNS和Atlas網(wǎng)絡(luò)控制),以獲得相應(yīng)的區(qū)域文件
3.從zonefile中發(fā)現(xiàn)存儲(chǔ)后端URI,并查找連接到存儲(chǔ)后端的URI
4. 從Gaia服務(wù)中獲取數(shù)據(jù)
解釋
App將給定的用戶名解析為某些數(shù)據(jù)。假設(shè)我們有一個(gè)用戶sidra.id。App將使用blockstack.js 程序庫(kù)中的Blockstack BNS。Atlas網(wǎng)絡(luò)獲取根文件(區(qū)域文件),這個(gè)文件定義很多關(guān)于名稱的信息。它還將提供存儲(chǔ) App數(shù)據(jù)的URL。
一旦App完成了對(duì) App根文件 的查找。申請(qǐng)者將能夠獲得更具體的數(shù)據(jù)。假設(shè)想查找文件foo.json。然后,唯一的要求是執(zhí)行一個(gè)正常的URL獲取。最后的設(shè)置是在Gaia規(guī)范中定義的。
如何更改 Gaia的儲(chǔ)存器? 在系統(tǒng)中,如果用戶想要更改正在運(yùn)行的Gaia儲(chǔ)存器。因?yàn)橛脩魮碛凶约旱挠脩裘运麄兛梢院苋菀椎貙⒉煌臄?shù)據(jù)與他們的用戶名相關(guān)聯(lián),這允許他們選擇不同的App路由。這最終允許他們更改App執(zhí)行這些查找的方式。查找定義了數(shù)據(jù)的控制,只要用戶能夠控制數(shù)據(jù)的查找就控制了數(shù)據(jù)。
Gaia 接口
Gaia是一個(gè)存儲(chǔ)后端,它提供了一個(gè)簡(jiǎn)單的接口。因此,App可以像普通的post、get和put請(qǐng)求工作一樣進(jìn)行讀寫(xiě)。Gaia定義了三種路徑:

1. PUT/store/《public-key-hash》/《file-name》 通過(guò)App代表用戶向Gaia服務(wù)寫(xiě)入數(shù)據(jù)
2. GET/store/《public-key-hash》/《file-name》從公鑰哈希定義的用戶中讀取文件
寫(xiě)一個(gè) Gaia hub
Blockstack App代表用戶編寫(xiě),例如,app調(diào)用PUT請(qǐng)求將一些數(shù)據(jù)提交到Gaia服務(wù),并提供和驗(yàn)證頭,就像公鑰簽名文本一樣。Gaia服務(wù)將驗(yàn)證此App實(shí)際上被授權(quán)向用戶Gaia寫(xiě)入數(shù)據(jù)。

從 Gaia 中讀取數(shù)據(jù)
1. 獲取zone文件和數(shù)據(jù)
2. 驗(yàn)證zonefile hash 是否匹配用戶公鑰
結(jié)論
Gaia是Blokckstack App的存儲(chǔ)后端。它提供了用戶擁有自己數(shù)據(jù)的能力,但是存儲(chǔ)的數(shù)據(jù)仍然依賴于傳統(tǒng)的DNS服務(wù)和復(fù)雜的云存儲(chǔ)。它還將大多數(shù)用戶設(shè)備無(wú)法處理的計(jì)算負(fù)載強(qiáng)加給用戶。對(duì)于去中心化的互聯(lián)網(wǎng)來(lái)說(shuō),用戶隱私還有很長(zhǎng)的路要走。大多數(shù)用戶還沒(méi)有為這種變化做好準(zhǔn)備。DApp需要對(duì)用戶友好,并使其他人做的工作更少才能成功。
電子發(fā)燒友App













評(píng)論