外部所有口座(EOA)からスマートコントラクト口座(SCA)への移行は勢いを増しており、 ヴィタリック自身を含む多くの愛好家に受け入れられています。 このような盛り上がりにもかかわらず、SCAの採用はEOAほど普及していません。 その中でも鍵となるのは、弱気相場がもたらす課題、移民の懸念、契約問題、ガスオーバーヘッド、そして最も重要なのはエンジニアリング上の困難である。
Account Abstractions (AA) の最も大きな利点は、コードを使用して機能をカスタマイズできることです。 しかし、エンジニアリング上の大きな課題の1つは、AA機能の相互運用性の欠如であり、断片化が統合を妨げ、ベンダーロックインへの扉を開きます。 さらに、セキュリティを確保しながら、同時に機能のアップグレードと構成を行うことは複雑になる可能性があります。
より広範なAAムーブメントのサブセットとして、この革新的なアプローチにより、スマートアカウントをカスタム機能から分離することができます。 目標は、多様な機能を備えた安全でシームレスに統合されたウォレットを開発するためのモジュール構造を作成することです。 将来的には、スマートコントラクトアカウント用の無料の「アプリストア」を実現し、ウォレットとdAppsを機能の構築から解放し、ユーザーエクスペリエンスに焦点を当てることができます。
この記事を読んだ後、読者は次の洞察を得ることができます。
SCAランドスケープ
従来のEOAでは、シードフレーズ、ガス、クロスチェーン、複数のトランザクションなど、多くの課題が生じます。 複雑さを導入するつもりはありませんでしたが、実際、ブロックチェーンは大衆にとって簡単なゲームではありません。
Account Abstractionは、スマートコントラクトアカウントを活用して、プログラム可能な検証と実行を可能にし、ユーザーは一連のトランザクションをそれぞれに署名してブロードキャストするのではなく、一度に承認し、さらに多くの機能を実装できます。 ユーザーエクスペリエンスにメリットをもたらします(例: ガスの抽象化、およびセッションキー)、コスト(例: バッチ処理トランザクション)、およびセキュリティ(例: 社会回復、マルチシグ)。 現在、アカウントの抽象化を実現するには、次の 2 つの方法があります。
👉 AAやERC4337に馴染みのない方は、 SevenXの過去の調査をこちらでご確認ください。
Account Abstraction(AA)のトピックは2015年から議論されており、今年のERC4337によってさらに脚光を浴びました。 しかし、デプロイされたスマートコントラクトアカウントの数は、EOAと比較するとまだ見劣りします。
このジレンマを掘り下げてみましょう。
この記事では、#5の問題であるエンジニアリングの難しさについて掘り下げます。
🤔️
エンジニアリングの難しさをさらに詳しく説明すると、次のようになります。
これらの海域をナビゲートするには、安全で効率的なアップグレードを保証するアップグレード可能な契約、全体的な開発効率を高めるための再利用可能なコア、および契約アカウントが異なるフロントエンド間でスムーズに移行できるようにするための標準化されたインターフェイスが必要です。
これらの用語は、Building a Modular Account Abstraction Architecture (Modular AA) という単一の概念に収束します。
モジュラーAAは、スマートアカウントをモジュール化してユーザー向けにカスタマイズし、開発者が最小限の制限で機能をシームレスに強化できるようにすることを想定している、より広範なAAムーブメントの中のニッチです。
しかし、どの業界でも、新しい標準を設定し、推進することは大きな課題です。 初期段階では、全員がメインのソリューションに落ち着く前に、さまざまなソリューションを目撃する可能性があります。 しかし、4337 SDK、ウォレット開発者、インフラストラクチャチーム、プロトコル設計者など、アカウントの抽象化に取り組んでいる人たちが一丸となってプロセスをスピードアップしているのを見るのは心強いことです。
アカウントは、関数を実現するためにモジュールをどのように呼び出しますか
外部呼び出しと委任呼び出し:
delegateCallについて
delegatecall は call と似ていますが、ターゲット コントラクトを独自のコンテキストで実行する代わりに、呼び出し元のコントラクトの現在の状態のコンテキストで実行します。 つまり、ターゲット コントラクトによって行われた状態の変更は、呼び出し元のコントラクトのストレージに対して行われます。
プロキシ コントラクトと delegateCall
コンポーザブルでアップグレード可能な構造を実現するには、「プロキシコントラクト」と呼ばれる基本的な知識が必要です。
安全なアーキテクチャ
安全とは:
Safe は、実証済みのセキュリティと柔軟性を提供するように設計された主要なモジュラースマートアカウントインフラストラクチャであり、開発者が多様なアプリケーションやウォレットを作成できるようにします。 注目すべきは、多くのチームがSafeをベースに構築したり、Safeに触発されたりしていることです。 Biconomyは、ネイティブの4337と1/1マルチシグでSafeを拡張し、 アカウント を立ち上げました。 164,000件以上の契約が展開され、307億を超える価値を秘めているSafeは、間違いなく宇宙のプレミアです。
What's Safeの構造
Safeを採用するとどうなるか:
ERC2535 ダイヤモンドアーキテクチャ
ERC2535ダイヤモンドプロキシについて:
このERC2535は、展開後にアップグレード/拡張でき、実質的にサイズ制限のないモジュール式スマートコントラクトシステムであるダイヤモンドを標準化しています。これまで、ZerodevのKernelやSoul Walletの実験など、多くのチームがそれに触発されてきました。
ダイヤモンド構造とは:
ダイヤモンドを採用するとどうなるか:
SafeアーキテクチャとDiamondアーキテクチャの間には類似点がたくさんあり、どちらもプロキシコントラクトをコアに頼り、アップグレード性とモジュール性を実現するためにロジックコントラクトを参照しています。
それにもかかわらず、主な違いは論理コントラクトの処理にあります。 詳しく見てみましょう。
「セーフスマートアカウントアプローチ」と「ダイヤモンドアプローチ」は、プロキシとモジュールを含む異なる構造の例として機能します。 柔軟性とセキュリティのバランスをどう取るかが重要であり、将来的にはこれら2つの手法が互いに補完し合う可能性があります。
モジュールを呼び出す順序は何ですか
Alchemy チームが提案し、Diamondにインスパイアされ、ERC-4337専用に調整された標準である ERC6900 を紹介して、議論を広げましょう。共通のインターフェースを提供することで、スマートアカウントのモジュール性の課題に対処し、プラグインとウォレット開発者間の取り組みを調整します。
AAのトランザクションプロセスには、検証、実行、フックの3つの主要なプロセスがあります。 これらの手順はすべて、前に説明したように、プロキシ アカウントを使用してモジュールを呼び出すことで管理できます。 プロジェクトが異なれば名前も異なりますが、基本的なロジックは似ていることを把握することが重要です。
異なる設計の関数名
ERC6900
異なるロジックに基づいてモジュールを分離することが重要です。 標準化されたアプローチは、スマートコントラクトアカウントの検証、実行、およびフック関数の記述方法を指示する必要があります。 安全かERC6900かにかかわらず、標準化は、特定の実装またはエコシステムに固有の独自の開発作業の必要性を減らし、ベンダーロックインを防ぐのに役立ちます。
オープンな方法でモジュールを見つけて検証する方法
勢いを増しているソリューションには、ユーザーが検証可能なモジュールを発見できる場所の作成が含まれており、これは「レジストリ」と呼ぶことができます。 このレジストリは「App Store」のように機能し、シンプルでありながら繁栄するモジュラーマーケットプレイスを育成することを目的としています。
セーフ{Core} プロトコル
Safe{Core} Protocol は、スマートコントラクトアカウント用のオープンソースで相互運用可能なプロトコルであり、明確に定義された標準とルールを通じて堅牢なセキュリティを維持しながら、さまざまなベンダーや開発者のアクセシビリティを強化するように設計されています。
ラインストーンデザイン
このプロセスは次のように展開されます。
このスキーマはまだ初期段階にありますが、分散型で協調的な方法で標準を確立する可能性を秘めています。 レジストリを使用すると、開発者はモジュールを登録でき、監査人はセキュリティを検証し、ウォレットは統合され、ユーザーはモジュールを簡単に見つけて構成証明情報を検証できます。 将来的には、次のような用途が考えられます。
「モジュールレジストリ」の概念は、プラグインとモジュールの開発者に収益化の道を開きます。 これにより、「モジュールマーケットプレイス」への道がさらに開かれる可能性があります。 Safeのチームが監督する側面もあれば、分散型マーケットプレイスとして現れ、すべての人に貢献と透明性のある監査記録を招く側面もあります。 これを組み込むことで、ベンダーロックインを回避し、より幅広いユーザーを惹きつける強化されたユーザーエクスペリエンスを追加することで、EVMの拡大をサポートすることができます。
これらのアプローチは単一のモジュールの安全性を保証しますが、スマートコントラクトアカウントのより広範なセキュリティは絶対確実ではありません。 正規のモジュールとストレージの競合がないことを証明することを組み合わせることは困難な場合があり、このような懸念に対処する上でウォレットやAAインフラストラクチャの重要性が浮き彫りになっています。
モジュール式のスマートコントラクトアカウントスタックを利用することで、ウォレットプロバイダーとdAppsは、技術的なメンテナンスの複雑さから解放されます。 一方、外部モジュール開発者には、個々のニーズに合わせた専門的なサービスを提供する機会があります。 ただし、対処すべき課題には、柔軟性とセキュリティのバランスを取ること、モジュール標準を前進させること、ユーザーがスマートアカウントを簡単にアップグレードおよび変更できるようにする標準化されたインターフェイスの実装などがあります。
しかし、モジュール式のスマートコントラクトアカウント(SCA)は、導入のパズルの1つのピースにすぎません。 SCAの可能性を完全に実現するには、堅牢なバンドラーインフラストラクチャとピアツーピアmempool、より費用対効果が高く実現可能なSCA署名メカニズム、クロスチェーンSCAの同期と管理、ユーザーフレンドリーなインターフェースの開発など、レイヤー2ソリューションから追加のプロトコル層サポートが必要です。
将来を見据えると、SCAの注文フローが十分に収益性を持つようになったら、従来のMiner Extractable Value(MEV)メカニズムがバンドラーを構築し、価値を獲得するためにどのように分野に参入するのか、という興味深い疑問が湧いてきます。 インフラストラクチャが成熟したとき、Account Abstractions(AA)は「インテントベース」トランザクションの基盤レイヤーとしてどのように機能できるでしょうか? 乞うご期待。風景は刻々と進化しています。
外部所有口座(EOA)からスマートコントラクト口座(SCA)への移行は勢いを増しており、 ヴィタリック自身を含む多くの愛好家に受け入れられています。 このような盛り上がりにもかかわらず、SCAの採用はEOAほど普及していません。 その中でも鍵となるのは、弱気相場がもたらす課題、移民の懸念、契約問題、ガスオーバーヘッド、そして最も重要なのはエンジニアリング上の困難である。
Account Abstractions (AA) の最も大きな利点は、コードを使用して機能をカスタマイズできることです。 しかし、エンジニアリング上の大きな課題の1つは、AA機能の相互運用性の欠如であり、断片化が統合を妨げ、ベンダーロックインへの扉を開きます。 さらに、セキュリティを確保しながら、同時に機能のアップグレードと構成を行うことは複雑になる可能性があります。
より広範なAAムーブメントのサブセットとして、この革新的なアプローチにより、スマートアカウントをカスタム機能から分離することができます。 目標は、多様な機能を備えた安全でシームレスに統合されたウォレットを開発するためのモジュール構造を作成することです。 将来的には、スマートコントラクトアカウント用の無料の「アプリストア」を実現し、ウォレットとdAppsを機能の構築から解放し、ユーザーエクスペリエンスに焦点を当てることができます。
この記事を読んだ後、読者は次の洞察を得ることができます。
SCAランドスケープ
従来のEOAでは、シードフレーズ、ガス、クロスチェーン、複数のトランザクションなど、多くの課題が生じます。 複雑さを導入するつもりはありませんでしたが、実際、ブロックチェーンは大衆にとって簡単なゲームではありません。
Account Abstractionは、スマートコントラクトアカウントを活用して、プログラム可能な検証と実行を可能にし、ユーザーは一連のトランザクションをそれぞれに署名してブロードキャストするのではなく、一度に承認し、さらに多くの機能を実装できます。 ユーザーエクスペリエンスにメリットをもたらします(例: ガスの抽象化、およびセッションキー)、コスト(例: バッチ処理トランザクション)、およびセキュリティ(例: 社会回復、マルチシグ)。 現在、アカウントの抽象化を実現するには、次の 2 つの方法があります。
👉 AAやERC4337に馴染みのない方は、 SevenXの過去の調査をこちらでご確認ください。
Account Abstraction(AA)のトピックは2015年から議論されており、今年のERC4337によってさらに脚光を浴びました。 しかし、デプロイされたスマートコントラクトアカウントの数は、EOAと比較するとまだ見劣りします。
このジレンマを掘り下げてみましょう。
この記事では、#5の問題であるエンジニアリングの難しさについて掘り下げます。
🤔️
エンジニアリングの難しさをさらに詳しく説明すると、次のようになります。
これらの海域をナビゲートするには、安全で効率的なアップグレードを保証するアップグレード可能な契約、全体的な開発効率を高めるための再利用可能なコア、および契約アカウントが異なるフロントエンド間でスムーズに移行できるようにするための標準化されたインターフェイスが必要です。
これらの用語は、Building a Modular Account Abstraction Architecture (Modular AA) という単一の概念に収束します。
モジュラーAAは、スマートアカウントをモジュール化してユーザー向けにカスタマイズし、開発者が最小限の制限で機能をシームレスに強化できるようにすることを想定している、より広範なAAムーブメントの中のニッチです。
しかし、どの業界でも、新しい標準を設定し、推進することは大きな課題です。 初期段階では、全員がメインのソリューションに落ち着く前に、さまざまなソリューションを目撃する可能性があります。 しかし、4337 SDK、ウォレット開発者、インフラストラクチャチーム、プロトコル設計者など、アカウントの抽象化に取り組んでいる人たちが一丸となってプロセスをスピードアップしているのを見るのは心強いことです。
アカウントは、関数を実現するためにモジュールをどのように呼び出しますか
外部呼び出しと委任呼び出し:
delegateCallについて
delegatecall は call と似ていますが、ターゲット コントラクトを独自のコンテキストで実行する代わりに、呼び出し元のコントラクトの現在の状態のコンテキストで実行します。 つまり、ターゲット コントラクトによって行われた状態の変更は、呼び出し元のコントラクトのストレージに対して行われます。
プロキシ コントラクトと delegateCall
コンポーザブルでアップグレード可能な構造を実現するには、「プロキシコントラクト」と呼ばれる基本的な知識が必要です。
安全なアーキテクチャ
安全とは:
Safe は、実証済みのセキュリティと柔軟性を提供するように設計された主要なモジュラースマートアカウントインフラストラクチャであり、開発者が多様なアプリケーションやウォレットを作成できるようにします。 注目すべきは、多くのチームがSafeをベースに構築したり、Safeに触発されたりしていることです。 Biconomyは、ネイティブの4337と1/1マルチシグでSafeを拡張し、 アカウント を立ち上げました。 164,000件以上の契約が展開され、307億を超える価値を秘めているSafeは、間違いなく宇宙のプレミアです。
What's Safeの構造
Safeを採用するとどうなるか:
ERC2535 ダイヤモンドアーキテクチャ
ERC2535ダイヤモンドプロキシについて:
このERC2535は、展開後にアップグレード/拡張でき、実質的にサイズ制限のないモジュール式スマートコントラクトシステムであるダイヤモンドを標準化しています。これまで、ZerodevのKernelやSoul Walletの実験など、多くのチームがそれに触発されてきました。
ダイヤモンド構造とは:
ダイヤモンドを採用するとどうなるか:
SafeアーキテクチャとDiamondアーキテクチャの間には類似点がたくさんあり、どちらもプロキシコントラクトをコアに頼り、アップグレード性とモジュール性を実現するためにロジックコントラクトを参照しています。
それにもかかわらず、主な違いは論理コントラクトの処理にあります。 詳しく見てみましょう。
「セーフスマートアカウントアプローチ」と「ダイヤモンドアプローチ」は、プロキシとモジュールを含む異なる構造の例として機能します。 柔軟性とセキュリティのバランスをどう取るかが重要であり、将来的にはこれら2つの手法が互いに補完し合う可能性があります。
モジュールを呼び出す順序は何ですか
Alchemy チームが提案し、Diamondにインスパイアされ、ERC-4337専用に調整された標準である ERC6900 を紹介して、議論を広げましょう。共通のインターフェースを提供することで、スマートアカウントのモジュール性の課題に対処し、プラグインとウォレット開発者間の取り組みを調整します。
AAのトランザクションプロセスには、検証、実行、フックの3つの主要なプロセスがあります。 これらの手順はすべて、前に説明したように、プロキシ アカウントを使用してモジュールを呼び出すことで管理できます。 プロジェクトが異なれば名前も異なりますが、基本的なロジックは似ていることを把握することが重要です。
異なる設計の関数名
ERC6900
異なるロジックに基づいてモジュールを分離することが重要です。 標準化されたアプローチは、スマートコントラクトアカウントの検証、実行、およびフック関数の記述方法を指示する必要があります。 安全かERC6900かにかかわらず、標準化は、特定の実装またはエコシステムに固有の独自の開発作業の必要性を減らし、ベンダーロックインを防ぐのに役立ちます。
オープンな方法でモジュールを見つけて検証する方法
勢いを増しているソリューションには、ユーザーが検証可能なモジュールを発見できる場所の作成が含まれており、これは「レジストリ」と呼ぶことができます。 このレジストリは「App Store」のように機能し、シンプルでありながら繁栄するモジュラーマーケットプレイスを育成することを目的としています。
セーフ{Core} プロトコル
Safe{Core} Protocol は、スマートコントラクトアカウント用のオープンソースで相互運用可能なプロトコルであり、明確に定義された標準とルールを通じて堅牢なセキュリティを維持しながら、さまざまなベンダーや開発者のアクセシビリティを強化するように設計されています。
ラインストーンデザイン
このプロセスは次のように展開されます。
このスキーマはまだ初期段階にありますが、分散型で協調的な方法で標準を確立する可能性を秘めています。 レジストリを使用すると、開発者はモジュールを登録でき、監査人はセキュリティを検証し、ウォレットは統合され、ユーザーはモジュールを簡単に見つけて構成証明情報を検証できます。 将来的には、次のような用途が考えられます。
「モジュールレジストリ」の概念は、プラグインとモジュールの開発者に収益化の道を開きます。 これにより、「モジュールマーケットプレイス」への道がさらに開かれる可能性があります。 Safeのチームが監督する側面もあれば、分散型マーケットプレイスとして現れ、すべての人に貢献と透明性のある監査記録を招く側面もあります。 これを組み込むことで、ベンダーロックインを回避し、より幅広いユーザーを惹きつける強化されたユーザーエクスペリエンスを追加することで、EVMの拡大をサポートすることができます。
これらのアプローチは単一のモジュールの安全性を保証しますが、スマートコントラクトアカウントのより広範なセキュリティは絶対確実ではありません。 正規のモジュールとストレージの競合がないことを証明することを組み合わせることは困難な場合があり、このような懸念に対処する上でウォレットやAAインフラストラクチャの重要性が浮き彫りになっています。
モジュール式のスマートコントラクトアカウントスタックを利用することで、ウォレットプロバイダーとdAppsは、技術的なメンテナンスの複雑さから解放されます。 一方、外部モジュール開発者には、個々のニーズに合わせた専門的なサービスを提供する機会があります。 ただし、対処すべき課題には、柔軟性とセキュリティのバランスを取ること、モジュール標準を前進させること、ユーザーがスマートアカウントを簡単にアップグレードおよび変更できるようにする標準化されたインターフェイスの実装などがあります。
しかし、モジュール式のスマートコントラクトアカウント(SCA)は、導入のパズルの1つのピースにすぎません。 SCAの可能性を完全に実現するには、堅牢なバンドラーインフラストラクチャとピアツーピアmempool、より費用対効果が高く実現可能なSCA署名メカニズム、クロスチェーンSCAの同期と管理、ユーザーフレンドリーなインターフェースの開発など、レイヤー2ソリューションから追加のプロトコル層サポートが必要です。
将来を見据えると、SCAの注文フローが十分に収益性を持つようになったら、従来のMiner Extractable Value(MEV)メカニズムがバンドラーを構築し、価値を獲得するためにどのように分野に参入するのか、という興味深い疑問が湧いてきます。 インフラストラクチャが成熟したとき、Account Abstractions(AA)は「インテントベース」トランザクションの基盤レイヤーとしてどのように機能できるでしょうか? 乞うご期待。風景は刻々と進化しています。