イーサリアムアカウント抽象化のためのERC4337レビュースキームの解釈(パート1)
序文
最初のレベルのタイトル
2023 年 3 月 1 日にデンバーで開催された WalletCon で、イーサリアム財団の開発者によって設計および実装された ERC-4337 コア コントラクトが OpenZeppelin の監査に合格し、さまざまなテストに合格したことが正式に発表されました。 Fangzhunet といくつかのテストネットは、Polygon、Optimism、Arbitrum、BNB Smart Chain、Avalanche、Gnosis Chain を含むさまざまな EVM 互換チェーン上で動作できます。

最初のレベルのタイトル
1. アカウントの抽象的な背景
副題
1.1. 財産権の分離がアカウント抽象化の目的であるのはなぜですか?
現在、イーサリアムには外部アカウント(EOA)と契約アカウント(Contract Account)の2種類のアカウントがあります。外部アカウントの所有権と署名権は理論的には同じ個人単位で保持されており、簡単に言うと、秘密鍵を保持している人はアカウントの「所有権」を持っているだけでなく、「すべてに署名して転送する」権利も持っています。資産」。したがって、イーサリアム上の現在の所有権と署名権は統合されており、そのような外部アカウント (EOA) の設計は、議論する価値のあるいくつかの問題につながる可能性があります。
秘密キーの保護が難しい: ユーザーが秘密キーを失う (紛失、ハッキング、暗号化の解読) と、すべての資産が失われることを意味します。
署名アルゴリズムが少ない: ネイティブ プロトコルは、トランザクション検証に ECDSA 署名および検証アルゴリズムのみを使用できます。
高い署名権限: ネイティブのマルチ署名なし (マルチ署名はスマート コントラクトを通じてのみコラボレーションを実現できます)、単一署名であらゆる操作を実行できます。
トランザクションのプライバシーの開示: 1 対 1 のトランザクションでは、アカウント所有者の個人情報を簡単に分析できます。
次に、単純なコントラクト ウォレット (CA) にも特定の問題があります。
コントラクトウォレットでの操作は EOA (基本的にコントラクトの呼び出し) によって開始する必要があり、各トランザクションは追加で 21,000 ガスを消費します。 (現在の Ethereum トランザクションの検証方法は、有効な ECDSA 署名、Nonce 値、および十分な値を保持している場合にのみ固定されています。
EOA は、Gas を支払うのに十分な ETH (2 つのアカウントを管理)、または Relayer に頼って Gas を支払う必要があります (集中化につながります)。
アピールの制約により、一般ユーザーがイーサリアムを使用することが困難になります。
まず、イーサリアム上のアプリケーションを使用するには、ユーザーはイーサを保有する必要があります(そして、イーサの価格変動のリスクを負う必要があります)。
複数通貨の制限: 取引手数料は ETH でのみ支払うことができ、バッチ取引はサポートされていません。
口座残高、取引は有効とみなされます)。
第二に、ユーザーは複雑な料金ロジックに対処する必要があり、ガス価格、ガス制限、トランザクションのブロックなどの概念がユーザーにとって複雑すぎます。所有権 (Owner) と署名権 (Signer) を分離することで、上記の問題を 1 つずつ解決できます。
参考文献:
イーサリアム アカウントの要約 4D 研究レポート: 10 の関連 EIP 提案の解体と、毎日数千万のアクティブ ユーザーのボトルネックを打破するための 7 年間の道のり
イーサリアム アカウントの要約 4D 研究レポート: 10 の関連 EIP 提案の解体と、毎日数千万のアクティブ ユーザーのボトルネックを打破するための 7 年間の道のり
副題
1.2. EIP-4337 と侵害ソリューションの比較
文章
1.2.1. 侵害 1-マルチ署名コントラクトウォレットソリューションマルチシグネチャ ウォレット、つまり、スマート コントラクトを使用してマルチシグネチャ機能を実装するウォレット コントラクト アカウント。 Safe マルチシグネチャ ウォレット (以前は Gnoiss Safe として知られていました) を例に挙げると、3 人による共同管理、2 人による署名実行トランザクション (2 人の署名) など、ウォレットのマルチシグネチャ ルールを設定できます。 3)、Argent ウォレットも同様で革新的です ポイントは、よりユーザーフレンドリーな、いわゆる Guardian メカニズムを導入していることです. ユーザーは他の EOA アカウントや電子メール/携帯電話をガーディアンとして設定できます. ガーディアンはトランザクションを許可したり、ロックしたりすることができますウォレットの復元を支援します。このアプローチはユーザーに利便性をもたらしますが、ウォレット ソフトウェア、ウォレット契約、バックエンド プログラムが複雑なため、そのソリューションが業界の標準的な慣行となるのは困難です。
つまり、ここでの利点の多くは、契約自体の高度にカスタマイズ可能な機能によるものですが、同じ欠点は、管理者としての EOA アカウントに依存していることです。これは本質的に署名アルゴリズムの制限です。契約で署名されたアルゴリズムにバインドする必要があるだけです
(契約は署名なしであることを確認しますが、ECDSA および secp 256 k 1 署名に基づくものだけに限定されるわけではありません)、署名自体はさまざまなアルゴリズムで実装でき、アルゴリズムが異なればパフォーマンスと対話モードも異なります。主要な変更点は、ポータブル ハードウェア ウォレットを実現するために、署名機能をモバイル デバイス側により適切に転送することなどです。この点の主な課題は、Android やその他のデバイスがオープンすぎるため、秘密鍵を携帯電話に保存することが不可能であり、別の署名チップが必要であることです。
文章
1.2.2. 2元取引基準の妥協
この最適化の妥協案は、ユーザーがオンチェーン動作を実行する際の手数料として既存の ETH に依存しなければならないという事実を目的としています。
ユーザーエクスペリエンスの観点: ユーザーはアカウントに ETH (実際にはポリゴンチェーンのないネイティブトークン MATIC) を持っていませんが、Web インターフェイスを通じて NFT をキャストできます。ユーザーは署名するだけで済み、トランザクションを作成します。実行のためにチェーンに送信します。
舞台裏:
ユーザーは構造化データに署名します。データと署名には、NFT をキャストするための NFT コントラクトが必要です。
データと署名は中継者(Relayer)に送信されます
オフチェーン リピーター (EOA アカウント) はチェーンへのトランザクションを開始し、それをチェーン上のトラステッド フォワーダー コントラクト (フォワーダー) に送信します。
NFT コントラクトはカスタマイズされており、この方法で渡されたトランザクションの元の開始者を msg.sender ではなくユーザーとして扱います。

したがって、最終的なNFTコントラクトでは、NFTMintを実行して得られるオブジェクトは、元の規格におけるトランザクションイニシエーターではありません。
たとえば、最近人気のある Lens ガスフリー ソリューションは非常に標準的なメタトランザクション実行モードであり、数千万件の支払いトランザクションが行われています。
このスキームは機能しますが、次の 2 つの欠点があります。
私たちが最終的にやり取りする契約 (つまり、NFT 契約) はカスタマイズする必要があります。その結果、チェーン上にすでに存在するカスタマイズされていないコントラクトと対話できなくなり、適用範囲が大幅に減少します。
参考文献:
参考文献:
https://research.web3 caff.com/zh/archives/4660
EIP-4337 標準スマート ウォレット実践調査レポート: 4337 標準サンプルの実装プロセスと機会のディスカッションのパノラマ プレゼンテーション
最初のレベルのタイトル
2. なぜ4337は財産権の分離を実現できるのでしょうか?
現在、分散型分野には自由な信頼は存在せず、本人確認は暗号証明に基づいていなければなりません。そのため、どの提案であっても、秘密鍵の特定の意味を管理し、経験の妥協点を達成する必要がある場合、最初に破らなければならないのはつまり、現在のアカウントのアクセス許可が集中しすぎているため、全体的な変換方法は、ターゲットのオブジェクトまたはリンクに応じて 3 つの一般的な方向に分けることができます。
チェーン上のトランザクション タイプを変換する (EIP-101、EIP-86、EIP-859、EIP-2718)
チェーン上の主要オブジェクトの変換 (EIP-2938、EIP-3074、EIP-3607、EIP-5003)

オンチェーントランザクションのパッケージ化プロセスを変革する (EIP-4337、EIP-5189)
下の図では、EIP-4337 スキームが最新のロードマップに含まれており、イーサリアムがこれら 2 つのパスに関して最終的に決定を下したことも宣言しています。EIP-4337 は、AA にとってこれまでのところ最良のソリューションです。コンセンサス層プロトコルの変更を完全に回避する
標準で提案されている新しいトランザクション オブジェクト UserOperation を使用すると、ユーザーはこのオブジェクトをメモリ プールに送信し、バンドラーはマイナー ディメンションからコントラクトをパッケージ化してバッチで配信し、トランザクションを実行します。これは、誰もがチェーン上でコントラクトを開発でき、誰もが自分でバンドラーを実行できる分散型モデルです。
2.1、4337の動作原理
最新の進歩が直面する困難や課題を深く理解するためには、原則の理解が必要ですが、関係する役割と分業を整理し、従来の取引の実行プロセスを比較してみましょう。
文章

2.1.1、4337規格に関係する役割
ERC-4337 には、UserOperation、Bundler、EntryPoint、Wallet Contract、Paymaster Contract の 5 つの主要コンポーネントがあります。
UserOperations はユーザー操作オブジェクトであり、契約アカウントとのトランザクションを実行するために使用される疑似トランザクション オブジェクトです。これらは作成者のアプリケーションによって作成されます。
バンドラー バンドラー (おそらくマイナー) は、mempool から UserOperations をバンドルし、ブロックチェーン上の EntryPoint コントラクトの参加者に送信します。
ウォレット コントラクトは、ユーザーが最終的に所有し、スマート コントラクト アカウントに属するオンチェーン ID です。
Paymaster Contracts は、オプションの支払いスマート コントラクトです。

文章
2.1.2、4337トランザクションの実行プロセス
ERC-4337 に基づくトランザクションがどのようなものかを整理するために、イーサリアム転送を完了するプロセスをもう一度見てみましょう。
ウォレットを開きます。ユーザーは、Metamask、Bitkeep、Bitizen など、ユーザーが保持する秘密鍵ツールを管理します (このステップは変更されません)。
トランザクション署名: 秘密キーを使用して、UserOperation ユーザー操作オブジェクトと呼ばれるいくつかの新しいフィールドに署名します (命令は変更されませんが、コンテンツ フィールドが変更され、非 ECDSA 署名アルゴリズムを選択できます)。
送信トランザクション: バンドラーまたはバンドラーと呼ばれる本質は、ブロックの生成を担当する特定のマイナーによって引き続き操作されます (送信は変更されず、送信オブジェクトは指定されたマイナーに変更されます)。
マイナーのパッケージング: バンドラーがユーザーから送信された操作署名を分析および検証した後、マイナーはユーザーの命令をラップするトランザクションに署名し、ユーザーの操作命令をバッチで特定のコントラクトウォレットに転送します。その後、コントラクトはユーザーの操作命令を検証します。署名して実行(オーバーホール)します。
トランザクションはマイナーによって署名されて送信されるため、from はマイナーであり、元のユーザーの署名と指示がパラメータの中に含まれます。
パッケージはルーターとしてスマート コントラクトに送信され、検証が実行され、さらに各ユーザーの独立したコントラクト ウォレットに転送されます。
Entry Point Contract Verification: EntryPoint は、トランザクションの検証と実行ロジックを処理するスマート コントラクトです。ユーザーの契約アカウントと繰り返し対話して検証し、チェーン上の最終パッケージ化が成功する必要があることを確認します。成功しない場合は、すべてのトランザクションがロールバックされます。
ブロックの製造プロセス:まったく変わりません。
2.2. 機能例:エントリーポイントコントラクト
4337 に移行した後、どのアカウントのスケジュールも最初にエントリ ポイント コントラクトを通過する必要があります。解決する必要があるのは次のとおりです。
ユーザーの「ウォレット コントラクト」がデプロイされていない場合は、UO の initCode フィールドを使用してコントラクトをデプロイします (ユーザーは最終的なコントラクト関数をカスタマイズできます)。
循環検証組み合わせトランザクションの UserOperation
既存のオフチェーンシミュレーション検証(イーサ残高、トークン残高、代理支払い)
ステーキング料金の管理
ユーザーへの請求と失敗したトランザクションのバンドラーへの補償の両方のためのガスコストを計算します。
最初のレベルのタイトル
3. ERC-4337 に引き続き注意を払う必要があるのはなぜですか?
ERC-4337 の多額の開発投資と急速な反復の進歩は、ERC-4337 がすぐに最終提案になり、さまざまなアプリケーションに広く受け入れられ、真の事実上の業界標準になる可能性があることを示しています。一般ユーザーによる Web3 適用されたしきい値。
その際、アプリケーションがERC-4337と互換性があるかどうかは、イーサリアムエコシステム全体の他のコンポーネントを使用して迅速に開発できるかどうかに影響します。以降の DApp アプリケーションも必然的に、アカウント主体から ERC-4337 に移行したユーザーとの互換性が必要になります。
最終的に市場を検証するのはユーザー自身であり、実装スキームは複雑であり、アプリケーション側が複雑になるだけです
ユーザー自身にとって、最終的に見えるものは次のとおりです。
ショッピング カートと同様のよりスムーズなトランザクション エクスペリエンスを、10 の市場に直面しても 1 つのトランザクションにパッケージ化できます。
4337 のカスタム署名アルゴリズム機能の助けを借りて、ハードウェア ウォレットを持ち運ぶことなく携帯電話の専用セキュリティ チップを使用して、より安全なアクセス エントランスを実現します。
より没入型のゲーム環境では、Paymaster の支払い機能を利用して、30 分以内に XX 額を超えないトランザクションは署名を免除するように定義することも可能で、オフサイトでのゲームの中断を回避できます。
ソーシャルインタラクションによりチェーン上の実体を復元したり、秘密鍵のパスワードを変更したり、取引のリスクを階層化・段階的に設定することができ、安全性と利便性を両立します。
前編ではERC-4337の動作メカニズムと背景について詳しく説明しました。"shisi"紹介コードによるメンバーシップの 15 日間の延長)。
次の部分では、現在の監査済みスキームの長所と短所、および実装の詳細について詳しく説明しますが、イーサリアムのより多くの基礎層が関与しているため、読むのが困難です。Web3 Caff プラットフォームのリサーチ チャネルに提出されています (有料研究プラットフォームを先頭に、6月14日のファン共同活動を進行中、利用可能
紹介コードによるメンバーシップの 15 日間の延長)。
https://cointelegraph.com/news/ethereum-erc-4337-smart-accounts-launch-at-walletcon-account-abstraction-is-here
https://blog.openzeppelin.com/eip-4337-ethereum-account-abstraction-incremental-audit/#conclusions
https://blog.openzeppelin.com/eth-foundation-account-abstraction-audit/
https://eips.ethereum.org/EIPS/eip-4337
https://hackmd.io/@erc 4337/test-suite
https://www.youtube.com/watch? v=eyT 6 WzJmWyc
https://notes.ethereum.org/@yoav/unified-erc-4337-mempool#What-does-censorship-resistance-require-of-ERC-4337
https://github.com/eth-infinitism/account-abstraction/issues/188
https://notes.ethereum.org/@yoav/unified-erc-4337-mempool
https://github.com/eth-infinitism/account-abstraction/blob/develop/reports/gas-checker.txt#enroll-beta


