
2025 年 1 月 16 日、SSP Wallet v1.9.0 は、SSP の Account Abstraction を支える Solidity 契約 — すべての Ethereum と Sepolia アドレスの背後にある Factory と Account Implementation — に対する Halborn との数週間にわたるセキュリティレビューを締めくくります。監査は肝心な部分でクリーンに終わり、見つかったのは Informational が 3 件、Low が 2 件のみで、いずれも未使用または死んだコードの中にありました。それでも私たちはすべてに対応し、契約を再デプロイし、より整理された版を v1.9.0 で出荷することを選びました。この再デプロイは、Ethereum と Sepolia のユーザーにとって破壊的な変更です。アップグレード後、これら 2 つのチェーン上で確定的に導出されるアドレスが変わります。
TL;DR
- Halborn は SSP の Account Abstraction の Solidity 側、すなわち Factory と Account Implementation 契約を監査しました。
- 結果: Informational 3 件、Low 2 件、Medium 0 件、High 0 件。すべて未使用または死んだコードパスにあります。これまでデプロイされていた契約は安全であり、今も安全です。
- それでもコードベースを完全に整理した状態に保つため再デプロイを行いました — 新しい Factory と Account Implementation 契約が v1.9.0 で登場します。
- 破壊的変更: Ethereum と Sepolia のアドレスはアップグレード後に変わります。アップグレード前に資金を移すか、SSP サポートに連絡して移行ガイドを入手してください。
- UTXO チェーン — Bitcoin、Zcash、Bitcoin Cash、Flux — は影響を受けません。
Halborn が監査した範囲
対象は、v1.6.0 で出荷しその後反復してきた Schnorr マルチシグの ERC-4337 契約 の Solidity 側でした。具体的には @runonflux/account-abstraction リポジトリ — ユーザーが初めて取引したときにアカウントを確定的にデプロイする Factory 契約と、そのアカウントが UserOperations をどう検証し、Schnorr 署名をどう確認し、ERC-4337 の bundler と EntryPoint のフローにどう従うかを定義する Account Implementation 契約です。
Halborn の技術チームは、本番スマートコントラクト用に確保しているテスト群すべてを実行しました。リポジトリは彼らの言葉で「堅牢であり、ERC-4337 の推奨を尊重し、Schnorr を整然と実装している」とのことです。この結論が重要なのは、Schnorr 実装が設計の中で先行する作例が最も少ない部分だからです — AA スタックの他の構成要素は業界で何度も監査されてきましたが、ERC-4337 バリデータ内部での集約 Schnorr 署名は、私たち自身で組み上げたものです。
何が見つかったか
レポートには Informational が 3 件、Low が 2 件 — Medium も High も Critical もありません。完全なレポートは halborn.com/audits/influx-technologies/account-abstraction-schnorr-multisig で読めます。
それぞれの指摘は、稼働中の契約では使われていなかったコード、もしくは実ユーザーの資金には触れない経路の一部 — 防御的な足場や、過去のイテレーションから残った分岐、その類いのもの — の中にあります。攻撃者が資金を奪う、署名を偽造する、アカウントを破る方法を述べたものは一つもありません。Ethereum メインネットにデプロイ済みの契約は、監査期間中もその後も終始完全に安全でした。
それでも再デプロイした理由
理由は二つあります。一つ目に、整理されたコードベースはそれ自体が一種のセキュリティです。デプロイ済み契約に組み込まれてしまった死んだコードは、将来の監査者、統合者、貢献者が読み解かなければならない死んだコードです。それを取り除けば、今後のあらゆるレビューが向き合う面積が縮みます — 分岐が減り、仮定が減り、契約を読み違える経路も減ります。
二つ目に、すべての指摘に対応した版を、先送りした版ではなく出荷できるなら、出荷します。実際そうしました。v1.9.0 は、Halborn のあらゆる推奨を取り込んだ新たにデプロイされた Factory と Account Implementation 契約に対して出荷されます。@runonflux/account-abstraction リポジトリの安定ブランチは現在 main(npm ^1.1.0)となり、旧契約に留まりたい方のために master ブランチと npm ~1.0.0 は引き続き利用可能です。
Ethereum と Sepolia ユーザー向けの破壊的変更
Factory こそが公開鍵からアカウントアドレスを確定的に導く部品なので、Factory を再デプロイするということは、同じ鍵から導かれるアドレスが変わるということです。Ethereum メインネットまたは Sepolia に資金を置いているユーザーにとっては、これが v1.9.0 の実務的な影響です。アップグレード後、SSP が表示する Ethereum あるいは Sepolia のアドレスは新しいものになります。旧アドレスにある ETH や ERC-20 は自動では動きません。
安全な扱い方は二通りあります。素直な道はアップグレード前に資金を旧アドレスから外へ移すこと — 別のウォレットや取引所に送ってからアップグレードし、その後に新アドレスへ送り直します。もう一方は、すでにアップグレード済みのユーザー、あるいはより大きく複雑なポジションを持つユーザー向けで、SSP サポートに連絡して移行ガイドを入手することで、旧契約を使った旧資金の回収を私たちが伴走します。
UTXO チェーンは影響を受けません。Bitcoin、Zcash、Bitcoin Cash、Flux のアドレスは EVM 契約を介さずに鍵から導かれるため、v1.9.0 でも変わりません。関わるのは Ethereum と Sepolia だけです。
この先の予定
本記事は、リリース当日の AA 契約監査そのものを取り扱っています。より大きな全体像 — SSP ウォレット、契約、SDK にわたる Halborn の一連のレビュー — は SSP の 2025 年 Halborn 監査の内側 で展開されており、本監査を残り 2 件と並べた文脈に置きます。