OpenSea Proの共同創設者であるVasaによる。 翻訳:ゴールデンファイナンスシャオゾウ
この記事では、今日のアカウントの抽象化に至ったさまざまなEIPについて簡単に見ていきます。
**1. なぜアカウント抽象化(AA)が必要なのですか? **
人々は、「次の10億人のユーザーをWeb3にどのように連れてくるか」などの質問を投げかけるのが好きです。 「克服すべきハードルはたくさんありますが、その中で最も重要なのはユーザーエクスペリエンスです。
次の図は、新しいユーザーの一般的なユーザー エクスペリエンスです。 また、シードフレーズを紛失した場合、自分の資金を取り戻す方法がないことに注意してください。 これは、新規ユーザーにとって大きなハードルです。
ユーザーエクスペリエンスを向上させるためにできることをいくつか紹介します。 私たちはできます:
-ニーモニックフレーズなしでウォレットを作成します。
-ETHを保管し、ETHでガス料金を支払う必要がないウォレットを使用します。
-ソーシャルリカバリーを使用してウォレットを取得します。
2、アカウント抽象型
アカウントには、外部アカウント (EOA) と契約アカウントの 2 種類があります。 EOAは秘密鍵によって制御され、契約アカウントは契約コードによって制御されます。
EOAは、他のEOAまたは契約アカウントへのトランザクションを開始し、コードを実行できます。 契約口座は、独自のコードを実行することができる他の契約口座に取引を送信することもできます。
トランザクションがネットワークに送信されると、検証と実行の2つのステップを経ます。 トランザクションロジックの実行は任意ですが、検証部分は固定されています。
検証部分は、EOAが使用しなければならない単一の固定アルゴリズム、つまりECDSA署名検証によって行われます。 しかし、なぜトランザクションの有効性を検証するために固定方法を使用するのでしょうか。 量子コンピューティングのためにECDSA署名検証が将来信頼できなくなった場合はどうなりますか?
検証部分を開いたままにしておくと、非常に複雑な検証アルゴリズムを使用してトランザクションを作成でき、マイナー/バリデーターはトランザクションをブロックに含めることができるかどうかを確認するために多くのリソースを費やす必要があります。
ここで、マイナーはトランザクションの実行と包含に対してのみ支払われ、検証に対しては支払われないことに注意してください。 したがって、多くのリソースを費やした後、鉱夫がトランザクションを追加できないことに気付いた場合、リソースを浪費し、それに対して何も支払われません。 したがって、これを使用してネットワーク上でDDoS攻撃を実行できます。 そのため、イーサリアムは固定検証アルゴリズムから始めました。
マルチシグウォレットは、しきい値を持つ多くの所有者との契約です。 トランザクションを送信する場合は、トランザクションを送信する前に、すべての所有者から署名を取得する必要があります。
これは、秘密鍵を紛失した場合にウォレットを回復するのを手伝ってくれる多くの友人を持つことができるソーシャルリカバリーなどの機能をサポートします。 イーサリアムの初期から、マルチシグウォレットが提供できる価値は明らかでした。 そのため、当時のイーサリアム開発チームは、イーサリアムユーザーにマルチシグウォレットを使用してもらいたいと考えていました。 しかし、これは起こりませんでした。
イーサリアム開発チームは、マルチシグウォレットを使用するユーザーを想定していたため、マルチシグウォレットがすべてのETH転送を記録することを期待していたため、ETH転送の自動ログを追加しませんでした。 当時の取引所は、ETH転送トランザクションをログに記録するのではなく、解析する必要がありました。
誰かがETH転送ログでマルチシグウォレットを使用しようとすると、取引所はログを解析しないため、取引所は認識できません。 したがって、この小さな仮定は、最終的にマルチシグウォレットの採用をより困難にします。
EIP 86 および 1014: アカウントの抽象化の最初のステップ**
EIP-86は、「転送コントラクト」と呼ばれるスマートコントラクトウォレットの概念を導入することを目的としています。 これらのコントラクトは、特定の形式に準拠する必要がある “エントリ ポイント” アドレスからのトランザクションのみを受信するように設計されています。
さて、スマートコントラクトウォレットを作成するには、ガス料金を支払うために事前にETHを持っている必要があります。 CEXにアクセスしてETHを取得することはできますが、スマートコントラクトウォレットがまだ作成されていないため、ETHをウォレットに送信できません。
スマートコントラクトが作成される前にコントラクトアドレスを正確に知ることができれば、そのアドレスにETHを送信し、そのアドレスにETHを使用してスマートコントラクトウォレットを作成できます。
それがEIP-1014が導入するものです。 スマートコントラクトを作成する前にコントラクトアドレスを決定できるCREATE2オペコードが導入されています。 これは、アカウントの抽象化に向けた最初のステップです。
元のEIP-86は、プロトコルの変更にはノード開発チーム間のコラボレーションが必要であり、広範な精査が必要だったため、プロトコルに大幅な変更が必要だったため、実装されませんでした。 EIP-1014はコンスタンティノープルハードフォークに実装されました。
コミュニティ開発:グノーシスセーフ、アージェントウォレット、ガソリンスタンドネットワーク**
EIPの研究について議論する際に、コミュニティはすでに独自のソリューションの開発に着手しています。
これらの中で最も注目に値するのは、2018年のGnosis Safeのリリースでした。 Safeは、ユーザーがマルチシグウォレットを作成できるスマートコントラクトウォレットであり、ユーザーは複数の操作を1つのトランザクションにバッチ処理することもできます。 また、ユーザーはERC20トークンを使用してガス料金を支払うことができます。
もう一つの注目すべき点は、2019年のArgentウォレットのリリースです。 Argentスマートウォレットは、ユーザーがマルチシグウォレットを作成することをサポートし、ユーザーがERC20トークンを使用してガス料金を支払うこともできます。 また、ユーザーはソーシャルリカバリを使用してウォレットを取得することもできます。
2019年にリリースされたガソリンスタンドネットワーク(GSN)は、ユーザーがERC20トークンを使用してガス料金を支払うことを可能にする分散型ネットワークです。 GSNは、任意のスマートコントラクトウォレットで使用できます。
EIP 2938 – 大きな飛躍
2018年以降、イーサリアムチームはPoS(プルーフオブステーク)への移行に注意を向けましたが、これにより、研究チームやノード開発チームによるEIPの評価と実装に不注意に重点が置かれなくなりました。
このシフトは、EIP-1014が実装されてから2年後の2020年にEIP-2938への道を開いた。
提案の背後にある中心的なアイデアは、特定のタイプのトランザクションを特別に受信するように設計されたスマートコントラクトウォレットの導入であり、トランザクションのガスキャップを決定し、任意の検証方法を開発するようにプログラムできます。
この提案では、トランザクションを処理するための2つの新しいオペコードが導入されており、前述のように、これらのコアアップデートを含めることは複雑なプロセスです。
さらに、リプレイ保護がどのように実装されているか、およびノードがこれらの新しいタイプのトランザクションの有効性をチェックする方法についての未解決の質問があります。 この提案はあまり注目されなかったが、次の提案(EIP-3074)への道を開いた。
EIP-3074 – 汎用性の高いソリューション**
この提案では、AUTH と AUTHCALL という 2 つの新しいオペコードが導入されています。 この提案との違いは、契約に制御を委任するための外部アカウント (EOA) をサポートしていることです。 これらのオペコードは、EOAの機能を大幅に強化する可能性のある「呼び出し元」コントラクトに対して指定されています。
この契約は完全に任意のトランザクション構造を開始し、マルチシグネチャ、バッチおよびエイド購入、キーリカバリ、より親しみやすいCeFiデポジットなどのソリューションを簡単に実装できるようにします。 そのオープンな性質により、この提案は、幅広いユースケースに対応できる汎用性の高いソリューションとして浮上しました。
一方、提案の中立的な立場は、いくつかのセキュリティ上の課題も提起します。 さらなる議論は、関連するリスクを軽減するためのより意見のあるAUTHCALLアプローチを提案します。 この議論により、研究者はより最適化されたソリューションに到達し、EIP-4337が生まれました。
EIP-4337 – コンセンサスレイヤープロトコルを変更せずにイーサリアムアカウントを抽象化**
EIP-4337は、コンセンサスレイヤープロトコルを変更せずにアカウントの抽象化をイーサリアムに持ち込むメカニズムを提案しています。 このEIPでは、ユーザーはイーサリアムネットワークと異なる方法で対話します。 トランザクションを送信する代わりに、ユーザーは UserOperation オブジェクトを別のメモリ プールに送信します。 送信者は、ユーザーのアクションを開始するアカウント コントラクトです。 バンドラーはこれらの操作を収集し、指定された EntryPoint コントラクトで handleOps 呼び出しをトリガーしてパッケージ化された操作を実行するトランザクションにパッケージ化します。 Paymasterは取引を後援する事業体であり、その詳細は手数料処理のためにUserOperationに含まれています。
アグリゲーターは集約された署名を検証し、セキュリティと効率を向上させます。 バンドラーまたはクライアントのホワイトリストは、エントリポイントとアグリゲーターコントラクトをサポートし、インタラクションを制御し、コンセンサスレイヤーを変更することなくアカウント抽象化の目標と一致して、イーサリアムネットワーク上でのユーザーアクションの適切な実行を保証します。
このプロセスを通じて展開されたスマートコントラクトウォレットは、ランダムな値と署名の検証を自律的に管理し、広範な柔軟性を提供します。 この設計は、マルチシグおよびパッケージ化されたトランザクション、社会的回復を処理し、ERC20トークンを使用して料金を支払うことができるスマートコントラクトウォレットの作成に役立ちます。
EIP-4337で提案されたような何らかの形のアカウント抽象化は、イーサリアムの中期的な将来に実装され、最初は新しいL2ソリューションに登場し、最終的にはイーサリアムL1に参入し、イーサリアムとのユーザーインタラクションの範囲を拡大する可能性があります。
10、L2 - ニューフロンティア
コアプロトコルの更新は、アカウントの抽象化に関連するEIPを導入する際の大きなハードルです。 コア開発者は、長い間最優先事項であったETH2.0ロードマップで忙しくしています。
しかし、L2はどうですか? 技術的負債を抱えるイーサリアムL1とは異なり、最近のL2チェーンは最初からアカウントの抽象化を統合するアーキテクチャを備えています。
たとえば、StarkNetは、一意のアカウント抽象化を作成するZKロールアップです。 さらに、L1スマートコントラクトウォレットで知られるArgentは、StarkNetでArgentXを立ち上げ、EIP-4337の影響を強く受けたカスタムアカウント抽象化実装を埋め込みました。 これらのイニシアチブは、イーサリアムブロックチェーンでのアカウント抽象化の重要性と適用性を強調しています。
23.65K 人気度
49.04K 人気度
15.99K 人気度
11.3K 人気度
99.66K 人気度
アカウント抽象化の背後にあるEIPインベントリ
OpenSea Proの共同創設者であるVasaによる。 翻訳:ゴールデンファイナンスシャオゾウ
この記事では、今日のアカウントの抽象化に至ったさまざまなEIPについて簡単に見ていきます。
**1. なぜアカウント抽象化(AA)が必要なのですか? **
人々は、「次の10億人のユーザーをWeb3にどのように連れてくるか」などの質問を投げかけるのが好きです。 「克服すべきハードルはたくさんありますが、その中で最も重要なのはユーザーエクスペリエンスです。
次の図は、新しいユーザーの一般的なユーザー エクスペリエンスです。 また、シードフレーズを紛失した場合、自分の資金を取り戻す方法がないことに注意してください。 これは、新規ユーザーにとって大きなハードルです。
ユーザーエクスペリエンスを向上させるためにできることをいくつか紹介します。 私たちはできます:
-ニーモニックフレーズなしでウォレットを作成します。
-ETHを保管し、ETHでガス料金を支払う必要がないウォレットを使用します。
-ソーシャルリカバリーを使用してウォレットを取得します。
2、アカウント抽象型
アカウントには、外部アカウント (EOA) と契約アカウントの 2 種類があります。 EOAは秘密鍵によって制御され、契約アカウントは契約コードによって制御されます。
EOAは、他のEOAまたは契約アカウントへのトランザクションを開始し、コードを実行できます。 契約口座は、独自のコードを実行することができる他の契約口座に取引を送信することもできます。
トランザクションがネットワークに送信されると、検証と実行の2つのステップを経ます。 トランザクションロジックの実行は任意ですが、検証部分は固定されています。
検証部分は、EOAが使用しなければならない単一の固定アルゴリズム、つまりECDSA署名検証によって行われます。 しかし、なぜトランザクションの有効性を検証するために固定方法を使用するのでしょうか。 量子コンピューティングのためにECDSA署名検証が将来信頼できなくなった場合はどうなりますか?
検証部分を開いたままにしておくと、非常に複雑な検証アルゴリズムを使用してトランザクションを作成でき、マイナー/バリデーターはトランザクションをブロックに含めることができるかどうかを確認するために多くのリソースを費やす必要があります。
ここで、マイナーはトランザクションの実行と包含に対してのみ支払われ、検証に対しては支払われないことに注意してください。 したがって、多くのリソースを費やした後、鉱夫がトランザクションを追加できないことに気付いた場合、リソースを浪費し、それに対して何も支払われません。 したがって、これを使用してネットワーク上でDDoS攻撃を実行できます。 そのため、イーサリアムは固定検証アルゴリズムから始めました。
マルチシグウォレットは、しきい値を持つ多くの所有者との契約です。 トランザクションを送信する場合は、トランザクションを送信する前に、すべての所有者から署名を取得する必要があります。
これは、秘密鍵を紛失した場合にウォレットを回復するのを手伝ってくれる多くの友人を持つことができるソーシャルリカバリーなどの機能をサポートします。 イーサリアムの初期から、マルチシグウォレットが提供できる価値は明らかでした。 そのため、当時のイーサリアム開発チームは、イーサリアムユーザーにマルチシグウォレットを使用してもらいたいと考えていました。 しかし、これは起こりませんでした。
イーサリアム開発チームは、マルチシグウォレットを使用するユーザーを想定していたため、マルチシグウォレットがすべてのETH転送を記録することを期待していたため、ETH転送の自動ログを追加しませんでした。 当時の取引所は、ETH転送トランザクションをログに記録するのではなく、解析する必要がありました。
誰かがETH転送ログでマルチシグウォレットを使用しようとすると、取引所はログを解析しないため、取引所は認識できません。 したがって、この小さな仮定は、最終的にマルチシグウォレットの採用をより困難にします。
EIP 86 および 1014: アカウントの抽象化の最初のステップ**
EIP-86は、「転送コントラクト」と呼ばれるスマートコントラクトウォレットの概念を導入することを目的としています。 これらのコントラクトは、特定の形式に準拠する必要がある “エントリ ポイント” アドレスからのトランザクションのみを受信するように設計されています。
さて、スマートコントラクトウォレットを作成するには、ガス料金を支払うために事前にETHを持っている必要があります。 CEXにアクセスしてETHを取得することはできますが、スマートコントラクトウォレットがまだ作成されていないため、ETHをウォレットに送信できません。
スマートコントラクトが作成される前にコントラクトアドレスを正確に知ることができれば、そのアドレスにETHを送信し、そのアドレスにETHを使用してスマートコントラクトウォレットを作成できます。
それがEIP-1014が導入するものです。 スマートコントラクトを作成する前にコントラクトアドレスを決定できるCREATE2オペコードが導入されています。 これは、アカウントの抽象化に向けた最初のステップです。
元のEIP-86は、プロトコルの変更にはノード開発チーム間のコラボレーションが必要であり、広範な精査が必要だったため、プロトコルに大幅な変更が必要だったため、実装されませんでした。 EIP-1014はコンスタンティノープルハードフォークに実装されました。
コミュニティ開発:グノーシスセーフ、アージェントウォレット、ガソリンスタンドネットワーク**
EIPの研究について議論する際に、コミュニティはすでに独自のソリューションの開発に着手しています。
これらの中で最も注目に値するのは、2018年のGnosis Safeのリリースでした。 Safeは、ユーザーがマルチシグウォレットを作成できるスマートコントラクトウォレットであり、ユーザーは複数の操作を1つのトランザクションにバッチ処理することもできます。 また、ユーザーはERC20トークンを使用してガス料金を支払うことができます。
もう一つの注目すべき点は、2019年のArgentウォレットのリリースです。 Argentスマートウォレットは、ユーザーがマルチシグウォレットを作成することをサポートし、ユーザーがERC20トークンを使用してガス料金を支払うこともできます。 また、ユーザーはソーシャルリカバリを使用してウォレットを取得することもできます。
2019年にリリースされたガソリンスタンドネットワーク(GSN)は、ユーザーがERC20トークンを使用してガス料金を支払うことを可能にする分散型ネットワークです。 GSNは、任意のスマートコントラクトウォレットで使用できます。
EIP 2938 – 大きな飛躍
2018年以降、イーサリアムチームはPoS(プルーフオブステーク)への移行に注意を向けましたが、これにより、研究チームやノード開発チームによるEIPの評価と実装に不注意に重点が置かれなくなりました。
このシフトは、EIP-1014が実装されてから2年後の2020年にEIP-2938への道を開いた。
提案の背後にある中心的なアイデアは、特定のタイプのトランザクションを特別に受信するように設計されたスマートコントラクトウォレットの導入であり、トランザクションのガスキャップを決定し、任意の検証方法を開発するようにプログラムできます。
この提案では、トランザクションを処理するための2つの新しいオペコードが導入されており、前述のように、これらのコアアップデートを含めることは複雑なプロセスです。
さらに、リプレイ保護がどのように実装されているか、およびノードがこれらの新しいタイプのトランザクションの有効性をチェックする方法についての未解決の質問があります。 この提案はあまり注目されなかったが、次の提案(EIP-3074)への道を開いた。
EIP-3074 – 汎用性の高いソリューション**
この提案では、AUTH と AUTHCALL という 2 つの新しいオペコードが導入されています。 この提案との違いは、契約に制御を委任するための外部アカウント (EOA) をサポートしていることです。 これらのオペコードは、EOAの機能を大幅に強化する可能性のある「呼び出し元」コントラクトに対して指定されています。
この契約は完全に任意のトランザクション構造を開始し、マルチシグネチャ、バッチおよびエイド購入、キーリカバリ、より親しみやすいCeFiデポジットなどのソリューションを簡単に実装できるようにします。 そのオープンな性質により、この提案は、幅広いユースケースに対応できる汎用性の高いソリューションとして浮上しました。
一方、提案の中立的な立場は、いくつかのセキュリティ上の課題も提起します。 さらなる議論は、関連するリスクを軽減するためのより意見のあるAUTHCALLアプローチを提案します。 この議論により、研究者はより最適化されたソリューションに到達し、EIP-4337が生まれました。
EIP-4337 – コンセンサスレイヤープロトコルを変更せずにイーサリアムアカウントを抽象化**
EIP-4337は、コンセンサスレイヤープロトコルを変更せずにアカウントの抽象化をイーサリアムに持ち込むメカニズムを提案しています。 このEIPでは、ユーザーはイーサリアムネットワークと異なる方法で対話します。 トランザクションを送信する代わりに、ユーザーは UserOperation オブジェクトを別のメモリ プールに送信します。 送信者は、ユーザーのアクションを開始するアカウント コントラクトです。 バンドラーはこれらの操作を収集し、指定された EntryPoint コントラクトで handleOps 呼び出しをトリガーしてパッケージ化された操作を実行するトランザクションにパッケージ化します。 Paymasterは取引を後援する事業体であり、その詳細は手数料処理のためにUserOperationに含まれています。
アグリゲーターは集約された署名を検証し、セキュリティと効率を向上させます。 バンドラーまたはクライアントのホワイトリストは、エントリポイントとアグリゲーターコントラクトをサポートし、インタラクションを制御し、コンセンサスレイヤーを変更することなくアカウント抽象化の目標と一致して、イーサリアムネットワーク上でのユーザーアクションの適切な実行を保証します。
このプロセスを通じて展開されたスマートコントラクトウォレットは、ランダムな値と署名の検証を自律的に管理し、広範な柔軟性を提供します。 この設計は、マルチシグおよびパッケージ化されたトランザクション、社会的回復を処理し、ERC20トークンを使用して料金を支払うことができるスマートコントラクトウォレットの作成に役立ちます。
EIP-4337で提案されたような何らかの形のアカウント抽象化は、イーサリアムの中期的な将来に実装され、最初は新しいL2ソリューションに登場し、最終的にはイーサリアムL1に参入し、イーサリアムとのユーザーインタラクションの範囲を拡大する可能性があります。
10、L2 - ニューフロンティア
コアプロトコルの更新は、アカウントの抽象化に関連するEIPを導入する際の大きなハードルです。 コア開発者は、長い間最優先事項であったETH2.0ロードマップで忙しくしています。
しかし、L2はどうですか? 技術的負債を抱えるイーサリアムL1とは異なり、最近のL2チェーンは最初からアカウントの抽象化を統合するアーキテクチャを備えています。
たとえば、StarkNetは、一意のアカウント抽象化を作成するZKロールアップです。 さらに、L1スマートコントラクトウォレットで知られるArgentは、StarkNetでArgentXを立ち上げ、EIP-4337の影響を強く受けたカスタムアカウント抽象化実装を埋め込みました。 これらのイニシアチブは、イーサリアムブロックチェーンでのアカウント抽象化の重要性と適用性を強調しています。