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