李斯然
摘?要:集中式計算在一定程度上限制了用戶個人對數(shù)據(jù)的掌控,同時用戶還面臨著數(shù)據(jù)被泄露的危險。這些在SoLiD中都不再是問題,SoLiD是基于分布式的一種讓用戶掌控自己的數(shù)據(jù)的技術(shù),同時圍繞用戶數(shù)據(jù)提供諸如PoD,WebID的服務(wù)。同時基于分布式的情況下,SoLiD也將空閑的CPU充分利用起來,為整個系統(tǒng)提供算力。本文就SoLiD的原理、面臨的挑戰(zhàn)及應(yīng)用的遠景作出介紹。
關(guān)鍵詞:SoLiD PoD,分布式,集中式,去中心化,弱中心化
1.背景
互聯(lián)網(wǎng)的發(fā)展帶動了社交網(wǎng)絡(luò)的發(fā)展。社交網(wǎng)絡(luò)一方面雖然拉近了人與人之間的距離,拓寬了人們的視野;但另一方面,社交網(wǎng)絡(luò)中個人的隱私數(shù)據(jù)泄露的丑聞卻頻頻發(fā)生在諸如Facebook,Google Plus等大公司。萬維網(wǎng)的締造者Tim Berners-Lee 曾發(fā)表文章指出萬維網(wǎng)面臨的三大挑戰(zhàn),他表明我們已經(jīng)失去了對自己個人數(shù)據(jù)的主權(quán),這些數(shù)據(jù)被一些巨頭公司所掌控,而這樣的局面明顯與他發(fā)明萬維網(wǎng)時的初心相違背,因此他提倡我們奪回我們數(shù)據(jù)的主權(quán)。
在這樣的背景下,Tim Berners-Lee 在麻省理工學院啟動了Solid項目。此項目致力于在本質(zhì)上改變web應(yīng)用程序的中心化態(tài)勢。本文就Solid項目中SoLiD技術(shù)的概念,原理,它所帶來的改革以及它的應(yīng)用做介紹
2.SoLiD介紹
萬維網(wǎng)的主要載體是web,web給予了每個人建立自己博客以及網(wǎng)站的自由,正是由于web的自由性和無門檻性,才促進了全球的創(chuàng)新。每個人都可以通過web將自己的想法告訴世界上的每個人。
SoLiD(Social Linked Data社交鏈接數(shù)據(jù)),它是一組協(xié)議和工具,主要用于打造基于關(guān)聯(lián)數(shù)據(jù)的分布式社交應(yīng)用。Solid是可擴展的,它的可擴展性源自于它的模塊化,它盡可能地依賴于現(xiàn)有的w3c標準和協(xié)議。
Solid通過將數(shù)據(jù)與應(yīng)用程序分離來為我們提供真正的數(shù)據(jù)所有權(quán);它模塊化的設(shè)計能夠讓應(yīng)用程序在各個應(yīng)用之間無縫切換而且不會丟失任何數(shù)據(jù)或社交關(guān)系;對于開發(fā)者,在創(chuàng)建新應(yīng)用是,可以復(fù)用現(xiàn)有的數(shù)據(jù),也可以在得到用戶許可的情況下使用其他程序的數(shù)據(jù)。
3.SoLiD所帶來的改變
前面提到Solid 將用戶的數(shù)據(jù)存儲到了PoD中,也就是說用戶作為一個本體(Ontonogy),它的所有屬性及其對應(yīng)的值都存儲到PoD中,而外部的程序需要展示數(shù)據(jù)的時候,就需要請求該用戶的授權(quán),這在一方面提高了用戶對自己數(shù)據(jù)的掌控權(quán),另一方面也降低了不同應(yīng)用程序之間數(shù)據(jù)不可共享的強耦合傳給程度。
此外用戶還可以決定自己生產(chǎn)的數(shù)據(jù)存放在哪里。舉個例子來說,對于博客類的文章應(yīng)用,用戶A的文章被用戶B點贊了,而這個點贊的數(shù)據(jù)會被存儲到A,B雙方的PoD中。
Solid帶來了真正的用戶的數(shù)據(jù)主權(quán),使數(shù)據(jù)可以重復(fù)利用,在一個應(yīng)用程序上生產(chǎn)的數(shù)據(jù)也可以在另一個應(yīng)用程序上使用,這就讓數(shù)據(jù)在應(yīng)用之間流動起來,能夠讓用戶駐留更多時間的不再是某類應(yīng)用所對某類數(shù)據(jù)的壟斷,而是哪個應(yīng)用能提供更好的服務(wù)以及更好的數(shù)據(jù)保護。
4.面臨的問題及解決對策
前面提到Solid要通過弱中心化進而實現(xiàn)去中心化的理想目標。而在弱中心化這一步就會出現(xiàn)許多問題,主要體現(xiàn)在下面兩個方面:
1. 與集中式中心計算相比,單個節(jié)點不僅要解決更難的問題,其所占有的資源也更少。
2. 分布式下,弱中心化數(shù)據(jù)處理比集中式中心的需要更多的算力和更大的網(wǎng)絡(luò)帶寬。
此外現(xiàn)在很多數(shù)據(jù)處理算法并未為弱中心化將產(chǎn)生的數(shù)據(jù)處理需求做好準備。當面臨眾多需要查詢的數(shù)據(jù)集或者當數(shù)據(jù)在越來越多的節(jié)點上傳播時,就會遇到帶寬使用和查詢速度的問題。
為了解決這些問題,通過多方協(xié)作最大化性能的方案[3]被提出。因為每個單獨的個人數(shù)據(jù)存儲以及每個客戶端都會使用自己的CPU,而這些CPU在集中式環(huán)境下往往沒有得到完全的利用。如果在最接近節(jié)點的地方執(zhí)行計算工作,就可以解決由弱中心化而產(chǎn)生的算法復(fù)雜度的提升。這種理念計劃被用于數(shù)據(jù)搜集的階段,當節(jié)點A要搜集有關(guān)數(shù)據(jù)時,節(jié)點B可以幫助節(jié)點A搜集;反過來節(jié)點A也可以幫助節(jié)點B搜集節(jié)點B需要的數(shù)據(jù),而這則需要依賴于一種信任機制來實現(xiàn)。這樣就可以將更大的子查詢并行地委托給10個或者20個節(jié)點,這樣就可以達到通過網(wǎng)絡(luò)動態(tài)地分配查詢。
關(guān)于節(jié)點間的信任機制,通過分布式賬本來描述。當一個節(jié)點為另一個節(jié)點的查詢貢獻帶寬時(成為激勵),節(jié)點之間可能產(chǎn)生不誠信的問題。在弱中心化網(wǎng)絡(luò)中則需要建立一種共識來避免這樣的問題。而分布式賬本則是解決這種問題的一種方式,分布式賬本可以跟蹤目前所進行的工作,從而獲得他人的幫助。一種分布式賬本是區(qū)塊鏈,需要信任過后才具有賬本的寫權(quán)限。一種較新的區(qū)塊鏈項目比如Filecoin,所執(zhí)行的計算較比特幣而言就更加有意義,同時也提供了更加安全的存儲和檢索。
5.應(yīng)用前景
Solid在本質(zhì)上提出介于節(jié)點和去中心化的語義化數(shù)據(jù)網(wǎng)絡(luò)之間的服務(wù)市場,這一點就超過了數(shù)據(jù)市場的想法。所有基于Solid的應(yīng)用程序都依賴于客戶端CPU處于空閑的時間,也就是說,當我們的CPU空閑時,可以將其借給他人使用,而當我們使用CPU來執(zhí)行計算任務(wù)時,也可以將任務(wù)委托給其他人使用。
5.1 身份提供商
身份是一個從計算機存在以來就存在的問題,目前在工業(yè)上的應(yīng)用也比較廣泛,但是目前多數(shù)應(yīng)用的身份都沒有一個統(tǒng)一的標準,盡管某些在某些巨頭公司的生態(tài)下,產(chǎn)生了屬于該生態(tài)的身份協(xié)議,但是就整個互聯(lián)網(wǎng)來看并沒有一個比較統(tǒng)一的規(guī)范,沒有統(tǒng)一的規(guī)范,就導(dǎo)致身份在應(yīng)用中混亂。而Solid就是以身份為基礎(chǔ)的,在Solid中一切都圍繞身份展開:身份是本體具體表達,鏈接數(shù)據(jù)將身份鏈接成網(wǎng)。
5.2 個人數(shù)據(jù)管理平臺
Solid下的數(shù)據(jù)都存儲在PoD中,因此應(yīng)該有一個集中化的軟件來對所有結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的進行管控。這種軟件被稱為模塊化的生產(chǎn)力軟件,其最重要的一個特點是:用文檔來表示所有信息。世界上大部分軟件內(nèi)部的信息組成都是文檔,文檔有著非常豐富的語義。當這類軟件成熟后,將可以用來管理SoLiD中所有的個人數(shù)據(jù)。
6.結(jié)論
在這篇文章中,我們就SoLiD的概念,原理,所帶來的改變,面臨的挑戰(zhàn)及問題做了介紹。總的來說,SoLiD是一種使得用戶能夠管控自己數(shù)據(jù),同時提供高效查詢、計算數(shù)據(jù)的分布式技術(shù)。應(yīng)當指出,SoLiD目前還是一種比較新的技術(shù),相關(guān)協(xié)議和文檔也還有待完善,因此它具有的其他一些功能本文暫時沒有提及,但隨著分布式、云計算的發(fā)展,SoLiD的應(yīng)用前景會更加廣闊,同時SoLiD所帶來的全新的開發(fā)范式,也會在某些程度上會激發(fā)出全球的創(chuàng)新能力。
參考文獻
[1]?Nakamoto,S.(2008),“Bitcoin:A?Peer-to-Peer Electronic Cash System
[2]?Filecoin:A Decentralized Storage Network,Whitepaper.(2017),Protocol Labs