文|git-sgmoore 和 fiatjaf (nostr)
編譯|巴比特資訊 DeFi 之道 隔夜的粥
注:近期一個名為 nostr 的去中心化社交協(xié)議獲得了比特幣社區(qū)的追捧,這引來了 Twitter 現(xiàn)任 CEO Elon Musk 爭議性的封殺政策,同時讓 Twitter 前任 CEO Jack Dorsey 自掏 14 BTC 為其提供資助,那 nostr 到底有什么魔力?
Twitter 的最新禁止政策
根據(jù)介紹,nostr 是一個最簡化的協(xié)議,它能夠一勞永逸地創(chuàng)建一個抗審查的全球“社交”網(wǎng)絡(luò)。
nostr 不依賴于任何受信中央服務(wù)器,其基于密碼學(xué)密鑰和簽名,并且不依賴于 P2P 技術(shù),它也不會發(fā)行 token。
那它的運(yùn)作原理是怎樣的呢?簡單來說:每個人都運(yùn)行一個客戶端,這可以是本機(jī)客戶端、Web 客戶端等。要發(fā)布某些內(nèi)容(比如一個帖子),你要用你的密鑰對其簽名,并將其發(fā)送到多個中繼器(由其他人或你自己托管的服務(wù)器)。要從其他人那里獲得更新,你可以詢問多個中繼器是否了解這些其他人。任何人都可以運(yùn)行中繼器,這是非常簡單的,除了接受某些人的帖子并轉(zhuǎn)發(fā)給其他人之外,它什么都不做。我們也不需要信任中繼器,簽名是在客戶端進(jìn)行驗證的。
1、如何開始使用 Nostr
2、Nostr 客戶端功能比較
3、基于 Nostr 的項目列表
一、其他解決方案存在的問題
1、Twitter 的問題
Twitter 有廣告;
Twitter 使用奇怪的技巧讓你上癮;
Twitter 不會顯示你關(guān)注的人的真實歷史動態(tài);
Twitter 會禁止某些人的賬戶;
Twitter 會使用影子禁令(Shadowbans);
Twitter 有很多垃圾信息;
2、Mastodon 和類似應(yīng)用的問題
用戶身份附加在第三方控制的域名上;
服務(wù)器所有者可以像 Twitter 一樣禁止你,服務(wù)器所有者也可以阻止其他服務(wù)器;
服務(wù)器之間的遷移是事后才考慮的,只有在服務(wù)器協(xié)作的情況下才能完成。它在對抗環(huán)境中不起作用(所有追隨者都會丟失);
運(yùn)行服務(wù)器沒有明確的動機(jī),因此它們往往由愛好者以及希望將自己的名字附加到一個很酷的域名上的人來運(yùn)行的。然后,用戶受制于一個人的專制,這往往比 Twitter 這樣的大公司還要糟糕,他們無法遷移出去;
由于服務(wù)器往往是業(yè)余的,它們經(jīng)常在一段時間后被拋棄——這實際上等同于禁止所有人;
如果每臺服務(wù)器的更新都必須痛苦地推送(和保存!)到大量其他服務(wù)器,那么擁有大量服務(wù)器就沒有意義了;這一點由于服務(wù)器數(shù)量龐大而加劇,因此更多的數(shù)據(jù)必須更頻繁地傳遞到更多的地方;
對于視頻共享的具體示例,ActivityPub 愛好者意識到完全不可能像文本注釋那樣在服務(wù)器之間傳輸視頻;
3、SSB(Secure Scuttlebutt)的問題
它沒有太多問題,我認(rèn)為這很棒。事實上,我打算以此為基礎(chǔ),但是它的協(xié)議太復(fù)雜了,因為它根本就沒有被認(rèn)為是一個開放的協(xié)議。它只是用 JavaScript 編寫的,可能是一種快速解決特定問題的方法,因此它有奇怪和不必要的怪癖,比如簽署一個 JSON 字符串,其必須嚴(yán)格遵守 ECMA-262 第 6 版規(guī)則;
它堅持從單個用戶那獲得一連串的更新,這對我來說是不必要的,而且會增加內(nèi)容的臃腫和僵化程度——每個服務(wù)器/用戶都需要存儲所有的帖子鏈,以確保新的帖子是有效的。為什么要這么做 ?(也許他們有很好的理由);
它不像 Nostr 那樣簡單,因為它主要是為 P2P 同步而設(shè)計的;
不過,可能值得考慮使用 SSB 而不是這種自定義協(xié)議,并僅使其適應(yīng)客戶端中繼服務(wù)器模型,因為重用標(biāo)準(zhǔn)總是比嘗試讓人們使用新標(biāo)準(zhǔn)更好。
4、其他要求運(yùn)行服務(wù)器方案的問題
他們要求每個人都運(yùn)行自己的服務(wù)器;
有時人們?nèi)匀粫谶@些方面受到審查,因為域名可能會受到審查;
二、Nostr 的運(yùn)行原理
Nostr 有兩個組件:客戶端和中繼器。每個用戶運(yùn)行一個客戶端,任何人都可以運(yùn)行中繼器。
每個用戶都由公鑰標(biāo)識,每個帖子都有簽名,每個客戶端都會驗證這些簽名。
客戶端從他們選擇的中繼器獲取數(shù)據(jù),并將數(shù)據(jù)發(fā)布到他們選擇的其他中繼器。中繼器不與另一個中繼器通信,僅直接與用戶通信。
例如,要“關(guān)注”某人,用戶只需指示他們的客戶端查詢它知道的中繼器,以獲取來自該公鑰的帖子。
在啟動時,客戶端從它知道的所有中繼器中查詢它所關(guān)注的所有用戶的數(shù)據(jù)(例如,從最近一天開始的所有更新),然后按時間順序向用戶顯示該數(shù)據(jù)。
“帖子”可以包含任何類型的結(jié)構(gòu)化數(shù)據(jù),但最常用的數(shù)據(jù)將進(jìn)入標(biāo)準(zhǔn),以便所有客戶端和中繼器可以無縫地處理它們。
三、Nostr 如何解決其他方案無法解決的問題?
問題1:用戶被禁止,服務(wù)器被關(guān)閉
中繼器可以阻止用戶在它那里發(fā)布任何內(nèi)容,但這對用戶來說沒有影響,因為他們?nèi)匀豢梢詫?nèi)容發(fā)布到其他中繼器。由于用戶是通過公鑰識別的,因此當(dāng)他們被禁止時,他們不會失去他們的身份以及粉絲基礎(chǔ)。
不需要用戶手動輸入新的中繼器地址(雖然這也應(yīng)該被支持),每當(dāng)你關(guān)注的人發(fā)布服務(wù)器推薦時,客戶端應(yīng)該自動將其添加到它將查詢的中繼器列表中。
如果有人正在使用一個中繼器來發(fā)布他們的數(shù)據(jù),但想要遷移到另一個中繼器,他們可以向之前的中繼器發(fā)布一個服務(wù)器推薦,然后離開;
如果有人被很多中繼器禁止,以至于他們無法廣播他們的服務(wù)器推薦,他們?nèi)匀豢梢酝ㄟ^其他方式讓一些親密的朋友知道他們現(xiàn)在正在發(fā)布到哪個中繼器。然后,這些親密的朋友可以向新服務(wù)器發(fā)布服務(wù)器推薦,慢慢地,被禁用戶的舊粉絲群將開始從新的中繼器中再次找到他們的帖子。
當(dāng)中繼器停止工作時,上述所有規(guī)定也都是有效的。
問題2: 抗審查
每個用戶都可以將他們的內(nèi)容更新發(fā)布到任意數(shù)量的中繼器。
中繼器可以向用戶收取費用(目前費用的協(xié)商不在協(xié)議范圍內(nèi))以在那里發(fā)布,這確保了抗審查性。
問題3:垃圾信息
如果垃圾信息是中繼器要關(guān)注的一個問題,它可以要求為發(fā)布付費或其他形式的身份驗證(如電子郵件地址或電話),并將這些在內(nèi)部與公鑰相關(guān)聯(lián),然后將其發(fā)布到該中繼器或使用其他反垃圾信息技術(shù)(如 hashcash 或驗證碼)。如果一個中繼器被用作垃圾信息載體,它很容易被客戶端取消,客戶端可以繼續(xù)從其他中繼器獲取更新。
問題4: 數(shù)據(jù)存儲
為了讓網(wǎng)絡(luò)保持健康,不需要數(shù)百個活躍的中繼器。事實上,它只需要少數(shù)幾個就可以很好地工作,因為在現(xiàn)有中繼器開始出錯的情況下,可以很容易地創(chuàng)建新的中繼器,并在網(wǎng)絡(luò)中傳播。因此,所需的數(shù)據(jù)存儲量在一般情況下,要比 Mastodon 或類似軟件要少。
或者考慮一個不同的結(jié)果:其中存在數(shù)百個由業(yè)余愛好者運(yùn)行的利基中繼器,每個負(fù)責(zé)一小群用戶的更新中繼工作。這種架構(gòu)也可以擴(kuò)展:數(shù)據(jù)從用戶發(fā)送到單個服務(wù)器,然后從該服務(wù)器直接發(fā)送到將使用該數(shù)據(jù)的用戶。它不必由其他任何人存儲。在這種情況下,對于任何單個服務(wù)器來說,處理來自其他服務(wù)器的更新都不是很大的負(fù)擔(dān),擁有業(yè)余服務(wù)器也不是問題。
問題5:視頻等重內(nèi)容
中繼器很容易拒絕大數(shù)據(jù)的內(nèi)容,或者對接受和托管大數(shù)據(jù)內(nèi)容收費。當(dāng)信息和激勵明確時,市場力量很容易解決這個問題。
問題6:顯示方式
每個客戶端都可以決定如何最好地向用戶顯示帖子,比如使用人工智能來決定你將看到的更新的順序,到只是按時間順序閱讀它們。
四、FAQ
1、這很簡單,那為什么以前沒有人這樣去做?
答:我不知道,但我想這與以下事實有關(guān):創(chuàng)建社交網(wǎng)絡(luò)的人要么是想要賺錢的公司,要么是想完全沒有服務(wù)器就做東西的 P2P 積極分子,他們都沒有看到 Nostr 使用的兩個世界的特定組合。
2、我如何找到要關(guān)注的人?
答:首先,你必須了解他們,并以某種方式獲得他們的公鑰,無論是通過詢問還是在某處看到。進(jìn)入 Nostr 社交網(wǎng)絡(luò)后,你就可以看到他們與其他人的互動,然后你也可以開始關(guān)注這些人并與之互動。
3、我怎么找到中繼器?如果我沒有和別人連接到相同的中繼器會發(fā)生什么?
答:你將無法和那個人交流。但是可以使用事件提示,以便你的客戶端軟件(或你手動)知道如何連接到其他人的中繼器并與它們交互。未來也有其他的想法來解決這個問題,但我們永遠(yuǎn)不能保證完美的可達(dá)性,任何協(xié)議都不能。
4、我可以知道有多少人在關(guān)注我嗎?
答:不,但是如果中繼器以額外的協(xié)議方式協(xié)作,你可以獲得一些估計值。
5、人們運(yùn)行中繼器的動機(jī)是什么?
答:這個問題具有誤導(dǎo)性,它假設(shè)中繼器是免費的,人們可以通過它們移動數(shù)據(jù)。是的,在這種情況下,激勵機(jī)制并不存在。這實際上也適用于所有其他 p2p 網(wǎng)絡(luò)堆棧中的 DHT 節(jié)點 : 人們有什么動機(jī)去運(yùn)行 DHT 節(jié)點?
6、如果中繼器只是在 AWS 或 Azure 上,那又有什么區(qū)別?
答:今天,全球有成千上萬的 VPS 提供商,而不僅僅是 AWS 或 Azure 這兩家。AWS 或 Azure 正是大規(guī)模的單一中心化服務(wù)提供商所使用的提供商,而對于較小的中繼服務(wù)器,任何 VPS 都可以很好地完成這項工作。
協(xié)議規(guī)范
請參閱 NIP ,尤其是 NIP-01,以獲得對協(xié)議規(guī)范的合理詳細(xì)解釋(提示:它非常簡短)。
擴(kuò)展閱讀:
《一文對比去中心化社交協(xié)議 Nostr 和 Farcaster》
鏈接:
https://www.8btc.com/article/6795292
《速覽推特的去中心化挑戰(zhàn)者:Lens、Mastodon 與 nostr》
鏈接:
https://www.8btc.com/article/6795932
《試試Nostr的首個客戶端Damus,推特創(chuàng)始人認(rèn)可的Web3新社交》
鏈接:
https://www.theblockbeats.info/news/34206
《Damus 體驗教程分享:功能和用戶體驗如何?》
鏈接:
https://foresightnews.pro/article/h5Detail/24352