0
0

ウォレットとアプリ間の認証通信

Posted at

概要

デジタル・ウォレットはWeb3エコシステムの重要な構成要素であり、ユーザーが分散型アプリケーション(dapps)とやり取りし、デジタル資産を管理することを可能にします。

ウォレットは、IDやクレデンシャル(資格情報)の管理、決済、認証、デジタル資産の保有、アカウントやトランザクションの管理が必要な分散型台帳とのやり取りなど、様々な目的で使用することができます。

ウォレットとアプリ間の通信

Web3エコシステムにおける重要な課題の1つは、ウォレットとアプリ間の安全で認証された通信を可能にすることです。これは、ユーザーがデータ、資産、鍵の管理を保持したまま、安全、非公開、シームレスにdAppsとやり取りできるようにするために不可欠です。

重要インフラへの情報流入

デジタル・ウォレットには標準化が欠けており、各エコシステムは認証やアプリとウォレット間の通信に独自のカスタム標準を持っています。Web3の文脈では、オープン・スタンダードではなく、製品が採用されることが多くなっています。

ウォレット、アプリ、検証者間の情報の流れの中間にいる関係者は大きな力を持ち、それを悪用する可能性があります。

WalletConnect

WalletConnectは、ウォレットとdapps間のメッセージを中継するサーバーを必要とする、中央集権的で許可制のソリューションです。長年にわたり、WalletConnectはweb3のエコシステムにおいてウォレットとdAppsを接続するためのデファクト・スタンダードとなっています。しかし、WalletConnectはウォレットとアプリ間の情報の流れの一部となる製品であるため、重要なインフラとみなされるべきであり、標準化されオープンであるべきです。

私達それを避けるべきである理由:

  1. 中央集権的:WalletConnectは中央集権的なソリューションであり、ウォレットとDapps間のメッセージを中継するサーバーを必要とします。
  2. 許可制:アプリがWalletConnectのサービスを利用するには、WalletConnectのホワイトリストに登録する必要がす。エコシステム開発者がプロトコルの上に構築し、アプリとウォレットが相互に通信する機能を追加するには、WalletConnectの承認と許可が必要です。
  3. 認証されていない通信:WalletConnectはウォレットとアプリ間の認証通信を提供していません。
  4. Web3の成熟度不足を示すシグナル:デジタル・ウォレットを必要とする他の業界はオープン・スタンダードを採用していますが、Web3コミュニティは採用していません。これは、Web3が成熟していないことを示すものであり、この技術が主流に採用されるための摩擦要因となっています。

WalletConnectは分散化の原則を遵守していないことを実際に証明しています。その一例が、リレイヤーによる特定のIPの禁止です。

業界が成熟し、本格的なインテグレーターにとってより魅力的なものになるためには、中央集権的で許可制のソリューションから脱却し、ウォレットとアプリ間の認証と通信にオープン・スタンダードを採用すべきです。

ブロックチェーン技術バブル

Web3、特にブロックチェーン業界は、オープン・スタンダードに準拠するのではなく、カスタム・スタンダード、プロトコル、製品が採用される技術バブルにあります。これは鍵管理システム(以前にも書いた)、認証技術、通信プロトコル、ハードウェア・ウォレットなどに当てはまります。これは成熟度の欠如を示すものであり、問題です。これらのコンポーネントの一部は重要なインフラとみなされるべきであり、標準化され、オープンであるべきです。


デジタル・ウォレットの標準化と相互運用性

デジタル・ウォレットのより広範な文脈において、業界とオープンなワーキング・グループは、ウォレットとアプリ間の認証と通信のためのオープン・スタンダードの採用に取り組んでいます。その一例が、アルゴランド財団がアソシエイト・スポンサーを務めるオープン・ウォレット財団が現在進めている作業です。この財団は、相互運用可能なウォレットを構築するためのオープン・スタンダードとプロトコルを使用して、一連のオープンソース・ツールをコンパイルしています。この作業の一部は、ウォレットとアプリ間の認証と通信のための一連の標準を定義することです。

関連するオープン・スタンダード

認証

FIDO2 / passkeys:これらは認証のためのオープン・スタンダードであり、いくつかの業界で広く採用されています。また、ほとんどの最新ブラウザでサポートされており、ネイティブAPIはほとんどのオペレーティング・システムで利用可能です。
WebAuthn:ウェブ・ベースのアプリケーションでユーザーを認証するためのウェブ標準。ほとんどの最新ブラウザでサポートされており、W3C勧告となっています。


通信

DIDComm:ウォレットとアプリ間のセキュアでプライベートな通信を可能にする通信プロトコル。分散型識別子(DID)と検証可能な証明書(VC)の標準に基づいています。
WebRTC:無料のオープンソース・プロジェクトで、シンプルなアプリケーション・プログラミング・インターフェースを介してウェブブラウザとモバイル・アプリケーションにリアルタイム通信を提供します。ほとんどのモダン・ブラウザでサポートされており、W3C勧告でもあります。


LiquidAuth

ここでLiquidAuthを紹介します。

LiquidAuthは、ピア・ツー・ピア(P2P)方式でウォレットとアプリ間の認証通信を可能にする分散型オープンソース・ソリューションです。FIDO2 / Passkeys、WebRTC、STUN & TURNサーバーのようなオープンなプロトコルと標準を活用しています。


設計原則

コンテキストにとらわれない:LiquidAuthはコンテキストにとらわれないように設計されており、あらゆるWeb2、Web3アプリケーションで使用できます。ID、決済、その他のウォレットに利用できます。
分散型:LiquidAuthは分散型のソリューションで、ウォレットとアプリケーション間のメッセージの中継に中央サーバーを必要としません。
オープンソース:LiquidAuthはオープンソース・プロジェクトです。MITライセンスの下でライセンスされています。
セキュア:LiquidAuthは安全に設計されており、認証にはFIDO2 / passkeysのようなオープン・スタンダードを使用しています。
プライバシー:LiquidAuthはユーザーのプライバシーを尊重するように設計されており、ユーザー・データを保存しません。
相互運用性:LiquidAuthは、他のWeb3技術や標準と相互運用できるように設計されています。


概念的アーキテクチャ

LiquidAuthの概念的アーキテクチャは、ピア・ツー・ピア(P2P)方式でウォレットとアプリ間の認証通信を実現するように設計されています。FIDO2/ passkeysやWebRTCのようなオープンなプロトコルや標準を活用しています。

unnamed.png


アーキテクチャは以下の主要コンポーネントで構成されています:

アプリ/サーバー:このコンポーネントは、ウェブ(分散型)アプリとそのインフラを表します。これには、FIDO2規格に準拠し、ユーザーの登録と認証を担当するサーバーが含まれます。
WebRTCクライアント/サーバー:このコンポーネントは、アプリとウォレット間のP2P接続を確立し、リアルタイム通信を可能にします。
シグナリング・サーバー:アプリとウォレット間のWebRTC接続の確立を促進するサーバー。

P2P接続を確立するために、LiquidAuthはデフォルトでSTUNサーバーを利用します。STUNサーバーは、クライアントがパブリックIPアドレスとポートを検出し、直接接続を確立できるようにします。しかし、ファイアウォール・ルールがネゴシエートされたポートの受信トラフィックをブロックする場合、TURNサーバーが導入されます。TURNサーバーは、直接接続を確立できないクライアント間のトラフィックを中継するので、対称NATやファイアウォールの背後にあるクライアントに便利です。

リキッド・クライアント:リキッド・クライアント・パッケージは、採用された標準とプロトコルのリファレンス実装です。LiquidAuthで構築されたウォレットは、FIDO2とpasskey、webRTC P2P通信、TURNサーバー (設定済み、デフォルト、またはアプリが提供するもの) を通して、P2P通信ができない場合のフォールバック・メソッドをサポートします。


LiquidAuthの非依存性

LiquidAuthはアルゴランド・エコシステムのために最初に構築されましたが、コンテキストにとらわれないように設計されており、Web2やWeb3のアプリケーションで使用することができます。ID、支払い、そして/または他のタイプのウォレットに使用することができます。


他のWeb3エコシステムへの招待

私たちは、オープン・スタンダードやプロトコルの代わりに重要なインフラとなった中央集権的なインフラや先行者製品という共通の敵を持っています。私たちは他のWeb3エコシステムに、LiquidAuthの開発に参加し、ウォレットとアプリ間の認証通信の標準として採用するよう呼びかけます。

LiquidAuthは完全にオープンソースで、カスタム標準はありません。現在、アルゴランド・ウォレット、アプリのサンプルとデモがありますが、私たちはそれを拡張し、どのようなコンテキストやWeb3のエコシステムでも使用できるようにオープンにしていきたいと考えています。


参加方法

LiquidAuthへの貢献に興味がある方は、こちらをご覧ください:

LiquidAuthサービスとサンプル・アプリ
LiquidAuth Androidクライアント
LiquidAuth JSクライアント


そして、LiquidAuthの採用や開発に興味があることをお知らせください。統合のお手伝いやサポートを提供いたします。

また、LiquidAuthに関する議論が必要な場合は、bruno.martins@algorand.foundation までお気軽にご連絡ください。

まとめ

結論として、LiquidAuthはピア・ツー・ピア(P2P)方式でウォレットとアプリ間の認証通信を可能にする分散型オープンソース・ソリューションのためのクロス・エコシステムの提案です。そして、私たちが支持すると主張する web3エコシステムにおける分散化とオープン・スタンダードのエートスによって生きるための提案です。

元記事:https://algorand.co/blog/authenticated-comms-between-wallets-apps

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0