ERC4337からAccount Abstractionを理解する

ERC4337からAccount Abstractionを理解する

はじめに

  • Account Abstractionについて
  • ERC4337について
  • UserOperation.sol
  • EntryPoint.sol
  • まとめ

はじめに、Account Abstractionって何ですか?


ゆるふわ

Account Abstractionは、Ethereumでトランザクションを作成するために必要なアカウント(EOA)を抽象化することを指します。これにより、マルチシグや紛失時の復旧、複数端末での共有、ガスの代払いなど、セキュリティやユーザビリティを向上させることが可能となります。

そうなんですね。それに関連して、ERC4337って何ですか?


ゆるふわ

ERC4337は、Ethereumのプロトコルを変更せずにAccount Abstractionを実現するための方法として提唱されたものです。現状ではまだドラフト状態であり、仕様が確定していません。しかし、先日、OpenZeppelinが監査したERC4337のコントラクトがメインネットにデプロイされ、話題になりました。

UserOperation.solとは何ですか?


ゆるふわ

これは、ユーザーがアカウントを操作するためにUserOperationをRPC eth_sendUserOperationでBundlerに投げるコードです。具体的には、命令内容やnonce、ガスの設定などをencodeしています。

EntryPoint.solについても教えていただけますか?


ゆるふわ

EntryPoint.solでは、Bundlerが受け取ったUserOperationをまとめてEntryPointのhandleOp()に投げて、トランザクションを発行します。また、_validatePrepayment() や_validateAccountAndPaymasterValidationData() でUserOperationのチェックを行い、_executeUserOp()でUserOperationを実行します。

すごく複雑なんですね。全体の流れをまとめていただけますか?


ゆるふわ

はい、まずBundlerがユーザーのリクエストをまとめてEntryPointに送ります。EntryPointではリクエストが正しいかをWallet contract(アカウント)でチェックします。その後、EntryPointはアカウントに対してリクエストを実行します。この流れが全体の大まかな流れとなります。

まとめると、Account Abstractionを実現するための一つの手段としてERC4337が提案され、その実装について詳しく解説しました。仕様がまだ確定していないため、ERC4337は現在も進行中のプロジェクトです。しかし、メインネットにコントラクトがデプロイされるなど、その進行状況は注目に値します。Account Abstractionはユーザビリティを大きく向上させるため、その開発状況に引き続き注目していきましょう。

yurufuwa

ゆるふわ仮想通貨チャンネル

◉ゆるふわの自己紹介
▶︎仮想通貨を始め、日本株・米国株の投資運用中
▶︎世界2周一人旅を経験
▶︎2021年12月よりYouTubeスタート
◉ ゆるふわからの一言 このチャンネルでは仮想通貨に関する情報を配信していますが、全てゆるふわの個人的な見解です。 投資アドバイザーではない為、あくまでもエンタメとしてご覧ください。 また投資をする際は自己責任の上、ご自身での判断をお願いいたします。 当該チャンネルではアフィリエイトリンクを使用する場合があります。 居住国によって使用不可の取引所もありますので、その点予めご自身にてご確認をお願いします。

ゆるふわパートナー おすすめの仮想通貨取引所[PR]

完全日本語に対応しサポートも充実

手数料業界最安値。日本語サポートも充実

少額からはじめられる日本の仮想通貨取引所

コピートレードの行える海外仮想通貨取引所

上場数が多い海外仮想通貨取引所

仮想通貨 米国株 為替ハイブリッドな取引所