暗号資産ウォレットの複数チェーン対応を技術から解剖する。ed25519では公開鍵からの派生ができず後付けが効かない。手数料の肩代わりの仕組み、橋が破られた場所、規制の閾値の食い違いまで検証する。

複数のチェーンにまたがる送金が途中で止まったという問い合わせが1件入ると、その処理に要する技術者の時間より高くつくものがある。信用である。暗号資産の製品において、信用は付随物ではなく製品そのものにあたる。

複数チェーン対応の必要性は、この一点から説き起こされるのが通例になっている。単一チェーンを前提に作られたウォレットは、もはや存在しない市場に向けて作られている。安定通貨は十数のチェーンで直接決済されるようになり、通貨は最も条件の良い場所で発行される。1本しか扱えないウォレットは、利用者に複数の応用を使い分けさせることになる。

この整理は正しい。ただし、この種の解説は「チェーンごとに署名方式が違う」と書きながら、具体名を1つも挙げないことが多い。手数料の抽象化についても、誰がどこで立て替えているのかまでは踏み込まれない。規制に至っては「一律に適用される」と書かれることがあるが、これは事実として正確でない。

本稿は、その3か所を実装の側から埋める。扱うのは楕円曲線の名前、導出の可否、契約の名前、閾値の数字、そして実際に破られた場所である。

「署名方式が違う」の中身 ― 工数を決めるのは曲線族の数である

まず、何がどう違うのかを名前で押さえる。

ビットコインとイーサリアム、そしてコスモスやトロンの系統は、secp256k1という楕円曲線を使う。これに対しソラナ、アプトス、スイ、ニア、カルダノはed25519という別の曲線を使う。スタークネットに至っては、そもそも定義される体が異なる独自の曲線を用いる。

曲線が違えば署名の作り方が違う。ここまでは一般の解説でも触れられる。だが実装上の痛みは、署名そのものより手前にある。鍵をどう枝分かれさせるかの仕様が、曲線ごとに別物になる。

ビットコイン系で標準になっているのはBIP-32という階層的な鍵導出の仕組みで、1つの種から無数の鍵を決定的に作る。この仕組みには2つの導出方式がある。秘密鍵から子の秘密鍵を作る強化導出と、公開鍵から子の公開鍵を作る非強化導出である。

後者が実務を支えている。公開鍵の親、いわゆる拡張公開鍵さえ渡しておけば、秘密鍵に一切触れずに受取用の住所を無限に作れる。取引所や決済事業者が、入金用の住所を利用者ごとに払い出せるのはこの性質による。秘密鍵は金庫から出ない。

ed25519では、これができない。

ed25519に対応する導出の仕様であるSLIP-0010は、強化導出のみを規定し、公開鍵から子の公開鍵への非強化導出を明示的に禁じている(SLIP-0010)。理由は曲線の構造にある。ed25519では秘密鍵に対して余因子を消す処理が入り、鍵の空間における足し算が線形に保たれない。線形性が崩れると、公開鍵の側だけで子を計算しても、対応する秘密鍵と噛み合わなくなる。安全に実装できないため、仕様の側で塞いである。

この1点が、チェーンの追加は「設定項目の切り替えでは済まない」と言われることの正体になる。secp256k1の系統で組んだ入金住所の払い出しの仕組みは、ed25519のチェーンにそのまま持ち込めない。監視専用の口座、秘密鍵を触らない住所生成、拡張公開鍵を前提にした残高照合。これらは全部、曲線族ごとに作り直しになる。

チェーンの本数ではなく、曲線族がいくつあるかが工数を決める。10本のチェーンでも全部がsecp256k1なら鍵の層は1つで済み、3本でも曲線族が3つなら3つ要る。

曲線が変わると、鍵の枝分かれのさせ方が変わる
曲線が変わると、鍵の枝分かれのさせ方が変わる

曲線族の数が決まると、その上に乗る作業として残高の集約が控えている。複数チェーン対応の課題として必ず挙がる箇所だが、ここも中身を開く価値がある。

チェーンごとに、接続する節点と問い合わせの方式が違う。イーサリアム系はJSON-RPCという共通の作法があるが、同じ作法でも対応する呼び出しが実装ごとに異なる。ソラナは別の体系を持ち、ビットコインはさらに別である。自前で節点を建てるか外部の提供を使うかにかかわらず、チェーンの本数だけ接続先が増える。

そのうえで、集約には避けて通れない設計判断が1つある。取引がいつ確定したとみなすかである。

ビットコインの確定は確率的で、後続の塊が積まれるほど覆る確率が下がる。慣例として6個を待つのは、その確率が十分小さくなる目安にすぎず、規約上の確定ではない。イーサリアムは合意の仕組みが変わり、2つの周期を経て確定する。ソラナは楽観的な確定を先に返し、後から確からしさが上がる。

残高を1つの画面に並べるということは、これらの異なる時間軸を1つの数字に畳むということだ。未確定の入金を残高に含めるか、含めないか。含めるなら、覆ったときにどう戻すか。

この判断は技術の問題に見えて、実際は製品の判断になる。含めれば利用者の体験は速くなり、覆ったときの問い合わせが増える。含めなければ体験は遅くなり、「送ったのに映らない」という別の問い合わせが増える。どちらを選んでも問い合わせは発生し、どちらを選ぶかを決めていない実装が最も荒れる。

確定の時間軸が違うものを、1つの数字に畳む
確定の時間軸が違うものを、1つの数字に畳む

チェーンを見えなくする2つの層 ― 手数料の肩代わりと、意図ベースの実行

利用者が持っている資産で手数料を払える仕組みは手数料の抽象化と呼ばれ、最初から複数チェーンを前提に設計されたかどうかの見分けになるとされる。見分け方としては的確だが、仕組みの名前まで語られることは少ない。

イーサリアム系でこれを実現しているのは、ERC-4337という規格である。構成要素は4つある。

利用者は通常の取引ではなく、UserOperationと呼ばれる意思表示を出す。これは節点の通常の待ち行列ではなく、専用の待ち行列に置かれる。バンドラーと呼ばれる網の外の担い手がそこから拾い、規約に沿うかを模擬実行で確かめ、複数をまとめて1つの取引として提出する。受け口になるのがEntryPointという単一の契約で、ここが検証と実行を仲介する。

そしてペイマスターが、手数料の抽象化の実体である。これは手数料を肩代わりする契約で、利用者の口座に原生の通貨がなくても取引が通る(Alchemy)。利用者が持っている別の資産を受け取って肩代わりする形にも、事業者が全額を負担する形にもできる。

つまり「利用者が好きな資産で手数料を払える」という体験の裏側では、誰かが原生の通貨で実際に払っている。無料になっているのではなく、支払いの主体が移っているだけである。この違いは原価の設計に直結する。

2025年5月7日、エポック364032で適用されたPectraにより、別の道が開いた。EIP-7702である(Ethereum Foundation)。通常の口座が、取引の間だけ契約の処理内容を指せるようになった。

この2つは版の新旧ではなく、別の構えである。ERC-4337は網の外にバンドラーと専用の待ち行列を必要とする。EIP-7702は規約そのものに組み込まれており、外部の担い手が要らない。適用から1週間で1万1,000件を超える承認が本番網に記録された。

どちらを採るかで、依存する外部の担い手の数が変わる。バンドラーが止まれば取引が通らない構えと、規約の側で完結する構えは、障害の起き方が違う。

手数料は消えていない。払う主体が移っている
手数料は消えていない。払う主体が移っている

手数料が1つ目の層だとすれば、2つ目の層は操作そのものにある。「チェーンを利用者から見えなくする」ことが到達点として語られるようになって久しいが、その実装が、いま形になりつつある。

従来の方式では、利用者が手順を指定する。どの橋を使い、どの経路で交換し、どの順に署名するか。意図ベースの方式では、利用者は結果だけを述べる。手元のこの資産を、あのチェーンでこの資産にしたい、と。手順はソルバーと呼ばれる担い手が競って埋める。

この形式を標準化したのがERC-7683で、2025年初頭に確定した。普及の度合いは推測ではなく数字で確認できる。Acrossは2025年第3四半期に本番のソルバー網を移行し、ERC-7683形式の注文が取扱高の88パーセントを占めるに至った。ウォレット側では2026年第1四半期にSafe、Argent、Rabbyが対応し、MetaMaskは同年3月の12.4版で組み込んだ。30を超える組が参加する共通の枠組みも動いており、Arbitrum、Optimism、Scroll、Polygonが名を連ねる。

ここに、機械学習が実際に効く場所がある。ソルバーは注文を見て、複数の経路と在庫の組み合わせから最も安く埋められる筋を探し、他のソルバーより先に応じる必要がある。これは経路の最適化と価格付けの問題であり、待ち時間と滑りと在庫の偏りを同時に見る。宣伝上の「AI搭載」ではなく、最適化の問題として素直にそうなっている。

同時に、この方式は利用者の依存先を変える。橋の実装を信じる代わりに、ソルバーが約束どおり埋めることと、埋めなかった場合の担保の仕組みを信じることになる。見えなくなったのは手順であって、信頼の前提ではない。

手順を指定する方式と、結果だけを述べる方式
手順を指定する方式と、結果だけを述べる方式

橋が狙われる理由と、Ronin で実際に破られた場所

橋が高額の標的になり続けてきた理由は、価値が1か所に集まるからだと説明される。正しいが、実際に破られたのがどこかを見ると、対策の当て所が変わる。

2022年3月、Roninのブリッジから17万3,600イーサと2,550万の安定通貨、当時のおよそ6億2,500万ドル相当が引き出された。

仕組みはこうだった。9個の検証者が置かれ、そのうち5個の署名が揃えば出金の承認が通る。攻撃者はこの5個を手に入れた。内訳は運営会社が持つ4個と、Axie DAOが運用する外部の検証者1個である。

問題は5個目の出所にある。2021年11月、利用者の急増で手数料のかからない取引を捌く必要が生じ、運営会社はAxie DAOから代理で署名する権限を与えられた。負荷が引いたあと、この権限は取り消されなかった(Elliptic)。付与から侵害まで、およそ4か月が空いている。

橋の実装に欠陥があったのではない。暗号の設計が破られたのでもない。一時的な運用のために開けた権限が、閉じられないまま残っていた。多数決の閾値は5個のままだったが、実質的に必要な数は4個に落ちていた。

2022年4月14日、米財務省の外国資産管理室は、この資金が渡ったイーサリアムの住所をラザルスの項目に加えた。同月22日にはさらに5つの住所を識別子として追加している。国家が関与する主体による窃取として扱われたことになる。

同種の被害は他にもある。2021年8月のPoly Networkでおよそ6億1,100万ドル、2022年2月のWormholeでおよそ3億2,000万ドル。いずれも、価値が集まる場所に権限の集中が重なった構図である。

実務に持ち帰るべきは、監査の対象を契約の実装だけに置かないことだ。誰がどの鍵を持ち、その権限がいつ付与され、いつ取り消される予定になっているか。この台帳が、契約の監査報告と同じ頻度で見直されているかどうか。Roninで欠けていたのは後者である。

破られたのは実装ではなく、閉じられなかった権限だった
破られたのは実装ではなく、閉じられなかった権限だった

規制は「一律」ではない ― 最も厳しいものに合わせるしかない

規制上の義務は「どのチェーンを通ったかにかかわらず一律に適用される」と説明されることが多い。チェーンによって扱いが変わらないという意味では正しい。だが法域によっては大きく変わる。ここは実務で最も高くつく誤解になる。

送金者と受取人の情報を事業者間で受け渡す義務、いわゆるトラベルルールの閾値を並べると、ばらつきがはっきりする。

  • 国際的な標準を作る組織の勧告は、1,000米ドル相当を基準に置く
  • 米国の当局は3,000米ドル、カナダは1,000カナダドル
  • 欧州連合の資金移動規則は閾値を置かず、事業者間の移転を全件対象とする
  • シンガポールの通知は全取引規模に適用し、より広い個人情報の受け渡しは1,500シンガポールドル超で追加される
  • ドバイの当局は1,000米ドル相当、およそ3,672ディルハムを閾値としている

複数の法域で営業する事業者にとって、この表の意味は1つしかない。最も厳しい水準に合わせるほかない。欧州とシンガポールが実質的に全件を求める以上、閾値による絞り込みという設計自体が成り立たなくなる。

受け渡す情報の書式も決まっている。IVMS101という共通の様式が使われ、2024年6月4日に一貫性と保守性を高めた版が承認された。事業者ごとに独自の項目で持っていると、相手方が解釈できない。

さらに2025年6月、国際的な標準を作る組織は勧告そのものを改訂した。求めるデータの要件をより揃える方向で、各国の実装は2030年末までに完了することが見込まれている。いま作る仕組みは、この改訂を織り込んでおく必要がある。

よく指摘される点のうち、実務の感覚と合うものもある。監視の仕組みを2本目や3本目のチェーンで後から足すと、当局が最初に見る場所にちょうど死角ができる、という観察である。閾値の設計を法域ごとに分けるのではなく、最初から全件を前提に組んでおけば、この死角は生じない。

閾値は法域ごとに違う。だから最も厳しいものに合わせる
閾値は法域ごとに違う。だから最も厳しいものに合わせる

設計を決める前に、答えを出しておく問い

どの用途が本当にチェーンをまたぐ必要があるかを先に整理せよ、という助言はよく聞く。方向は正しいので、判断の順序まで具体化する。

最初に決めるのは、チェーンの一覧ではなく曲線族の一覧である。前述のとおり、工数を決めるのは本数ではなく族の数だ。将来足す可能性のあるチェーンを曲線で分類し、いくつの族を抱えるかを先に確定させる。族が増える判断だけは、後から安くならない。

次が鍵の保管の形である。1つの秘密鍵を守る形、複数人で分割して持つ形、閾値署名で誰も完全な鍵を持たない形。ed25519で閾値署名を組む場合、secp256k1で広く使われている方式がそのまま使えず、別系統の手法が要る。ここでも曲線が設計を縛る。

3番目が、確定をどう扱うかの方針である。チェーンごとに何をもって確定とし、未確定分を残高にどう映すか。前述のとおり、この決定を書き下していない実装が最も荒れる。

4番目に、手数料の肩代わりを誰の勘定で行うかを決める。ペイマスターを置くなら、その原資と上限と停止条件を先に決めておく。無料に見える体験の裏で誰かが払っている以上、払う側の設計が抜けていると、利用が伸びた瞬間に止まる。

そして権限の台帳を、最初の1本目から作る。誰がどの鍵を持ち、いつ付与され、いつ失効するか。Roninで欠けていたのはこの台帳の見直しであって、暗号でも契約でもなかった。

自前で作るか外部と組むかという問いは、この5つに答えたあとで意味を持つ。曲線族が1つで、保管が単純で、確定の方針が明快なら、既製の部品で足りる。族が3つあり、規制を受ける金融商品として運用するなら、既製の部品の外側で自分が持つべき部分が必ず残る。

チェーンが見えなくなっても、前提は消えない

複数チェーン対応を、対応するチェーンの数の話として扱うと、見誤る。数えるべきは曲線族であり、確定の時間軸であり、権限を持つ主体である。

チェーンを利用者から見えなくする方向は、意図ベースの実行と規約に組み込まれた口座の抽象化によって、すでに動き出している。取扱高の88パーセントが標準化された注文で流れる状態は、構想ではなく運用の記録である。

ただし、見えなくなったのは操作であって、信頼の前提ではない。利用者は橋の実装を信じる代わりにソルバーの履行を信じ、原生の通貨を持つ代わりに肩代わりする主体の継続を信じている。設計する側が引き受けたのは、その前提を利用者に代わって管理する仕事である。Roninで4か月間開いたままだった権限は、その仕事の一部が抜けていたことを示している。