Vitalikによって、Ethereumのアカウント抽象化に関連する新しいEIPが提案され、大きな話題になっています。
アカウント抽象化の議論はこれまで、様々なアプローチで展開されてきましたので、それらの背景をまとめつつ、今回の新たな提案がどのような内容なのか解説します。
ブロックチェーンの最前線から重要トレンドを解説するニュースレターDIVE INTO CRYPTOへようこそ!1,700を超える投資家や開発者、クリエイターのコミュニティに飛び込んでみてください🧑💻🚀
DIVE INTO CRYPTO!
📰 crypto news
今週は、目を通しておきたいリソースの紹介のみになります。
Ethereum's Dencun upgrade is making ETH inflationary again: CryptoQuant
Numerous catalysts are primed to set off a wave of ZK rollups and applications
Botanix Labs raises $8.5 million to build a Bitcoin-native DeFi ecosystem
Lava Foundation raises $11 million in token round ahead of airdrop
Optimism’s Superchain now supports Layer 3 chains via OP Stack
🫧 Deep Dive
なぜEIP-7702は提案されたのか?Ethereumにおけるアカウント抽象化の進化とその歴史
今回は、Polygonの開発者Jarrod氏の説明が理解しやすかったので、参考にしながらEIPの内容をDeep Diveしてみましょう。
はじめに:アカウントの種類とその課題
Ethereumには、EOA(外部所有アカウント)とスマートコントラクトアカウントの2種類が存在します。EOAはユーザービリティが高いものの機能が限定的である一方、スマートコントラクトアカウントは柔軟性が高いがユーザービリティが低いという課題があります。
EOA:普通によく使われてるアカウント(ウォレット)
スマートコントラクトアカウント:プログラムできるアカウント
アカウント抽象化は、EOAとスマートコントラクトアカウントのメリットを組み合わせ、最終的にはすべてのアカウントがスマートコントラクトアカウントとして機能することを目標として議論されてきました。
過去のアカウント抽象化に関する提案とその課題
過去には、EIP-86、EIP-2938、ERC-4337などのアカウント抽象化に関する提案がなされました。特にERC-4337は、プロトコルレベルでの変更を必要としない点で注目されました。
https://diveintocrypto.xyz/p/account-abstractionerc-4337
一方、EIP-3074は、EOAからスマートコントラクトへの一時的な委任を可能にする新しいオペコードを導入し、EIP-5003は、EIP-3074で認証されたアドレスにコードをデプロイすることで、EOAからスマートコントラクトアカウントへの永続的な移行を可能にしようとしました。
しかし、これらの提案はERC-4337との互換性に課題があり、2つの異なるアカウント抽象化のエコシステムができてしまう懸念がありました。
EIP-7702の提案背景
そこで、Vitalik Buterin、Sam Wilson、Ansgar Dietrichs、Matt Garnettらは、次回のアップグレードにEIP-3074が含まれる可能性があるにもかかわらず、新たにEIP-7702を提案しました。
EIP-7702は、EIP-3074の機能を維持しながら、よりシンプルで効率的な方法を採用しています。
EIP-7702の概要
EIP-7702は、EOA(外部所有アカウント)が一時的にスマートコントラクトのように振る舞うことを可能にする新しいトランザクションタイプを導入する提案です。
具体的には、ユーザーは新しいトランザクションタイプを使用して、自分のEOAに一時的にスマートコントラクトのコードを設定することができます。このコードは、トランザクションの実行中にのみ有効であり、トランザクションが終了すると、EOAは元の状態に戻ります。
この提案が実装されれば、Ethereumのユーザービリティと柔軟性が大幅に向上します。EIP-7702のMotivationでは、主に以下の3つのユースケースでEIP-7702の利活用が期待されています。
バッチ処理(Batching):同一ユーザーによる複数のオペレーションを1つのアトミックなトランザクションにまとめることができる。例えば、ERC-20の承認とその承認を使用するための処理を1つのトランザクションで行うことができる。
スポンサーシップ(Sponsorship):アカウントXが、アカウントYに代わってトランザクションの手数料を支払うことができる。アカウントXは、この サービスの対価として他のERC-20トークンで支払いを受けることができる。または、アプリケーションの運営者が、ユーザーのトランザクションを無料で含めることもできる。
権限の縮小(Privilege de-escalation):ユーザーはサブキーに署名し、アカウントへのグローバルアクセスよりもはるかに弱い特定の権限を与えることができる。例えば、ETHではなくERC-20トークンを使用する権限や、1日に総残高の1%までの使用権限、特定のアプリケーションとのみ対話する権限などが考えられる。
EIP-7702のメリット
EIP-7702で提案されているコントラクトコードは、既存のERC-4337ウォレットコードをそのまま使用できるため、ERC-4337との互換性が高くなっています。このためEthereumの開発者からもPectraには3074より7702を含めた方がいいという意見も現れているそうです。
EIP-3074では、EOAからスマートコントラクトへの一時的な委任を可能にするために、新しいオペコード(AUTHとAUTHCALL)が導入されました。これにより、EOAの機能を拡張することができますが、同時に、これらのオペコードを利用するための特別な「invoker contract」を開発する必要がありました。
この「invoker contract」のエコシステムは、スマートコントラクトウォレットのエコシステムとは別に開発作業が発生します。つまり、アカウント抽象化のためのソリューションが複数存在し、エコシステムが分断される可能性があるのです。
すなわち、EIP-7702は2つの異なるアカウント抽象化のエコシステムができることを防ぎ、アカウント抽象化の進化をよりスムーズに進めることができます。
また、EIP-7702はEIP-5003の目的とも合致しており、EOAからスマートコントラクトアカウントへの永続的な移行を容易に実現できるとされています。
具体的には、EIP-7702では、トランザクションの終了時にEOAのコードを空に戻すように設計されています。しかし、この部分を変更し、EOAのコードを空に戻さないようにするだけで、EOAがスマートコントラクトアカウントに永続的に移行できます。
つまり、EIP-7702が実装された後、EOAが特定のコードを永続的に実行するようにアップグレードするには、トランザクションの終了時にEOAのコードを元に戻さないようにするだけで済むのです。これは、EIP-7702の仕様に1行のコードを追加するだけで実現可能であると提案されています。
まとめ
アカウント抽象化は、Ethereumのユーザービリティと柔軟性を向上させるために重要な概念ですが、同時に、異なるソリューションが乱立することでエコシステムが複雑化するリスクをはらんでいます。
EIP-7702は、アカウント抽象化の進化において重要な役割を果たす提案であり、過去の提案の課題を解決し、EOAとスマートコントラクトアカウントのメリットを組み合わせることを目指しています。
EIP-7702は、次回のEthereumのアップグレードに含まれる可能性があると言われはじめています。実際にどうなるかは開発者会議での意向次第になるかと思います。もし実装されれば、Ethereumの発展に大きく貢献すると期待できるかも知れません。
今回は以上です。
🔵 From Community
もしこの記事を気に入っていただけたら「いいね・Xでのシェア」を頂けたらとても嬉しいです。質問や感想はSubstackでコメントをいただければ、ご返信させていただきます。
Xでいただいたリプライや感想を紹介しています。読者の声を聞かせてください!
⬛️ Follow on X
📜 Disclaimer
このニュースレターは、教育目的の情報提供を主旨としており、投資や金融、税に関するアドバイスではありません。ご自身での調査やデューデリジェンスが必要です。