Author: Three Sigma, Blockchain Audit Firm Source: X, @threesigmaxyz Translated by Good Oba, Golden Finance
ZKロールアップとアカウント抽象化の統合は、スケーラビリティと柔軟性の面でレイヤー2ソリューションに新たな次元をもたらします。本日は、zkSyncと、彼らがプロトコルにどのようにアカウント抽象化を実装したかを掘り下げてみます。
zkSyncとは
zkSyncは、@the_matter_labsによって開発されたイーサリアム上のスケーラブルで低コストのトランザクションのための非信頼プロトコルです。ロールアップ技術を活用し、チェーン下で実行されるトランザクションをバッチ処理することで混雑を緩和します。
zkSyncのアーキテクチャはzk-rollupとValidiumを統合しており、それぞれスマートコントラクト用のzkEVMとオフチェーンデータ可用性用のzkPorterとして定義されています。
プロトコルのアーキテクチャの詳細については、こちらをご覧ください。align:center">
アカウント抽象化とは
アカウント抽象化とは、スマートコントラクトをウォレットとして利用することで、EOA(外部所有アカウント)の必要性を排除する技術であり、より安全で優れたブロックチェーンを作成するためのユーザーエクスペリエンスを提供します。ユーザーエクスペリエンスを提供し、優れたブロックチェーンエクスペリエンスを実現します。
よく知られているERC-4337 AAワークフローでは、ユーザーは専用のメモリプールに操作を提出します。
バンドラーはこれらの操作を個々のトランザクションにまとめ、EntryPointコントラクトに送信します。EntryPointコントラクトは「validateUserOp」を使用して各アカウントを検証し、これらの操作を実行します。
どのように zkSync はアカウント抽象化 (AA) を活用するか
zkSync Era はアカウント抽象化 (AA) を活用します。zkSync Eraは、アカウント抽象化をネイティブに実装した最初のEVM互換チェーンです。これは、スマートアカウントと支払人の2つの主要コンポーネントを導入することで、アカウント操作に革命をもたらします。
スマート口座
スマート口座は、5つのメソッドを持つIAccountインターフェイスによって表されます:
スマート口座は、5つのメソッドを持つIAccountインターフェイスによって表されます。
validateTransaction():トランザクションがアカウントルールと一致するかチェックします。一致しない場合はロールバックされる。
executeTransaction():手数料を差し引いた後にトランザクションを実行します。
payForTransaction():支払人が使用されていない場合、手数料を直接支払います。
prepareForPaymaster():料金を支払うペイマスターを設定します。
executeTransactionFromOutside():外部からトランザクションを開始できるようにします。
下記のIACCOUNTコードをご覧下さい
支払い者
EIP4337と同様に、zkSyncのアカウント抽象化は、トランザクション実行のために他のアカウントに補償できるアカウントである支払人をサポートします。各支払者は、以下の2つのメソッドを含むIPaymasterインターフェイスを実装する必要があります:
次のコードを参照してください:
zkSyncのアカウント抽象化(AA)プロトコルは EIP4337 に非常に似ていますが、zkSync のプロトコルには効率性とユーザー エクスペリエンスの向上のためにいくつかの違いがあります。
zkSyncのネイティブアカウント抽象化とイーサネットのEIP 4337の主な違い:
次のようになります。実装: zkSyncはAAをプロトコルに統合しますが、EIP4337はプロトコルレベルの変更を回避します。
アカウントタイプ:zkSyncはスマートコントラクトとペイヤーを同等に扱いますが、EIP4337は区別します。
トランザクション処理:zkSyncは、EIP4337の個別のプロセスとは異なり、すべてのアカウントに単一のメモリプールを使用します。
ペイヤー:zkSyncは、スマートコントラクトに制限しているEIP4337とは異なり、すべてのアカウントのペイヤーをサポートします。
zkSyncでスマートアカウントを作成する方法
zkSyncでスマートアカウントを作成するには、IAccountを使用して基本メソッドを実装し、IPaymasterを使用してペイヤー依存メソッドを実装します。IPaymaster を使用してペイヤー依存の料金支払いを実装します。
アカウントが署名検証のためにEIP-1271をサポートしていることを確認することも有用です。
これらの手順の後、zkSyncのcreateAccountメソッドを使用してアカウントを展開するだけです!
zkSyncは現在、2つのスマートコントラクトウォレットと統合しています:
✦ HoldstationW
✦pier_wallet