著者:Victor-Cristian Florea, Outlier Ventures; 翻訳:0xjs@Golden Finance
Introduction
ブロックチェーン技術が登場してからしばらく経ち、市場は過去10年間で飛躍的に成長しましたが、現在の摩擦の大きい参入プロセスに対処することが、ネイティブな暗号取引を次のようなものに変える鍵となります。市場拡大の鍵となる主流概念に変貌させることである。幸いなことに、アカウントの抽象化のような新しいパラダイムは、カジュアルなユーザーがブロックチェーン技術を使い始めるプロセスを簡素化することで、暗号通貨の大量採用を促すことができます。
EVM開発者をターゲットにしたERC-4337 Account Abstraction実装は、スマートコントラクトとして管理されていないウォレットの作成を可能にし、簡単なウォレット回復、署名なし取引、チームウォレットなどの機能のロックを解除します。この規格の主な革新点は、スマート・アカウントを独立して作成できることで、外部所有アカウント(EOA)やコントラクト・アカウントを別途用意することなく取引が可能になります。スマートアカウントは、ユーザーによって実行されるアクションを表すUserOperationsを使用します。これらのUserOperationsはバンドルされ、検証され、単一のエントリーポイントを通じて実行されるため、口座や資金を管理する上でさまざまなカスタマイズが可能になります。
Safe、NEAR Wallet、Argent、Bloctoなどのイノベーターはすでにこの新しいスマートコントラクトの機能を活用しており、ERC-4337は標準化の終着点ですが、まだやるべきことがあります。この分野の主要なプレーヤーは、特定のニーズや異なるブロックチェーンエコシステムに適したアカウント抽象化のバリエーションを設計しており、その結果、多くのSDKやライブラリから選択できるようになっています。
アカウント抽象化のユースケース
技術的な側面に入る前に、アカウント抽象化が大きな改善をもたらす最も興味深いユースケースの概要を説明しましょう。
1.ウォレットリカバリー
暗号業界における最大の課題の1つはセキュリティで、ユーザーはカストディアンに依存するか、キーを保護しなければなりません。スマートアカウント空間では、ヘルパーや秘密鍵に頼る必要性を回避することで、セキュリティは従来のモデルとは異なります。スマートアカウントの所有者は、ウォレットのカストディアンとして複数のエンティティ(デバイス、個人、またはサードパーティのサービス)を指定することができます。
この革新的な機能により、クレデンシャルの紛失に直面したユーザーのための強力なセーフティネットが確保され、保護者はトランザクションに署名して新しいアクセスクレデンシャルを割り当てることができます。重要なのは、この回復プロセスではユーザーの資産の管理と所有権を優先し、セキュリティとアクセシビリティの微妙なバランスを取っていることです。この洗練されたフレームワークは、より優れた回復力とユーザー制御を備えたデジタル資産管理の新時代の到来を告げるものです。
2.一括取引
分散型取引所では、トークン交換は通常2つの別々の取引を伴い、それぞれが秘密鍵署名を通じてユーザーによって承認される必要がありますが、複雑なWeb3取引では3つ以上の承認が必要になることがあります。スマートアカウントは、ユーザーが複数のトランザクションをバッチ処理できる画期的なソリューションを導入し、ユーザーのコストを下げ、Web2アプリケーションで期待される方法でDeFiトランザクションを簡素化する。この特殊なユースケースの好例はAmbire Walletで、AAを活用してユーザーのトランザクションのバッチ処理を可能にしている。操作の実行コストは外部所有口座(EOA)を使用するよりも高くなりますが、複数のトランザクションが実行される場合、トランザクションあたりの価格は大幅に低くなります。
3.スポンサーユーザー取引
アカウントの抽象化では、スポンサー取引のガス料金専用に設計されたスマートコントラクトであるペイマスターの概念も導入しています。これはdAppsに新たなレベルのカスタマイズをもたらし、ユーザーのウォレットにあるあらゆるトークンを取引手数料として受け入れることができるようになり、不換紙幣の支払いに銀行カードを使用したり、全額を補助したりすることもできます。この素晴らしい例はArcana NetworkのSendItで、暗号通貨を電子メールで誰にでも送ることができる小さなプロトコルで、たとえウォレットを持っていなくても、ERC4337を利用して取引手数料のスポンサーとなり、新しいスマートコントラクトのアカウントを作成することができる。この特定のユースケースのもう一つの重要なものは、以下に示すように、ユーザーがフィアットカードを使ってオンチェーンのガス料金を支払うことを可能にするVisaの提案である。
口座の抽象化によるデジタル取引の再考


アカウントの抽象化によるデジタル取引の再考
4.自動化された取引
dApp上のすべての取引を手動で開始または署名する必要があるEOAとは異なり、スマートアカウントは自動化の可能性を導入しています。スマートアカウントでは、ユーザーは特定のトークンへのアクセス、支出制限、期間、ガス制限、特定の操作のための事前定義されたトリガーなど、さまざまなパラメータを設定できます。例えば、あるユーザーがDEXに、今後1時間、15分ごとに自分の代わりに取引を実行させたいとします。このような取引は、TWAP取引を提供する分散型取引所であるCowSwapで見ることができる。スマート口座自動化の可能性は事実上無限であり、従来のEOAの限界を超えたレベルのカスタマイズと効率をユーザーに提供します。
テクノロジー・コンポーネント
テクノロジーを活用するには、独自の社内コンポーネントを立ち上げるか(図1)、SDKやライブラリを使用し、この分野の他のプレーヤーによって維持されている既存のインフラを活用するか、さまざまな方法があります。私たちは、開始するための様々なオプションをリストアップし、特定のソリューションを使用することで、さらなる使用例や利点を探ります。
アカウントの抽象化を活用する際にどのような実装を選択するにしても、その主要な要素を理解することが重要です。 UserOperationsは、スマートコントラクトのアカウントで取引するユーザーの意図を表す、トランザクションのようなオブジェクトです。従来のトランザクションとは異なり、UserOperationsはEntryPoint、Bundler、Paymaster、Aggregatorなどの追加フィールドを導入し、別のメモリプールに向ける。特筆すべきは、UserOperationsはインテント(意図)ベースであるため、ユーザーは結果中心のトランザクションのメタデータを含めることができ、従来の入力の具体性から逸脱しています。
バンドラーと呼ばれる次の重要なコンポーネントは、UserOperationsをサポートする上で重要な役割を果たす特別なタイプのイーサネットノードです。UserOperationsは、代替メモリプールをアクティブに監視するBundlerのネットワークに向けられます。これらのBundlerは複数のUserOperationを1つのトランザクションにまとめ、ユーザーに代わってパッケージ化してブロックチェーンに提出する。このサービスの見返りとして、彼らは報酬を受け取る。その意義は、web3の各参加者がERC-4337の機能を実装するための重要な要素である独自の外部所有アカウント(EOA)を持つ必要性を抽象化することです。
その後、UserOperationは、UserOperationの検証と実行を行うシングルトンのスマートコントラクトであるEntryPoint Contractに送られます。検証プロセスでは、UserOpのGasフィールドによって決定される潜在的な最大ガス使用量をカバーするのに十分な資金がウォレットにあるかどうかを評価します。十分な資金がない取引は拒否されます。実行するために、スマートコントラクトはトランザクションを実行し、スマートコントラクトアカウント(SCA)から資金を差し引き、適切な量のネイティブトークンでBundlerにGasを払い戻します。
場合によっては、開発者がユーザーに代わってガス料金をスポンサーしたり、ネイティブトークン以外のさまざまなトークンを使ってガス料金を支払えるようにしたいこともあります。これを行うには、ガス料金の支払いポリシーを管理するために設計されたPaymasterと呼ばれるコントラクトを利用します。これにより、ユーザーはブロックチェーンとやり取りするためにネイティブなブロックチェーントークンを持つ必要がなくなる。

さまざまなAAツールのウォークスルー
1.SDKなしのソリューション
上記のとおりです。サードパーティのAAソリューションに頼りたくない場合は、独自のセットアップを実行し、スマートコントラクトと関連するプロセスの完全な制御とホスティングを行うことができます。イーサに関しては、複数のソリューションが提案されており、スマートアカウントコントラクト、エントリーポイントコントラクト、ペイマスターに関しては、eth-infinitismが最も人気のあるソリューションを持っている。これらのコントラクトをデプロイし、正しく資金を供給することに加え、ユーザーのアクションを受け取り、エントリーポイントコントラクトにリダイレクトするBundlerを実行する必要がある。開発者を支援するために、コミュニティメンバーはシンプルなnpmパッケージを使用して、Hardhat環境でローカルにアカウント抽象化をセットアップするソリューションを開発しました。
2.Pimlicoとpermissionless.js
アプリケーションにアカウントの抽象化を追加するためにJavaScriptライブラリを活用しようとしている場合、最も効果的なソリューションはpermissionless.jsです。 これはviemの上に構築されており、開発者はAAスイート、Bundler、Pimlicoによって提供される機能のBundlerを活用することができます。viemの上に構築されており、開発者はPimlicoが提供するAAスイート、Bundler、Paymaster APIを使って、高度にカスタマイズ可能でモジュール化されたアプリケーションを構築することができ、これらはすべて20以上のEVM準拠チェーンをサポートしています。スマートアカウントとトランザクションデータが作成されたと仮定して、Permissionless.jsとPimlicoのAccount Abstraction SDKを使用してトランザクションを送信する方法を説明します:
const txHash = await smartAccountClient.sendTransaction({
to: "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
value: parseEther("0.1"),
maxFeePerGas.gasPrices.fast.maxFeePerGas,
maxPriorityFeePerGas: gasPrices.fast.maxPriorityFeePerGas,
});
3. Alchemy Accounts Kit
Alchemy の Accounts Kit は、利用可能な中で最も開発者に優しいアカウント抽象化ツールの1つです。他のソリューションと同様に、aa-sdkに加えて、AlchemyはシンプルなスマートアカウントインターフェイスであるLight Accountソリューション、Bundler API、そして開発者がユーザーのアクションをスポンサーしたり、ユーザーがガスに支払う際にERC-20を使用できるようにするために独自のPaymasterスマートコントラクトを活用するGas Managerソリューションを提供しています。ガスの支払い時にERC-20トークンを使用する。スマートアカウントとトランザクションデータが作成されたと仮定して、AchemyのAccount Toolkitを使ってトランザクションを送信し、トランザクションハッシュを取得する方法を以下に示します:
const userOperation = await smartAccountClient.sendUserOperation({
uo: {
target: "0xTARGET_ADDRESS",
 ;
4.Biconomy SDK
Biconomy SDKは、アカウント抽象化で構築する際に最も多くの機能を提供します。開発者は様々な機能をカスタマイズし、スマートコントラクトアカウントのマルチシグネチャ構成を設定し、バンドラーとペイマスターサービスを提供することができます。機能は高度にモジュール化されており、競合他社と比較してユニークな特徴を持っている。開発者は、署名者が各トランザクションに署名しなくても特定のSCAトランザクションが発生するように、一連の制約に裏打ちされたゲートウェイを作成することができます。この特別な機能はユーザーエクスペリエンスを向上させ、ユーザーが完全なWeb2の旅をしている間にバックグラウンドでブロックチェーン上で動作するアプリケーションのための基礎を築く。 BiconomyのAAソリューションは、この分野で最も人気のあるソリューションの一つであり、そのSDKは2,500万件のメタトランザクションを処理し、280万人のユーザーをWeb3空間に引き付けるのに貢献している。スマートアカウントとトランザクションデータが作成されたと仮定して、バイコノミーSDKを使用してトランザクションを送信し、トランザクションハッシュを取得する方法を以下に示します:
const userOpResponse = await smartWallet.sendTransaction({
) to: toAddress,
data: transactionData,
});
const { transactionHash } = await userOpResponse.waitForTxHash();
結論
要約すると、アカウント抽象化のアイデアはしばらくの間存在していましたが、開発者が大規模にそれを採用するのを助けるための文書やツールはまだ限られています。それにもかかわらず、これはWeb3開発における最大のマイルストーンの1つであり、新しくエキサイティングなユースケースのための基盤を提供しています。
現在、アカウント抽象化機能を使用するには、主にサードパーティに頼る必要がありますが、モジュール化パラダイムとエコシステムの分散化によって、より多くの開発者がこれらのツールの一部を自分のアプリケーションに統合し、さらにはスマートコントラクトやオフチェーンユーティリティを構築して、独自のものを構築するようになっています。このエキサイティングな新技術を活用するために。ユーザーの入力を簡素化し、暗号通貨の大量導入に貢献する必要性は依然として高く、アカウント抽象化は現在、この必要性を満たす最良のツールであり、プロジェクトがユーザーに知られることなくブロックチェーン技術を活用できるようにしています。