近期一個名為 nostr 的去中心化社交協議獲得了比特幣社區的追捧,這引來了 Twitter 現任 CEO Elon Musk 爭議性的封殺政策,同時讓 Twitter 前任 CEO Jack Dorsey 自掏 14 BTC 為其提供資助,那 nostr 到底有什麼魔力?本文源自 git-sgmoore 和 fiatjaf(nostr),由 DeFi 之道 編譯、整理。
(相關補充:逃脫推特》馬斯克發起「是否辭職Twitter」投票、將禁止FB、IG免費打廣告)
根據介紹,nostr 是一個最簡化的協議,它能夠一勞永逸地創建一個抗審查的全球 「社交」網路。
nostr 不依賴於任何受信中央伺服器,其基於密碼學密鑰和簽名,並且不依賴於 P2P 技術,它也不會發行 token。
那它的運作原理是怎樣的呢?
簡單來說:每個人都運行一個客戶端,這可以是本機客戶端、Web 客戶端等。要發布某些內容(比如一個Post),你要用你的密鑰對其簽名,並將其發送到多個中繼器(由其他人或你自己託管的伺服器)。要從其他人那裡獲得更新,你可以詢問多個中繼器是否了解這些其他人。任何人都可以運行中繼器,這是非常簡單的,除了接受某些人的 Post 並轉發給其他人之外,它什麼都不做。我們也不需要信任中繼器,簽名是在客戶端進行驗證的。
1、如何開始使用 Nostr
2、Nostr 客戶端功能比較
3、基於 Nostr 的項目列表
一、其他解決方案存在的問題
1、Twitter 的問題
- Twitter 有廣告;
- Twitter 使用奇怪的技巧讓你上癮;
- Twitter 不會顯示你關注的人的真實歷史動態;
- Twitter 會禁止某些人的帳戶;
- Twitter 會使用影子禁令(Shadowbans).
- Twitter 有很多垃圾資訊;
2、Mastodon 和類似應用的問題
- 用戶身份附加在第三方控制的域名上;
- 伺服器所有者可以像 Twitter 一樣禁止你,伺服器所有者也可以阻止其他伺服器;
- 伺服器之間的遷移是事後才考慮的,只有在伺服器協作的情況下才能完成。它在對抗環境中不起作用(所有追隨者都會丟失);
- 運行伺服器沒有明確的動機,因此它們往往由愛好者以及希望將自己的名字附加到一個很酷的域名上的人來運行的。然後,用戶受制於一個人的專制,這往往比 Twitter 這樣的大公司還要糟糕,他們無法遷移出去;
- 由於伺服器往往是業餘的,它們經常在一段時間後被拋棄 —— 這實際上等同於禁止所有人;
- 如果每台伺服器的更新都必須痛苦地推送 (和保存!) 到大量其他伺服器,那麼擁有大量伺服器就沒有意義了;這一點由於伺服器數量龐大而加劇,因此更多的數據必須更頻繁地傳遞到更多的地方;
- 對於影片共享的具體範例,ActivityPub 愛好者意識到完全不可能像文本註解那樣在伺服器之間傳輸影片;
3、SSB(Secure Scuttlebutt)的問題
- 它沒有太多問題,我認為這很棒。事實上,我打算以此為基礎,但是它的協議太複雜了,因為它根本就沒有被認為是一個開放的協議。它只是用 JavaScript 編寫的,可能是一種快速解決特定問題的方法,因此它有奇怪和不必要的怪癖,比如簽署一個 JSON 字符串,其必須嚴格遵守 ECMA-262 第 6 版規則;
- 它堅持從單個用戶那獲得一連串的更新,這對我來說是不必要的,而且會增加內容的臃腫和僵化程度 —— 每個伺服器 / 用戶都需要存儲所有的 Post 鏈,以確保新的 Post 是有效的。為什麼要這麼做?(也許他們有很好的理由);
- 它不像 Nostr 那樣簡單,因為它主要是為 P2P 同步而設計的;
- 不過,可能值得考慮使用 SSB 而不是這種自定義協議,並僅使其適應客戶端中繼伺服器模型,因為重用標準總是比嘗試讓人們使用新標準更好。
4、其他要求運行伺服器方案的問題
他們要求每個人都運行自己的伺服器;
有時人們仍然會在這些方面受到審查,因為域名可能會受到審查;
二、Nostr 的運行原理
Nostr 有兩個組件:客戶端和中繼器。每個用戶運行一個客戶端,任何人都可以運行中繼器。
每個用戶都由公鑰標識,每個 Post 都有簽名,每個客戶端都會驗證這些簽名。
客戶端從他們選擇的中繼器獲取數據,並將數據發佈到他們選擇的其他中繼器。中繼器不與另一個中繼器通信,僅直接與用戶通信。
例如,要 「關注」某人,用戶只需指示他們的客戶端查詢它知道的中繼器,以獲取來自該公鑰的Post。
在啟動時,客戶端從它知道的所有中繼器中查詢它所關注的所有用戶的數據(例如,從最近一天開始的所有更新),然後按時間順序向用戶顯示該數據。
「Post」可以包含任何類型的結構化數據,但最常用的數據將進入標準,以便所有客戶端和中繼器可以無縫地處理它們。
三、Nostr 如何解決其他方案無法解決的問題?
問題 1:用戶被禁止,伺服器被關閉
中繼器可以阻止用戶在它那裡發布任何內容,但這對用戶來說沒有影響,因為他們仍然可以將內容髮佈到其他中繼器。由於用戶是透過公鑰識別的,因此當他們被禁止時,他們不會失去他們的身份以及粉絲基礎。
不需要用戶手動輸入新的中繼器地址(雖然這也應該被支援),每當你關注的人發布伺服器推薦時,客戶端應該自動將其添加到它將查詢的中繼器列表中。
如果有人正在使用一個中繼器來發布他們的數據,但想要遷移到另一個中繼器,他們可以向之前的中繼器發布一個伺服器推薦,然後離開;
如果有人被很多中繼器禁止,以至於他們無法廣播他們的伺服器推薦,他們仍然可以透過其他方式讓一些親密的朋友知道他們現在正在發佈到哪個中繼器。然後,這些親密的朋友可以向新伺服器發布伺服器推薦,慢慢地,被禁用戶的舊粉絲群將開始從新的中繼器中再次找到他們的Post。
當中繼器停止工作時,上述所有規定也都是有效的。
問題 2: 抗審查
每個用戶都可以將他們的內容更新發佈到任意數量的中繼器。
中繼器可以向用戶收取費用(目前費用的協商不在協議範圍內)以在那裡發布,這確保了抗審查性。
問題 3: 垃圾資訊
如果垃圾資訊是中繼器要關注的一個問題,它可以要求為發布付費或其他形式的身份驗證 (如電子郵件地址或電話),並將這些在內部與公鑰相關聯,然後將其發佈到該中繼器或使用其他反垃圾資訊技術(如 hashcash 或驗證碼)。如果一個中繼器被用作垃圾資訊載體,它很容易被客戶端取消,客戶端可以繼續從其他中繼器獲取更新。
問題 4: 數據存儲
為了讓網路保持健康,不需要數百個活躍的中繼器。事實上,它只需要少數幾個就可以很好地工作,因為在現有中繼器開始出錯的情況下,可以很容易地創建新的中繼器,並在網路中傳播。因此,所需的數據存儲量在一般情況下,要比 Mastodon 或類似軟體要少。
或者考慮一個不同的結果:其中存在數百個由業餘愛好者運行的利基中繼器,每個負責一小群用戶的更新中繼工作。這種架構也可以擴展:數據從用戶發送到單個伺服器,然後從該伺服器直接發送到將使用該數據的用戶。它不必由其他任何人存儲。在這種情況下,對於任何單個伺服器來說,處理來自其他伺服器的更新都不是很大的負擔,擁有業餘伺服器也不是問題。
問題 5:影片等重內容
中繼器很容易拒絕大數據的內容,或者對接受和託管大數據內容收費。當資訊和激勵明確時,市場力量很容易解決這個問題。
問題 6:顯示方式
每個客戶端都可以決定如何最好地向用戶顯示Post,比如使用人工智能來決定你將看到的更新的順序,到只是按時間順序閱讀它們。
四、FAQ
1、這很簡單,那為什麼以前沒有人這樣去做?
答:我不知道,但我想這與以下事實有關:創建社交網路的人要麽是想要賺錢的公司,要麽是想完全沒有伺服器就做東西的 P2P 積極分子,他們都沒有看到 Nostr 使用的兩個世界的特定組合。
2、我如何找到要關注的人?
答:首先,你必須了解他們,並以某種方式獲得他們的公鑰,無論是透過詢問還是在某處看到。進入 Nostr 社交網路後,你就可以看到他們與其他人的互動,然後你也可以開始關注這些人並與之互動。
3、我怎麼找到中繼器?如果我沒有和別人連接到相同的中繼器會發生什麼?
答:你將無法和那個人交流。但是可以使用事件提示,以便你的客戶端軟體(或你手動)知道如何連接到其他人的中繼器並與它們交互。未來也有其他的想法來解決這個問題,但我們永遠不能保證完美的可達性,任何協議都不能。
4、我可以知道有多少人在關注我嗎?
答:不,但是如果中繼器以額外的協議方式協作,你可以獲得一些估計值。
5、人們運行中繼器的動機是什麼?
答:這個問題具有誤導性,它假設中繼器是免費的,人們可以透過它們移動數據。是的,在這種情況下,激勵機制並不存在。這實際上也適用於所有其他 p2p 網路堆棧中的 DHT 節點:人們有什麼動機去運行 DHT 節點?
6、如果中繼器只是在 AWS 或 Azure 上,那又有什麼區別?
答:今天,全球有成千上萬的 VPS 提供商,而不僅僅是 AWS 或 Azure 這兩家。AWS 或 Azure 正是大規模的單一中心化服務提供商所使用的提供商,而對於較小的中繼伺服器,任何 VPS 都可以很好地完成這項工作。
協議規範
請參閱 NIP,尤其是 NIP-01,以獲得對協議規範的合理詳細直譯(提示:它非常簡短)。
(本文由作者 DeFi 之道授權,屬作者之觀點不代表動區立場。文章內容與觀點亦不是投資建議。)
📍相關報導📍
盤點10個 SocialFi 潛力項目》社交金融將成Web3.0風口? : Mirror Matters RSS3…
V神預測「2023 年三大機會」:錢包普及、抗通膨穩定幣、以太坊登入
深論|是什麼賦予了比特幣價值?打破人類認知極限,讓「社交可擴展性」再延伸