
dAppは死んだのか? Web3アプリにおける非中央集権性とユーザーエクスペリエンスのジレンマ
TechFlow厳選深潮セレクト

dAppは死んだのか? Web3アプリにおける非中央集権性とユーザーエクスペリエンスのジレンマ
もし複雑性をインフラ層に移転できれば、dApp の作成はより簡単になるはずです。
著者:w1nt3r.eth
翻訳:TechFlow

ブロックチェーンは永遠に存在するかもしれないが、分散型アプリケーション(dApps)の寿命は短い。
2024年のハロウィン、私は2021年に使っていたdAppsを再び開いてみたが、その結果は恐ろしいものだった。ドメインの有効期限切れ、デプロイの停止、ページが見つからない、サービス利用不可。
待って、これらのアプリケーションは「分散型」ではなかったのか? 中央集権的な実体に依存せず、「ビールのように自由で」「言論のように自由かつ検閲に耐える」アプリケーションのはずだった。Web3が新しいインターネットになるためのアプリケーションだ。
しかし、これらの大半はすでに消え去っている。2年前に私が使っていたほとんどが存在しない。それらの「幽霊」は、まだブロックチェーンのどこかに残っているかもしれない。正しいコントラクトアドレスを見つけ、正しい呼び出しデータを推測できれば。
なぜこのようなことが起きるのか? 問題は何処にあるのか? この現状を変えるために、我々は何ができるのか?
では、「dApp」とはそもそも何か?
古代の文献(2016年という「原始時代」のもの)をひもといてみよう。
「dApp」とは「decentralized application(分散型アプリケーション)」の略である。この概念は、HTML/CSS/JSなどのオープン技術を使ってWebアプリを作成し、IPFSのような非中央集権的・無許可なインフラにホスティングすること。dAppはウォレットを通じてブロックチェーンとやり取りする。ユーザーは中央集権企業に頼ることなく、最新のデータを取得したりトランザクションを送信したりできる。
これにより、dAppは事実上止められない存在となる。無料で、無許可で、分散化されている。まさに真のパンク精神が追い求める理想像だ。
美しいランディングページ
だが、大多数の人々は分散化や無許可性に関心がない。彼らが気にするのは、アプリが使いやすいかどうか(そして数字が上がるかどうか)だけだ。
Web3の開発者はすぐに気づいた。彼らは、デザインが洗練され、高速で魅力的なWeb2アプリと、ユーザーの注目を争わなければならない。そして、この戦場において分散化はそれほど大きな優位性をもたらさない。
技術に詳しい人々は、ブロックチェーンが真のパラダイムシフトであることを理解している。しかし、ブロックチェーン上のすべては「オープンソース」でありコピー可能なので、商品化されてしまう。競争の壁は存在しない。誰でもどこでもUniswapのコントラクトをデプロイできる。実際、誰でも独自のL2を作れるのだ!
真の差異はブランド、流通チャネル、ネットワーク効果、そしてユーザーエクスペリエンスにある。数億ものUniswapのデプロイの中から、ユーザーは自分が信頼する(ブランド)、アクセスしやすい(流通)、多くの人が使っている(ネットワーク効果)、使いやすい(UX)ものを選ぶ。
最後にユーザーエクスペリエンスを挙げたが、それが最も重要ではないというわけではない。悪いUXは致命的だ。あらゆるECショップのオーナーが知っているように、100ミリ秒の遅延がユーザーの10%を失う原因になる。UXが悪ければ、高級ブランドを築くことはできない。アプリが使いづらくてイライラさせれば、ユーザーを留めることはできない。

Vercelへのデプロイは、IPFSよりも簡単
正しいことをするのは難しい
多くのユーザーが分散化に興味がなくても、真の暗号パンクは気にする。つまり「全員が分散化狂信者になるべき」という話ではなく、「それが正しいことだから」だ。中央集権的実体が敵対的になったり検閲を行ったりしても、分散化は人々に力を与え、自律性を保証する。
問題はここにある。分散化されておりながらも良好なユーザーエクスペリエンスを持つアプリを作るのは簡単ではない。しかし、その難しさの理由は、私たち(開発者)が怠惰になってしまったからだ。
BasePaintを分解する
現代の典型的な「dApp」とその依存する技術を見てみよう。私自身が開発したBasePaintを例に取る。ある意味、これは「Web3 dApp」であるはずだ。ブロックチェーン(Base L2)を使い、ユーザーのウォレットとのインタラクションに依存している。しかし、これだけでは良いUXを提供できないため、いくつかの非分散化要素を追加せざるを得なかった。実際、かなり多く。

BasePaintの技術スタック構成
開発中にやむを得ず採用した中央集権的技術は以下の通り:
-
ドメイン。ユーザーが簡単に見つけてアクセスできるようにしたい。ブラウザがENSに対応していないため、ドメイン登録業者からドメインを購入し、DNSを設定して適切なサーバーを指す必要があった。
-
ホスティングサービス。アプリケーション(HTML/CSS/JSファイル)をどこかにホストし、高速かつ安定したアクセスを確保する必要がある。IPFSは可能性を秘めているが、ほとんどのブラウザは未対応で、ゲートウェイの速度も遅く、URLも使いにくい。
(スマホで
QmRxM6Fz3jYBNLTNn59Whtj8uiFodC53Z5nEep6eSkwf8V を入力してみたことがあるか?)
-
データベース。ブロックチェーンはある程度まで優れたデータベースだが、すべての用途には向かない。例えば、チャットメッセージはPostgresに保存している。より安価で高速だからだ。オンチェーンに保存することもできるが、集中型DBのスピードには永遠にかなわない。
-
バックエンドサービス。BasePaintにはイーサリアム上で処理するのが不適切な計算が必要だ。動画生成、複数ユーザーのカーソル位置同期、チャット権限の検証など。また、データベース接続情報やプライベートトークンといった機密情報を保護する必要もある。
-
イーサリアムJSON-RPCプロバイダー。理論的には、ユーザーのウォレット経由でブロックチェーンにアクセスできる。しかし、これだと「Web3対応」でないブラウザのユーザーは一切のコンテンツを見られない。さらに厄介なのは、各ウォレットのRPCプロバイダー間での微妙な違いだ。例えば、QuickNodeはログ照会を1万件以内に制限しており、Alchemyは独自の計算ユニットでリクエストを制限している。ウォレットのRPCを使うということは、こうした細かい相違に対処しなければならないということだ。
-
インデクサー。ブロックチェーン上でのデータ保存は高コストだ。BasePaintはピクセルをコントラクト内に保存せず、代わりに「Painted」イベントとして必要なすべてのデータを送信することでこれを回避している。スマートコントラクトのイベントを照会すれば、任意のキャンバスを再構築できる。しかし、BasePaintギャラリー(数百のキャンバスを表示!)でこれを毎回行う想像してみてほしい。スムーズなUXを提供するために、インデクサーを運用し、ブロックチェーンイベントを追跡して、高速照会可能な形でデータを保存している。
-
その他サービス。Reservoirで二次市場データ取得やクロスチェーンミント、CloudflareをCDNとして、R2で動画保管とキャッシュ、DataDogでログ管理、PostHogで分析、NeynarでFarcasterユーザーのウォレットアドレス検索を行っている。それぞれが開発時間を数週間から数ヶ月節約してくれるが、アプリをより中央集権的にもしている。また、多くのツールは持続可能なビジネスモデルを持たず、いつ停止するか分からない。
-
クレジットカード。これが常に私を苦笑させる問題だ。知っているだろうか? 多くの暗号系SaaS製品は暗号通貨での支払いを受け付けていないのだ。クレジットカードの残高が足りなくなったり有効期限が切れたりすれば、ドメイン、データベース、サーバー、RPCエンドポイント、他のSaaS製品すべてが停止する。
アプリを本当に分散化するには?
Web3開発者として、今の私が見える選択肢は以下だ:
-
中央集権的技術を放棄し、完全に分散化サービスのみに依存するハードコアなdAppを構築する。Tornado Cashのようなプロジェクトでは可能かもしれないが、一般消費者向け製品ではUXの障壁となり、大多数のユーザーを遠ざけるだろう。
-
中央集権的なアプリを維持しつつ、分散化技術スタックのみに依存する簡易版dAppを開発する。これは二つの独立したアプリをメンテナンスする必要があり、工数とコストが増える。
-
「プログレッシブ・エンハンスメント」戦略を採用する。簡易版dAppから始め、サーバーが利用可能な場合に速度向上のために活用する。厳格な管理が必要で、選択肢2と比べて節約できる時間はあまり多くない。
-
コードをオープンソース化し、ユーザー自身が実行できるようにする(私たちが選んだ道)。しかし実際には、システム全体を立ち上げるには高度なソフトウェア工学の能力が必要で、IPFSからページを読み込むよりはるかに複雑だ。
いずれの選択肢も相当な努力を要し、デフォルトの選択とは言えない。dAppのチュートリアルやテンプレートを見ても、こうした問題に言及しているものはほとんどない。実際、分散型アプリ開発はこれほど難しくあるべきではない。もし複雑性をインフラ層に移行できれば、dAppの作成はもっと簡単になるはずだ。
おそらく、私たちは厄介な問題に向き合うべきなのだろう
インフラレベルで分散化を試みることもできる。例えば、getaddrinfoにENSサポートを組み込み、すべてのブラウザがネイティブでIPFSをサポートするようにする。IPFSの速度を最新のCDN並みに引き上げる。イーサリアムのJSON-RPCを改善し、dAppにとってより実用的なものにする。これらはまだ簡単な部類だ。
中央集権的データベースやサーバーを代替するには、現在存在しない一連の技術を開発する必要がある。ゼロ知識証明(ZK)に基づく分散型コンピューティングシステムで、コード実行に対して報酬が得られるもの。あるいは、汎用x86命令を効率的に実行できるスーパーイーサリアム。
さらに、暗号通貨周辺のすべてのサービスにも分散化解決策が必要だ。新たなインセンティブメカニズムを設計しなければならない――誰がこれらの計算リソースに支払うのか? 真に分散化されたシステムでは、既存のSaaSビジネスモデルは機能しない。(ただし、これらのサービス費用がクレジットカードではなく暗号通貨で支払えるようになってほしい。)
加えて、この新体系の開発体験が、現在の中央集権プラットフォームと同等以上であることを保証しなければならない。それらのプラットフォームは数十億ドルの工数を費やして磨き込まれており、マーケティングにも巨額を投入し、ネット上のチュートリアルを支配して「自社の方式が最良」と信じ込ませようとしている。
これは本当に重要なのか?
「君たちの科学者たちは、技術が可能かどうかばかりに気を取られ、それをすべきかどうかを考えるのを止めてしまった。」——『ジュラシック・パーク』より
だが、アプリケーション層は本当に分散化される必要があるのか?
Nounsは、ブロックチェーン自体の分散化だけで十分かもしれないと示している。Nounsは繁栄するアプリエコシステムを持っており、すべて同じコントラクトと相互作用している。CampでもAgoraでも投票できる。どちらでもよい。好きなインターフェースを選べばいい。
数十億のユーザーを惹きつけるため、暗号通貨は既存システムにシームレスに統合されるコンポーネントになる必要があるかもしれない。つまり理想的な暗号体験とは、ユーザーが自分が暗号通貨を使っていることにさえ気づかない状態だ。抽象化されてどうでもよくなってしまうのだ。例えば、スマホを軽くタップしてコーヒーを買う。USDCを使うかVisaネットワークを使うかなんて、ユーザーは気にしない。
市場はすでに局所的な最適解を見つけ出している:
-
基盤層としてのブロックチェーンは分散化されている。数兆ドル規模の資産を安全に守り、所有権と検閲耐性を強固に支えている。
-
アプリケーション層は中央集権的である。企業が中央集権的アプリを開発し、最高のユーザーエクスペリエンスを提供する。閉鎖的なシステムが競争の壁となりつつも、これらアプリは同じブロックチェーンと相互作用している。
欠けているツール
このバランスが、もう少し分散化側に傾いてくれることを願っている。Nouns CampやAgoraの自分専用バージョンを、リンクをクリックするだけでローカルに起動できたらと思う。分散化アプリの構築が簡単になり、UXを犠牲にしないようなツールが欲しい。
BasePaintは素晴らしい。自己完結するエコシステムだ。アーティストが作品を制作し、コレクターが購入し二次市場で利益を得、所有者が投票で日常業務に影響を与える。このモデルは機能している。すでにクリエイターに100万ドル以上を分配してきた。
しかし、システムの中で最も脆弱な部分は、私たちというチームだ。アプリのメンテナンスには膨大な努力が必要で、バグ修正やUX改善などが含まれる。同時に、アプリをより自己ホスティングしやすくしたり、権限を放棄したりすることで、システムをより分散化しようと努力している。
結論
dAppは生きがいを失ったように見える。なぜなら、「分散化」の利点が、今のところユーザーの関心事ではないからだ。そのため開発者たちは調整を余儀なくされている。私たちは、アプリを分散化するためのツールの開発を止めてしまった。
幸運にも、ブロックチェーンの基盤インフラはこれまで以上に堅牢になっている。基盤技術はよりしっかりしており、開発ロードマップも期待できる。実際に、グローバルなコンピューティングプラットフォームを構築するチャンスがある。
しかし残念なことに、ユーザーインターフェースを強化する方法についての議論は、十分な注目を集めていない。dAppという概念は、当面棚上げされてしまった……
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














