WEEX 唯客博客, 原文標題: Episode 331: Farcaster with Varun Srinivasan 原文編譯: Ismay , BlockBeats 編者按:去中心化社交協議 Farcaster 聯合創始人兼技術負責人 Varun Srinivasan 近日參加了 ZK 播客的訪談,談論 Farcaster 如何通過區塊鏈技術實現用戶身份的去中心化管理,解決數據一致性問題,並為開發者提供了一個開放的編程環境。此外,還討論了 Farcaster 面臨的挑戰,如垃圾信息管理、用戶體驗優化以及未來的技術擴展等方向。 TL ; DR 專訪Farcaster聯創:探索去中心化社交網路的未來 1. Farcaster 的定位和發展: Farcaster 類似於 Twitter 和 Reddit 的結合,允許用戶在無中心化控制的網路上發布和管理內容,並為開發者提供自由構建應用的機會。 2. 去中心化挑戰與解決方案: Farcaster 通過使用多個節點來存儲網路數據,同時通過引入 CRDT 技術解決數據一致性問題。 3. 垃圾信息管理: 通過存儲單元的概念和速率限制來控制協議級別的垃圾信息。 4. 數據存儲與共識機制: 數據存儲在稱為 Hub 的鏈下系統中,通過一種簡單的共識機制保持數據一致性,確保社交內容的傳輸速度。 5. Farcaster 生態系統: 包括構建社交網路客戶端、工具和服務,以及借用 Farcaster 社交圖譜來創建其他社交網路。 6. 與其他社交網路的對比:在身份管理和內容碎片化問題上的處理方式 與 Mastodon 等其他去中心化社交網路不同。 7. Farcaster 的未來發展方向: 包括可能將部分功能轉移到區塊鏈上,如頻道管理和賬戶恢復,以及對用戶體驗和安全性的持續改進。 以下為原文內容: Anna Rose : 今天, Tarun 和我與 Farcaster 的聯合創始人 Varun Srinivasan 一起。歡迎你來參加節目, Varun 。 Varun Srinivasan : 嘿,謝謝邀請我。一直以來都是這個節目的忠實聽眾,今天能在節目中與你們交談真的很激動。 Anna Rose : 我得承認,我對 Farcaster 了解得很晚。也許去年有人向我提過這個項目,但直到今年我才開始關注。當我加入的時候,感覺就像聚會已經開始了很久。我感到自己有點脫節,覺得一直在錯過什麼。 Tarun ,我想你已經使用 Farcaster 有一段時間了吧?你比我加入得早。 Tarun : 是的,不過我不算是最早的一批用戶,我的 Farcaster ID 也不是很低。但我有幾個朋友是非常早期的用戶,他們不斷地推薦我使用,於是我就加入了。到現在,我還不完全確定我在 2024 年的社交媒體使用習慣會是什麼樣子。我覺得整體上現在的社交媒體和兩年前的感覺完全不同了。 Varun Srinivasan : 有趣的是,我們已經開發 Farcaster 有三年多了。每年,每個季節,總會有人有你這樣的感覺。但到下一年,他們就成了「老用戶」。我覺得我們現在仍處於非常早期的階段,還有很多事情會發生。所以即使你覺得自己來晚了,我可以保證,希望你在幾年後會覺得自己是很早期的用戶。 Anna Rose : 我覺得我們有必要向聽眾介紹一下 Farcaster 。雖然我們剛才談了自己的體驗,但假設我們的聽眾不知道這和一個社交應用有關。那 Farcaster 到底是什麼呢? Varun Srinivasan : Farcaster 是一個去中心化的社交網路。如果你下載連接到網路的應用程序之一,叫做 Warpcast ,並且今天使用它你會看到一個感覺上 80% 像 Twitter ,20% 像 Reddit 的東西。有一個信息流,人們在發布內容,互相交流。它主要是基於文本的,同時還有社區,人們可以組織成子群體,在更小眾的類別中做一些有趣的事情。 這就是 Farcaster 的感覺,但它的實際情況,以及去中心化的部分,是沒有一個伺服器控制或運行 Farcaster 。 實際上有數百甚至數千個不同的節點都擁有 Farcaster 網路的副本,這意味著對於開發者和在網路上構建的人來說,他們有主權和自由來構建他們想要的應用程序,因為沒有人可以切斷他們的 API 訪問或關閉他們。 這就是為什麼我們稱 Farcaster 為開放或可編程的社交網路,因為你可以在其基礎上進行構建,並且你可以確信你所構建的東西和創建的應用程序能夠接觸到你的用戶,沒有任何中介方在其中阻礙。 Anna Rose : Mastodon 已經作為一種社交媒體的替代品出現了,也是去中心化的,但更傾向於聯邦制,我很久以前用過那個。我記得當時的問題是你幾乎可以在不同的伺服器中擁有重複的身份,沒有統一的真實感。但在 Farcaster ,至少看起來是有的,它是完全不同的構建方式嗎? Varun Srinivasan : 是的,社交媒體是唯一一種實際上沒有去中心化的通信或媒體形式。想想其他一切,電子郵件、互聯網、電視、廣播、簡訊,它們都有這種協議和多方通信,而這在社交領域從未存在過,它一直是單一玩家。如果你想要文本,去 Twitter ;如果你想要朋友,去 Facebook ,或者現在可能是 Snapchat 。 我認為這一直以來的原因是技術遠遠落後於人們想要的東西,在很大程度上無法構建出良好的社交網路體驗。 傳統的社交網路去中心化的方式你可以理解為聯邦制,比如我運行一個伺服器,你運行一個伺服器,也許 Tarun 運行一個我們都喜歡連接和使用的伺服器。這就導致了你提到的碎片化身份問題,你需要知道在不同的伺服器上如何找到他們,如何與他們連接,這也引入了一些非常微妙的數據收集挑戰。 從應用開發者的角度來看,構建去中心化社交網路的最大問題之一是我需要快速和簡單的共識。互聯網是另一個聯邦制的去中心化網路, Google 解決了這個問題。問題的難點在於有成百上千萬個伺服器在生成不同的內容,能夠抓取所有這些數據,把它們收集起來,處理所有的不一致和挑戰,並說出實際上人們在談論的內容,這是非常困難的。 第二種方法是使用區塊鏈,比如比特幣和以太坊,它們解決了如何獲取所有數據並放在一台機器上的問題。當你運行一個以太坊節點時,你實際上擁有了一台機器歷史上所有發生的每一筆交易。這就沒有了碎片化的身份問題,你不需要問這些數據在哪裡,所有數據都在你的機器上。 然而,把所有社交內容放在區塊鏈上的挑戰在於,首先這很昂貴,你需要為每一筆交易付費。如果你告訴用戶每發一個帖子都要付費,這會增加一種他們不樂意接受的摩擦感。人們希望這些操作是流暢、互動的,你希望鼓勵人們互相交流。 第二個挑戰是,像 Twitter 這樣的平台,人們每秒發布大約 10 萬條更新,即使是今天最快的區塊鏈也比這慢 100 倍,因此,今天這樣做實際上並不會很好地工作。 有些人會說,區塊鏈會變得更快、更便宜,所以為什麼不玩長線呢?為什麼不等待它的進步呢? 未來三五年內,100 倍的提升是可能的。我認為這帶來了一個有趣的二階挑戰。 首先,區塊鏈必須解決雙花問題——你不能允許同一筆錢被花兩次,所以這限制了你可以使用的共識策略,社交網路並沒有這個問題。 第二個挑戰是,區塊鏈天生具有金融屬性。當你構建一個圖靈完備的可編程鏈時,人們可以在上面做任何他們想做的事情。因此費用降低,有人可能會構建某種金融化的東西,這會創造大量需求,推高價格,導致網路擁堵。你可以看到這種情況已經發生了。 比如你在一個社交網路上試圖發帖,而系統告訴你「對不起,你不能發帖,因為有人在買這個 NFT 」,那將會非常令人沮喪。因此,將社交數據層與金融層分離,似乎是為了提供良好的用戶體驗而必須做的事情。 為什麼開發 Farcaster ? Anna Rose : 你剛剛說的內容中有很多問題和話題我想深入探討,但在那之前,我想了解一下你最初是怎麼開始做這個的。為什麼你在做這個項目?你之前在 Twitter 工作過嗎? Varun Srinivasan : 沒有,但大學時我確實花了相當多的時間開發社交應用程序。2007 年,我們在 Facebook 的 PHP 應用開發平台上開發了一個叫 Moocher 的小應用。它會抓取你大學里的所有 Facebook 活動,並創建一個免費食物日曆。所以如果你想整天吃披薩而不花錢,就可以這樣做。 這個簡單的應用迅速傳播開來,很多人使用它,因為它的分發非常容易。這個想法讓我意識到,有趣的創意可以通過社交圖譜迅速擴展和傳播,這是非常強大的。 但在接下來的幾年裡,所有這些社交網路, Facebook 、 Twitter 等等,都關閉了他們的 API 。我們進入了社交開發者的黑暗時期,因為你無法控制 API ,這個夢想就這樣破滅了。 我和我的聯合創始人 Dan 都在 Coinbase 工作了大約五年,我們在那裡認識了彼此。離開 Coinbase 之後,如果我們想進行一個十年的賭注,構建一個我們認為對世界和社會非常重要的東西。我們在思考什麼讓我們感到興奮,以及我們接下來想構建和工作的是什麼。 我們兩人從對社交網路的思考中獲得了很多能量。為什麼這是唯一一個沒有去中心化的通信系統?為什麼這種情況還沒有發生?當我們開始深入研究時,感覺時機已經成熟。 以太坊和區塊鏈已經解決了核心的共識問題,展示了你實際上可以擁有一個單節點的全球狀態模型,如果我們能以某種方式將其應用於社交網路,這似乎真的很酷。同時,感覺人們對去中心化網路的需求也在增加。我們覺得這是我們可以做的最有趣的事情。 Anna Rose : 想了解你們是從哪裡開始的,你們有了要做一個社交網路的想法,現在有了一些擴展工具。但如果你說的是三年前,那時 rollups 已經推出了嗎?甚至你們今天構建的技術棧,我不知道它是否已經存在。 Varun Srinivasan : 沒有,那時並不存在。我們在 2020 年開始構思這個想法時, L2 技術還不是人們常用的東西。它們非常早期,甚至還沒有準備好上線主網。 我們從幾種不同的方法開始。首先,我們意識到那時你不可能將所有數據存儲在以太坊上,太昂貴,波動性太大,其他網路也免不了同樣的問題。因此,我們一開始就說必須找到一種方法,將數據層與區塊鏈分離。我們可以使用區塊鏈處理核心事務,如註冊,但我們必須將數據移出。 Farcaster 的 V1 版本,實際上採用了我們之前談到的聯邦制方法,類似於其他網路的做法,將身份放在區塊鏈上。因此你的用戶名、你註冊的賬戶不會有碎片化的身份問題,但每個人運行自己的伺服器並存儲他們的數據。 幾個月後,我們迅速遇到了這些伺服器開始有些分歧的問題。隨著時間的推移,維護這些伺服器變得越來越困難,這顯然不是理想的。因此,我們開始考慮 Farcaster v2 的進化,借鑒了以太坊節點的理念:你可以運行一個 Hub ,它會與其他所有 Hub 同步,並擁有世界上每條消息的副本。 作為交換,它對你可以生成的數據量施加了一些限制,因為如果每個人都可以生成無限量的數據,這些數據將無法裝入那個 Hub 。同時,它有一個經濟模型,你需要支付費用來獲得存儲空間並存儲一些數據。這就是 Farcaster V2 的由來,但這是通過大量的試驗和錯誤構建出來的,我們不斷地開發、獲取用戶和開發者的反饋,意識到為什麼它不起作用,然後重複這個循環。 Anna Rose : 那這些數據是存儲在哪裡的? Varun Srinivasan : 它是在我們的一個稱之為「 Hub 」的鏈下系統中存儲的,實際上是網路中的一個節點。你今天可以下載一個 Hub 並運行它,在一個半小時內,它會與所有其他 Hub 同步並下載 140GB 的數據。這就是整個 Farcaster 的內容,這是每條曾經發布的消息,你現在在你的本地機器上都有這些數據。 如果你發送一條新消息,你可以將其發送到任何 Hub ,它會接受並驗證這條消息是從你的身份發出的,檢查簽名等,然後將其傳送到每個其他 Hub 。所以如果你運行一個 Hub ,你也可以保證實時獲取所有這些數據,用於填充你的應用程序和資料庫。 Anna Rose : 那麼關於共識的評論,是否特指 Hub 數據的共識? Varun Srinivasan : 正是如此。假設你想發布一條「 hello world 」,然後你想刪除它。那麼這些操作是如何進行的呢?如果它們的順序顛倒了會發生什麼?你首先創建一條「 hello world 」消息並簽名,將其發布。現在所有的 Hub 都有這條「 hello world 」消息,然後你決定刪除它,發布另一條消息說「這條消息被刪除了」。 在理想情況下,添加消息先到達,然後刪除消息到達,這樣每個 Hub 都知道,這條消息先被添加然後被刪除。但如果這些消息到達的順序相反怎麼辦?有些 Hub 可能先看到刪除消息然後才看到添加消息,那麼如何決定哪條消息是原始消息呢? Farcaster 實際上使用了一種非常簡單的共識機制,基於我們稱之為 CRDT (無衝突複製數據類型)的技術。這個術語聽起來很複雜,但其實它是一個非常簡單的概念。 這意味著它有簡單的規則,每個節點可以根據這些規則決定最終狀態應該是什麼。在這種情況下,簡單的規則是,如果你刪除了你的消息,即使你添加了它,消息的狀態始終是刪除的。 我們將這種簡單的規則應用於更複雜的情況,比如當你回復自己、當你有太多消息時等等。每個 Hub 可以接收並自行達成共識,它不需要與網路中的任何其他 Hub 通信來確定狀態,這是在加密和金融系統中必須做的事情,因為你需要嚴格的順序,需要知道 Alice 在 Bob 給 Charlie 付款之前就給 Bob 付過錢了。 如何解決網路垃圾郵件問題 Tarun : 有一個有趣的觀點認為,區塊鏈在某種程度上關注垃圾郵件的問題,例如抗 Sybil 攻擊,它強調垃圾郵件在未經付費的情況下不被容忍。在社交網路中垃圾郵件也會出現,但其出現的層次有所不同,對吧?它不會直接出現在交易級別的活動中。 你如何看待在網路中需要通過共識機制來強制執行的類似抗 Sybil 屬性與那些不需要強制執行的屬性之間的區別?你如何在社交網路與金融網路之間選擇這些屬性? Varun Srinivasan : 對,確實有這樣的區別,但並不完全正確。網路中有兩種類型的垃圾郵件是不好的。一種是協議級別的垃圾郵件,另一種是應用級別的垃圾郵件。協議級別的垃圾郵件是指有人登錄網路,然後發送大量消息。但每個人都必須存儲這些消息,這很糟糕,這是我們想要防止的垃圾郵件的一種。 Anna Rose : 這是在應用前端還是協議級別的? Varun Srinivasan : 這是協議級別的垃圾郵件。你進入網路並能夠發送如此多的消息,以至於運行 Hub 的人無法再運行這些 Hub ,我們需要防止這種情況。 應用級別的垃圾郵件更為微妙,人們運行 LLM 機器人,它們會讀取你的內容,發布消息並回復。有些人這樣做是抱著「也許有一天我會得到空投」的希望,或者試圖影響政治敘述。 Anna Rose : 哇,這簡直是個漩渦。 Varun Srinivasan : 確實如此,這種垃圾郵件不是生成數十億條消息,而是侵入你的私人空間。比如你發布了關於這個播客的問題,「誰聽了這個?」然後某個機器人跳出來回復,這讓人有點不舒服。 他們並沒有違反協議規則,也沒有發布數十億條消息,但這是你不想在應用程序中看到的東西,需要應用程序進行過濾,這一點非常重要。 Anna Rose : 是的,你怎麼處理這些問題? Varun Srinivasan : 在協議級別,我們引入了一個叫做存儲或存儲租賃的概念。這在哲學上類似於 Solana 和其他一些區塊鏈的租賃理念,但以一種對社交網路有意義的方式實現。 當你加入 Farcaster 時,需要支付一筆費用,目前大約是每年 3 美元,這給你一個存儲單元。當你擁有一個存儲單元時,你在區塊鏈上購買, Hub 或 Farcaster 節點將允許你存儲一定數量的消息。比如你可以存儲一千條消息或發布一千條消息。 有趣的是,當你發布了第一千零一條消息時會發生什麼。我們的設計是,它會自動使你最早的消息過期,並插入新消息。所以不像傳統的購買存儲空間,你需要支付更多費用。這種設計讓你能夠繼續參與網路活動,繼續在網路中互動。 這有兩個優點。首先,用戶體驗依然出色。在大多數社交網路中,最新的內容是最重要的。即使你不想支付額外費用,你仍然可以保留過去六個月到一年的消息,只是較早的消息會過期。或者你可以支付更多費用,這樣就可以存儲兩年的消息。 另一個好處是,這種模型實際上符合無需協調的共識原則。在 CRDT 中實現這一規則非常簡單。你只需查看時間戳,如果有超出的消息,就丟棄最舊的一條。因此,所有節點在這一點上都可以達成一致。 我們防止某人發布五十億條消息的方法是告訴他們,你支付 3 美元購買一個存儲單元,可以存儲 3000 條消息。發布更多消息時,舊消息會過期。如果你想存儲更多,則需要支付更多費用。這在合理範圍內控制了垃圾消息的數量。 另一種解決方式是控制吞吐量,即發送的內容量。我們為每個節點設置速率限制,比如每個用戶每小時不能發送超過 500 條消息,超出這一數量的消息被認為是不合理的,這些限制與存儲單元掛鉤。 如果你購買了五個存儲單元,可能你的速率限制會增加到 2000 或 3000 條消息,但我們對每分鐘或每小時可以發送的消息數量設定了上限,並不斷進行微調。這兩者結合在一起,防止任何一個參與者湧入並淹沒網路。 Farcaster Hub 及儲存 Anna Rose : 假設你有十倍的真實用戶,而不是投機用戶,那麼需要多少個 Hub 來支持 10 倍的擴展? Varun Srinivasan : 這個問題有兩個不同的答案。首先,目前的共識機制既非常快又非常慢。我的意思是當你向 Hub 發布消息時,該 Hub 立即達成共識。所以任何監聽該 Hub 的人,都會立即確認消息,沒有 15 秒等待區塊確認的過程。 更廣泛、更慢的共識是不同 Hub 之間如何聯繫,這可能需要幾秒鐘到一分鐘,才能保證 99% 的網路已經看到該消息。 社交網路,尤其是面向公眾的社交網路,其實對消息通過的速度相對區塊鏈來說要求不高。如果你的推文或 Farcaster 消息晚了 30 秒出現,幾乎沒人會注意到。因為網路的速度大約在一到五分鐘之間。如果超過五分鐘,人們就會注意到。因此,這種寬鬆的共識機制非常適合社交網路。 當我們的網路運行得很好時,消息傳播只需一秒鐘。當網路狀況不佳時,可能需要一分鐘,但幾乎沒人會注意到一秒鐘和一分鐘的區別。 關於 Hub 的第二個問題是, Farcaster 的一個非常有趣的地方是我們網路的安全性實際上不是由 Hub 管理的,而是由我們使用的 L2 管理的。你的身份、簽名密鑰等都在區塊鏈上建立, Hub 實際上只是一個數據可用性層,使你的簽名消息對其他人可用。 所以,不像區塊鏈需要一定數量的節點來保證沒有單個參與者可以偽造數據或生成無效交易, Farcaster 由 L2 來保證這一點,你需要 Hub 只是為了分散式的數據可用性。如果我們關閉了我們的 Hub 或所有的 Amazon 伺服器宕機,網路上還有其他 Hub 在運行和處…
專訪 Farcaster 聯創:探索去中心化社交網路的未來
Previous: 印度擬 9 月前發布加密貨幣政策討論文件