zkLogin による摩擦のないオンランプ
ウォレットの摩擦を解消し、ユーザーの流入を維持し、成長の可能性を予測する方法
Web3 アプリが現代の Web2 サービスと同じようにシームレスなサインアップフローを持っていたらどうでしょうか?それが Sui ブロックチェーンにおける zkLogin の核となる約束です。これは Sui のための OAuth のように機能し、ユーザーは Google 、 Apple 、 X などの使い慣れたアカウントでサインインできます。その後、ゼロ知識証明(ZKP)によって、その Web2 の ID がオンチェーンの Sui アドレスに安全に紐付けられます。ウォレットのポップアップ、シードフレーズ、ユーザーの離脱はもうありません。
その影響は現実的かつ即座に現れます。すでに数十万の zkLogin アカウントが稼働しており、ケーススタディでは、従来のウォレットの障壁を取り除いた後、ユーザーのコンバージョン率がわずか 17% から 42% へと大幅に向上したことが報告されています。これがどのように機能し、あなたのプロジェクトに何をもたらすのかを詳しく見ていき ましょう。
なぜウォレットが初回コンバージョンを妨げるのか
あなたは画期的な dApp を構築しましたが、ユーザー獲得のファネルからユーザーが流出しています。その原因のほとんどは常に同じ、「ウォレットを接続(Connect Wallet)」ボタンです。標準的な Web3 のオンボーディングは、拡張機能のインストール、シードフレーズの警告、そして暗号資産の専門用語のクイズといった迷路のようなものです。
これは初心者にとって非常に大きな障壁です。UX 研究者によると、ウォレットのプロンプトが表示された瞬間に 87% という驚異的な離脱 が観察されました。ある興味深い実験では、そのプロンプトをチェックアウトプロセスの後の段階に移動させるだけで、完了率が 94% に跳ね上がりました。暗号資産に興味があるユーザーでさえ、主な恐怖は「間違ったボタンをクリックすると資金を失うかもしれない」というものです。このたった一つの威圧的なステップを取り除くことが、飛躍的な成長を解き放つ鍵となります。
zkLogin の仕組み(わかりやすい解説)
zkLogin は、すべてのインターネットユーザーがすでに信頼している技術を使用することで、ウォレットの問題をエレガントに回避します。その魔法は、舞台裏でいくつかの迅速なステップによって行われます:
- 一時的なキーペア(Ephemeral Key Pair): ユーザーがサインインしようとすると、ブラウザ内でローカルに一時的なシングルセッションキーペアが生成されます。これは、このセッションの間だけ有効な一時的なパスキーのようなものだと考えてください。
- OAuth のプロセス: ユーザーは Google 、 Apple 、またはその他のソーシャルアカウントでサインインします。アプリはこのログインリクエストに、一意の値(ナンス / nonce)を巧みに埋め込みます。
- ZKP サービス: ログインに成功すると、ZKP(ゼロ知識証明)サービスが暗号化された証明を生成します。この証明は、ユーザーの個人的な身元をオンチェーンで明かすことなく、「この OAuth トークンは一時的なパスキーの所有者を認証するものである」ことを確認します。
- アドレスの導出: OAuth プロバイダーからのユーザーの JWT(JSON Web Token)と一意の ソルト(salt) を組み合わせて、永続的な Sui アドレスを決定論的に生成します。ソルトはクライアント側または安全なバックエンドで秘密に保持されます。
- トランザクションの送信: アプリは一時的なキーでトランザクションに署名し、ZK 証明を添付します。Sui のバリデータはオンチェーンで証明を検証し、ユーザーが従来のウォレットを必要とすることなく、トランザクションの正当性を確認します。
ステップバイステップ導入ガイド
準備はできましたか?ここでは TypeScript SDK を使用したクイックガイドを紹介します。原理は Rust や Python でも同じです。
1. SDK のインストール
@mysten/sui パッケージには、必要なすべての zklogin ヘルパーが含まれています。
pnpm add @mysten/sui