Author: 0xNatalie Source: ChainFeeds Reseach
ERC-4337はアカウント抽象化のためのアプリケーション層標準であり、EIP-3074はEVMを直接修正するプロトコル層標準であり、EIP-7702はその中間的なもので、EOAにスマートコントラクトをアドホックに与えるものです。
EIP-3074 は、今年4月のイーサネットの次のハードフォーク計画に含まれており、この提案は、外部所有アカウント(EOA)がスマートコントラクトに取引権限を委譲できるようにすることで、ユーザーにより便利な体験をもたらすことを目指している。しかし、この機能はコミュニティでも懸念を呼んでおり、署名が悪用された場合、口座資金全体が危険にさらされ、フィッシング攻撃者の好機となることを多くのメンバーが恐れている。セキュリティをさらに強化するため、Vitalik Buterin氏は最近、EIP-3074の代替案としてEIP-7702を提案し、コミュニティで広範な議論が巻き起こりました。
EIP-7702はアカウントの抽象化を強化するために新しいトランザクションタイプを導入しています。この新しいトランザクションタイプは、外部所有アカウント(EOA)がトランザクション中に一時的にスマートコントラクトの特性を採用し、トランザクション終了後に元の状態に戻ることを可能にします。では、同じアカウント抽象化提案であるERC-4337、EIP-3074、EIP-7702との違いは何でしょうか?
ERC-4337:アプリケーション層におけるアカウント抽象化の標準
ERC-4337:アカウント抽象化にAlt Mempoolを使う。Vitalikによって提案されたERC-4337は、スマートコントラクトのアカウントにEOA開始トランザクションの特徴を与えることを主な目的としたアプリケーション層の標準です。これはEntryPointと呼ばれるスマートコントラクトを導入することで実現され、スマートコントラクトがユーザーのアカウントのように振る舞うことを可能にする。これにより、マルチ署名や取引の自動実行などの複雑なロジックが可能になる。
主な特徴:
フォークを固める必要がない。フォーク:ERC-4337は実装にハードフォークを必要とせず、イーサネットプロトコルに変更を加える必要もありません。
互換性: このアプローチは既存のEOAシステムと互換性があり、移行がスムーズになります。
目的: スマートコントラクトをアカウントとして使用してトランザクションを処理・検証できるように、アカウントの抽象化を実装する。
本質:スマートコントラクトのアカウントに、EOAが開始するトランザクションのプロパティを与えること。
EIP-3074: Authorisation and Agent Execution
EIP-3074: AUTH およびAUTHCALL オペコード。EIP-3074は、イーサネットの研究者 SamWilsn、Goイーサリアムの開発者 Matt Garnett などによって提案されたもので、Vitalikはこの提案の起草に関与していません。AUTH
と AUTHCALL
の2つの新しいオペコードを導入し、スマートコントラクトがEOAに代わってバッチ処理トランザクションやガス料金のスポンサーなどのオペレーションを実行できるようにする。これはイーサネットの仮想マシンにとって大きな変化だ。
主な特徴:
委任メカニズム: EOAは、 AUTH
オペコードを介してスマートコントラクトを認可し、 AUTHCALL
を介してそのスマートコントラクトに自分の代わりに操作を実行させることができます。
セキュリティ上の懸念:委任の仕組みは、悪意のあるコントラクトに認可が与えられた場合、資金の盗難につながる可能性があるため、セキュリティ上の問題につながる可能性があります。
目的:スマートコントラクトに一時的に権限を委譲できるようにすることで、EOAの機能を強化する。
Essence: 2つのオペコードを追加することで、EVMをアップグレードします。
EIP-7702: 一時的なスマート契約によるEOA
EIP-7702: EOAアカウントコードをトランザクションに設定する。筆頭著者であるVitalikは、5月7日にこの提案を発表したばかりです。EIP-3074の代替案として、EIP-7702はEOAが取引中に一時的にスマートコントラクト機能を採用することを可能にするメカニズムを導入する。この方法により、EOAは1つのトランザクションの実行中にEOAをスマートコントラクトのウォレットに変換し、トランザクションの完了後に通常の状態に戻すことができます。また、EIP-7702はすでにEOAのコードを一時的に変更するためのフレームワークを提供しているため、EIP-5003(EOAをスマートコントラクト口座に恒久的に変換できる)をEIP-7702の上に実装することは比較的簡単になります。EIP-5003は、トランザクションの終了時にコードを消去しない設定を行うことで、EOAをスマートコントラクトに恒久的に変換できるようにします。
主な特徴:
一時的な変換:EOAのスマートコントラクトコードは、取引中に特定のアクションを実行する権限を一時的に与えられます。
高い互換性:EIP-7702はERC-4337のスマートコントラクトのウォレットコードと高い互換性があり、ERC-4337用にすでに書かれ展開されているスマートコントラクトコードを直接活用できるため、既存のアカウント抽象化の取り組みを再利用でき、既存のアカウントシステムを分割する必要がありません。
新しいオペコードを導入する必要がない:EIP-3074とは対照的に、EIP-7702はプロトコル層の標準でもありますが、イーサネットVMを恒久的に変更することなく、スマートコントラクトコードをトランザクションに一時的に適用します。
目的: EIP-3074とERC-4337の特徴を組み合わせ、より柔軟で互換性のあるアカウント抽象化スキームを提供します。
本質:スマートコントラクトコードの一時的な適用。
EIP-7702は、EIP-3074と同様の機能を実装する方法を提供し、新しいオペコードの導入を回避する一方で、アカウント抽象化の最終ゲームの実装をよりよく準備します。アカウント抽象化の最終段階とは、イーサ上のすべてのアカウントが、従来のEOAに依存するのではなく、スマートコントラクトウォレットを使用して資産とトランザクションを管理する予見された将来の状態です。スマートコントラクトウォレットの普遍的なアカウント使用のこのシナリオは、アカウント抽象化の「最終ゲーム」と呼ばれ、EIP-7702は現在の問題を解決するだけでなく、将来起こりうるアカウントモデルとの互換性を設計することで、長期的な有効性と実用性を保証します。