ひとつのアドレス、複数のチェーン:EVM ネットワークと「ネットワーク違いの送金」

·5 分で読める·SSP Editorial Team 著
SSP Academy カバー:ひとつのアドレス、複数の EVM チェーン

ひとつのアドレス、複数のチェーン:EVM ネットワークと「ネットワーク違いの送金」

一般的なイーサリアムウォレットからアドレスをコピーして Polygon に切り替えても、アドレスは変わりません。同じ 0x… の文字列は BNB Smart Chain、Avalanche、Base でも使えます。便利な一方で、これがある種のミスの原因にもなっています。「間違ったネットワークで送られた」資金です。

その資金を取り戻せるかどうかは、ひとつの問いで決まります。そのアドレスは鍵だけで管理される普通のアカウントなのか、それともスマートコントラクトなのか。その理由と、SSP にとっての意味を説明します。

EVM アドレスがどこでも同じに見える理由

イーサリアム、Polygon、BNB Smart Chain、Avalanche C チェーン、Base、Arbitrum など多くのネットワークはイーサリアム仮想マシン上で動いており、同じアドレス形式を共有しています。20 バイトを、0x に続く 40 文字の16進数で表したものです。

普通のアカウント、つまり外部所有アカウント(EOA)では、アドレスは公開鍵だけから導き出されます。ネットワークは一切関係しません。同じ秘密鍵からは、どの EVM チェーンでも同じアドレスが得られ、その鍵ですべてのチェーンの取引に署名できます。

そのため、アドレスだけでは支払いがどのネットワーク向けなのか判断できません。アドレスが示すのは誰に送るかで、ネットワークは送金時に別途選ぶものです。

「ネットワーク違いで送金した」とはどういうことか

たとえば Polygon で USDC を受け取りたいと伝えたのに、相手が取引所から Base を選んで出金したとします。取引は成功します。ただし Base 上で、です。Polygon を表示しているあなたのウォレットには何も表示されません。

資金が宙に浮いているわけではありません。Base 上のあなたのアドレスにあります。問題は、そのアドレスを Base 上であなたが管理できるかどうかです。

アドレス形式と送金が失敗する理由では、送金失敗のより幅広いパターンを扱っています。今回のケースは、アドレス形式を共有するネットワーク特有のものです。

EOA:たいていは取り戻せる

アドレスが普通の EOA なら、答えはほぼ必ずイエスです。あなたの秘密鍵は、どの EVM チェーンでもそのアドレスを管理しています。同じ鍵を持つウォレットにそのネットワークを追加すれば、残高が表示されます。資金を動かす前に、手数料(ガス)を払うためのそのネットワークのネイティブコインが少し必要です。

主な例外は取引所の入金アドレスです。鍵は取引所が持っているため、取り戻せるかどうかは取引所次第です。

スマートコントラクトウォレット:コントラクト次第

スマートコントラクトウォレットは事情が違います。アドレスはコントラクトのものであり、コントラクトはデプロイされたチェーンにしか存在しません。あなたの鍵はアドレスそのものではなく、コントラクトが資金を動かす前に確認するものです。

ERC-4337 アカウントを含む多くのスマートウォレットは、CREATE2 で計算されるカウンターファクチュアルなアドレスを使います。アドレスはファクトリーコントラクトのアドレス、ソルト、アカウントの初期設定データから事前に決まるため、そのチェーンにコントラクトがデプロイされる前から資金を受け取れます。

資金が別のチェーンに届いた場合、次の三つのケースがあります。

  • 同じファクトリーがそこにある。 同じコントラクトを同じアドレスにデプロイして資金を動かせる可能性があります。ただし、ウォレットがそのチェーンに対応していればの話です。
  • ファクトリーがそこにない。 誰かがまったく同じファクトリーをまったく同じアドレスにデプロイしない限り、そのアドレスには何もデプロイできません。これは常に可能とは限らず、決して当てにしてはいけません。
  • ウォレットがそのチェーンに対応していない。 コントラクトが存在し得るとしても、そのチェーンでコントラクトのために署名できるソフトウェアが必要です。

EOA とスマートアカウントの違いでは、より広い観点からの長所と短所を解説しています。

SSP ではどうなっているか

SSP の EVM ボールトは ERC-4337 スマートアカウントで、SSP Wallet と SSP Key の両方の承認が必要です。アカウント抽象化による EVM マルチシグでその設計を説明しています。ここで重要なのは、コードから確認できる次の点です。

  • アドレスはカウンターファクチュアル。 SSP Wallet は、ファクトリーのアドレス、ソルト、あなたの二つの鍵から、CREATE2 を使ってボールトのアドレスをオフラインで計算します。ネットワーク識別子はこの計算に含まれません。
  • 対応するすべてのチェーンに同じファクトリーがある。 標準的な決定論的デプロイ用プロキシを使い、イーサリアム、Polygon、BNB Smart Chain、Avalanche、Base(およびテストネットの Sepolia と Amoy)の同一アドレスにデプロイされています。
  • ただし、ネットワークごとに別の鍵を使う。 SSP はネットワークごとに異なるコインタイプ番号で鍵を導出します。そのため、Polygon 上の SSP ボールトのアドレスはイーサリアム上のものと同じではありません。受け取りアドレスは、必ず実際に使いたいネットワークからコピーしてください。

誰かが間違ったネットワークであなたの SSP アドレスに送金したらどうなるでしょうか。

  • SSP が対応している別の EVM チェーン。 たとえば、Polygon 上で POL があなたのイーサリアムのボールトアドレスに送られた場合です。Polygon 上では、そのアドレスは同じファクトリーとあなたが持つ鍵から作られるアカウントに対応します。しかし SSP Wallet が追跡するのは Polygon のボールトだけなので、この資金は表示されません。原理的には取り戻せますが、SSP にはそのための組み込みツールがありません。
  • SSP が対応していないチェーン。 たとえば Arbitrum や Optimism です。SSP のファクトリーはそこにデプロイされておらず、SSP はそこで署名できません。この資金は失われた可能性があると考えてください。取り戻せるとすれば、同じコントラクトをそのチェーンの同じアドレスにデプロイした場合だけで、それを当てにすることはできません。

防ぐための習慣

  • アドレスより先にネットワークを決め、言葉ではっきり伝えましょう。「Base 上の USDC」のように。
  • ウォレットをそのネットワークに切り替えた状態でアドレスをコピーしましょう。SSP では、先にチェーンを切り替えてから「受け取る」を開きます。
  • 取引所から出金するときは、アドレスと同じくらい注意深くネットワークの選択欄を確認しましょう。
  • 初めてのネットワークや相手には、まず少額でテスト送金しましょう。

Polygon、Base などの EVM チェーンで SSP を使うでは、SSP でネットワークを切り替える方法を紹介しています。

正直なまとめ

EVM チェーンはアドレス形式を共有しているため、同じ文字列が多くのネットワークで有効になり得ます。普通の EOA なら、ネットワーク違いで送られた資金はたいてい取り戻せます。同じ鍵がどこでもそのアドレスを管理しているからです。

スマートコントラクトウォレットが使えるのは、コントラクトがデプロイ済み、またはデプロイ可能で、かつウォレットが署名できる場所だけです。SSP のボールトは、対応ネットワークごとに別々のアドレスを持つスマートアカウントです。対応ネットワークのうち間違ったほうで SSP アドレスに送られた資金は表示されず、SSP に回復ツールはありません。SSP が対応していないネットワークで送られた資金は失われる可能性があります。毎回ネットワークを確認してください。

この記事をシェアする

関連記事