イーサリアムのユーザーが日常的に感じる最大の不便の一つは、すべてのオンチェーン操作にETHが必要な点です。DeFiプロトコルを初めて利用しようとした際、ETHを持っていないためにガス代が払えず、操作できなかった経験を持つ人も多いでしょう。また、トークンのスワップを行う際には「承認(Approve)」と「スワップ」という二回のトランザクションが必要で、それぞれガス代がかかります。こうした課題を解決する可能性を秘めているのが、Pectraアップグレードで導入される予定のEIP-7702です。本記事では、EIP-7702の技術的な仕組みから実際のユースケース、そしてセキュリティ面での考慮点まで詳細に解説します。
EIP-7702の基本概念
EOAとスマートコントラクトアカウントの違い
イーサリアムには二種類のアカウントが存在します。一つはEOA(Externally Owned Account)と呼ばれる一般ユーザーのウォレットアドレスで、秘密鍵によって制御され、コードを持ちません。もう一つはスマートコントラクトアカウント(CA)で、デプロイされたコードによって動作し、トランザクションを自律的に処理できます。現行のERC-4337というアカウント抽象化標準はCAを活用してウォレット機能を豊かにしますが、EOAとCAの間の相互運用性には制限がありました。EIP-7702はこの壁を取り払い、EOAが一時的にCODEを持てるようにする革新的なアプローチです。
委任の仕組みと新しいトランザクションタイプ
EIP-7702では、新しいトランザクションタイプ(タイプ4)が導入されます。このトランザクションにはauthorization_listというフィールドが含まれ、ユーザーは自分のEOAアドレスに対してどのコントラクトのコードを委任するかを署名付きで指定できます。重要な点として、この委任はトランザクションが完了するまでの間のみ有効(一時的な委任)であるため、恒久的にコードが紐付けられるわけではありません。ただし実装によっては、ストレージに状態を書き込むことで永続的な効果をもたらすことも可能です。
ガス代スポンサーシップの実現
ペイマスターの概念
EIP-7702が実現する最も注目されるユースケースの一つが、ガス代スポンサーシップです。「ペイマスター」と呼ばれるサードパーティのコントラクトが、ユーザーに代わってガス代を支払うことができるようになります。たとえばDEX(分散型取引所)がユーザーの代わりにガス代を立て替え、スワップ手数料から回収するというビジネスモデルが可能になります。これにより、ETHを一切持っていない新規ユーザーでも、特定のDeFiアプリケーションを無料(に見える形)で利用できる体験が実現します。
ERC-20でのガス代支払い
ペイマスターの仕組みを活用することで、ユーザーはETHの代わりにERC-20トークン(USDCやDAIなど)でガス代を支払うことができるようになります。具体的には、ペイマスターがETHでガス代を前払いし、その代わりにユーザーのウォレットからERC-20トークンを徴収する仕組みです。これはWeb2的なユーザー体験をWeb3に持ち込む上で重要な一歩であり、仮想通貨に不慣れな一般ユーザーへの普及を後押しする要因になると期待されています。
バッチトランザクションによるUX改善
Approve+Swapの一回完結
現行のDeFiでは、新しいトークンをスマートコントラクトに操作させる前に「Approve(承認)」トランザクションを実行する必要があります。その後に実際の操作(スワップや流動性供給など)のトランザクションを実行するため、ユーザーは最低でも二回署名し、二回分のガス代を支払う必要があります。EIP-7702のバッチトランザクション機能を使うと、ApproveとSwapを一つのトランザクションにまとめて実行できるようになります。これはユーザー体験の向上だけでなく、ガスコストの削減にも直結します。
複雑なDeFi操作の自動化
バッチ処理の応用例として、フラッシュローンを活用した裁定取引やポジションの一括リバランスなどが挙げられます。従来は複数のコントラクト呼び出しをアトミックに(一つのトランザクションとして)実行するには専用のスマートコントラクトを別途デプロイする必要がありましたが、EIP-7702により一般ユーザーのEOAからでも同等の操作が可能になります。これは個人投資家が高度なDeFi戦略にアクセスする障壁を下げる効果があります。
セキュリティ上の考慮点
委任先コントラクトのリスク
EIP-7702を利用する際の最大のセキュリティリスクは、悪意のあるコントラクトへの委任です。信頼できないコントラクトにコードを委任してしまった場合、そのコントラクトがユーザーのウォレット内の資産をすべて引き出す可能性があります。ユーザーとしては、委任先のコントラクトアドレスが信頼できる監査済みのものであることを必ず確認する必要があります。ウォレットプロバイダー側も、委任要求を表示する際にリスク警告を適切に表示するUIの実装が求められます。
リプレイアタックへの対策
EIP-7702の仕様では、委任の署名にチェーンIDとノンスが含まれるため、署名を別のチェーンや別のトランザクションで再利用する「リプレイアタック」を防ぐ設計になっています。ただし、マルチチェーン対応ウォレットを使用する場合は、署名に含まれるチェーンIDを必ず確認することが重要です。開発者はEIP-7702を実装する際、このノンス管理を適切に行うライブラリやフレームワークを使用することが推奨されます。
既存のアカウント抽象化標準との関係
ERC-4337との互換性
ERC-4337はEIP-7702よりも先に提案・実装されたアカウント抽象化標準です。ERC-4337はバンドラーやエントリーポイントコントラクトを活用してスマートコントラクトウォレットを実現しますが、プロトコルレベルの変更を伴わないため一定の制約がありました。EIP-7702はERC-4337と競合するものではなく、むしろ補完的な関係にあります。EIP-7702によってEOAがERC-4337の仕様に準拠したウォレットコードを一時的に実行できるようになるため、既存のERC-4337エコシステムとの連携が容易になると考えられています。
EIP-3074からEIP-7702への変遷
EIP-7702の前身としてEIP-3074があり、こちらもEOAの拡張を目的としていました。しかしEIP-3074はAUTHとAUTHCALLという新しいオペコードを追加する方式であったため、EVMの変更が大きく、安全性の観点から懸念が示されていました。EIP-7702はより保守的なアプローチを採用し、既存のCALLの仕組みを最大限活用することで、同等の機能をより安全に実現するよう設計されています。
開発者向け実装ガイドラインの概要
委任コントラクトの設計原則
EIP-7702対応のウォレットコントラクトを開発する際には、いくつかの重要な設計原則があります。まず、コントラクトのストレージはEOAのアドレス空間に書き込まれることを念頭に置く必要があります。次に、セルフコールや再入攻撃(リエントランシー)への対策として適切なガード処理を実装することが求められます。また、アップグレード可能なプロキシパターンを採用する場合は、委任先のロジックコントラクトと明確に分離した設計にすることが推奨されます。
テストネットでの検証ステップ
EIP-7702のサポートはSepoliaなどのテストネットで先行して確認できます。開発者はFoundryやHardhatなどの開発ツールの最新版でEIP-7702対応のトランザクションを生成・送信できるようになっており、本番実装前に十分なテストを行うことが不可欠です。特にマルチコール、ガス見積もり、イベント発行の動作を実際のテストネット環境で確認しておくことを強く推奨します。
まとめ:EIP-7702が切り開くWeb3の未来
EIP-7702は、イーサリアムのユーザー体験を根本から変える可能性を持つ重要なアップグレードです。ガス代スポンサーシップによって新規ユーザーの参入障壁が下がり、バッチトランザクションによって既存ユーザーの操作効率が向上します。もちろん、委任先コントラクトのリスク管理という新たな課題も生まれますが、ウォレットプロバイダーとプロトコル開発者が連携することでこのリスクは十分に軽減できます。Web3の大衆普及に向けた重要なピースとして、EIP-7702の動向を引き続き注視していく必要があります。
よくある質問
Q1. EIP-7702によって秘密鍵なしでウォレットを使えるようになりますか?
EIP-7702単体では秘密鍵レスのウォレットを直接実現するものではありません。ただし、EIP-7702と組み合わせたスマートコントラクトウォレットにより、ソーシャルリカバリー(秘密鍵を失った際に信頼できる人たちのサポートでアクセスを回復する機能)などの仕組みを実装することが可能になります。
Q2. 既存のMetaMaskなどのウォレットはEIP-7702に対応しますか?
主要なウォレットプロバイダーはEIP-7702への対応を検討・開発中です。MetaMask、Rabby、Safe(Gnosis Safe)などがEIP-7702を活用した新機能の追加を発表または示唆しています。各ウォレットの公式アナウンスをご確認ください。
Q3. EIP-7702の実装でETHの価値はどう変わりますか?
EIP-7702はガス代の支払い方法を多様化させますが、ネットワークのガス代自体は引き続きETHで計算されます。ペイマスターがユーザーの代わりに支払う場合もETHが必要であるため、ETHのガス代としての基本的な需要は維持されます。ただし長期的なETH価格への影響については、市場参加者の判断に委ねられる部分が大きいです。
免責事項
※本記事は情報提供を目的としており、投資を推奨するものではありません。暗号資産への投資は元本割れのリスクがあります。投資判断はご自身の責任で行ってください。