
この数年の間に Ethereum 界隈に少しでも触れたことがあれば、「account abstraction」というフレーズを耳にしたことがあるはずです。多くの場合、コードネーム ERC-4337 とセットで使われます。学術的に聞こえますが、その背景にある考え方はきわめて実用的です。すなわち、あなたの Ethereum ウォレットは、たった一つの秘密鍵に「使うか使わないか」を迫る固定インタフェースではなく、カスタマイズできる小さなソフトウェアのように振る舞うべきだ、ということです。
この記事では、ERC-4337 が実際に何を変えるのか、そこで導入される 4 つの新しい用語(UserOperation、EntryPoint、bundler、paymaster)、それが実務で何を可能にするか、そして SSP 自身のマルチシグの考え方とどう関係するかを説明します。スマートコントラクトに関する事前知識は必要ありません。暗号資産ウォレットが裏側でどう動いているかへの好奇心さえあれば大丈夫です。
ERC-4337 が解決しようとした問題
アカウント抽象化以前、すべての Ethereum ウォレットは externally-owned account(EOA)と呼ばれるものでした。EOA はきわめて単純で、1 本の秘密鍵が 1 つのアドレスを支配し、そのアドレスが取るすべての行動はその鍵によってのみ署名されなければなりません。
その単純さには鋭い角があります。
- リカバリーが効かない。 鍵をなくせば資金もなくなります。「パスワードをお忘れですか」リンクも、あなたの身元を保証してくれる信頼できる連絡先も、時間ロックされたロック解除もありません。鍵そのものがアカウントなのです。
- バッチ処理ができない。 トークンを承認してからスワップしたい?それは 2 つの別々のトランザクション、2 つの別々の署名、2 回の別々のガス支払いです。「これらを一緒にやるか、どちらもやらないか」と言う手段はありません。
- ネイティブなマルチシグがない。 複数の署名者が欲しければ、コントラクト(たとえば Safe、旧 Gnosis Safe)をデプロイし、その上で EOA からそのコントラクト宛てにトランザクションを送らせる必要がありました。コントラクト自体はマルチシグでも、世界とやり取りしているアカウントは結局単一鍵の EOA のままです。ユーザー体験は通常のウォレットと比べて常に二流でした。
- ガスは常に ETH 払い、常に送信者持ち。 どんな dApp もあなたのガスを払うことはできません。USDC でガスを払うこともできません。例外もありません。
開発者たちは何年もの間、手の込んだコントラクトパターンでこれらの制約を回避してきました。ERC-4337 はついに彼らに、Ethereum のベースプロトコルに一切手を加えることなく、標準化された出口を与えたのです。
ERC-4337 が導入するもの
ERC-4337 は、Ethereum 自体のプロトコル層の動きを変えるわけではありません。そこにこそ巧妙さがあります。代わりに、ユーザー空間だけで「スマートコントラクト・ウォレットを一級市民として」シミュレートする 4 つの新しい役割を定義します。この 4 つの語を知ってしまえば、規格全体がするりと腑に落ちます。
UserOperation。 これは AA ウォレットにとって、生のトランザクションに代わる新しい「署名済みインテント」オブジェクトです。EOA が単一の鍵で署名されたトランザクションを生成するのに対し、AA ウォレットは UserOperation を生成します。これは「このアカウントは X をしたい、ここに承認情報、ここに支払い方法がある」と告げる構造化されたリクエストです。たとえば「Alice に USDC を 100 送金。この 2 つのデバイスからの署名で承認。ガスは dApp が負担」といった内容になり得ます。
EntryPoint コントラクト。 Ethereum 上にデプロイされた、唯一かつ正典的で監査済みのスマートコントラクトです。UserOperation を受け取り、それがどの AA ウォレットから来たかに応じてそのルールに照らして検証し、結果として生じるアクションを実行する方法を知っています。すべての AA ウォレットが同じ EntryPoint と対話することで、この規格は規格として機能します。
Bundler。 オフチェーンのアクター(特殊化されたリレイヤーのようなものと考えてください)で、公開された mempool 上で UserOperation を待ち受け、複数をまとめて 1 つの Ethereum トランザクションとして EntryPoint に提出します。bundler はネットワークに実際のガスを支払い、まとめた UserOperation からその分を回収します。
Paymaster。 ユーザーの代わりにガスを払うことを買って出ることのできる、任意のコントラクトです。「dApp があなたのガスを払う」「ETH ではなく USDC でガスを払う」を可能にしているのが paymaster です。paymaster がなければユーザーの AA ウォレットが自分でガスを払い、あれば paymaster が肩代わりします。
語彙はこれだけ。それ以外はすべて飾りに過ぎません。
アカウント抽象化が実務で可能にすること
上記の 4 つの要素は抽象的に聞こえるかもしれませんが、何を解放するかを見れば一気に具体的になります。
- ガス・スポンサーシップ。 dApp が新規ユーザーのガスを払えば、何かを始める前にまず ETH を用意する必要がなくなります。これはオンボーディングにとって絶大な意味を持ちます。新規ユーザーは、まず fiat→ETH のオンランプを通過しなくても、サインアップしたり、NFT をミントしたり、初取引を行えるのです。Argent、Safe、ZeroDev は今日すでにスポンサーシップのフローをサポートしています。
- ソーシャル・リカバリー。 主鍵をなくした場合に、「ガーディアン」(友人、家族、金庫の中のハードウェアデバイスなど)の定足数が代わりに鍵をローテーションできるよう、ウォレットを構成できます。リカバリーのロジックはあなたのウォレットコントラクトに住み、中央集権的なカストディアンがあなたのお金を握っているわけでもなく、かといって 1 台のデバイスが壊れただけで永遠に資金を失うこともありません。
- Session keys。 dApp はあなたのウォレットに、1 つのアプリ・1 セットのアクションに範囲を限定し、数時間だけ有効な、権限が制限された鍵を要求できます。あなたは主鍵で 1 度署名してセッションを許可するだけで、その後 dApp はクリックごとにあなたに確認を求めることなく、そのサンドボックスの中で動けます。ゲームスタジオが好むパターンです。
- バッチ実行。 「このトークンを承認してそのままスワップ」が、1 つの署名・1 つの UserOperation・1 回の実行になります。途中の手順が 1 つでも失敗すれば、バッチ全体がロールバックされ、不整合な状態で立ち往生する中途半端なトランザクションはもうありません。
- カスタム署名スキーム。 パスキー、ハードウェアエンクレーブ、あるいは 2-of-3 のしきい値スキームを使うウォレットが欲しい?検証ロジックはウォレットコントラクトに住んでいるので、EOA 標準である secp256k1 ECDSA に縛られず、好きな暗号を使えます。
これが SSP のマルチシグモデルとどう関係するか
SSP Wallet は、多くの場合同じゴールに別の道筋でアプローチします。SSP は 2-of-2 BIP48 マルチシグ を使います。2 つの独立した鍵が、2 つの独立したデバイスにあり、どんなトランザクションに署名するにも両方が必要です。ERC-4337 と BIP48 マルチシグは、共通の問題、すなわち 単一のデバイスを単一障害点にしてはならない に対して、それぞれ別のメカニズムで挑む二つの解です。
率直な比較をいくつか挙げます。
- 共通点。 いずれも、従来の単一署名ウォレットの「1 本の鍵、1 度きりのチャンス」という失敗モードを取り除きます。1 つの要素を失っても、もう一方で復旧できます。1 つの要素が侵害されても(ノート PC のマルウェア、紛失したスマホ)、攻撃者は単独では資金を動かせません。
- 違い。 BIP48 は Bitcoin にルーツを持つマルチシグ規格で、SSP がサポートする各チェーン — Bitcoin、Ethereum、Litecoin、その他いくつか — の上で、それぞれのネイティブなマルチシグ・プリミティブを使って動きます。ERC-4337 は Ethereum 限定で、スマートコントラクト層に住むため、BIP48 がネイティブに持たない機能(ガス・スポンサーシップ、session keys)と引き換えに、Ethereum だけというスコープとコントラクト実行のオーバーヘッドを背負います。
- SSP の現在地。 SSP は BIP48 モデルを軸に作られています。ERC-4337 ウォレットと SSP 流のマルチシグは敵対するものではなく、補完しあうツールです。原理的には BIP48 マルチシグの鍵を AA ウォレット内の署名者として用いることも可能です。ただし、それは今の SSP の主戦場ではなく、まだ実装していない連携を約束するより、今日提供している製品について明確であることを優先します。
「AA ウォレットとハードウェア・マルチシグ、どちらを使うべきか?」と迷っているなら、率直な答えはこうです。両者は重なり合う問題を異なるトレードオフで解いており、正解はあなたが大事にしているチェーン次第です。
率直なトレードオフ
アカウント抽象化は本物の前進ですが、無料ではありません。そうでないと言ってくる人は、何かを売り込んでいるはずです。
- ガスコストは高い。 すべての UserOperation は EntryPoint とあなたのウォレットコントラクトでコントラクトコードを実行します。EOA が署名するトランザクションよりも厳密にいって計算量が多く、それはつまりガスも多いということです。バンドリングがいくらか分担しますが、1 アクションあたりで見れば、概して EOA より多く払うことになります。
- リカバリーはリカバリー用コントラクトの良し悪し次第。 ソーシャル・リカバリーやガーディアン方式は強力な機能であり、同時に新しい攻撃面でもあります。リカバリーロジックのバグや、後から見て小さすぎたガーディアン集合は、EOA の鍵を失うのと同じくらい致命的になり得ます。監査済みのウォレット実装を使うようにしましょう。
- paymaster は信頼関係を生む。 「dApp がガスを払う」は素晴らしく聞こえますが、それは paymaster があなたの UserOperation を見ており、原理的には特定のトランザクションへのスポンサーを拒否できるということでもあります。「自分のガスは自分で払う、誰にも止められない」とは別の信頼モデルです。
- 大規模な実戦経験はまだ少ない。 EOA は十数年にわたって数兆ドル相当を守ってきました。ERC-4337 は 2023 年 3 月に稼働を開始したばかりで、まだ成熟途上です。価値の高いコールドストレージにおいては、保守的な答え(ハードウェアウォレット、マルチシグ、監査済みコントラクト)の方が依然として長い実績を持っています。
さらに深く
スマートコントラクトを使わずに複数鍵セキュリティがどう機能するかという SSP 側の話は、2-of-2 マルチシグとは? をどうぞ。
正典の技術仕様 — 厳密な UserOperation 構造、EntryPoint インタフェース、各設計判断の根拠を含む — については、EIP 本体が一次情報源です: https://eips.ethereum.org/EIPS/eip-4337。