4337から7702までのETHフォンのアカウント抽象レースの過去と未来を解読する

前書き

この記事は、次の 2 つのモジュールに分かれています。

前半部分では、2015年以降最初のAA提案から始まり、現在までのEip提案の主な内容を整理し、AAの歴史的な提案の経緯を明らかにし、各提案の利点と欠点を総合的に評価することを期待しています。

後半では、EIP4337の提案後に直面する市場の低迷に重点を置き、さらには、今後のイーサリアムのアップグレードに組み込まれるEIP7702について詳しく分析します。この提案が一度マージされると、オンチェーンアプリケーションの形態が全面的に変わることになります。

EIP-7702は画期的な変化をもたらし、十四君による詳細な説明を聞いてください

1、アカウントの抽象化の背景

1.1 アカウントの抽象的な意味の位置づけ

イーサリアム創始者のビタリックは、2023年末に再びETHの開発ロードマップを更新しましたが、アカウントの抽象化に関する設定は変更されていません。現在の主流モデルはEIP-4337から次の段階である自発的EOAコンバージョンに移行しています。

EIP4337がリリースされてから1年以上経過しました(2023.3.1のWalletConで、ETH坊基金会の開発者によって設計され、OpenZeppelinの監査を通過したERC-4337のコア契約が公式にリリースされた歴史ノード)。

常にユーザーの広範な認識を得ていますが、広く使用されているわけではありません。 このような矛盾した市場環境の中で、EIP-7702の進捗は大幅に前倒しされ、次回のアップグレードで統合されることが確認されています。

1.2 アカウントの抽象的な市場状況

言葉を多くする必要はありません、データを直接見てください。

1年半の発展を経て、EIP4337は主流チェーンのアカウントの集まりで、わずか1200万のアドレス数だけです。その中でも最も驚くべきことは、ETHメインネット上での活動アドレスがわずか6,764個しかないことです。おそらく統計の視点に問題があるかもしれませんが、少なくともEOAとCAのアドレス数とは大きく異なります。ETHメインネット上の独立アドレス数は2億7,000万に達しています(データソース:)。

メインネット上でのEIP4337には、実質的な進展がないと言えます。

(グラフデータの出典:)

ただし、これによってAAの本質的な価値が失われるわけではありません。なぜなら、EIP4337の設計の段階から、彼はメインネットの重大な互換性の問題に対処できないことが運命づけられていたからです。そのため、さまざまなL2チェーンがネイティブAAを広く採用することに伴い、EIP4337のアドレス数がL2で急増しました。その中で、baseチェーンとpolygonチェーンの月間アクティブユーザーはそれぞれ100Wと300Wで、かなり見応えがあります。

だから、EIP4337の設計に問題があるわけではありません。多くの利点があります。後ほど、システム的にまとめますが、現状はメインネットとL2の間の違いに起因しており、それぞれ適切なソリューションが必要です。

2、アカウントの抽象とは何ですか?

アカウントの抽象化は、聞いたときには理解しづらいかもしれませんが、実際には所有権の分離の問題を解決しています。

EVMアーキテクチャ(イーサリアム仮想マシン)には、2つのアカウント、外部アカウント(EOA)と契約アカウント(Contract Account)があります。外部アカウントの所有権と署名権は実際には同じ個体が持っています。秘密鍵を持つ人は、このアカウントの所有権だけでなく、すべての資産を署名して移転する権利も持っています。

これはETH坊アカウントの取引構造によって決定されます

下図の構造からわかるように、実際にはイーサリアムの標準トランザクションにはFrom側がありません。ですので、私が資金を送金した場合、具体的にはどのアドレスの資金を消費しているのでしょうか?実際には、VRSパラメータ(つまり、ユーザーの署名)を逆解析してFromアドレスを特定しています。

ここではECDSAなどの非対称暗号化、単方向閾関数などの概念が関わっており、詳細は触れませんが、要するにここは暗号学によってセキュリティが保障されています。 もちろん、これが今日の所有権統合のEOAアドレスの窮地をもたらしています。

そして、EIP4337の主な効果は、トランザクションフィールドに送信元アドレスフィールドを追加することで、秘密鍵と操作されるアドレスを分離することができるようになることです。

なぜ財産権の分離が重要なのでしょうか?

外部アカウント(EOA)の設計にはさらに多くの問題が生じるため、

1.秘密鍵の保護が困難:秘密鍵の紛失(紛失、ハッキング、暗号解読)は、ユーザーがすべての資産を失うことを意味します。 2. 署名アルゴリズム少:原生プロトコル在验证交易上只能使用 ECDSA 签名和验签アルゴリズム。 3. 署名権限が高い:ネイティブのマルチサインはありません(マルチサインはスマートコントラクトを通じて協力できます)、単一署名で任意の操作を実行できます。 4. 取引手数料はETHのみで支払うことができ、一括取引はサポートされていません。 5. トランザクションのプライバシーリーク:1対1の取引は、アカウントホルダーのプライバシー情報を簡単に分析することができます。

控訴の制限により、一般ユーザーはETH坊を使用することが難しいです。

まず、ETHのブロックチェーン上のどんなアプリを使用するにも、ユーザーはETHを保有している必要があります(そしてETH価格の変動リスクを負わなければなりません)。

その次に、ユーザーは複雑な料金ロジック、Gas price、Gas limit、トランザクションブロッキング(Nonce順序)などの概念を扱う必要があり、これらはユーザーにとってあまりにも複雑です。

最後に、多くのブロックチェーンウォレットやアプリケーションが製品の最適化によってユーザーエクスペリエンスを向上させようと試みていますが、その実際の効果はほとんどありません。

従って、破局の道は、アカウントの抽象化を実現し、所有権(Owner)と署名権(Signer)を切り離すことであり、これにより上記の問題を一つずつ解決することができます。

実際には、歴史には多くの計画があり、最終的には2つのルートに集約されます

3、AAの提案の歴史を整理する

問題の解決策は、多くのEIP提案に見えますが、根本的には2つの核心的なアイデアがあります。したがって、過去に承認されなかったEIPは、現在の計画の問題を解決するために集約されました。01928374656574839201

3.1 第一条ルートは、EOAアドレスをCAアドレスに変更することです

2015年11月15日、EIP-101を中心に、Vitalikは契約をアカウントの新しい構造として提案しました。アドレスをコードとストレージスペースのみに変更し、手数料サポートをERC20で支払うよう変更し、予めコンパイルされた契約を使用してネイティブトークンをERC20に変換して残高を格納(差し引き承認などの機能を備える)し、トランザクションフィールドをto、startgas、data、codeのみに簡略化しました。

今では、まさに大躍進的な変革であり、基盤の設計を大幅に変更し、各アカウントアドレスが独自の「コード」ロジックを持つようになります(実際、これは現在EIP-7702が達成しようとしている効果です)。

他の機能も派生することができます、例えば

  1. 取引により多くの暗号化アルゴリズムを使用するようにし、各アドレス内のCodeで署名の検証認証方法を指定できるようにします。
  2. 量子攻撃に耐える特性を持っています。コードがアップグレード可能な特性を持っています。
  3. イーサリアムコインをERC20契約と同等の機能特性を持たせることで、コアの効果は代引き承認を持ち、ネイティブコインの損失を防ぐ必要があります。
  4. アカウントのカスタムスペースを拡張し、ソーシャルリカバリ、sbtサポート、秘密鍵の取り戻しなどに対応

進展しなかった理由は非常に単純です。明らかに、進歩が大きすぎて、現在のトランザクションハッシュの競合問題やセキュリティ上のリスクを考慮していないため、保留され続けていますが、それぞれの利点の理念は、後続のEIP4337およびEIP7702の主要な機能の1つになりました。

その後、一連のEIPがこのロジックを改善しようとしました

EIP-859:主链アカウント抽象–2018-01-30

Codeのデプロイメント問題を解決しようとすること、その主な役割は、もしトランザクションの相手先契約が展開されていない場合、トランザクションに付属するcodeパラメータで契約をウォレットデプロイすることです。また、PAYGASという新しいオペコードを提案し、ガスを支払うだけでなく、トランザクションのパラメータの検証部分と実行部分の区切り文字としても機能します。

当時は突然死に至ることはなかったが、これは現在のEIP7702の中核的な論理の1つとなり、EIP7702の各トランザクションは特殊なトランザクション構造を組み合わせ、ある程度のコードを添付することができ、それによりこのトランザクションでEOAアドレスに契約能力を付与する。

EIP-7702:設定 EOA アカウントコード 2024-05-07

これは後続の機構の核心であるEIPであり、VitalikはEIP-3074の代替案としてEIP-7702を発表しました(2024-05-07)。そのため、EIP-3074は廃止され、EIP-7702が今後のETH Prague/Electra(Pectra)ハードフォークに組み込まれることが確定されました。詳細については、次の章で説明します。

3.2 第二のルートは、EOAアドレスがCAアドレスをドライブするようにすることです

EIP-3074:AUTH および AUTHCALL オペコードの追加–2020-10-15

EVM に新しい OpCodes AUTH と AUTHCALL を追加し、EOA がこれらのオペコードを使用して他の契約を呼び出す際に、契約による EOA の代わりに認証できるようにします。

下の図と組み合わせると、簡単に言うと、EOAは署名されたメッセージ(トランザクション)を信頼できるコントラクト(Invokerと呼ばれる)に送信でき、InvokerコントラクトはAUTHおよびAUTHCALLオペコードを使用して、このEOAの代わりにトランザクションを送信できます。

EIP-4337: アカウントの抽象化をメモリープールを使用して実現する - 2021-09-29

要するに、彼はMEVに触発されて設計され、その核心価値は合意層プロトコルの変更を完全に回避できることです。

EIP4337は、新しいトランザクションオブジェクトであるUserOperationを提出しました。ユーザーはこのオブジェクトをメモリープールに送信し、マイナーがバンドルを作成して契約実行トランザクションをまとめて提供します。これは、基礎となるトランザクションとアカウントの操作を契約レベルで実行することを本質としています。

EIP-5189: エンドーサーによる抄録アカウントの操作—2022-06-29

これはEIP4337のロジックを最適化したものであり、悪意のあるBundlerによるDosブロック攻撃を防ぐために資金罰金の裏書きendorserメカニズムを構築することで対処しています。

3.3 AAをサポートするための他の提案

EIP-2718:新しいトランザクションタイプのパッケージエンベロープ–2020-06-13

これはすでに最終的な提案であり、それは新しい取引タイプを定義し、将来の追加取引タイプの封筒として機能します。

最終的な効果は、新しい取引タイプが導入されると、特定のエンコーディングを使用して、これがどのような取引であるかを区別し、それが後方互換性を持つだけでなく、前方互換性を持たなくてもよいようにすることです。最も一般的な例はEIP1559です。これにより取引手数料が区別され、新しい取引タイプのエンコーディングが使用され、最初のレガシー取引タイプに影響を与えることはありません。

EIP-3607: EOAアドレスは契約をデプロイできないようにする–2021-06-10

これはAAパス上の補完案です。契約のデプロイアドレスとEOAアドレスの衝突を防ぐためのものです。彼は契約の生成方法を制御し、システムが既にEOAアドレスであるアドレスにコードをデプロイすることを許可しません。このリスクは実際には非常に小さいです。なぜなら、イーサリアムアドレスは160ビットの長さがあり、指定された契約アドレスの秘密鍵を秘密鍵として衝突させる方法が存在するにもかかわらず、BTCの総計算力が投入されると、1年かかると推定されるためです。

3.4 アカウントの抽象的な発展の経緯を理解する方法は?

まず、CAに変換された価値を理解する必要があります

基本的にはEIP-4337の実際の効果であり、それを実現することができます

しかし、EIP-4337の中核的な欠点は人間の動機原則に反していることです。

彼は改善されたように見えますが、市場の発展に陥っています。多くのDappが互換性がなく、ユーザーはCAアドレスを使用するのを好みません。さらに、CAの使用にはより高い取引コストがかかります(通常の送金シーンでも手数料が2倍になります)。Dapp自体の互換性に過度に依存しすぎています。

そのため、ETHメインネットワーク上では、今まで広く普及していませんでした。

コストはユーザーにとって最も重要な基準であり、コストをドロップする必要があります。

しかし、本当にガスをドロップするには、イーサリアム自体をソフトフォークアップグレードして、GASの計算を変更するか、操作コードのGAS消費などのモジュールを変更する必要があります。しかし、ソフトフォークが必要なら、EIP-7702を直接考慮するのはなぜですか?

4 EIP-7702の完全な解析

4.1 EIP-7702とは何ですか

それは新しいトランザクションタイプによって区別され、EOAが一時的にスマートコントラクトの機能を持つことを許可することができ、それにより、ビジネス上のバッチトランザクション、ガスなしトランザクション、およびカスタム権限管理などをサポートすることができます。また、新しいEVM opCodeを導入する必要もありません(前方互換性に影響を与えます)。

彼はユーザーにスマートコントラクトをデプロイせずに、ほとんどのAAの機能を提供することができ、第三者がユーザーの代わりに取引を開始する能力を提供することさえできます。ユーザーは秘密鍵を提供する必要はなく、署名された承認情報のみが必要です。

4.2 データ構造

彼は新しい取引タイプ0x04を定義し、その取引タイプのTransactionPayloadは次の内容のRLPエンコードシリアライゼーション結果です

重要なのは、authorization_listオブジェクトが追加されたことです。これは、署名者が自分のEOAで実行したいコードを保存するためのものであり、ユーザーはトランザクションに署名すると同時に実行する契約コードにも署名します。これは二次元リストとして存在し、複数の操作情報を一括で保存し、一括で操作を実行できることを示しています。

4.3 トレードライフサイクル

4.3.1 検証フェーズ

トランザクションの実行の開始時に、各承認の [chain_id, address, nons, y_parity, r, s] タプルごとに_list:

  1. 署名r、sから署名者のアドレスをecrecoverで復元します(これはイーサリアム自体のメカニズムであるため、このEIPは署名アルゴリズムを変更しません)。authority = ecrecover(keccak(MAGIC || rlp([chain_id, address, ノンス])), y_parity, r, s](以前の署名からfromアドレスを解析するのと同様に、ここではこのリストに対する部分的な署名アドレスが得られます)
  2. チェーンIDの検証(分岐チェーンの再生防止).
  3. 権限署名者のコードが空であるか、委任されているかを確認します (トランザクションが有効な 7702 トランザクションであるかどうかを確認し、トランザクションは今後委任メカニズムに代わって実行されます)。
  4. authorityの署名者のノンス(重複した署名の防止)を検証します。
  5. authority署名者のコードを0xef0100 || addressに設定する(EIP3607の衝突回避ポリシーをバイパスするために使用)
  6. authorityサイナーのノンスを増やす(部分的な署名の再生を防ぐ)。
  7. authorityの署名者アカウントをアクセス済みアドレスリストに追加します(ホットアドレスに変換し、ドロップクエリに保存されたガス料金を取得します)

4.3.2 実行フェーズ

実行する契約のコードと操作命令はどこにありますか?

「新しい」バージョンはコードの展開方法にのみ変更が加えられました。

contract_codeではなく、authorization_listからaddressコードを取得し、そのコードをアカウントコードに設定するように変更されました。

したがって、承認コードの実行が必要な場合は、authorization_listのaddressフィールドで指定されたアドレスからコードをロードし、署名者のアカウントのコンテキストで実行します。

これは、ユーザーの契約コードが実際には、取引に直接含まれているのではなく、オンチェーンの特定のアドレスに保存されていることを意味します。

操作命令と関連するパラメータは、トランザクションのデータフィールドに格納されます。

4.4 EIP-7702の価値は何ですか?

彼はWeb3ウォレットのフルリンクに変化があり、それによってユーザーエクスペリエンスも大きく変わります。なぜなら、EOAによって発行された通常のトランザクションでも、複数のロジックを実行するための契約に似たものができるからです。CeFiのシナリオでは、トランザクションの識別に影響を与え、入出金手数料にも影響を与えます。

その登場により、以前の固定観念を打破しました。たとえば:

  1. アカウント残高が、そのアカウントからの取引によってのみ減少する不変量が破られました。
  2. トランザクションの実行が開始された後、EOAのノンスが1増加するイミュータブルな条件を破りました(同時に複数の増加も可能)。
  3. tx.originとmsg.senderの2つの比較防御ロジックが破られ、多くの過去の契約がリスクにさらされました。
  4. EOA本身ではイベントを発信できない現状を打破し、一部のオンチェーンイベントの識別と監視に注意が必要かもしれません。
  5. EOAアドレスがERC20、721、1155などの資産を受け入れることが必ず成功する状況を打破しました(プルバックのメカニズムにより、失敗する可能性もあります)

4.5 EIP-7702 と EIP-4337 の比較

1. EIP-7702の利点

エントリポイントモジュールを経由する必要がないため、ガスが少なくなり、オンチェーン操作が削減されます。

ユーザーマイグレーションコストが低くなり、事前にオンチェーン契約を展開する必要はありません

Eip4337と比較して、同様にコード委託実行があり、同様に2つの方法があります:

完全な委任

完全委託とは、特定のアドレスに対してある操作のすべての権限を委託することを指します。例えば、ユーザーはすべてのERC-20トークンの管理権限をスマートコントラクトアドレスに委託することができ、このスマートコントラクトがユーザーを代表して関連するすべての操作を実行できるようになります。

保護された委任

保護された委任とは、委任プロセス中に制限と保護措置を追加し、委任操作の安全性とコントロール可能性を確保することを指します。

例如,ユーザーは、一部のERC-20トークンの管理権限をスマートコントラクトに委任したり、いくつかの制限条件(例えば、1日の残高の1%を超える支出は禁止)を設定したりすることができます。

2. EIP-7702のデメリット

彼のコアの欠点はソフトフォークのアップグレードに属し、コンセンサスを推進する必要があり、大きな変更が必要で、オンチェーンエコシステムに広範な影響を与えます。十四君は以下の課題を初步的に評価しましたが、課題は市場の機会でもあります:

1.自由度が極めて高く、監査が難しく、ユーザーはセキュリティ保護の保護を受けるために、より信頼性の高いウォレットが必要になります。 2. 元のアーキテクチャの変更が大きすぎるため、異なる取引タイプで区別されていても、多くの基盤、特に変更できないスマートコントラクトは直接適応できません。 3. EOAアドレスに契約能力を提供しますが、対応するストレージスペースを保持することはできません。 4. 個別取引のコストはわずかに上昇する可能性があります。Calldataの部分が大幅に増加するため、推定される呼び出し総コストは16(ガス)* 15(バイト)= 240(ガス)のcalldataコストに加えて、EIP-3860のコスト2 * 15 = 30、およそランタイムコスト150が追加されます。したがって、何もしないでアカウントを準備するだけでも、約500のガスが追加されることになります。 5.「受信者が受信機能のないコードに署名した場合、送信者は資産の送信を試みる際にDoS攻撃に直面する可能性があります。」ケースを参照してください。この問題は実際には、EOA Aが署名すべきでないものに署名したことに起因しています - 誤った実装(receive()がない)が設定された再実行可能なファイルです。 6. オンチェーン 冲提ロジック可能不一致,例えば、ERC-20 トークンを転送する際に、受信アカウントにコードがある場合、トークン契約はonERC20Receivedを受信アカウントに呼び出します。onERC20Receivedが値を戻さないか、誤った値を戻した場合、トークン転送が元に戻されます。 7. また、EOAがイベントを送信できる場合、何か問題が発生する可能性があります。一部のインフラストラクチャは注意が必要です。

これらはまだ、現在のEIP7702提案内容と関連する公式フォーラムの議論に基づいて十四君がまとめたいくつかの欠点にすぎません。最終的な実装コードに基づいて完全に分析する必要があります。01928374656574839201

以下を参考にしてください:

5、全文のまとめ

この文章は見かけほど大きくはなく、実際のところ、文字数はわずか6k余りです。過去のEIP解説に関連する多くの内容は、文中のリンクで拡張できますので、ここでは追求しません。

現時点では、アカウントの抽象化は確かに第6モジュールに配置するしかないようです。つまり、すべて修復すること、つまり最後に実施することになります。今、EIP7702の進捗が大幅に加速しており、それによってシステムのセキュリティに対する挑戦が増大しています。最終的には実現されるでしょう。何しろETHの合併、コンセンサスアルゴリズムの変更など、このような画期的なイベントが起こり得るのですから、新しい取引タイプについてはなおさらです。

しかし、今回は内容が非常に多く、多くのオンチェーンの不可能な非公式なルールを破り、ほとんどのDappのアプリケーションロジックも破りましたが、彼は最も重要なポイントでしっかりと立ち上がりました、それはユーザーのコストが低くなったということです!EIP4337に比べてほぼ倍増した取引コストと比較してください。

ユーザー自体はEOAアドレスであり、必要な時にのみCAロジックを駆動して使用するため、所有コストが低くなります。チェーン上のCAアイデンティティを最初に変換してから操作する必要はありませんので、ユーザーは登録する必要がありません。

ユーザーはEOAを使用して複数のトランザクションを並行して行うことができ、例えば許可された差し引きと実行された差し引きを組み合わせることができます。これにより、ユーザーの取引コストは低くなります。Dappにとっては、特にオンチェーンの企業レベルの管理が必要なプロジェクト(例:取引所など)にとっては、革新的な最適化です。一旦バッチ処理の統合が実現すれば、取引所のコストは瞬時に半分以上削減することができ、最終的にはユーザーに恩恵をもたらすことができます。

だから、彼はたくさん変わったけど、コストの観点から見れば、すべてのDappがこれを研究して適応する価値がある。なぜなら、今回はユーザーが必ずEIP7702の側に立つことになるからだ。

ETH-1.44%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 1
  • リポスト
  • 共有
コメント
0/400
ATurnTheTidevip
· 2024-08-24 14:21
100倍のコイン📈を待ち伏せする
原文表示返信0
  • ピン