はじめに
以前のブログで、EIP3074は長年の夢であり、ネイティブAAへの足がかりであり、目標である!と言いましたが、それは嘘です。
改めてこのEIP7702の説明をご覧ください。
なお、この記事は2024年5月の情報をもとにしており、発表されてまもないため、情報が少なくなってます、ご了承ください。
そもそもEIP7702とは
提供する機能はEIP3074と同等。ただし実現方法が「トランザクション処理中、署名アカウントのコントラクトコードに値を設定できる、新しいトランザクションタイプを作成する」と異なる。
具体的には
- EOAを使ってトランザクションを署名する
- トランザクション実行時、EOAのコントラクトコード部分(EOAなので空)にコントラクトのコードをセットする
- {トランザクション実行}
- トランザクション終了時、EOAのコントラクトコード部分を空に戻す
と言う処理を行うことにより、あたかもコントラクトアドレスが署名者であるかのようなトランザクションを発生させることができる。
EIP7702のメリットは?
最終的に目指されている「アカウントの抽象化」の世界において、不必要とされている、EIP3074で実装予定の
- AUTH
- AUTHCALL
- インボーカーコントラクト
をわざわざ作る必要がない。
既存の仕組みであるERC4337(AA)と互換性も高く、ERC4337のモジュールを利用して成り立つことができる。
今後の流れ
次回のハードフォークでEIP3074が実装される雰囲気だったが、おそらくそれがなくなり、このEIP7702に入れ替わると思われる。
すると、このEIP7702を前提としたウォレットが開発される流れになるんじゃないかな、多分。
OPやARB、ScrollなどのL2、L3が取り入れるかどうかは知らないけれど、まぁ取り入れそうなきがする。知らんけど。
参考リンク
EIP-7702: Set EOA account code for one transaction
Add a new tx type that sets the code for an EOA during one transaction execution
https://eips.ethereum.org/EIPS/eip-7702