社交是明珠,是互聯網各賽道護城河最深的品類,這是因為他具有強大的網絡效應

作者:十四君

封面: Photo by Shubham Dhage on Unsplash

把信息保存一億年左右的方法,他們強調,這是目前已知的唯一可行的方法,它就是——” 羅輯把拐杖高舉過頭,白髮長須舞動著,看上去像分開紅海的摩西,莊嚴地喊道,“把字刻在石頭上!”

—by《三體》

背景

  • 信息如何流傳下去?有著前言中的那句振聾發聵的聲音:把字刻在石頭上!
  • 信息如何不被阻斷?那可以刻在更多的石頭上,越多越好。
  • 信息如何證明所有權?基於橢圓曲線那樣優美的函數,在數學理論上的無限與唯一對應。

這是被串公鑰刷屏一周,無論是在朋友圈還是推特 Facebook,關鍵性事件就是 Twitter 前首席執行官 Jack Dorsey 發推稱,基於去中心化社交協議 Nostr 的社交產品 Damus 和 Amethyst 已分別在蘋果 App Store 和谷歌 Google Play Store 上線,同時網頁端 snort.social 也正式開放,其中 Damus 短短數日用戶數已經突破 72W。

雖然一句話裡涵蓋了很多產品的名詞,不過其實關係很清晰,Nostr 本質是去中心化社交場景的信息傳輸協議,Damus 、Amethyst、snort.social 則是根據該協議開發的第三方應用。

為什麼會有 Nostr 的需求場景?

經歷了反壟斷之年的互聯網群眾們,即痛恨於中心化機構對數據的濫用與侵犯,又無力脫離優秀的應用體驗以及並無選擇性的市場,歸根究底在於社交產品背後是公司為機構在運營,是公司就有接受監管與審查的義務,他所有負責的對像是股東以及註冊地政府,本質上追求的是商業上的成功,而不是言論自由的理想。

而反壟斷的終局古往今來更多是屠龍勇士終成惡龍,既然中心機構做不到,也沒有立場去做,那麼對自由的嚮往便催生出使用代碼來保障自由的去中心化協議:Nostr

Nostr 協議架構

其實 Nostr 非常簡潔明了,可以一言概況:

讓每個人都運行一個客戶端程序,要發布什麼信息時,用自己的私鑰對文本簽名,發送到多個中繼器上。想要獲取信息時,則向各個中繼器問詢。客戶端再對得到的信息,借助其公鑰驗證從而判斷真實性。

角色關係

協議中只有中繼器和客戶端兩種角色

  • relay,作為中繼器可以有任意多個,使命是接受存儲客戶端上報的信息,並依據客戶端請求返回本地查詢結果。
  • client ,便是客戶端也可以有任意多個,存在用戶的設備中,要做的核心是簽名與驗證。

從這樣簡潔的角色關係可以看出,用戶客戶端並不與其他用戶客戶端產生交互關係,並非是 p2p 的形式,而中繼器之間也無需交互他們之間無需信息溝通,這也意味著不存在共識層面的問題。

綜合來講,屬於一種強客戶端,弱服務端(中繼)的結構,多個服務端可以互相替代,從而淡化其重要性,這也是抗審查的基礎,用戶之間對中繼有自主選擇的權利,從而能引發中繼器層面的競爭,更大容量、更快速度、更好網絡激勵以及對垃圾內容的篩選能力。

賬號體系

Nostr 中的身份由公鑰和私鑰組成。因此沒有密碼或唯一的用戶名(或者公鑰即為用戶名),任何人創建新的公私鑰對都是毫無成本的事情,本質上都是已經存在的關係。

圖片

不過與以往的去中心化社交產品顯著區分的是,他全程不上鍊,可以說與鏈本身毫無相關,只是應用了區塊鏈上最常規的公私鑰賬號體係而已。

我們已經可以從很多場景都見到公私鑰的作用了,對於能接受自控私鑰管理風險的用戶而言,是絕佳的賬號武器,前有 EOA 為底,後有 MPC 為優化,更有合約錢包作為目前賬戶抽象 AA 的載體。

可拓展閱讀:以太坊賬戶抽象萬字研報:拆解 10 個相關 EIP 提案與衝擊千萬級日活用戶瓶頸的七年之路

其次在廣大 NFT 玩家面前,也經常遇到各類白名單 Mint,也是基於公私鑰簽名與解簽實現的

可拓展閱讀:當奈飛的 NFT 忘記了 web2 的業務安全

操作行為

Nostr 的 NIP 是一個雷同於以太坊 EIP 提案的機制,而 NIP-01 即說明了每個消息的內容。

咱們從用戶客戶端的視角出發,可以進行下列操作

  • 操作 1、簽名發布信息:EVENT

用戶想要發布信息時,則是用自己本地客戶端存儲的私鑰,對一串內容 content  做簽名,最終生成如下的 json  類型數據

{   "id":< 结构化数据的哈希值>   "pubkey": < 事件创建者的 公钥>,   "created_at": <unix 时间戳>,   "kind":< 种类,可理解为频道>,   "tags":[     ["e", < 另一个事件的 id>, < 推荐的中继器 URL>],     ["p", < 推荐的中继器 URL>],     ... // 未来可能会包含其他类型的标签   ],   "content":< 任意字符串,如 hello world>,   "sig": < 序列化事件数据的 sha256 哈希的 64 字节签名,与"id"字段相同>}

這裡的 id 其實是基於當前內容 [pubkey,created_at,kind,tags,content]組合後用哈希計算得出的,因為有時間戳的參與,所以正常情況下 id 是不會重複的。

  • 操作 2、訂閱目標事件:REQ

作為信息傳輸,有來就有回,指令 REQ 需要向中繼器發送一個隨機 ID 作為訂閱 ID,以及一個過濾器信息。目前協議可支持的設定如下,

{   "ids": < 事件 ID 的列表>,   "authors": < 公钥列表,必选项一>,   "kind":< 种类列表,可理解为频道>,   "#e":<“e” 标签中引用的事件的 ID 列表>,   "#p":<“p” 标签中引用的公钥列表>,   "since": < 时间戳,筛选此时间之后的>,   "until": < 时间戳,筛选此时间之前的>,   "limit": < 要返回的最大事件数>} 从筛选条件来看,基本等同于关注这个功能,既不需要对方许可也能拉取到对方发布的信息(事实上本质都是公开的),而过滤器也只是更好的定义,是谁在什么时间段,发布的那一条
  当然出于中继器这样的设计,有可能部分中继器并没有存储目标用户的信息,那么用户需要尝试从不同的中继器去拉取,一旦中继器挂了,甚至全部相关联的中继器都挂了,那这块信息也就损失了。
  • 操作 3、結束訂閱:CLOSE

最後一種客戶端能對中繼器發起的信息便是 close 指令,即關閉訂閱,那客戶端便不會持續持續獲取到最新的事件信息了。

從技術角度看,此協議使用了訂閱 ID 的模式這意味著中繼器會建立起持續的 websocket  鏈接,一旦此中繼器收到被關注用戶的信息,就會主動向訂閱方的客戶端發起請求來同步,這種模式雖然對中繼器而言負載更高,但同時也能得到實時被關注數這樣的數據,是一種能激勵用戶發布更有價值信息的方式。

並且協議出現多個”e“、”p”, 這類信息雖然並不是必選項,但他能讓各個中繼地址在客戶端之間裂變,傳播,是提升抗審查性的關鍵。

Nostr 的困境與破局之道

通過上文對 Nostr 協議中角色關係、賬號體系、操作行為的梳理,我們已經可以基本理解這樣精簡而優雅的一套傳輸協議的運作原理了。

但是,相比大家同樣也冒出了和十四君一樣的疑問,就這麼簡單嗎?是啊,筆者梳理的過程就彷佛在做大一時候初學計算機網絡的編程課作業一樣,實現個局域網的聊天軟件。

Nostr 的爆發本質上是哲學理念的成功。只定義了最小的必要元素,而放開了控制能力,任何開發者哪怕是大一二的計算機學生都可以去開發一個中繼器服務,低接入門檻帶來的是巨大的體驗競賽。

從文末的拓展鏈接中可見,截止發文已經出現 228 個 github 開源的實現案例,本次並且部分在探索商業化上也體現出十足的創意。

社交場景素來被認為是護城河最深的互聯網品類。其中很多的訴求是需要基於 Nostr 進一步優化後才能解決的。

  • 困境 1、社交隱私問題

目前的 Nostr 中繼器只是簡單 JSON 數據的轉儲。客戶端通過過濾器獲取。這使得 nostr 成為客戶端之間的通用數據共享平台,那對於有隱私信息傳遞需求的場景而言,如何解決呢?畢竟即使是推特這樣的社交廣場也會有私信的需求存在。

目前較優的解決方案是,DH 算法(迪菲-赫爾曼密鑰交換),這套 1976 年問世的算法。它是第一個實用的在非保護信道中創建共享密鑰方法。只要得到共享密鑰,使用 Nostr 的雙方均可以發布加密後的信息,從而實現點對點的隱私通信。由於隱私常有閱後即焚的訴求,所以其中的服務器存儲成本還能進一步降低。

  • 困境 2、抗 DOS 問題

會受到攻擊的是中繼器這一層,目前 Nostr 協議並不直接指導和確定如何讓中繼器抗擊 DOS 攻擊和垃圾信息,因此也是眾多中繼器實現的重點。

從付費出發,因為中繼有著極高的自主性,那麼他可以設置付費條件,即某些中繼服務只允許完成付款的交易才能發佈在上面,有了金融成本便是最好的垃圾信息過濾器。

從工作量證明出發,也可以提高單次發布信息的挖礦成本,雖然 Nostr 和區塊鏈基本無關,但是基於公私鑰以及簽名的賬戶體系,可以讓其在發布的事件中,附帶上要求,比如發布某條 id(基於哈希計算的結果)要達成怎樣的難度(如前 5 位為 0),這樣就是一種既持有信息,又帶有工作量證明的發布方式。

  • 困境 3、高成本存儲與垃圾信息篩選問題

雖然中繼器中間並不需要共享任何信息,但是他們有著共同的訴求即符合用戶意願,提升使用體驗,那麼他們會很樂意共享一些黑名單,以及互相通信收集更多用戶發布的信息,讓自己的庫存越來越大。

對於付出成本的一方,必然有著利益收取的一方,因為網絡視頻圖片等資源的成本高,且無法看到輕鬆降低的能力,必然會出現的是基於收費模式的小網絡,最終 Nostr 是一個個數據孤島,即是可到達的也是需要付出成本的。

最後

雖然眼前 Nostr 爆火,但筆者依舊認為創建去中心化媒體平台的核心問題不是技術難題,而是社交困境。

社交是明珠,是互聯網各賽道護城河最深的品類,這是因為他具有強大的網絡效應,社交圖譜帶來的寡頭效應是特別明顯的,比如包括探探、陌陌等在內大多數社交應用的社交終點其實是微信,讓任何人都很難離開微信沉澱的社交關係。而網絡效應和壟斷優勢很大程度來源於封閉和許可,用戶構建起屬於自己的圈子後,用戶退出這些平台的代價十分高昂,因為不能帶走社交關係和圖譜。

而社交產品十分害怕的是失去聯繫,Nostr 實現了抗審查的中繼器邏輯,卻也帶來了不確定性,消息從發布端到接收端有了一層割裂,3 次握手 4 次揮手的 http 穩定連接建立條件,不可能由用戶手動實現。

社交的訴求中,多數用戶數據的掌控訴求恐怕會弱於用戶的內心需求,早些年 QQ 空間風靡一時,後來轉入移動互聯的時候,與微信朋友圈之間巨大的差異是點贊與評論兩大功能上,熟人可見與全員可見涇渭分明,並且後續的結果也有目共睹。

還有更多 web2 社交平台的優勢就不一一列舉了,目前基於 Nostr 實現的 Damus 等雖然名燥一時,但整體看充斥著各種 bug,良好體驗之路還有很長一段路需要追趕。

參考鏈接:

https://github.com/nostr-protocol/nostr

https://github.com/nostr-protocol/nips/blob/master/01.md

https://bips.xyz/340https://zh.wikipedia.org/wiki/迪菲-赫爾曼密鑰交換

https://github.com/aljazceru/awesome-nostr

【十四君-原創回顧】

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。