我已經(jīng)使用這兩種去中心化解決方案幾個(gè)月了,希望通過比較它們來了解其各自的構(gòu)建方式以及二者之間的主要差異和相似之處。
現(xiàn)在,我每天會(huì)使用:Farcaster(Warpcast 客戶端)、Lens Protocol(Orb 客戶端)以及 Web2 的 Twitter。到目前為止,我發(fā)現(xiàn) Farcaster 上的內(nèi)容最有見地,而 Lens 則為創(chuàng)作者提供了獨(dú)特的體驗(yàn)。最后,由于大多數(shù)項(xiàng)目將信息保存在 Twitter 上(因?yàn)橐尤?Lens 或 Farcaster 你需要得到邀請(qǐng)),所以我必須密切關(guān)注我的 Twitter 賬戶。
在進(jìn)行比較之前,我想為每個(gè)協(xié)議創(chuàng)建一個(gè)「簡(jiǎn)短」的指南。然后在最后,我將對(duì)它們進(jìn)行比較,看看二者之間是否有贏家,不過我認(rèn)為它們各有千秋。
Farcaster
Farcaster 基于 Ethereum L1 區(qū)塊鏈構(gòu)建,并利用其進(jìn)行用戶身份管理。該協(xié)議使用 L2 網(wǎng)絡(luò)在其用戶之間(Farcaster Hubs)推廣更新。協(xié)議的關(guān)鍵特性包括:
1. 安全、易記且人類可讀的用戶標(biāo)識(shí)符,如 @alice
2. 用戶之間實(shí)時(shí)結(jié)算并通知變更
3. 以合理成本獲得對(duì)網(wǎng)絡(luò)上所有數(shù)據(jù)的去中心化訪問
更新:CrisisDAO 成員指出,由于 delta 圖譜節(jié)點(diǎn)不使用區(qū)塊鏈來確定其狀態(tài),因此它們不屬于 L2。因此,協(xié)議使用鏈下點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)來同步數(shù)據(jù)。
工作方式
要加入 Farcaster 協(xié)議,你必須在 Ethereum 合約中注冊(cè)一個(gè)公鑰-私鑰對(duì)和一個(gè) ID。這個(gè)公鑰-私鑰對(duì)(一個(gè)新的 Ethereum 地址)將用于對(duì)消息進(jìn)行簽名,而 ID 則將用于對(duì) Ethereum 網(wǎng)絡(luò)上用戶的規(guī)范引用,從而使它們防篡改且能夠完成自我驗(yàn)證。此外,接收者可以檢查合約中與 ID 關(guān)聯(lián)的密鑰對(duì)并驗(yàn)證消息的真實(shí)性。
簽名消息將上傳到 Farcaster Hub,該 Hub 類似于區(qū)塊鏈網(wǎng)絡(luò)。各個(gè) Hub 使用點(diǎn)對(duì)點(diǎn)協(xié)議在它們之間共享消息并加以存儲(chǔ),使用 delta 圖譜來就它們的狀態(tài)達(dá)成共識(shí)。該圖最有趣的地方在于,Hub 可以在不進(jìn)行協(xié)調(diào)的情況下達(dá)成共識(shí)。
通過 Hub 存儲(chǔ)和管理網(wǎng)絡(luò)狀態(tài),客戶端應(yīng)用程序?qū)⑴c它們進(jìn)行連接,以便公司和個(gè)人為協(xié)議構(gòu)建不同的客戶端,并為其用戶定制不同體驗(yàn)。這一功能非常令人驚喜,因?yàn)槊總€(gè)應(yīng)用程序都可以基于協(xié)議實(shí)現(xiàn)差異化發(fā)展,從而讓 Farcaster 協(xié)議內(nèi)創(chuàng)建應(yīng)用程序生態(tài)系統(tǒng)成為可能。
Farcaster ID 和 Ethereum 地址(公鑰-私鑰對(duì))在 Farcaster 的 Ethereum 合約中進(jìn)行管理,因此我們可以確保身份所有權(quán)的去中心化和安全性。
Farcaster ID
摘自 Farcaster 的官方文檔:
「Farcaster ID(簡(jiǎn)稱 fid)是用戶或組織的規(guī)范標(biāo)識(shí)符。Fid 是類似「!8098」這樣的數(shù)字值,通過在它們前面加一個(gè)感嘆號(hào)來與其他數(shù)字區(qū)分開來。用戶將 fid 注冊(cè)到一個(gè) Ethereum 地址,也稱為托管地址。用戶也可以將 fid 轉(zhuǎn)移到新的托管地址,盡管每個(gè)地址一次只能擁有一個(gè) fid。」
因此,我們可以通過與Farcaster ID Registry交互生成 fid。由于這是 Ethereum 上的一個(gè)智能合約,任何人都可以閱讀該合約以查找哪個(gè) Ethereum 地址擁有給定的 fid。
現(xiàn)在,我們已經(jīng)具備將消息發(fā)送到協(xié)議所需的全部組件:
?保管地址的 ECDSA 密鑰對(duì)
?Fid
有了這兩部分,我們可以對(duì)消息進(jìn)行簽名并將其發(fā)送到 Hub,接收者也可以驗(yàn)證所有內(nèi)容。此外,協(xié)議不允許任何人在地址聲明 fid 后回收或撤銷 fid,我們通過在 Hub
上實(shí)行防篡改通信實(shí)現(xiàn)了「足夠的去中心化」。
Farcaster Name
盡管我們已具備發(fā)送信息所需的元素,但我們?nèi)孕枰环N便于人類閱讀的方式來引用 fid。因此,F(xiàn)arcaster 提供了可選的 fname,例如 @alice。
fnames 是像 @john 或 @alice 這樣由字母或數(shù)字組成的字符串,通過在其前面加上一個(gè)「@」符號(hào)(fids 前面有一個(gè)感嘆號(hào))與其他文本進(jìn)行區(qū)分。
fnames 的一個(gè)有趣特性是,它們都必須符合以下正則表達(dá)式:/^[a-z0-9][a-z0-9-]{0,15}$/,因?yàn)檫@樣可以避免同形異意攻擊(homoglyph attacks)。
同時(shí),fnames 也是可以恢復(fù)的。
fnames 需要每年更新一次,并向 Farcaster 名稱注冊(cè)處支付費(fèi)用,該注冊(cè)處將每個(gè) fname 作為 NFT 發(fā)行。fnames 可以在到期前 90 天內(nèi)更新。如果過期,fnames 將進(jìn)入荷蘭式拍賣,起拍價(jià)為年費(fèi)加上溢價(jià),然后逐漸降低至零。
該協(xié)議的核心團(tuán)隊(duì)設(shè)定了這些 NFT 的價(jià)格,而該費(fèi)用則決定了誰可以加入,從而把機(jī)器人從協(xié)議中剔除,同時(shí)維持合理的價(jià)格。
賬戶恢復(fù)
如我們所知,我們可能會(huì)忘記錢包的密碼,因此擁有恢復(fù)數(shù)字身份的便捷方式對(duì)于協(xié)議來說至關(guān)重要。基于此原因,F(xiàn)arcaster 協(xié)議允許用戶設(shè)置一個(gè)恢復(fù)地址來保護(hù)他們的 fnames 和 fids。需要注意的是,此恢復(fù)功能僅適用于丟失訪問權(quán)限的情況,而不適用于地址被泄漏的情況。
恢復(fù)后的地址可以在三天的托管期后提出申請(qǐng),從而將資產(chǎn)轉(zhuǎn)移到新的托管地址。
數(shù)據(jù)存儲(chǔ)
如前所述,Hubs 使用 delta 圖譜來保存消息并在節(jié)點(diǎn)之間同步社交網(wǎng)絡(luò)狀態(tài)。
在此圖中,每個(gè)頂點(diǎn)都是一個(gè)實(shí)體,如用戶或消息,而邊是實(shí)體之間的關(guān)系。當(dāng) @alice 創(chuàng)建一條消息,@bob 對(duì)其點(diǎn)贊時(shí),協(xié)議將創(chuàng)建一系列增量,便于在節(jié)點(diǎn)之間進(jìn)行同步。
Farcaster 區(qū)分了六種類型的增量:
1. casts,即用戶的消息
2. reactions,即來自其他用戶對(duì)某個(gè)用戶消息的回應(yīng)(如,點(diǎn)贊)
3. amps,即對(duì)用戶的支持或認(rèn)可
4. verifications,即所有權(quán)證明(例如,Ethereum 地址簽名)
5. signers,即用戶授權(quán)用于簽名他們?cè)隽康拿荑€對(duì)
6. user data,即關(guān)于用戶的元數(shù)據(jù)(例如,他們的個(gè)人資料照片)
Lens Protocol
Farcaster 建構(gòu)在 Ethereum 中,擁有一個(gè)鏈下解決方案(Farcaster Hubs)用于存儲(chǔ)信息,而 Lens 則使用 L2 Polygon 區(qū)塊鏈。
檔案
與 Farcaster 類似,你需要設(shè)置「檔案」來參與該協(xié)議,它是一個(gè) NFT 形式的序列 ID。NFT 將屬于一個(gè)錢包地址,其所有者將控制該檔案,并且可以進(jìn)行以下操作:
?向檔案發(fā)布內(nèi)容
?設(shè)置檔案的「關(guān)注模塊」:該邏輯允許其他人關(guān)注此檔案
?設(shè)置檔案的頭像(圖片 URI)
?設(shè)置檔案的「調(diào)度器」
如果您的錢包地址包含在列表中(與 Farcaster 一樣,目前只能通過邀請(qǐng)或在 OpenSea 等市場(chǎng)上購買檔案加入),你可以在LensHub.sol 的可升級(jí)合約中設(shè)置您的檔案。
擁有 Lens 檔案 NFT 后,您可以向其發(fā)布公告。此外,該 NFT 將包含所有者生成的所有公告、評(píng)論等的歷史記錄。
Lens 的一個(gè)有趣功能是,檔案以及幾乎每個(gè)協(xié)議項(xiàng)目都可以有不同的擴(kuò)展其功能的模塊。例如,檔案 NFT 包含F(xiàn)ollowModule,該模塊設(shè)定了允許其他檔案關(guān)注并在鏈上保存的規(guī)則。
與 Farcaster 一樣,目前只有其管理機(jī)構(gòu)批準(zhǔn)的地址才能鑄造檔案,這樣做是為了屏蔽機(jī)器人和虛假賬戶。
動(dòng)態(tài)
有了檔案 NFT 后,你就可以開始發(fā)布動(dòng)態(tài)(Publication)了,包括消息、評(píng)論等。
Lens 有三種類型的動(dòng)態(tài),分別是帖子、評(píng)論和轉(zhuǎn)發(fā)。
動(dòng)態(tài)直接發(fā)布到用戶的檔案,這意味著用戶創(chuàng)建的所有內(nèi)容都將保留在本人的錢包中。值得注意的是,動(dòng)態(tài)屬于 NFT。
每個(gè)動(dòng)態(tài)都有一個(gè) ContentURI,其中包含一個(gè)動(dòng)態(tài)內(nèi)容的鏈接。該鏈接可以鏈接到 Arweave 或 IPFS 等去中心化解決方案上的文本、圖片、視頻,或者 AWS S3 等 web2 存儲(chǔ)設(shè)施。
發(fā)布動(dòng)態(tài)時(shí),會(huì)用到兩個(gè)模塊:收集模塊和引用模塊。
收集模塊包含了允許其他用戶將動(dòng)態(tài)鑄造為 NFT 的所有邏輯,鑄造的 NFT 將引用原始動(dòng)態(tài)的 URI。
引用模塊包含了對(duì)動(dòng)態(tài)的評(píng)論和轉(zhuǎn)發(fā)有關(guān)的所有邏輯。
評(píng)論
評(píng)論功能讓用戶能夠提供反饋。實(shí)際上,評(píng)論與帶有額外檢查和特性的動(dòng)態(tài)類似。
評(píng)論既然類似于動(dòng)態(tài),那么它們也會(huì)存儲(chǔ)在用戶的個(gè)人檔案中。
評(píng)論的一個(gè)有趣之處在于,它們必須遵守原始發(fā)布參考模塊的規(guī)則。例如,若有規(guī)定僅允許檔案 NFT 的關(guān)注者發(fā)表評(píng)論,那么當(dāng)其他人試圖在動(dòng)態(tài)中發(fā)表評(píng)論而未關(guān)注其發(fā)布者時(shí),交易將無法完成,評(píng)論也無法發(fā)布。
評(píng)論亦可被收集,因?yàn)樗鼈兌蓟趧?dòng)態(tài)。由此,人們可從中找到自己喜歡的優(yōu)質(zhì)評(píng)論并將其制成 NFT。
轉(zhuǎn)發(fā)
Mirror 相當(dāng)于我們?cè)?Twitter 上轉(zhuǎn)發(fā)推文。從協(xié)議角度看,它們與動(dòng)態(tài)在某些方面相似,但具有特殊之處。
與評(píng)論相似,鏡像也必須遵循參考模塊原始發(fā)布者的規(guī)則。如果某篇?jiǎng)討B(tài)內(nèi)容僅限于原發(fā)布者的關(guān)注者進(jìn)行轉(zhuǎn)發(fā),那么未滿足條件的用戶將無法轉(zhuǎn)發(fā)此帖。
不同于動(dòng)態(tài)和評(píng)論,轉(zhuǎn)發(fā)無法被收集。
收藏
收藏是 Lens 的一項(xiàng)原生功能,可以讓創(chuàng)作者通過他們的作品獲取收益。創(chuàng)作者可以發(fā)布各種形式的內(nèi)容:圖片、視頻、播客、藝術(shù)作品等,因此這個(gè)模塊將用于為作品設(shè)定價(jià)格并允許其他用戶收藏或鑄幣。
操作過程很簡(jiǎn)單:創(chuàng)建動(dòng)態(tài)時(shí),可以啟用收藏模塊。該模塊根據(jù) ContentURI 為動(dòng)態(tài)開啟鑄幣功能。創(chuàng)作者可以根據(jù)需要設(shè)置任意規(guī)則,例如限時(shí)免費(fèi)或限量收藏。
關(guān)注
最后,在 Lens 協(xié)議中關(guān)注其他用戶與 Farcaster 和其他 Web2 社交網(wǎng)絡(luò)略有不同。如我們所見,所有內(nèi)容都可以變?yōu)?NFT 或存儲(chǔ)在個(gè)人檔案 NFT 中。因此,在 Lens 協(xié)議上關(guān)注某個(gè)檔案的用戶會(huì)獲得關(guān)注 NFT(Follow NFT)。
與之前的項(xiàng)目一樣,檔案 NFT 可以有自己的關(guān)注模塊,并制定專屬規(guī)則。這意味著你可以規(guī)定對(duì)方需支付 5 個(gè) MATIC 才可以回關(guān)你。歸根結(jié)底,你是在「鑄造」表示你關(guān)注了該檔案的 Token,而檔案所有者可以制定相應(yīng)規(guī)則。
關(guān)注 NFT 的一個(gè)獨(dú)特功能是其內(nèi)置的治理能力,如投票代理,這個(gè)功能可以在 Lens 協(xié)議內(nèi)實(shí)現(xiàn)社交 DAO 的創(chuàng)建。
你可以設(shè)定規(guī)則,比如讓從一開始就關(guān)注的粉絲們?cè)谕镀睍r(shí)具有更多權(quán)重。
Farcaster 與 Lens 協(xié)議的對(duì)比
如果你已經(jīng)閱讀到這里,你應(yīng)該對(duì)這兩個(gè)去中心化社交網(wǎng)絡(luò)的設(shè)計(jì)原則有了大致的了解。每個(gè)網(wǎng)絡(luò)都有它的優(yōu)勢(shì)和問題,現(xiàn)在讓我們來分析一下二者的利弊。
ID 或個(gè)人檔案
在 Farcaster 上,你需要每年更新一次您的 ID。而在 Lens 上,你只需做一次就可以了。哪個(gè)更好呢?這要看情況。
Farcaster 一直致力于提供高質(zhì)量的對(duì)話,它之所以要求人們?yōu)閭€(gè)人檔案付費(fèi),原因之一在于是支持 Hubs,其次是為了確保用戶能夠投入精力。雖然這樣做有好處,但在我心中,我不確定這是否能確保 Farcaster 獲得大規(guī)模的采用。但 Farcaster 是否希望建立大規(guī)模的采用呢?更多的用戶將帶來更多的負(fù)面信息,我認(rèn)為他們正通過在網(wǎng)絡(luò)中提供高質(zhì)量的個(gè)人檔案來降低負(fù)面信息的比例。到目前為止,F(xiàn)arcaster 上已經(jīng)可以進(jìn)行深入的談話了。
在 Lens 上,任何人都可以鑄造他們的 ID,并且不需要更新。盡管這很簡(jiǎn)潔,但它允許人們?yōu)榇笃放苿?chuàng)建檔案(就像目前已經(jīng)在 ENS 或域名上發(fā)生的那樣),并向人們收費(fèi)以控制該社交媒體個(gè)人資料。這是好事嗎?由于個(gè)人檔案不會(huì)過期(與 Farcaster 不同),所以只有時(shí)間會(huì)給我們答案。
社交圖譜
Lens 最有趣的功能之一是將個(gè)人檔案中的所有信息都保存在鏈上。該協(xié)議為你的動(dòng)態(tài)創(chuàng)建合約,因此任何使用該協(xié)議的客戶端都會(huì)顯示完全相同的內(nèi)容。你的關(guān)注者和內(nèi)容將一直和你綁定在一起,不受平臺(tái)的影響。
另一方面,F(xiàn)arcaster 為你提供了更多的靈活性。雖然 Lens 看起來不錯(cuò),但我已經(jīng)嘗試了一些只顯示圖片動(dòng)態(tài)的「Instagram 克隆版」。這聽起來很酷,但我無法分離我的內(nèi)容,而在 Farcaster 上,我卻可以這么做。每個(gè)應(yīng)用程序都能依靠 delta 圖譜來構(gòu)建其粉絲列表。唯一的問題是,如果你想更換客戶端,你就需要以某種方式「導(dǎo)出」你的粉絲。至于這到底是好事還是壞事,我相信時(shí)間將給出答案。
全部鏈上存儲(chǔ) vs 部分鏈上存儲(chǔ)
Lens 使用 Polygon 進(jìn)行所有交易,所有內(nèi)容都保存在 Polygon 上,而 Farcaster 則使用其鏈下解決方案。
Lens 會(huì)將一切都保存在你的錢包中,作為不同合約(模塊)創(chuàng)建的 NFT。這種做法相當(dāng)聰明,因?yàn)檫@樣你的社交圖譜和帖子可能會(huì)無限增長(zhǎng)。然而,F(xiàn)arcaster 上的 hub 在 delta 圖譜的大小上有限制(64TB)。這個(gè)圖譜大小的限制是為了移除舊帖子,讓內(nèi)容一直處在最新的狀態(tài)。我喜歡這種方法,因?yàn)樗?GDPR 關(guān)于被遺忘權(quán)的原則。Lens 的方法很「簡(jiǎn)單」:由于你擁有一切,所以你應(yīng)該能夠摧毀/銷毀一切。但是如你所知,區(qū)塊鏈將保存歷史記錄,因此任何人都可以知道你在某個(gè)特定時(shí)間所說/做的事情。GDPR 在這方面的立場(chǎng)可能會(huì)很有趣。
擴(kuò)展協(xié)議
在 Lens 上,你可以擴(kuò)展模塊,因此擁有無限選擇;而在 Farcaster 上,你需要提出提議來更改協(xié)議,并且所有 hub 都需要升級(jí)以支持這些更改。二者之中我更喜歡 Lens 的方法,因?yàn)槟憧梢栽O(shè)置并部署擁有自己規(guī)則的合約。不過,F(xiàn)arcaster 的方法更像其他開源項(xiàng)目,也有其優(yōu)勢(shì)。如同其他解決方案,時(shí)間將給出答案。
個(gè)人體驗(yàn)
就我個(gè)人而言,我既使用 Farcaster 也使用 Lens,我對(duì)兩者都感覺很滿意。然而,到目前為止,我確實(shí)發(fā)現(xiàn)了兩者之間的巨大差異。
對(duì)我來說,F(xiàn)arcaster 是一個(gè)可以找到深入且有趣對(duì)話的地方。我可以與社區(qū)進(jìn)行有效互動(dòng),并且總能從別人那里學(xué)到新的東西。與 Twitter 相比,它非常龐大。在 Twitter 上,我通常看到的都是各種推廣和充滿仇恨的討論;但在 Farcaster 上,大家在討論時(shí)用語文明,舉止得體,即使意見不合,你也會(huì)愿意與大家耐心交流并從中學(xué)到新的東西。
另一方面,Lens 則是藝術(shù)家和創(chuàng)作者的聚集地。我在 Lens 上的粉絲比 Farcaster 多得多,但是互動(dòng)較少。雖然我的動(dòng)態(tài)內(nèi)容獲得了不少點(diǎn)贊和轉(zhuǎn)發(fā),但實(shí)際上我?guī)缀鯖]有在評(píng)論中參與任何互動(dòng)。所有的點(diǎn)贊和粉絲似乎都是虛假的,因?yàn)槲覠o法通過評(píng)論與其他人互動(dòng)。盡管它的技術(shù)非常出色,但這種感覺還是會(huì)讓人不適應(yīng)。我喜歡它的收藏功能,以及可以設(shè)定關(guān)注和收藏規(guī)則。Lens 的一個(gè)很酷的功能是Wav3s,它可以讓你為轉(zhuǎn)發(fā)你帖子的人設(shè)置付費(fèi)條件。這樣,你不需要支付平臺(tái)費(fèi)用,而是支付給你的粉絲和 Lens 用戶,讓他們幫你將內(nèi)容傳播給他人。這是一個(gè)很好的點(diǎn)子,但它引發(fā)了這樣一個(gè)問題:擁有較少資金的人是否會(huì)在發(fā)展自己社區(qū)方面遇到困難?顯然,這個(gè)問題的答案是:如果你有優(yōu)質(zhì)內(nèi)容,人們自然會(huì)來,但情況并非總是如此。
現(xiàn)在,這兩個(gè)協(xié)議都有多個(gè)客戶端應(yīng)用程序。每個(gè)應(yīng)用都有其自身的優(yōu)缺點(diǎn),我也很愿意嘗試每個(gè)應(yīng)用并收獲不同的用戶體驗(yàn)。Buttrfly、Orb和Phaver是你可以在 Lens 上使用的 3 個(gè)手機(jī)應(yīng)用,而Jam和Warpcast則是 Farcaster 上的應(yīng)用。
目前,Warpcast 是 Farcaster 上唯一一個(gè)功能齊全的客戶端,但很快 Jam 也會(huì)加入。正如之前解釋的那樣,有意思的測(cè)試點(diǎn)在于,我在 Warpcast 上的社交圖譜將不存在于 Jam 上,所以我需要從頭開始創(chuàng)建一個(gè)新的圖譜。
在嘗試了 Lens 之后,我體驗(yàn)了 Phaver 和 Orb。Phaver 有點(diǎn)奇怪,讓我摸不著頭腦。其用戶體驗(yàn)較為不同尋常,因?yàn)樗鼡碛凶约旱纳缃痪W(wǎng)絡(luò),用戶可以在 Phaver 和 Lens 之間切換。這也迫使用戶更改一些設(shè)置才能使用,令人感到有些別扭。與此相反,Orb 是一個(gè)功能齊全的解決方案。雖然還缺少一些細(xì)節(jié),例如從客戶端設(shè)置收集選項(xiàng),但可以肯定的是,這些問題將在即將發(fā)布的版本中得到解決。
總結(jié):如果可以的話,我建議大家兩個(gè)都可以嘗試。我認(rèn)為它們將擁有各自的社群,并且同時(shí)使用兩者會(huì)更有趣。由于一切都是去中心化的,許多應(yīng)用程序?qū)⒛軌虬阉袃?nèi)容集中在一個(gè)應(yīng)用當(dāng)中,例如Yup(我也在尋找測(cè)試的機(jī)會(huì))。事實(shí)上,社交網(wǎng)絡(luò)已經(jīng)很多年沒有讓人感到如此興奮過了。