Nostr 生態發展現況及議題

上週,CKB 社群成員Retric 提出了Nostr 綁定協定(Nostr Binding Protocol)。

Nostr 綁定協定使用在Nostr Event 和CKB Cell 之間建立一對一的映射關係。普通用戶可以基於該協議在Nostr 社交網路中創建和分發原生資產, 透過RGB++,這些Nostr 上的資產也可以由比特幣位址控制。客戶端開發者則能夠在其上建立產品,不同於ETH dApp 分成兩個系統(一個是鏈下伺服器,另一個是鏈上智慧合約),Nostr 綁定協定為dApp 帶來新的開發範式,它使用一個具有不同資料層級的一致系統來建立dApp。據悉,Nostr 綁定協定未來可以無縫整合到CKB 閃電網絡,解決社交網路中原生支付問題。

Nostr 是一個基於公私鑰的、極簡的資訊傳輸協議,致力於創建一個抗審查的全球社交網路。 Nostr 使用Relay(中繼器)來儲存社交資料(例如貼文)並將其傳輸給用戶,用戶運行的軟體稱為Client(客戶端)。

今年3 月9 日,在由Nervos Foundation 和ABCDE 共同舉辦的首屆Bitcoin Singapore 大會上,Retric 做了一場“Nostr 生態發展現狀及問題” 的主題分享?

以下是根據Retric 的分享整理的內容,可以幫助大家更了解 Nostr 協議:

這個Nostr 協議應該是今天這個會議裡面最簡單的一個東西。比起其他人講的一些技術或一些協議,它是最容易理解的,因為它本身也非常簡單。 Nostr 一開始想要做的其實是一個“推特”,但這個推特不是由伊隆·馬斯克控制的,而是一個更去中心化的推特,它不會去做一些壞事,不會去封鎖別人,有一些言論自由。它想要做這個事是比較現實的一個出發點,就是想要做一個這樣的軟體,為此提出了一個社交網路上的去中心化的協議,叫Nostr。然後發展到現在,大家開始意識到這些東西其實不只是可以去做一個推特,更像更好的一個網路結構,我們可以在上面做各種各樣的應用。

Nostr 這個協定我先簡單介紹一下,它其實可以用一句話就把這個協定講完:這是一個數據,透過一個私鑰來簽名,這個資料在不同的Relay 或叫中繼器上去進行傳播,然後發給客戶端。本質上就是我簽一個固定格式的數據,簽完之後發到一些中繼器上,然後我再讓其他用戶透過客戶端從這些中繼器上把這個數據拉下來進行讀取。

Nostr 的核心東西是一個Jason 結構,會有不同的字段,每個字段代表一個意思。比如說pubkey 就是我簽章發送資料是哪一個公鑰去做簽章的,像是它有content 這一欄,這個代表說我簽這條資料它的內容到底是什麼,它可以是任意的一個字串,可以是我發的一條推特,也可以是一個數字或是一個加密的東西,協議上是不做限制的。這邊也會有個簽名,就是說我對我發的這個資料做了一個保證,保證這個資料確實是從我這邊發出去的。

所以Nostr 的核心就是這麼簡單,它其實只是代表說我在本地透過某一把私鑰去對某一段我自己寫的一個資料做了一個簽章。這個資料發到網路上之後,Nostr 網路結構也很簡單,就兩個結構,一個叫Relay,一個叫Client。

Relay 就是一台伺服器,是每個人都可以架設的一台伺服器。這個Relay 的作用是它一直在網上跑,去監聽有哪些人給我發了我剛才說的這個數據,然後把它接收下來,把它存下來,如果有客戶端向我要某一些數據的時候,我再給他。

第二部分是這個數據怎麼去傳播,也就是傳播的一個規範,這裡面其實會有大量的細節。比如說我把這個數據傳給Relay,Relay 跟Relay 之間他們互通嗎?或者說我傳給Relay 之後,Relay 是不是會幫我把這些資料完整地保存下來,然後任何時候找它要,它都會給我?其實有這種細節問題。 Nostr的答案是”我不管,你們自己去想”,不管其實是有點奇怪的一個反應,但是有時候我覺得不管是一種比較高明的策略。有時候好像不管在現實世界還是在網路上,有時候因為管太多反而去傷害一些事情,所以我覺得它不管其實非常有意思。

比如說我舉個簡單例子,我們在用比如說傳統的中心化社群網路的時候,那個中心化伺服器會預設把你所有資料都存下來。然後你找我要的時候,我任何時候都可以給你,但因為Nostr 是不管的,所以這裡面會出現什麼狀況?有些Relay 的經營者想要做大做強,他想要把所有訊息全部保存下來,這是一種。還有一種我是一個愛好者,我只想搞一個很小的節點,我只對我喜歡的那些用戶去接受他們的資料。還有一些是我願意接受你數據,但是我接收後可能30 分鐘後我就不想要了,我要把你刪掉,因為我伺服器的那個磁碟可能是有限的,我不願意保存那麼久。

所以它其實會演化出很多不同的角色,這些不同角色可能會有不同分工。比如說有些真的想要去把它當做一個生意來運作的話,那我就會去做一個專業的服務節點,盡可能提供給大家比較穩定比較長時間的服務。也有一些愛好者,他也可以跑那種區域網路一樣的東西,所以它會演化出不同的這種分工。

普遍的一個現像是,大部分Relay 節點它願意接收你的一些訊息,但是它不能保證會長時間給保存下來。這種結構其實它好像比較適合我們真實人類社會中的一些社交模式。真實的社交模式,比如說我今天在這裡跟大家聊天,我一說話,你們聽得到,你們也知道,然後離開會場。過兩天之後,有些人記憶不太好就已經不記得我在說什麼了,但是有些人在這會場買個錄音機,把你說的話每個字都記下來,這個就代表說你這個消息是不是會一直保留下來。

這其實很像我們現實中在發生的一個事情,這個事情能發生就是因為Nostr 對很多細節或者很多其他事情並不去做規定,並不管,包括Relay 跟Relay 之間到底需不需要通信,它們需不需要同步彼此擁有的訊息,它是不規定需要,但它並沒有說你不能。所以也有很多Relay 會把自己假扮成一個Client,它也會去找其它Relay 要它的數據,把所有數據同步下來。但它不去做強制性的要求,說你必須通信,它的一個理由是如果我做了這個要求,你必須要通信,那就會變成每個Relay 都必須保存全網每個用戶的數據,那樣的話對營運Relay 是一個非常大的考驗。可能只有那些專業服務商才能運營,個人愛好者可能不會去跑。所以這就是它做這個簡單協議的背後的一些考慮。

總結一下,我覺得Nostr 協議非常簡單。另一個,它有趣的地方其實是在現在這麼一個節點,就我們有了比特幣,有了blockchain 之後,想要有的一個共識是,就好比我們大家都坐下來說,我們今天用一種統一的格式、統一的協定去做一些社群網路或做網路的一些產品,它其實出現在一個很有意思的節點。但現在這個節點我覺得有這麼想努力的方向,就是統一用一個很簡單的資料結構,很簡單的交換協議去做一些微信、推特等在做的事情。所以我覺得它可能協議上你看一眼會覺得很簡單,好像沒什麼意思。但如果你去想它背後出現的時間,出現的意義會覺得有趣一點。

另外一點是因為它這套結構,它其實大量的一些驗證是發生在這個客戶端的。這裡面其實就一件事的驗證,你發布的資料是不是真的由你聲明了那個公私鑰對發出來的,只做這個驗證。為什麼要做這個驗證,因為比如說我如果發了一條推特,說了一些不該說的事情,這條會發給Relay。 Relay 再負責發給別人,那Relay 如果不做驗證,Relay 可以說我偽造了你說的一句奇葩的話發給其他用戶。因為我在發資料的時候是有簽名的,所以拿到那個資料的客戶端它可以做一次驗證,說確實他簽的這個簽章跟他說的這個話是完全匹配的,這樣Relay 就騙不了別人。

所以它的一個驗證是做簽名的這個校驗,這個簽名的校驗實際上是把過去我們中心化的互聯網比如說微信,微信上的伺服器它是自己控制的,它可以在伺服器上寫任何東西,你沒有辦法去確定說它有沒有騙你,因為所有的資料所有的權利都在伺服器上。但只要有最簡單的一個驗證,我們實際上可以把權利從伺服器那邊剝離出來,交給擁有帳號的這個用戶。只要你有一個公私鑰,你就可以讓你的朋友去做驗證,確定說不是其他人要冒充我或說一些其他不對的話。

那Nostr 的發展到底怎麼樣呢?這是我3 月翻到的一些數據。因為這是一個分散式的網絡,所以它的數據其實是不太好統計的,這是我從nostr.band 網站獲取的數據,Nostr 總用戶可能是37 萬左右,日活可能就12,000。總共的Relay,出現過的Relay,有多少人去跑過這個節點,可能有2000+。但實際上一直在線的這些節點有多少,可能在200 個以下。大概是這麼一個狀況,所以用戶還是比較少。

作為對比,你看它跟BlueSky 協議的一個對比。 Bluesky 應該是去年底就說他們達到200 萬用戶了,右邊那個數據是有人統計的從推特出走的那些用戶他們去了哪裡,你也可以看到,Mastodon 排第一個,Mastodon 是一個比較老牌的一個協議了,然後也有人去了ost news,也有人去了BlueSky,Nostr 其實是屬於第五梯隊,就比較小的那一部分。

這是它大概的一個發展的情況,當然Nostr背後有很多其實這種數據看不到的一些東西,比如說對協議提交了一些提案,開發者去給它提交了一些PR。這些開發的活動或一些討論,這些數據可能沒辦法統計到,但如果你點進去這些連結的話,其實可以看到發生的這些事情還是很多的,有大量的人在想要為這個協議做貢獻。這個是大家用Nostr 去做的一些東西,就不只是說我真的做一個推特,也有很多做一些音樂類的應用,做這個YouTube 類型的應用,也有做博客類的應用。

所以我來總結的話,現在我們覺得大部分的使用者其實還是developer 或maker。他們對協議本身感興趣,想在上面開發東西,或者我是一個想要做一些東西的人,我會在你協議上,可能普通的那種users 會少一些。

為什麼Nostr 這麼簡單,願景看起來不錯,但發展不是非常盡人意,我覺得也是因為有遇到三個問題,我其實在寫這個PPT 的時候發現其實有非常多無數的細節的小問題,比如說客戶端,一些產品體驗上的一些東西。但這種東西其實是很難去把它講清楚,所以我就舉了三點我覺得比較重要。

第一個大問題是你怎麼在Nostr 這個網絡裡面去找到某個用戶發的內容在哪兒,因為我們前面說了整個Nostr 協議的運作是我在本地簽東西,然後可以發給無數的Relay 們。其他使用者可以從這些Relay 裡面抓取我發送的資料來閱讀,這麼一種模式。但這個模式有個問題,就是我這個數據發給Relay 之後,我的朋友想讀這則訊息的時候,他怎麼知道我這個消息是放在哪些Relay 上,他得知道哪些Relay 有我這個數據,他才去讀。所以現在一個很大的使用者體驗問題是,很多人在用Nostr 的時候會問他朋友:「嘿,你用的是哪些Relay,我要跟你設定一樣的Relay,這樣我們才能共同去交換這個數據。

當然到現在也有很多開發者提出了一些詳解的方案,比如說有一個NIP-65 的提案,它大概意思是我把我的數據會放到哪幾個Relay 上這條信息我也放在Relay 上。然後我把這則訊息盡可能傳到所有的Relay,這樣的話我的朋友會先去找Relay 問一個問題,我這個朋友他平常把他的消息發在哪些地方。拿到這個資訊之後,他再去找我常發布的那幾個Relay,找他們要這些數據,這是一種方法。

它分得比較細的兩種模式,一種叫Inbox,一種叫Outbox。比方說像Inbox,它讓使用者定義我會從哪幾個Relay 裡面去讀一些關於我的消息。如果你想在Twitter 上@我或想做其他事,你可以往這個Inbox Relay 裡面去發這個訊息。另一個是Outbox Relay,指明說我會往A、B、C、D 的好幾個Relay 裡面去發我的一些消息,大概意思是我把我常發布的一些Relay 信息,首先也發在Relay 上。

但這有一個技術難題誕生了,就是我怎麼知道這個消息是在哪裡。所以這其實也會有這個問題,還有一些解決方案是說我透過一些演算法,我盡可能在全網去下載盡可能多的一些資訊。然後從別的人發的一些資訊裡面提到的一些Relay 隱藏的證據,去嘗試把一個人他發布的數據出現在哪幾個Relay 上的機率做一個計算。透過這個機率的計算去盡可能找一些Relay要數據,然後去滿足別人想讀你的數據的時候能找到你的數據。還有一些也是讓使用者定義自己會使用的一些Relay,做一些分組,也是讓其他使用者透過這些分組去找到你,這是現有的一些改善的方案。

第二個問題也是比較嚴重的,叫做Content Governance。不管是內容產品或是社群網路上有很大的精力是需要放到你怎麼去維護這個社群網路上的內容。比如說你肯定不需要刷推特的時候刷到一個別人砍頭的視頻,對吧,這是非常糟糕的體驗。就這種那些公司背後會做大量的運營,它需要有很多人去過濾這些內容,或者去用演算法去做一些內容匹配,這部分當中,市場上是比較空白的。這個有好幾個面向的原因,有一個原因是大家在這個平台上會非常排斥演算法。因為覺得好像不管是TikTok 還是Youtube 都是演算法來控制我們,但其實我們確實是需要演算法,只是說我們需要的是我可以切換演算法。

我不希望說我只能接受用Youtube 或TikTok 給我的強制性的他們要推廣告的演算法,我希望是我有很多演算法可以隨時做切換。我如果不喜歡這個演算法,有選項我可以退出,這個觀點其設計也慢慢接受。只是說現在這塊,不管是包括人工的那種或對內容做的一些運營,還是說在演算法技術上做的一些事情,這些都還比較欠缺。所以這部分主要問題是我們這個網絡是所有人共同組成的,它需要有個機制去決定哪些內容是好的,哪些內容是不好的,哪些內容是你會感興趣的,哪些內容可能是你不感興趣的,這其實是內容治理的問題。

下面這邊是我列的一些現有的改善方案,比如說第一個labeling data。在這個Nostr 上有一種專門的數據,是可以讓使用者自己去標記某一些數據它屬於什麼類型,或者說它的屬性有什麼。就透過這種labeling 去給一個數據做一些標註,但這個應用並不廣泛,因為很簡單,沒有人願意去幹這個事情。沒有人願意去充當你的這個social member 去幫你做一些這種苦力活,很早期的互聯網社會有這種建設精神。現在其實大家比較多可能當消費者使用,當然也有人提議我可以做API。我專門跑一些服務,我去蒐集全網的一些公司的數據,然後我去做過濾或者做分類,去拿更可能好的一些消息發給用戶。這個方案是非常好做的,但是它有個巨大問題,就是這樣做著做我們又回去了。就會變成說我不找Nostr 這個協定要數據,而變成說我專門找一家工作得特別好的API,找這個API 的這個伺服器要數據。那這樣協議做著做著變成這個API 後面又是另一家推特或又是另一家微信,所以這個方案非常好。問題是大家不喜歡,你要做這個的話所有人都會噴你。

還有一種方案叫DVM,它想做的是透過Nostr 協定去做一些使用協定規定好的介面去做這個資料的分類或是演算法。它的大概意思是你給我一些閃電網路的聰,然後我會回還給你你想要的數據,你規定好數據格式,但這個也有一些問題。

另一個是Noscript,它是另一個想法,是我們直接把這些過濾的演算法或一些分類需要用到的技術把這些程式碼直接也當作內容,直接放到Nostr 上,讓Relay 去儲存。然後客戶端直接拉這些程式碼下來,在本地做一些本地能做的一些過濾或做一些推薦。當然這個的話就發展得更不好,因為現在還只是有些Idea,有些人在討論。

第三個比較嚴重的問題其實是創業的問題,PMF。現在Nostr 的大量產品或開發者找不到PMF,因為他需要面對大量競爭。一方面是中心化的傳統的那些產品,另一方面可能是Web3 區塊鏈這邊的。他們不發token 也不干嘛,所以它其實缺少一些商業模式,也面臨網路效應這個問題,因為越少人遷過來,那就意味著更少人會繼續遷過來。所以PMF 是一個很大的問題。

Nostr 最大的一個客戶端叫Damus,不知道大家有沒有用過,它的開發者去年年底發了一條推,說2024 年可能是Damus 的最後一年。因為他快沒錢繼續再做下去,如果2024 年還做不起來,還賺不到錢的話。所以這也是要給社群網路的公共物品找到永續發展的一個方向的問題吧。

其實這裡面所有問題,我覺得也是機會。比如說像是最後PMF 這個,我覺得如果我們能有更多跟區塊鏈結合的一些地方,能有更走得通的一些商業模式,去跟區塊鏈基金做一些結合,可能可以解決這種公共物品的一個融資問題。

最後,我覺得Nostr 是一個新的開發alternative applications 的一種方案。如果你想做一些替代性的產品的話,可能不是只有兩個極端,一個極端叫blockchain,一個極端叫Twitter。不是只有這種,可能有個中間地帶叫Nostr,它不是基於區塊鏈的,但它也不是專屬軟體。謝謝。

Total
0
Shares
Related Posts