WalletConnect とは何か、そして SSP とどう連携するのか

·7 分で読める·SSP Editorial Team 著
SSP Wallet ブラウザ拡張機能と SSP Key モバイルアプリを dApp に結ぶ WalletConnect の QR code。

WalletConnect とは何か、そして SSP とどう連携するのか

分散型取引所、NFT マーケットプレイス、あるいは貸付アプリを開き、QR code が隣に並んだ「Connect Wallet」ボタンを見たことがあれば、あなたはすでに WalletConnect に出会っています。これは、自己保管のウォレットと、人々が実際に使っているアプリをつなぐ、静かな配管のような存在です。SSP ユーザーにとって問いは、「WalletConnect とは何か」だけでなく、「これを使うと、自分のセキュリティの何が変わり、何がそのままなのか」というものでもあります。

短い答え:WalletConnect は扉です。あなたの鍵、そして SSP の 2-of-2 の保護は、もとあった場所にそのままとどまります。

WalletConnect が実際に何であるか

WalletConnect は、分散型アプリケーション(dApp)とウォレットの間で署名リクエストを運ぶためのオープンプロトコルです。カストディアンではありません。資金を保管しません。あなたのシードフレーズや秘密鍵を見ることはありません。ウォレットと dApp が WalletConnect で接続するとき、二つのエンドポイントはリレーネットワークを介して暗号化されたセッションを確立し、メッセージはそのセッション上を行き来します。リレーは暗号化されたデータの塊しか見えず、それを読めるのは二つのエンドポイントだけです。

エコシステムのほぼあらゆる場所で使われており、だからこそウォレット側の一つの流れだけで、何百ものアプリを毎回新しい手順を学ばずに横断できるのです。プロトコルは docs.walletconnect.com で公開ドキュメント化されており、WalletConnect 互換アプリの長いカタログは ethereum.org/en/dapps で見つけられます。

基本的な流れ、ステップごとに

接続の儀式は、使っている dApp に関わらず、ほぼいつでも同じです。

  1. dApp が「Connect Wallet」オプションを表示し、QR code を提示するか、モバイル上ならディープリンクを提示します。
  2. あなたは SSP を開き、dApp への接続を選び、QR code をスキャンします(またはリンクをたどります)。
  3. SSP が、dApp が何を求めているかを表示します:セッション、あなたのアドレス、接続するチェーン。
  4. あなたがセッションを承認します。SSP と dApp の間に暗号化されたチャネルが開きます。
  5. dApp 上で署名を必要とする操作を行うとき——swap、トークン承認、入金など——dApp はチャネル越しに署名リクエストを送ります。SSP は何が要求されているかを正確に表示します。
  6. あなたが決めます。承認すれば、署名プロセスは SSP 内で走り、署名済みトランザクションが dApp に返され、dApp がそれをブロードキャストします。
  7. 終わったら、セッションを切断します。

気をつけるべき要点:dApp は決して秘密鍵を要求しません。署名を要求します。各署名は、ウォレットの中であなたが下す独立した判断です。

署名モデルが SSP にどう写るのか

ここで SSP は、ほとんどのウォレットには真似できないやり方で絵を変えます。典型的なシングル署名ウォレットでは、各署名リクエストはウォレット UI 内での一回の承認です——速いものの、同時に単一障害点でもあります。もしその一台が侵害されているか、敵対的なリクエストに「承認」を押してしまえば、署名は成立してしまいます。

SSP は 2-of-2 multisig ウォレットです。Key 1 は SSP Wallet ブラウザ拡張機能に住んでいます。Key 2 はあなたの携帯の中、SSP Key モバイルアプリに住んでいます。すべてのトランザクションは毎回両方の鍵を必要とします。WalletConnect を使うときも、このモデルは消えません——そこへ伸びていきます。

dApp が WalletConnect を介して署名リクエストを送るとき:

  • リクエストは、まずあなたの PC 上の SSP Wallet 拡張機能に到着します。
  • dApp が何に署名させようとしているかを確認します——コントラクト、金額、チェーン、そして表示を選んだときには calldata まで。
  • 拡張機能の上で承認します。拡張機能は署名のうちの自分の取り分を生成します。
  • リクエストは共同署名のためにあなたの携帯の SSP Key へ押し込まれます。そこにも同じ詳細が表示されます。
  • 携帯の上で承認します。SSP Key が自分の取り分を生成します。
  • 二つの取り分が一つの有効な署名にまとまり、dApp に返されます。

UTXO チェーンではこれが BIP-48 multisig 署名として起こり、EVM チェーン(Ethereum、Polygon、Base、BNB Smart Chain、Avalanche)では Schnorr で集約された 2-of-2 署名として ERC-4337 smart account によって検証されます。暗号は違っても、同じ性質を持ちます:二つのデバイス、二つの承認、一つのトランザクション。EVM 側をより深く読みたければ SSP の account abstraction アーキテクチャ を、基礎概念には 2-of-2 multisig とは を見てください。

拡張機能をだましたフィッシング dApp も、依然としてあなたの携帯を通り抜けなければなりません。それこそが全体の趣旨です。

知っておくべきセキュリティ上の含意

WalletConnect はあなたのセキュリティを弱めません。注意すべき対象を変えるのです。以下のリスクは WalletConnect 固有ではありませんが、接続された dApp はそれらに出会いやすい場所です。

フィッシング dApp。 誰でも、人気プロトコルのように見えるサイトを作り、接続を求めることができます。ウォレットには、どれが本物かを知る術はありません。接続前に必ず、正しいドメインにいることを確認してください。使っているアプリはブックマークに入れ、検索広告やチャットのリンクからたどらないでください。

悪意ある署名リクエスト。 いったんセッションが開かれれば、dApp は任意の署名を要求できます。swap インターフェースが、見知らぬコントラクトに対してトークン残高を空にする権限を与えるトークン承認をあなたに差し出すことがあり得ます。SSP が表示するものを読んでください。署名リクエストが見慣れないように見えたら——見覚えのないコントラクト、無制限の承認、あなたのものではないアドレスへの送付——拒否してください。携帯上での 2-of-2 のレビューは、それを捕まえるあなたの二度目のチャンスです。

ブラインド署名。 署名するデータが不透明な場合があります——人間が読める形に解読できない長い 16 進文字列です。ブラインド署名リクエストは疑いをもって扱ってください。自分が何に署名しようとしているかの人間可読な意図を見せてくれるアプリを優先してください。

リンクとアプリの混同。 WalletConnect はプロトコルです。多くのウォレットが実装しています。「Use WalletConnect」と書かれたサイトは特定ブランドの信頼シグナルではありません——それは配管の規格です。「この dApp は WalletConnect を使っている」と「この dApp は安全だ」を混同しないでください。

範囲を絞った権限。 セッションは特定のチェーンとメソッドに限定できます。SSP がセッションリクエストを表示したら、何が求められているかを見てください。アプリが本当に必要としているより多くを求めるセッションを断っても、何の害もありません。

放置されたセッション。 忘れていたセッションも、依然としてセッションです。後に dApp のフロントエンドが侵害されれば、活きているセッションは足場になります。終わったら切断する習慣をつけましょう。

これを機能させる具体的な習慣

いくつかの小さな規律が、あなたの WalletConnect 利用を清潔に保ちます。

  • dApp の URL を確認してから、接続用 QR をスキャンしてください。チャットや広告のリンクをクリックするのではなく、自分でドメイン名を打ち込んでください。
  • すべての署名リクエストを読みましょう。 どのコントラクトが呼ばれていますか?どのチェーンで?どの金額で?無制限のトークン承認は、固定額の承認とは別物です——どちらも正当でありうるものの、自分が何に署名しているかは知っていなければなりません。
  • 携帯の確認を二度目の視線として使いましょう。 PC では問題なく見えたリクエストが携帯では違って見えたら、拒否してください。二つのデバイスは、気づくチャンスが二回あるという意味です。
  • 終わったらセッションを切断しましょう。 SSP がセッションリストを提供します。それを「開きっぱなしの扉のリスト」として扱ってください。
  • 監査履歴のある評判の良いアプリを優先しましょう。 しばらく存在し、監査を公開し、標準的な WalletConnect ハンドシェイクを超えるサインインフローを要求しないプロトコルに傾いてください。
  • シードフレーズはどんな dApp の流れにも入れないでください。 正規の dApp があなたのシードフレーズを必要とすることは決してありません。署名リクエストこそが dApp があなたのウォレットと話す方法です。シードを求めるものはすべて詐欺です。より深い読み物として シードフレーズのベストプラクティス を見てください。
  • Ethereum で接続するならgas、nonce、コントラクトとのインタラクションについて同じチェーン固有のルールが当てはまります——SSP の Ethereum がチェーン側の詳細を扱っています。

全部を結びつける

WalletConnect は、SSP と dApp エコシステムの間の扉です。暗号化されていて、オープンソースで、あなたが出会うほとんどのウォレットとプロトコルが使っています。あなたの鍵が住む場所は変えませんし、SSP の 2-of-2 モデルを弱めもしません。dApp が要求するすべてのトランザクションは、依然としてあなたのブラウザ拡張機能と携帯の両方を通り抜けなければなりません——それは、SSP を選んだときに買ったセキュリティの性質であり、接続するすべての dApp においてあなたと旅をします。

鍵はあなたとともに留まります。扉は、あなたが通り抜けるあいだだけ開いています。

この記事をシェアする

関連記事