DAppは死んだ? Web3アプリの分散化とユーザー体験のジレンマ
原題:《dApps Graveyard》
著者:w1nt3r.eth
翻訳:深潮 TechFlow
おそらくブロックチェーンは永遠に存在するでしょうが、分散型アプリケーション(dApps)の寿命は非常に短いです。
2024年のハロウィン、私は2021年に使用したdAppsを開こうとしましたが、その結果は恐ろしいものでした:ドメインが期限切れ、デプロイが停止、ページが見つからない、サービスが利用できない。
待って、これらのアプリケーションは分散型であるべきではなかったのですか?それらは中央集権的な実体に依存しないはずで、ビールのように無料で、言論のように自由で検閲に強いアプリケーションであるべきでした。これらはWeb3を新しいインターネットにするアプリケーションです。
しかし、これらのアプリケーションはほとんど消えてしまい、私が2年前に使用したもののほとんどは存在しません。彼らの「幽霊」はおそらくブロックチェーンのどこかに残っているかもしれませんが、正しい契約アドレスを見つけて正しい呼び出しデータを推測する必要があります。
なぜこのようなことが起こるのでしょうか?問題はどこにあるのでしょうか?私たちはこの状況を変えるために何ができるのでしょうか?
では、「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は、Ethereum上で処理するのに適さない計算をいくつか行う必要があります。たとえば、ビデオの生成、複数のユーザーのカーソル位置の同期、チャット権限の検証などです。また、データベース接続資格情報やプライベートトークンなどの機密情報を保護する必要があります。
- Ethereum 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を開発する。これは、2つの独立したアプリケーションを維持する必要があり、エンジニアリングの作業量とコストが増加します。
- 「漸進的強化」の戦略を採用する。簡略版dAppから始め、サーバーが利用可能であればそれを利用して速度を向上させます。これは厳格な管理を必要とし、2番目の選択肢と比較して節約できる時間はそれほど多くありません。
- コードをオープンソースにし、ユーザーが自分で実行できるようにする(これが私たちの選択した方向です)。しかし、実際には、システム全体を立ち上げるにはかなりのソフトウェアエンジニアリング能力が必要で、IPFSからページを読み込むよりもはるかに複雑です。
これらの選択肢はすべてかなりの努力を必要とし、デフォルトの選択肢ではありません。どのdAppチュートリアルやテンプレートを見ても、これらの問題についてほとんど言及されていません。実際、分散型アプリの開発はそれほど難しくある必要はありません。もし私たちが複雑さをインフラストラクチャ層に移転できれば、dAppの制作はもっと簡単になるはずです。
もしかしたら、私たちはその厄介な問題を解決すべきでは?
私たちはインフラストラクチャのレベルで分散化を実現しようと試みることができます。たとえば、ENSサポートをgetaddrinfoに統合し、すべてのブラウザがIPFSをネイティブにサポートできるようにし、IPFSの速度を現在の最先端CDNに匹敵するように向上させることができます。また、EthereumのJSON-RPCを改善し、分散型アプリ(dApps)にとってより実用的にすることもできます。しかし、これは単純な部分に過ぎません。
集中型データベースやサーバーの代替として、私たちは現在存在しない一連の技術を開発する必要があります。おそらく、ゼロ知識証明(ZK)に基づく分散型計算システムが必要で、コードを実行する際に報酬を得ることができるか、一般的なx86命令を効率的に実行できるスーパーEthereumが必要です。
さらに、暗号通貨の周りに構築されたすべてのサービスに対して分散型の解決策を見つける必要があります。私たちは新しいインセンティブメカニズムを設計する必要があります------誰がこれらの計算リソースの費用を負担するのでしょうか?真に分散型のシステムでは、既存のSaaSビジネスモデルは機能しません。(しかし、これらのサービスの費用はクレジットカードなしで暗号通貨で支払えることを願っています。)
それに加えて、この新しいシステムの開発体験が、少なくとも現在の集中型プラットフォームと同じくらい良好であることを保証する必要があります。これらのプラットフォームは、数十億ドルのエンジニアリング時間を投入して磨き上げ、マーケティングに巨額を投資してネットワークチュートリアルを充実させ、彼らのソリューションが最適であると説得しようとしています。
これは本当に重要ですか?
「あなたの科学者たちは技術の実現可能性に過度に焦点を当てており、そうすることが適切かどうかを考えることを止めていません。」------『ジュラシック・パーク』からの引用
しかし、アプリケーション層は本当に分散化する必要がありますか?
Nounsは、単にブロックチェーンの分散化が十分であることを示しています。Nounsは繁栄するアプリエコシステムを持ち、すべてのアプリが同じ契約と対話しています。あなたはCampやAgoraを通じて投票できますが、それは重要ではなく、あなたが好きなインターフェースを選ぶだけです。
数十億のユーザーを引き付けるために、暗号通貨は既存のシステムにシームレスに統合されたコンポーネントになる必要があるかもしれません。これは理想的な暗号体験が、ユーザーが暗号通貨を使用していることすら知らないことを意味します。なぜなら、それは無関係な程度に抽象化されているからです。たとえば、携帯電話を軽くタッチするだけでコーヒーを購入でき、USDCを使用しているのかVisaネットワークを使用しているのか、ユーザーは気にしません。
市場は部分的な最適解を見つけました:
- ブロックチェーンは基盤層として分散化されており、数兆ドルの資産の安全を保証し、所有権と検閲耐性を強力にサポートしています。
- アプリケーション層は集中化されています。企業は集中型アプリケーションを開発し、最高のユーザー体験を提供します。彼らのクローズドシステムは競争の壁を形成しますが、これらのアプリは依然として同じブロックチェーンと対話します。
欠けているツール
私はこのバランスがより分散型に傾くことを望んでいます。私は、リンクをクリックするのと同じくらい簡単に自分のNouns CampやAgoraのバージョンをローカルで実行できることを望んでいます。私は、これらの分散型アプリを構築することを簡単にし、ユーザー体験に影響を与えないツールを持ちたいと思っています。
BasePaintは驚くべきものです。それは自己維持型のエコシステムです:アーティストは作品を創作し、コレクターは購入して二次市場で利益を得て、所有者は投票を通じて日常業務に影響を与えることができます。このモデルは効果的であり、私たちはこの方法でクリエイターに100万ドル以上を配布してきました。
しかし、システム全体で最も脆弱な部分は私たちのチームです。アプリケーションの維持には多くの努力が必要で、バグを修正し、ユーザー体験を向上させる必要があります。同時に、私たちはシステムをより分散型にするために努力しています。たとえば、アプリケーションを自己ホスティングしやすくし、権限管理を放棄して障壁を設定しないようにしています。
結論
分散型アプリ(dApps)は、「分散型」の利点が現在ユーザーが関心を持っていないため、活力を失っているようです。そのため、開発者は調整を行う必要があります。私たちはアプリを分散化するためのツールの開発を停止しました。
幸いなことに、ブロックチェーンの基盤インフラストラクチャは以前よりも強固になっています。基礎技術はより堅実で、発展のロードマップも期待できます。私たちは実際に、グローバルな計算プラットフォームを構築する機会があります。
しかし、残念ながら、ユーザーインターフェースを強化する方法についての議論は十分に重視されていません。dAppの概念は一時的に棚上げされています……