0xjs@GoldenFinance
2024年4月12日のEtherCorpの第183回ACDEミーティングにおいて、EIP-3074が次のEtherCorpハードフォークPectraアップグレード(プラハアップグレードと呼ばれる)に正式に含まれました。
その結果、EIP-3074はイーサコミュニティから注目を集めました。イーサコミュニティの多くは、このEIPがEVMチェーン上でユーザーがやりとりする方法を永遠に変え、ウォレットのユーザーエクスペリエンスをよりシンプルに、より安く、より強力にすると信じています。
では、EIP-3074とは何でしょうか?
EIP-3074とは何ですか?
一文の説明:EIP-3074は、単一のトランザクション承認、バッチトランザクション、ウォレット資産回収、スポンサー付きトランザクションなどを実行する能力を含む、スマートコントラクト機能(アカウント抽象化など)でEOAウォレットを強化します。
イーサネットの研究者である Sam Wilson氏、Go Ethereumの開発者らによって提案されたEIP-3074は、AUTHとAUTHCALLという2つの新しいEVMオペコードを追加することで、既存のEOAをスマートコントラクトに変えます。これら2つのオペコードは、スマートコントラクトがEOAに代わって行動することを可能にするために連携します。
AUTH opcode (0xf6): このオペコードにより、ユーザーはECDSA署名をチェックすることで、特定のEOAを認可することができます。これはEOAの秘密鍵を使用して行われる必要があり、特定のメッセージ(コミット)を上書きする必要があります。
AUTHCALL opcode (0xf7): このオペコードは、認可されたスマートコントラクトがEOAのアカウントからトランザクションを開始することを可能にします。既存のCALLオペコードと同様に機能しますが、コントラクト自体ではなく、認可されたEOAを送信者として使用します。
AUTHはユーザーの署名と期待されるアクションを取得し、その署名が正しいことを検証します。スマートコントラクトがEOAに代わって操作を実行できるように、txnの元のアドレスを示す変数を設定し、認可制御の委譲を可能にします。 AUTHCALLはその後、実際のmsg.senderの代わりに発信者アドレスを呼び出し元として使用して、ターゲットコントラクトを呼び出します。
EIP-3074のワークフローと新しいユースケース
以下:

ユーザーがメッセージに署名する(トランザクションではなくチェーンダウン)---> ユーザーまたはイニシエータがメッセージをトランザクションとして呼び出し元コントラクトに送信する ---> 呼び出し元がAUTHとAUTHCALLを使用して検証し、呼び出す。この新しいトランザクションフローは、次のような多くのユースケースをもたらします:
ユースケース1:スポンサートランザクション。BobのウォレットにETHがないと仮定すると、アプリはETHを購入/ブリッジする必要なく、Bobの取引にGasを提供することができます。
.ユースケース2:1つのトランザクションで複数の操作を実行できること。現在、Uniswapでトークンをスワップするには、ユーザーはまず自分のトークンを使用するためにUniswapを承認し、それから実際のスワップを実行する必要があります。
使用例3:資産回収。ユーザーが秘密鍵を紛失した場合、ソーシャルリカバリーを使用して資産を回復できるように、特別な呼び出し元契約を設定できます。ソーシャルリカバリーの条件が満たされた場合、資産を移動させるために発信者に署名を提出することができます。
EIP-3074はイーサネットにとってどのような意味がありますか?
EIP-3074以前:スマートコントラクトでは、スマートコントラクトとやり取りする際に、ユーザーがトランザクションに署名する必要がありました。その結果、ユーザーは毎日実行するオンチェーンタスクのために何らかのメッセージ署名に従事する必要がありました。
EIP-3074以降:ユーザーはキーを一度署名し、ユーザーのウォレットからスマートコントラクトにトランザクションに署名する許可を与えることができます。ユーザーは自分の鍵でこの許可に署名することができ、それで準備が整う。ユーザーがスマートコントラクトとのやり取りを心配することなく、1つのセッションに署名し、ゲーム全体をプレイすることができる。
ERC-4337のコントラクトレベルでのアップグレードとは異なり、EIP-3074はEVMコマンドレベルでアップグレードされるという利点があり、ユーザーがスマートコントラクトの機能を享受できるようにするための特別な追加設定は必要ありません。例えば、前のセクションで述べた3つのユースケースは、イーサネットのユーザーエクスペリエンスを大幅に向上させます。
これらすべての利点の後、EIP-3074の欠点は何でしょうか
最大のものは発信者です。発信者契約は、完全に吟味され、スケーラブルではなく、信頼されていない必要があります。
加えて、既存の再入力チェックのいくつかは、EIP-3074には適用されないかもしれません。
EIP-3074に追加された2つの新しいオペコードのため、この変更を追加するにはハードフォークが必要でした。これはEIP-3074が遅れ、ERC4337が先に採用された理由の一部です。
一方、アカウント抽象化ERC-4337はハードフォークを必要とせず、純粋にコントラクトとオフチェーンシステムの変更です。