Solid —— 全球資訊網之父的去中心化理想
全球資訊網之父 Tim Berners-Lee 在 2017 年底啟動了Solid 專案,近期又組建了一家名為Inrupt 的公司以推動 Solid 商業化。
Solid 是 Social Linked Data 的縮寫,官方宣稱是一個去 中心化社交平臺 。而 Inrupt 這家公司的使命是“ Re-decentralize the Internet”,即“使網際網路重新去中心化”。簡單來說,現在我們的資料都在各大網際網路巨頭手中,基本上你沒有辦法將其自由匯出,而 Solid 設計了一個名為“Linked Data”的規範使資料可以在網際網路中自由流通。
舉個例子,假如微博和微信同時支援了 Solid 協議,那麼當你發一條朋友圈後,微博也會自動同步。不僅如此,如果你不向微博授權,那麼微博就拿不到你的這部分資料。這就打破了由各巨頭故意建造的資料孤島,也讓資料真正歸創造內容的使用者所有。所以 社交併不是 Solid 的目的 ,只是 Solid 想通過社交促使更多使用者將資料上傳到 Solid 中,從而使完善 Solid 的生態,完成冷啟動的一個階段。
Tim 在中國是不太為人所知的,因為在中國很少談及“全球資訊網”,談的最多的是網際網路。全球資訊網是網際網路的子集,我們現在所訪問的一個個網站,其實就是全球資訊網的一部分。Tim 建立的“全球資訊網聯盟(W3C)”制定了一系列現在 Web 所遵從的規範,包括大眾最熟知的 HTML5(民間稱之為 H5)。而 Tim 本人也是世界上第一個瀏覽器的編寫者,所以他在 2016 年獲得了圖靈獎。當然,他的履歷很豐富,擁有的名譽數不勝數:

他在建立 Inrupt 公司後已向 W3C 委員會提議儘量少參與 W3C 的工作,所以目前基本上是全力參與 Solid 專案的設計、開發和推廣。
我在“ ofollow,noindex" target="_blank">Web 前端技術的發展是否使整個 Web 偏離了全球資訊網的原初設計 ”這篇文章中曾探討過 Web 前端重客戶端的發展是否偏離了 Tim 的原初設想,是在看過 Tim 的傳記之後產生的啟發。現在想想,我們這個世界中,有太多事情沒有按照創造者的原有想法進行下去,反而獲得了更大的爆發。所以,現在的 Web 不一定不是好事。
但是,Tim 是不滿足的。他在全球資訊網中相當於造物主一般的存在(Google、Facebook 不過是造物主下的亞當夏娃),他不滿意他的孩子們割據地盤,人為構造的一個個資料孤島,他要使這個世界重新架起流通的大橋和通行的飛機,讓資料生產者從資料生產中受益,讓隱私問題從根本上解決。他不相信網際網路巨頭,將權力完全下放給了使用者——由使用者決定哪些應用可以讀取使用者的資料,要將資料的所有權完全還歸於使用者。
為了達到這樣一個目的,Solid 還實現了 WebID 這樣一個身份認證系統。使用者註冊完 WebID 後可以用這個賬戶登入所有支援 Solid 的應用。也就是說,如果整個網際網路都支援了 Solid,那麼你只需要一套賬戶密碼就可以通行整個網際網路。擁有了 WebID 之後,使用者還會擁有一個 Pod ,這個 Pod 的作用是儲存所有的使用者資料,你可以把這個 Pod 想象一個網盤,只不過 Pod 內的資料是智慧資料(這個後面再講)。
為了讓 Pod 更去中心化,所以 Solid 開源了由 Node.js 編寫的 solid-server 程式,任何人都可以部署這個程式成為一個 Pod 提供商,從而讓使用者自由選擇 Pod。目前在中國還沒有人部署 solid-server,而鑑於我國的網路環境,訪問美國的 Solid 是比較緩慢的,如果能在國內架設一個便可以解決網路訪問慢的問題。架設 solid-server 不會像挖礦或成為 Filecoin 礦工那樣獲得收益,更多的是基於對 Solid 理念的認可和其他商業考量(舉個例子:流量、品牌建立)。
Solid 是 Tim 發起的專案,自然是遵循現有 W3C 標準的。其大量運用了語義網(現在稱為知識圖譜)的研究成果,比如 Linked Data、Turtle、RDF 等。Turtle 用來編寫 Linked Data,操作 Linked Data 通常使用 rdf.js (一個 JavaScript 框架)。
而這也是 Solid 缺陷最大的一個地方。RDF、Turtle 這套理論過於學術化,嚴重與一線開發者脫節,不利於 Solid 的推廣和應用的開發(門檻略高)。所以在未來,要麼 Solid 放棄 RDF 這一套理論(基本不可能,現在看來是要一條路走到黑),要麼發展出來對開發者更友好的資料操作框架,完全遮蔽 RDF 的細節。
實現基於 Solid 規範的應用後,可以做到應用程式和資料的完全分離。現在我們也常常會說程式和資料分離,不過更多的是軟體開發過程中的資料分離,而不是從應用層面來討論找個事情。不僅如此,如果一個支援 Solid 的應用發展壯大,因為資料是開放的並且有很強的互通性,同一款應用會湧現出更多競品,假如你不喜歡用微信,可以立即換一個比微信更強的軟體,而不用擔心自己的聊天記錄、社交關係因為更換軟體而消失。而且因為資料的互通,使一個軟體的冷啟動變的異常簡單,此時整個開發團隊可以立即考慮使用這些資料做更智慧的事情,從而減輕運營負擔,釋放出更多生產力。而這種資料的重複利用,也是一種資源節約。
最重要的是,這些資料始終由使用者控制、使用者創造,Solid 應用只有使用權。如果你的公眾號被騰訊封掉,也不用擔心文章丟失。微信也不會在協議條款中寫“ 使用者所產生的所有資料歸騰訊所有 ”這種霸王條款了。
最後總結下 Solid 的優缺點。
優點:
- 真正的去中心
- 使用者只需要一套賬號密碼即可通行網際網路
- 使用者對自己的資料擁有完全的控制權
- 使用者可以自由選擇不同的 Solid 應用,不會被微信綁死
缺點:
- 發展處於早期、UI/UX 和使用者體驗非常差
- 對開發者不友好,過於學術化
- 訪問速度較慢
- 技術老舊、小眾
- 和巨頭天然的對抗特性
- 商業化場景目前來看還有限
雖然 Solid 還有很多缺點,但正是這些缺點,給了願意參與這個生態的所有人機會。用 Tim 的一句話結個尾吧:
我一直認為網際網路是大家的。這是我和其他人為保護它而進行激烈鬥爭的原因。我們設法帶來的變革已經創造了更好且更連通的世界。但是,為了所有我們已經獲得的好處,網際網路已經發展成一個不公平和分裂的引擎;受到那些利用它為自己服務的網際網路大佬的影響。
Solid 資源
- 英文資源
- Solid MIT: https:// solid.mit.edu/
- Solid 商業化: https://www. inrupt.com/
- Solid 商業化介紹: https:// solid.inrupt.com/
- Solid 規範: https:// github.com/solid/solid- spec
- Tim 公開信: https://www. inrupt.com/blog/one-sma ll-step-for-the-web
- Get a Solid Pod: https:// solid.inrupt.com/get-a- solid-pod
- 中文資源