DApp 已死? Web3 應用去中心化與用戶體驗的兩難抉擇

深潮TechFlow
2024-11-08 03:00:00
收藏
如果我們能將複雜性轉移到基礎設施層,製作 DApp 應該會更加簡單。

原標題:《dApps Graveyard》

作者:w1nt3r.eth

編譯:深潮 TechFlow

也許區塊鏈會永存,但去中心化應用程序 (dApps) 的壽命卻很短。

2024 年的萬聖節,我嘗試打開 2021 年使用過的 dApps,結果令人驚恐:域名過期、部署暫停、頁面無法找到、服務不可用。

等等,這些應用程序不應該是去中心化的嗎?它們本應是不依賴中心化實體的,像啤酒一樣免費,像言論一樣自由且抗審查的應用程序。它們是讓 Web3 成為新互聯網的應用程序。

但是這些應用程序幾乎都已消失了,我兩年前使用的大多數都不復存在。它們的「幽靈」可能還留在區塊鏈的某個地方,只要你能找到正確的合約地址並猜出正確的調用數據。

為什麼會發生這種情況?問題出在哪裡?我們能做些什麼來改變這種現狀?

那麼,「dApp」究竟是什麼?

讓我們翻閱一下我們從史前時代(2016 年)找到的古老文獻。

「dApp」是「去中心化應用程序」的縮寫。這個概念是,你可以使用開放技術(如 HTML/CSS/JS)製作一個 Web 應用,並將其托管在去中心化和無許可的基礎設施上(如 IPFS)。dApp 通過你的錢包與區塊鏈進行互動。你可以獲取最新數據並發送交易,而無需依賴中心化公司。

這使得 dApps 幾乎是不可阻擋的。免費、無許可、去中心化。這是那些真正朋克精神追求的夢想。

漂亮的登陸頁面

然而,大多數人並不在意去中心化和無許可的特性。他們更關心應用程序是否實用(以及數字是否能上漲)。

Web3 的開發者很快意識到,他們正與在 Web2 領域中設計精美、速度快且吸引人的 Web2 應用競爭用戶的注意力,而去中心化在這個戰場上並沒有給他們帶來太多優勢。

那些深入了解技術的人明白區塊鏈是一個真正的範式轉變。但區塊鏈上的一切都是「開源」的,可以被複製,因此它變成了一種商品。沒有競爭壁壘。任何人都可以在任何地方部署 Uniswap 合約。事實上,任何人都可以創建自己的 L2!

真正的區別在於品牌、分發渠道、網絡效應和用戶體驗。在數以億計的 Uniswap 部署中,用戶會選擇他們信任的(品牌)、容易訪問的(分發)、大家都在使用的(網絡效應)以及界面友好的(用戶體驗)。

雖然我最後才提到用戶體驗,但這並不是最不重要的。糟糕的用戶體驗會帶來負面影響。每個電子商務商店的老闆都知道,每增加 100 毫秒的延遲,就可能失去 10% 的用戶。如果用戶體驗不好,你無法打造高端品牌。如果你的應用程序讓人用起來心煩意亂,你也無法留住用戶。

部署到 Vercel 比部署到 IPFS 更簡單

做好事不易

即使大多數用戶對去中心化不感興趣,真正的加密朋克仍然在意。不是說「每個人都應該是去中心化的狂熱者」,而是因為「這是正確的做法」。即使當中心化實體變得敵對或遭到審查時,去中心化也能賦予人們權力和自主權。

這就是問題所在。要製作一個既去中心化又擁有良好用戶體驗的應用程序並不容易。但困難的原因卻是因為我們(開發者)變得懶惰。

剖析 BasePaint

讓我們來看看當今典型的「dApp」及其所依賴的技術。我將用我自己開發的 BasePaint 來舉例。從某種意義上說,它應該是一個「Web3 dApp」:它使用區塊鏈(Base L2)並依賴用戶的錢包進行互動。但這還不足以提供良好的用戶體驗,所以我不得不加入一些非去中心化的元素。實際上,加入了很多。

BasePaint 的技術服務組成

以下是我在開發中不得不採用的集中化技術:

  • 域名。我希望用戶能方便地找到我們並訪問網站。由於瀏覽器不支持 ENS,我不得不從域名註冊商處購買域名,並配置 DNS 以指向正確的伺服器。
  • 托管服務。我需要將應用程序(包括 HTML/CSS/JS 文件)托管在某個地方,並確保訪問速度快且穩定。雖然 IPFS 很有潛力,但大多數瀏覽器不支持,網關速度慢,URL 也不友好

(你試過在手機上輸入 QmRxM6Fz3jYBNLTNn59Whtj8uiFodC53Z5nEep6eSkwf8V 嗎?)

  • 數據庫。區塊鏈在某些情況下是個不錯的數據庫,但並不適用於所有場景。例如,我們將聊天信息存儲在 Postgres 數據庫中,因為這樣更便宜且速度更快。雖然可以嘗試將其上鏈,但速度永遠比不上集中式數據庫。
  • 後端服務。BasePaint 還需要進行一些不適合在以太坊上處理的計算。例如,生成視頻、同步多個用戶的光標位置、驗證聊天權限等。此外,我們還需保護一些敏感信息,如數據庫連接憑據和私有 Token 等。
  • 以太坊 JSON-RPC 提供商。理論上,我們可以通過用戶的錢包來訪問區塊鏈。但這意味著沒有「支持 Web3」的瀏覽器的用戶將無法看到任何內容。更麻煩的是,不同錢包的 RPC 提供商之間存在細微差異。例如,QuickNode 將日誌查詢限制在 10,000 條以內,而 Alchemy 使用自己的計算單元來限制請求。使用錢包的 RPC 就意味著要處理這些細微的差異。
  • 索引器。在區塊鏈上存儲數據成本高昂。BasePaint 通過不將像素存儲在合約中來解決這個問題。相反,它通過 Painted 事件發送所有必要的數據。你可以通過查詢智能合約事件重建任何畫布。但想像一下在 BasePaint 畫廊頁面上這樣做(我們展示數百個畫布!)。為了提供流暢的用戶體驗,我們運行了一個索引器來跟蹤區塊鏈事件,並以便於快速查詢的方式存儲數據。
  • 其他服務。我們使用 Reservoir 獲取二級市場數據和進行跨鏈鑄造,Cloudflare 作為 CDN,R2 用於視頻存儲和緩存,DataDog 用於日誌記錄,PostHog 用於分析,Neynar 用於查找 Farcaster 用戶的錢包地址。每種服務都為我們節省了數周甚至數月的開發時間,但也使我們的應用程序變得不那麼去中心化。此外,許多工具缺乏可持續的商業模式,可能隨時關閉。
  • 信用卡。這個問題總是讓我哭笑不得。你知道嗎,大多數加密 SaaS 產品不能用加密貨幣支付?如果我的信用卡餘額不足或過期,我的域名、數據庫、伺服器、RPC 端點和其他 SaaS 產品就會下線。

如何實現應用程序的去中心化?

作為一名 Web3 開發者,目前我看到的選擇有:

  • 放棄集中化技術,構建一個完全依賴去中心化服務的硬核 dApp。雖然這在 Tornado Cash 等項目中可能可行,但對於普通消費者產品而言,這會帶來用戶體驗上的障礙,可能會讓大多數用戶卻步。
  • 保留集中化的應用程序,同時開發一個僅依賴去中心化技術棧的簡化版 dApp。這意味著需要維護兩個獨立的應用程序,增加了工程工作量和成本。
  • 采用「漸進增強」的策略。從一個簡化的 dApp 開始,如果伺服器可用,就利用它來提升速度。這需要嚴格的管理,與第二種選擇相比,節省的時間並不多。
  • 開源代碼,讓用戶自行運行(這是我們選擇的方向)。但實際上,啟動整個系統需要相當高的軟件工程能力,比從 IPFS 加載頁面要複雜得多。

以上選項都需要付出相當大的努力,並非默認的選擇。查看任何 dApp 教程或模板,幾乎沒有提到這些問題。其實,去中心化應用開發不必如此困難。如果我們能將複雜性轉移到基礎設施層,製作 dApp 應該會更加簡單。

也許我們應該去解決那些棘手的問題?

我們可以嘗試在基礎設施層面實現去中心化。例如,將 ENS 支持集成到 getaddrinfo 中,讓所有瀏覽器都能原生支持 IPFS,並提升 IPFS 的速度至與當前最先進的 CDN 相媲美。我們還可以改進以太坊的 JSON-RPC,使其對去中心化應用 (dApps) 更加實用。但這只是簡單的部分。

要替代集中式數據庫和伺服器,我們需要開發出一系列目前還不存在的技術。也許需要一種基於零知識證明 (ZK) 的分佈式計算系統,能夠在運行代碼時獲得獎勵,或者一個能夠高效執行通用 x86 指令的超級以太坊。

此外,我們還需要為圍繞加密貨幣構建的所有服務找到去中心化的解決方案。我們需要設計新的激勵機制------誰會為這些計算資源買單?在真正去中心化的系統中,現有的 SaaS 商業模式將不起作用。(但希望這些服務的費用可以通過加密貨幣支付,而無需信用卡。)

除此之外,我們還必須確保這種新體系的開發體驗至少與當前的集中式平台一樣好。那些平台已經投入了數十億美元的工程時間來打磨,並在營銷上投入巨資以充斥網絡教程,試圖說服大家他們的方案是最優的。

這真的重要嗎?

「你的科學家們過於關注技術的可行性,卻沒有停下來考慮這樣做是否合適。」------摘自《侏羅紀公園》

但應用層真的需要去中心化嗎?

Nouns 向我們展示了或許僅僅是區塊鏈的去中心化就已足夠。Nouns 擁有一個繁榮的應用生態系統,所有應用都與相同的合約進行互動。你可以通過 Camp 或 Agora 投票,這並不重要,你只需選擇自己喜歡的界面即可。

為了吸引數十億用戶,加密貨幣可能需要成為現有系統中一個無縫集成的組件。這意味著理想的加密體驗是用戶甚至不知道自己在使用加密貨幣,因為它已經被抽象到無關緊要的程度。比如,只需輕觸手機就能買到咖啡,至於使用的是 USDC 還是 Visa 網絡,用戶並不關心。

市場已經找到了一个局部的最優解:

  • 區塊鏈作為基礎層是去中心化的,它保障了數萬億美元的資產安全,並為所有權和抗審查提供了強有力的支持。
  • 應用層則是中心化的。公司開發中心化應用,以提供最佳的用戶體驗。它們的閉源系統形成了對競爭的壁壘,但這些應用仍然與同一個區塊鏈進行互動。

缺少的工具

我希望這種平衡能更多地向去中心化傾斜。我希望能像點擊一個鏈接一樣簡單地在本地運行我自己的 Nouns Camp 或 Agora 版本。我希望我們能擁有一些工具,使得構建這些去中心化應用變得簡單,同時不影響用戶體驗。

BasePaint 令人驚艷。它是一個自我維持的生態系統:藝術家創作作品,收藏家購買並在二級市場獲利,所有者可以通過投票影響日常事務。這種模式行之有效,我們已經通過這種方式向創作者分發了超過一百萬美元。

然而,整個系統中最薄弱的環節是我們這個團隊。維護應用需要大量的努力,比如修復漏洞和提升用戶體驗。同時,我們也在努力讓系統更加去中心化,比如使應用更易於自我托管,放棄權限控制而不是設置門檻。

結論

去中心化應用(dApps)似乎已經失去了生機,因為「去中心化」的優勢目前還不是用戶所關心的,因此開發者們需要做出調整。我們已經停止了開發那些旨在使應用去中心化的工具。

幸運的是,區塊鏈的底層基礎設施比以往任何時候都更加穩固。基礎技術更為扎實,發展路線圖也令人期待。我們實際上有機會構建一個全球性的計算平台。

然而,遺憾的是,關於如何增強用戶界面的討論並沒有受到足夠的重視。dApp 的概念暫時被擱置……

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
ChainCatcher 與創新者共建Web3世界