一文了解 nostr :一個讓 Elon Musk 感到害怕的去中心化社交協議

撰文:git-sgmoore 和 fiatjaf (nostr)

編譯:DeFi 之道

注:近期一個名為 nostr 的去中心化社交協議獲得了比特幣社群的追捧,這引來了 Twitter 現任 CEO Elon Musk 爭議性的封殺政策,同時讓 Twitter 前任 CEO Jack Dorsey 自掏 14 BTC 為其提供資助,那 nostr 到底有什麼魔力 ?

Twitter 的最新禁止政策

根據介紹,nostr 是一個最簡化的協議,它能夠一勞永逸地建立一個抗審查的全球“社交”網路。

nostr 不依賴於任何受信中央伺服器,其基於密碼學金鑰和簽名,並且不依賴於 P2P 技術,它也不會發行 token。

那它的運作原理是怎樣的呢?簡單來說:每個人都執行一個客戶端,這可以是本機客戶端、Web 客戶端等。要釋出某些內容(比如一個帖子),你要用你的金鑰對其簽名,並將其傳送到多箇中繼器(由其他人或你自己託管的伺服器)。要從其他人那裡獲得更新,你可以詢問多箇中繼器是否瞭解這些其他人。任何人都可以執行中繼器,這是非常簡單的,除了接受某些人的帖子並轉發給其他人之外,它什麼都不做。我們也不需要信任中繼器,簽名是在客戶端進行驗證的。

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 版規則;
  • 它堅持從單個使用者那獲得一連串的更新,這對我來說是不必要的,而且會增加內容的臃腫和僵化程度——每個伺服器/使用者都需要儲存所有的帖子鏈,以確保新的帖子是有效的。為什麼要這麼做 ?(也許他們有很好的理由);
  • 它不像 Nostr 那樣簡單,因為它主要是為 P2P 同步而設計的;
  • 不過,可能值得考慮使用 SSB 而不是這種自定義協議,並僅使其適應客戶端中繼伺服器模型,因為重用標準總是比嘗試讓人們使用新標準更好。

4、其他要求執行伺服器方案的問題

  • 他們要求每個人都執行自己的伺服器;
  • 有時人們仍然會在這些方面受到審查,因為域名可能會受到審查;

二、Nostr 的執行原理

  • Nostr 有兩個元件:客戶端和中繼器。每個使用者執行一個客戶端,任何人都可以執行中繼器。
  • 每個使用者都由公鑰標識,每個帖子都有簽名,每個客戶端都會驗證這些簽名。
  • 客戶端從他們選擇的中繼器獲取資料,並將資料釋出到他們選擇的其他中繼器。中繼器不與另一箇中繼器通訊,僅直接與使用者通訊。
  • 例如,要“關注”某人,使用者只需指示他們的客戶端查詢它知道的中繼器,以獲取來自該公鑰的帖子。
  • 在啟動時,客戶端從它知道的所有中繼器中查詢它所關注的所有使用者的資料(例如,從最近一天開始的所有更新),然後按時間順序向使用者顯示該資料。
  • “帖子”可以包含任何型別的結構化資料,但最常用的資料將進入標準,以便所有客戶端和中繼器可以無縫地處理它們。

三、Nostr 如何解決其他方案無法解決的問題?

問題1:使用者被禁止,伺服器被關閉

中繼器可以阻止使用者在它那裡釋出任何內容,但這對使用者來說沒有影響,因為他們仍然可以將內容釋出到其他中繼器。由於使用者是通過公鑰識別的,因此當他們被禁止時,他們不會失去他們的身份以及粉絲基礎。

不需要使用者手動輸入新的中繼器地址(雖然這也應該被支援),每當你關注的人釋出伺服器推薦時,客戶端應該自動將其新增到它將查詢的中繼器列表中。

如果有人正在使用一箇中繼器來發布他們的資料,但想要遷移到另一箇中繼器,他們可以向之前的中繼器釋出一個伺服器推薦,然後離開;

如果有人被很多中繼器禁止,以至於他們無法廣播他們的伺服器推薦,他們仍然可以通過其他方式讓一些親密的朋友知道他們現在正在釋出到哪個中繼器。然後,這些親密的朋友可以向新伺服器釋出伺服器推薦,慢慢地,被禁使用者的舊粉絲群將開始從新的中繼器中再次找到他們的帖子。

當中繼器停止工作時,上述所有規定也都是有效的。

問題2: 抗審查

每個使用者都可以將他們的內容更新發布到任意數量的中繼器。

中繼器可以向使用者收取費用(目前費用的協商不在協議範圍內)以在那裡釋出,這確保了抗審查性。

問題3:垃圾資訊

如果垃圾資訊是中繼器要關注的一個問題,它可以要求為釋出付費或其他形式的身份驗證(如電子郵件地址或電話),並將這些在內部與公鑰相關聯,然後將其釋出到該中繼器或使用其他反垃圾資訊科技(如 hashcash 或驗證碼)。如果一箇中繼器被用作垃圾資訊載體,它很容易被客戶端取消,客戶端可以繼續從其他中繼器獲取更新。

問題4: 資料儲存

為了讓網路保持健康,不需要數百個活躍的中繼器。事實上,它只需要少數幾個就可以很好地工作,因為在現有中繼器開始出錯的情況下,可以很容易地建立新的中繼器,並在網路中傳播。因此,所需的資料儲存量在一般情況下,要比 Mastodon 或類似軟體要少。

或者考慮一個不同的結果:其中存在數百個由業餘愛好者執行的利基中繼器,每個負責一小群使用者的更新中繼工作。這種架構也可以擴充套件:資料從使用者傳送到單個伺服器,然後從該伺服器直接傳送到將使用該資料的使用者。它不必由其他任何人儲存。在這種情況下,對於任何單個伺服器來說,處理來自其他伺服器的更新都不是很大的負擔,擁有業餘伺服器也不是問題。

問題5:視訊等重內容

中繼器很容易拒絕大資料的內容,或者對接受和託管大資料內容收費。當資訊和激勵明確時,市場力量很容易解決這個問題。

問題6:顯示方式

每個客戶端都可以決定如何最好地向使用者顯示帖子,比如使用人工智慧來決定你將看到的更新的順序,到只是按時間順序閱讀它們。

四、FAQ

1、這很簡單,那為什麼以前沒有人這樣去做?

答:我不知道,但我想這與以下事實有關:建立社交網路的人要麼是想要賺錢的公司,要麼是想完全沒有伺服器就做東西的 P2P 積極分子,他們都沒有看到 Nostr 使用的兩個世界的特定組合。

2、我如何找到要關注的人?

答:首先,你必須瞭解他們,並以某種方式獲得他們的公鑰,無論是通過詢問還是在某處看到。 進入 Nostr 社交網路後,你就可以看到他們與其他人的互動,然後你也可以開始關注這些人並與之互動。

3、我怎麼找到中繼器?如果我沒有和別人連線到相同的中繼器會發生什麼?

答:你將無法和那個人交流。但是可以使用事件提示,以便你的客戶端軟體(或你手動)知道如何連線到其他人的中繼器並與它們互動。未來也有其他的想法來解決這個問題,但我們永遠不能保證完美的可達性,任何協議都不能。

4、我可以知道有多少人在關注我嗎?

答:不,但是如果中繼器以額外的協議方式協作,你可以獲得一些估計值。

5、人們執行中繼器的動機是什麼?

答:這個問題具有誤導性,它假設中繼器是免費的,人們可以通過它們移動資料。是的,在這種情況下,激勵機制並不存在。這實際上也適用於所有其他 p2p 網路堆疊中的 DHT 節點 : 人們有什麼動機去執行 DHT 節點?

6、如果中繼器只是在 AWS 或 Azure 上,那又有什麼區別?

答:今天,全球有成千上萬的 VPS 提供商,而不僅僅是 AWS 或 Azure 這兩家。AWS 或 Azure 正是大規模的單一中心化服務提供商所使用的提供商,而對於較小的中繼伺服器,任何 VPS 都可以很好地完成這項工作。

協議規範

請參閱 NIP‌,尤其是 NIP-01,以獲得對協議規範的合理詳細解釋(提示:它非常簡短)。

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論