這是一個介紹 Nostr 協議的系列文章,在之前的文章中我們介紹了它的來歷、它的基本用法,在這一篇我們將講述它的工作原理,以及對 nostr 網絡的一些思考。
💡 奇怪而有趣的是,加泰羅尼亞語中的 “nostre” 和拉丁語中的 “noster” 意思是 “我們的”。
Nostr 協議不指定編程語言、平台、數據庫等,這允許開發人員在設計和實現中繼時完全自由。這吸引了各行各業的開發者和愛好者。目前有 C#、Rust、Go、Java、Python、Kotlin、JavaScript、TypeScript 和 Clojure 的實現。這些中繼實現使用 SQLite 或 PostgreSQL 作為它們的數據庫。
Nostr 協議的基礎元素#
在 Nostr 協議組成的網絡中,我們可以簡化出一個最小元素的模型,基本元素包括:用戶、客戶端 client、中繼器 Relay。三個元素之間的關係可以表示為:
-
用戶使用 client,發布和查看內容(event 形式傳輸),需要簽名時在客戶端完成簽名。
-
client 將內容發送給 Relay 傳輸出去,同時接受 Relay 傳輸過來的內容,Relay 僅完成對消息的轉發。
我們會發現,client 不與 client 直接發生交流,Relay 也不與 Relay 發生交流。
如上圖所示,用戶 1 使用 client1 、client2 發送消息,用戶 1 使用 client1 訂閱了 Relay1 和 Relay2,所以 client1 發送出去的消息會被 Relay1 和 Relay2 同時往外廣播;用戶 2 如果作為消息接收者,TA 可以通過 client1 和 client2 來接收消息,因為用戶 2 用 client1 訂閱了 Relay1 和 Relay2,所以 TA 可以通過 client1 查看來自 Relay1 和 Relay2 廣播的消息,而用戶 2 在 client2 只訂閱了 Relay2 所以 client2 只能接收到 Relay2 廣播的消息。
到這裡我們可以發現一個現象,那就是中繼 Relay 只負責將 client 發送的消息傳輸出去,並不會對消息做任何改動,消息(編輯、處理、顯示)、用戶操作(關注、拉黑、取關、zap)都是在 client 上完成的,這也就是 Nostr 協議非常重要的一個發展原則:“笨中繼,智能客戶端”。
你客戶端運行的速度取決於你連接的中繼器,因此你可以連接更多中繼器以保證使用 Nostr 網絡時有流暢的體驗,當更多中繼轉發我們客戶端發送的內容時,客戶端使用體驗更好。 當你連接的所有中繼都斷開時,你將找不到你賬戶發布的所有內容,除非你再次連接這些中繼。如果你想確保自己的數據一直保存,你也可以運營自己的中繼器,這是指南 https://andreneves.xyz/p/set-up-a-nostr-relay-server-in-under
Nostr 協議的優點及應用場景#
Nostr 協議的優點:#
在這樣的發展原則下,就會帶來以下幾點的優點:
-
實現言論自由
中繼可以阻止用戶在那裡發布任何內容,但這對他們沒有影響,因為他們仍然可以發布到其他中繼。由於用戶是通過公鑰識別的,因此當他們被禁止時,他們不會失去他們的身份和他們的追隨者基礎。 不需要用戶手動輸入新的中繼地址(雖然這也應該被支持),每當你關注的人發布伺服器推薦時,客戶端應該自動將其添加到它將查詢的中繼列表中。 如果有人正在使用一個中繼發布他們的數據但想遷移到另一個中繼,他們可以發布一個伺服器推薦到之前的中繼中去;
如果某人被多次中繼禁止,以至於他們無法廣播他們的伺服器推薦,他們仍然可以通過其他方式讓一些親密的朋友知道他們現在正在哪個中繼發布。然後,這些密友可以連接該新伺服器查看好友發布的內容,慢慢地,被禁用戶的老粉絲群將開始從新中繼重新找到他們的帖子。 當繼電器停止操作時,上述所有內容也有效。
在這樣的系統中,我們只要保存好自己的私鑰和公鑰,就不用擔心會被內容平台封鎖賬號,我們的發言權將重新回歸到自己手中。
-
抗審查
每個用戶都可以將他們的更新發布到任意數量的中繼。 中繼可以向用戶收取費用(目前該費用的協商不在協議範圍內)以在那裡發布,這確保了審查抵抗。
-
防止垃圾郵件
如果垃圾郵件是中繼的一個問題,它可能需要支付發布費用或一些其他形式的身份驗證,例如電子郵件地址或電話,並將這些在內部與公鑰相關聯,然後發布到該中繼 —— 或其他反垃圾郵件技術,如 hashcash 或驗證碼。如果中繼被用作垃圾郵件載體,它很容易被客戶端取消列出,客戶端可以繼續從其他中繼獲取內容更新。
-
更優雅的數據存儲
為了讓網絡保持健康,不需要數百個活躍的中繼。事實上,考慮到在現有中繼開始出現異常時可以輕鬆創建新中繼並通過網絡傳播這一事實,它只需少數幾個就可以正常工作。因此,所需的數據存儲量通常比 Mastodon 或類似軟件要少。 或者考慮一個不同的結果:其中存在數百個由業餘愛好者運行的利基中繼,每個中繼都有一小群用戶更新的內容。該體系結構也可以擴展:數據從用戶發送到單個伺服器,然後從該伺服器直接發送到將使用該數據的用戶。它不必由其他任何人存儲。在這種情況下,任何一台伺服器處理來自其他伺服器的更新都不是很大的負擔,擁有業餘伺服器也不是問題。
-
傳輸視頻等內容
中繼很容易拒絕大型內容,或者在接受和托管大型內容時收費。當信息和激勵措施明確時,市場會產生專門的視頻服務商來實現視頻等文件的傳輸中繼,這將促進新的商業服務的形成。
-
用戶掌握自己的信息流
每個客戶端都可以決定如何最好地向用戶顯示帖子,因此用戶始終可以選擇以自己想要的方式查看內容 —— 從使用 AI 來決定看到的更新順序 或者 按時間順序排序內容。
Nostr 協議的應用場景:#
Nostr 的設計理念是有一天它可以取代 Twitter 作為一個平台,但除此之外,它還可以用於以下應用場景:
- 直接和即時消息
- 公共聊天室
- 新聞頻道
- 論壇
- 網站
- 代碼庫
- 虛擬社區
- 遊戲(西洋跳棋、國際象棋)
- 實時協作
- 優步克隆
- RSS 閱讀器
- 投幣
- 自動化和家庭自動化
- 表決
- 從其他社交網絡到 Nostr 的橋樑(電子郵件、Twitter、Mastodon 等)
- 更多功能,期待大家一起去探索
中繼的分類#
任何人都可以開發並運營一個自己的中繼,目前已經有人運營中繼來實現盈利。對於中繼的分類,並沒有官方的說明,市面上的中繼大致上可以分為三類:
- 普通中繼:任何人都可以在上面發布內容,相當於一個公共廣場,沒有對發布的內容進行任何過濾,所以整體信息質量低,內容參差不齊;
- 付費中繼:有一定的進入門檻,需要付費或者一定的註冊流程,會實現一定的內容過濾,但是並不意味著沒有垃圾內容。
- 封閉中繼:只有指定的用戶才可以加入其中,是一個內部小圈子專用。比如組織、公司、俱樂部自用中繼
當然,對於更多人來說第一種和第二種中繼足以滿足我們的需要,你可以在這裡查看現有的中繼器 https://nostr.watch/relays/find
關於 Nostr 的一些思考#
經濟系統#
Nostr 協議網絡從一開始就引入了 lightning 閃電網絡,讓整個 nostr 網絡原生就帶有一種經濟 “基因”,那麼接下來的工作就是探索可以實現經濟交流的業務場景,然後對應該場景開發相應的功能。
就目前 client 普遍有的功能來說,一個可以發展出經濟系統的功能就是 zap,當任何人表達自己的喜歡時,不是用 “like” 而是用 “ZAP”,發送一定數額的 sat 來支持你喜歡的內容時,創作者經濟將會獲得成長的可能,當更多人自然的打賞自己欣賞的內容時,打賞文化將在 nostr 網絡中傳播,創作者受到激勵將輸出更高質量的內容,商業飛輪將轉動起來。
生態建設#
Nostr 並不是一個應用,它是一個通信協議,就像是地下河一樣,我們可以在它之上種各種各樣的植物(搭建屬於自己的應用來實現各種各樣的功能)從而發展一片森林。我們可以想像基於 nostr 協議將發展出豐富的應用生態。據我在 nostr 開發者群組的觀察以及對 GitHub 上 nostr 相關項目的調研發現,開發者的熱情還是很高的,他們在快速的開發和迭代新的應用及功能,如果這些開發持續下去的話,nostr 生態必然在不久的將來迎來一波爆發。
當然,也有一些問題需要我們留意,比如很多項目功能相似度高,浪費了生態發展的更多可能性。
總得來說,開發者是 nostr 網絡發展的根本,有好的應用才能支撐更豐富的功能的實現,而目前的開發者激勵是缺失的,開發者都在用愛發點。每一個開發者在開發之前可能要試著去思考如何實現商業化,這不僅有利於自己應用更長遠的發展,當更多開發者思考商業模式的時候,整個生態的商業可能性才能被開發出來,這將推動整個生態商業市場的繁榮,進而推動 nostr 網絡的發展和普及。
*你還可以在這些地方找到我 *:
即刻:hoodrh
Mirror:Hoodrh
Twitter: Hoodrh
Nostr: npub1e9euzeaeyten7926t2ecmuxkv3l55vefz48jdlsqgcjzwnvykfusmj820c
如果你喜歡這裡,可以通過閃電網絡打賞我 :)