聯邦宇宙是什麼?Web3 為何可以加速去中心化社交協議的發展?
去中心化社交是什麼?從早期的聯邦宇宙協議 ActivityPub 和 OStatus,到去年 Nostr 推出與今年的 Lens Protocol v2,去中心化社交網路協議如火如荼發展,這之間有什麼差異?知名創投 1k(x) 認為基於 Web3 技術的社交協議,可能因為區塊鏈技術的特性將可大幅提升去中心化社交產品的使用者體驗。
本文為鏈新聞編譯整理,如有疑義,請參考原文。
去中心化社交產品發展
社群軟體是一個很有趣的說明 Web2 企業如何向用戶收取超額價值的例子。在金錢的利益推動之下,不論是 Facebook、X (Txitter) 或是 Snapchat,都藉由掌握了越來越多的用戶資料而賺取巨額利潤,不過用戶的價值也因此相對被剝奪,再來的發生故事大家都知道。
廣告 - 內文未完請往下捲動
因此,出現了許多嘗試解決此問題的解決方案,從聯邦宇宙到 Web3 去中心化社群協議,都在為提升用戶權利而努力發展。
聯邦宇宙介紹
早在 Web3 這個詞彙出現之前,類似去中心化的概念已經在聯邦宇宙 (fediverse) 中發酵。聯邦宇宙是基於去中心化的替代社交媒體平台,目前知名的聯邦宇宙應用產品包含 Mastodon、Misskey、PeerTube,通常擁有以下特色:
- 資料由使用者控制並在分散式資料庫中傳遞
- 前端由社群維護
- 審核則是社群間的共識
- 演算法則由使用者自行選擇
- 開源
聯邦網路是指由多個獨立伺服器或「節點」協作形成社交網路的系統,而不是由單一組織控制所有伺服器的集中式平台,其實概念就跟現今的區塊鏈是相同的。
聯邦宇宙產品得以出現,都要歸功於聯邦協議 (federated protocol) 的逐漸成熟。在聯邦系統中,每台伺服器都需運行相同的聯邦協議例如 ActivityPub 和 OStatus,才能夠相互通訊。在其中一台伺服器上註冊的用戶可以無縫地關注其他伺服器上的貼文、互動、分享內容,就像在同一平台操作一樣。
使用者可以選擇他們信任的伺服器,可以依照喜好與目的,隨意帶著社群資料遷移到不同的伺服器,甚至可以設定自己的伺服器,因此聯邦宇宙的使用者通常擁有更高的自主權。
而上述聯邦宇宙應用產品,例如 Mastodon,就是建構在聯邦協議之上的應用才得以運行,概念類似於網頁服務建構於 HTTP 之上,或是 Gmail 建構於 SMTP 等協議之上,聯邦協議是社交網路運作的基礎。
ActivityPub 協議讓聯邦宇宙應用得到更廣泛採用,該協議於 2018 年成為 W3C 建議標準。
Web3 所建構的去中心化社交網路
在 web3 產業中,區塊鏈與智能合約的底層設計,先天設計就是為了建構去中心化協議,因此出現了許多類似 ActivityPub 的協議,例如 Lens Protocol 或是 Farcaster,通常建構於區塊鏈的去中心化社交協議有以下特徵:
- 資料都是記錄在去中心化系統中,區塊鏈順勢作為儲存內容的後端伺服器。
- 用戶身分已經由使用者管理的錢包處理完成,用戶能夠輕鬆驗證自己產生的任何內容或行動。
- 使用 NFT 等鏈上資產可以將需要儲存的內容記錄在 metadata 中,也可以作為網域名稱或去中心化身分 (DID)。
由於任何前端都可以索引並提供內容,因此前端層間存在激烈的競爭,促使功能蓬勃發展。另一方面,因為數據是存在於鏈上的,用戶可以選擇前端與演算法,也可考量前端頁面給與什麼優惠措施綜合評估選用,用戶掌握了自身數據與內容的價值。
去中心化社交協議比較
從聯邦宇宙到基於區塊鏈的 Web3 社群協議,這些去中心化社交協議有什麼優劣?為什麼後者有機會提升去中心化社交協議的使用者體驗?1k(x) 提出一些重要的比較面向,以更正確地理解去中心化協議的發展,分別是:
- 身份與命名空間
- 資料格式與互動
- 資料儲存
Web3 協議與 ActivityPub 協議的運作原理類似,都是透過使用者之間的關係來建構社交圖譜,不過因上述三點原因,將可能提升去中心化社交協議的使用者體驗,搭配激勵模型,有機會加速產業發展。
身份與命名空間
命名空間 (namespace) 是程式語言常見的概念,主要用途是可以區分一個變數或是類別名稱的使用範圍,避免名稱相同所造成的編譯衝突。
在聯邦網路和去中心化網路協議中,命名空間的設定為使用者身份與識別碼創造唯一性,目前各種去中心化社交應用有多種創造命名空間的方式:
- 金鑰對:Nostr、Scuttlebutt
- 網址:ActivityPub
- NFT:Lens v2 (ERC-6551)、CyberConnect
- 智能合約管理:Farcaster
金鑰對
以去年發布的 Nostr 為例,用戶利用加密的方式直接創建帳號,優點是可以快速建立帳號且安全性高,但缺點如同現階段大多數加密錢包,無法更改地址除非更換錢包、私鑰保管安全問題等,其中由於所有社群紀錄都與私鑰綁定,因此對於用戶更換帳號將造成一定程度的困擾。
延伸閱讀:被馬斯克封殺、獲Jack Dorsey贊助,去中心化社交協議Nostr是什麼?
網址
ActivityPub 透過唯一的 URI 識別使用者。該 URI 指向用戶的個人資料,作為在聯邦宇宙命名空間中的全域識別碼,為了提升使用者體驗,許多基於 ActivityPub 協議的社交平台通常會使用 Webfinger 系統,允許使用者擁有類似「@[email protected]」格式的識別碼,方便用戶理解。
NFT
Lens Protocol 和 CyberConnect 則是將用戶檔案以 NFT 進行管理。以 Lens的設計來說,一個使用者地址可以保存多個用戶檔案 NFT,代表一個地址可以有多帳號且轉移方便。每個用戶檔案 NFT 封裝了用戶活動的完整歷史記錄,包括貼文、轉發、留言以及其他類型的內容。
另外,Lens 的個人檔案 NFT 支援特殊模組 — FollowModule,根據規則管理粉絲取得 Follow NFT,Follow NFT 用於直接在鏈上記錄與其他用戶的聯繫關係與紀錄。
延伸閱讀:社交協議Lens Protocol V2介紹!四大功能更新,等候名單重新開放
Lens 除了用戶檔案 NFT,還有頭銜機制,可以讓用戶建構類似 X (Twitter) 的「@Alice」社群帳戶名稱,是獨立於用戶檔案 NFT 的另一個獨立命名空間,且由於頭銜是 NFT,因此可以自由於市場交易。
延伸閱讀:搶走@x還不夠!Elon Musk再搶@music用戶名,遭批小偷
智能合約管理
最後一個例子是 Farcaster,Farcaster 的帳戶都有一個唯一的數字串 Farcaster ID (fid),使用以太坊合約 IdRegistry 在鏈上發布和管理用戶檔案。若用戶要創建帳號,須向 IdRegistry 進行交易以取得新的 fid,擁有 fid 的錢包地址就是用戶資料的擁有者,IdRegistry 確保沒有兩個相同的 fid。
Farcaster 還擴展了此命名空間,以支援鏈上或鏈下發布的 ENS 名稱,用戶可以向網路提交簽名,以取得該使用者名稱。
資料格式與互動
資料的創建和標準化是協議重要的基礎。管理資料最常見的技術是使用標準化格式,例如 JSON 物件或是日誌 (log),以定義與紀錄「喜歡」、「跟隨」等用戶社交互動行為,因此社交協議的資料格式通常有以下幾種類別:
- 區別使用者與其他物件:定義主動操作方與被動的物件,前者包含使用者或群組,後者定義內容或是行動 (創建貼文或按讚)。
- 出版內容物件 (Publications):所有種類的貼文或留言內容被封裝為「出版內容」物件,以利不同內容格式的可組合性操作,通常內容物件是透過 URL 連結到外部內容以節省鏈上資源。
- 日誌內容:完整記錄用戶操作,無論是發布還是更新貼文,按順序新增和儲存。
以下個別介紹幾個範例,以了解社交協議如何使用特定資料格式運作與傳輸。
區別使用者與其他物件
在 ActivityPub 中實體被分類為參與者 (通常是使用者或群組) 和物件 (創建內容或按讚等操作),當參與者執行操作時會創建一個活動物件,例如當用戶創建貼文時,該協議會生成一個「創建貼文」物件。
ActivityPub 利用 ActivityStreams 2.0 資料格式 (一種基於 JSON 的資料結構) 來表示用戶各種社交互動,例如創建內容或按讚。協議有兩個主要元件,負責傳輸上述物件資料:
- 客戶端到伺服器 (C2S):C2S 允許使用者透過各種客戶端,與各自的伺服器進行互動。
- 伺服器到伺服器 (S2S):S2S 促進了伺服器之間的訊息傳遞,從而實現穩健的聯邦網路。
出版內容物件
Web3 產品大多採用了 ActivityPub 的許多核心思想,並將之應用到鏈上。
Lens Protocol 引入了出版內容 (Publications) 設計,其封裝各種用戶生成的內容,例如貼文、轉發、留言和其他形式的媒材。每個出版內容都與一個 ContentURI 相關聯,指向內容的儲存外部檔案位置,例如 IPFS 或 AWS S3。
Lens Protocol 等 Web3 社交協議,提供更直接的方法來將用戶的內容和影響力商業化。用戶可以設定 Follow NFT 的鑄造進行收費,代表其他用戶若想要追蹤,則需要支付費用;用戶也可以選擇將 Collect Modules 與其出版內容整合,允許收取與其出版內容連結的 NFT 鑄造費用 (出版內容本身不是 NFT)。
日誌內容
CyberConnect 以資料流 (data stream) 表示每個「用戶行動紀錄」,只有資料擁有者 (對應用戶) 才允許更新,資料的每次更新都以附加日誌的形式更新到資料流,資料類型包括內容、收藏、留言和訂閱,以 Merkle DAG 的雜湊連結資料結構。
Scuttlebutt 也使用類似機制,使用附加日誌的方式紀錄資料。每個使用者都有自己的日誌,每個新訊息或操作在由使用者的 Ed25519 金鑰簽署後都會附加到末尾。
另外,Scuttlebutt 還支援共享二進位數據 blob。可以是圖像、影片或任何其他二進位內容。Blob 將與附加日誌分開存儲,但對這些 Blob 的引用雜湊可以包含在日誌中。
資料儲存
除了用戶名稱與資料紀錄與互動的方式比較之外,用戶產生的內容該如何儲存也是去中心化社交協議最關鍵的議題。
點對點網路儲存
去中心化協議早期資料儲存方法主要是依靠鏈下設備。
Scuttlebutt 使用點對點網絡,將資料放在用戶的本地設備上,這種方法雖然確保了資料主權,使用者可以完全控制自己的資訊,但是資料可用性取決於使用者或其他具有資料副本的裝置是否在線上,且為了增加儲存空間使用效率,有些 Scuttlebutt 用戶端可能會刪除較少用到的資料。
因此,點對點網路以儲存的用途來說,並不是非常適合用在去中心化社群的產品上。
伺服器儲存
以 Matrix 協議為例,Matrix 可以為多個伺服器儲存歷史記錄的副本並相互同步。當某個使用者發送訊息或記錄任何事件時,伺服器會將該事件廣播到其他參與的區域網路伺服器,然後這些伺服器會儲存該事件並將其轉發到其連接的用戶端。
ActivityPub 讓網路中的每個實體或伺服器儲存其數據,通常儲存在資料庫中。資料庫的類型選擇取決於 ActivityPub 軟體的具體實作,例如主流的 ActivityPub 平台 Mastodon 使用 PostgreSQL 資料庫。
此機制行之有年,也是目前主流的方式,不過各協議需要考量伺服器的數量以確保協議運作。
區塊鏈儲存
Cyberconnect、Farcaster 和 Lens 等協議皆採用區塊鏈進行資料儲存。鏈上儲存確保資料的不可變性和可驗證性,使用區塊鏈底層共識機制同步狀態。當然,這種方法會面對可擴展性的挑戰,每筆資料都需要儲存在鏈上,導致高昂的交易費用和較慢的檢索時間。
因此許多 Web3 社交協議嘗試混合的方法。使用鏈上存儲不太頻繁的操作資料,例如個人資料或是訂閱內容;而使用鏈下存儲高頻事件,例如點讚、轉發、留言;或以頻繁的間隔批次上傳資料到鏈上,將鏈下儲存視為臨時的權宜之計。
CyberConnect 為有效處理用戶社交圖譜連結關的頻繁更新,在分散式資料庫中採用 hash-linked list 設計,當用戶啟動連線時會自動建立操作日誌 (operation log),後續狀態變更時 (例如在用戶追蹤和取消追蹤之間切換),新增更新至日誌並儲存在中央伺服器上,定期批次上傳到去中心化儲存平台。
Farcaster 也採用混合機制,鏈上合約用於不頻繁的操作,例如帳戶資料、使用者名稱、儲存和金鑰;鏈下系統用於性能要求高的頻繁操作,例如用戶創建的訊息。
Web3 將加速去中心化社交採用率
在 Web3 浪潮的推動下去中心化社交將加速發展。公私密鑰對相關產品受到加速採用,有助於讓市場更廣泛地理解去中心化身份、開放協議甚至多元宇宙等概念,以及意識到 Web2 社交媒體公司的審查和資料安全問題。
基於 Web3 概念與技術的社交協議,有望徹底改變去中心化社交產品的使用者體驗。區塊鏈技術本身就是為開放協議而誕生的,不論是利用 NFT 或是模組化網路,在命名空間、資料結構、儲存等各面向皆優於過往體驗,有助於加速市場大規模採用。
理解上述技術,對於產業理解與概念非常有幫助,不過千萬不要忘記,從過往的聯邦宇宙到現今的 Web3 社群產品,雖然其技術不斷迭代與更新,但是最終的目的都是為了讓用戶可以更自由的與人交流,抓住此信念看待發展可看到更清晰的脈絡。