Account Abstraction輪読会/ETHIndia報告会まとめ👍
「Account Abstraction輪読会/ETHIndia報告会」に参加してきたのでまとめてみました。👍
■Account Abstractionのメリット・デメリット
・「UserOperation(CA)→Bundler(EOA)→EntryPoint→Wallet Contract」のアーキテクチャを採用したERC4337によって、よりセキュアな暗号資産ウォレットの実現と一般化が期待される。
・従来のEOA署名型の暗号資産ウォレットとは異なり、個々人が秘密鍵の管理を行う必要がなくなるので、UXが向上する。
・秘密鍵管理が不要になる一方で、Bundler / Entry pointに依存することが1つの課題として検討される。
・AAの採用はあくまで1つの選択肢であり、中継コストによってガス代が上がるといった問題点も存在する。
詳しくはこちら👇
https://twitter.com/0xikkun/status/1603880990551986190
✅ETHIndia報告会
https://twitter.com/zkBob_/status/1602632385505492994
・ETHIndiaでの取り組みについて
:zkbobを活用したペイメントソリューションを検討したがピポット。
:videoベースのLinkedinを発案。
:walletアドレスのみでできるweb3ネイティブな使い方ができるのが特徴。
:メインの予選プレゼンは2時間待ちだったので各Prizeに応募。
:30くらいのスポンサー
・zkJobについて
:個人情報を追加することなく、単一のウォレットで履歴書の作成、雇用、給与支払いを行うことが可能。
:zkアドレス一回で使い捨て可能で、匿名性を担保。
:メタマスクを紐付けないことでプライバシーを保護。
:$2000 CHAPのPrizeを獲得。
:https://github.com/luka1104/ETHIndia-ZKJob
・Bounty Hunter
:今年3月から初めて、5回のハッカソンで全部入賞。
:3日間の短期間でのフィジカルハッカソンが得意。
:ETHNY/SFやTokyo Web3 Hackathonでの取り組み紹介。
※海外ハッカソン攻略のコツなども明かされていました。✌️
✅Account Abstraction これまでの歴史など
・現在のウォレットで採用されているECDSA(楕円曲線DSA)暗号を利用した秘密鍵/公開鍵の仕組みは量子耐性ないために将来的には秘密鍵の漏洩などが不安視されている。txの実行にはEOAによる署名が必須であり、署名がない場合はコンセンサスレイヤーが受け付けない。(= CAからの直接的なtxは通らない。)
といった前提知識についての解説があり、EIP86からEIP4337までの歴史や各課題について詳細な説明が行われました。✌️
※各EIPについては、補足情報なども含めてみました。
■EIP86
Account Abstractionを目的とした最初のEIP(Ethereum Improvement Proposal)。
CAがtx処理を行うことができるように署名検証とnonceスキームを抽象化する変更の実装が提案されましたが、
・ガス代計算
・Dos攻撃、意味のないtxへの対応策
・マイニングにおけるtxの可否判断
が課題とされ、大規模な改修が必要であるために実現には至らず。
長期的にはすべてのアカウントがコントラクトであり、コントラクトが支払うことができるモデルに向けた最初の一歩を踏み出します。
とEIP86のGithubには書かれており、AAの実現に向けたファーストステップがEIP86でした。
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-86.md
■EIP2938
EIP2938では、Account Abstractionを
・シングルテナント AA:参加者が少ないウォレットやその他のユースケースをサポート
・マルチテナント AA:多くの参加者を含むアプリケーションをサポート
といった2つのレイヤーに分割し、mempool内のtxに対するオペコード/バイトコードプレフィックス制限などのルール提案が行われました。
しかし、EIP86と同様に大規模な改修が必要といった課題をクリアできていなかったため実現には至っていない状況です。
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2938.md
https://our.status.im/account-abstraction-eip-2938/
✅ERC4337(EIP4337)
ERC4337(EIP4337)は、イーサリアムプロトコルの改修を伴わないAccount Abstractionとして提案されました。
※プロトコル改修を伴わないためにERCにカテゴライズされています。
「UserOperation(CA)→Bundler(EOA)→EntryPoint→Wallet Contract」
のアーキテクチャを採用しており、従来のようにECDSAによって保護されたEOAからのtxにすべてをパッケージ化する必要がないのが特徴です。
①ユーザーは疑似トランザクションオブジェクトであるUserOperation(sender、signature等)をBundlerに送信
※UserOperation フィールド一覧
② BundlerがUserOperationをパッケージ化し、Entry point contractに送信
ウォレットのロジックを単純化するために、Entry point contractが各UserOperationの検証と実行を調整します。
このことからEntryPointが、単一のエンティティによって監査/制御されないようにすることが重要となります。
・EntryPointが、Bundlerによって送信された UserOperationをバッチ処理する方法
Verification loop:Wallet ContractとPaymaster Contractの両方でチェックすることにより、各 UserOperationが有効であることを検証。
Execution loop:各UserOperationのcallDataをWallet Contractに送信。
※Paymaster Contractについては特に触れられてなかったので何かの機会に学習してみようと思います。🤓
Verification/Executionロジックの柔軟性やExecutionレイヤーの量子耐性が向上する一方で、課題も存在しており、輪読会ではさまざまな意見が交わされていました。👍
https://docs.stackup.sh/docs/introduction/erc-4337-overview
✅ERC4337の問題点
・Bundlerがeoaなのでトラストする必要がある。
:Alchemyなど信頼できるステークホルダーにBundlerを担当することになると予想。
・Bundlerのインセンティブがない、ガス代を支払うのみになってしまう
:CA tx発行時にガス指定あり。ETHが魅力的なインセンティブ提示 or %渡すことになると予想。
・Bundlerが、UserOperationの情報を保有するプライバシー問題。
:Bundlerが0になるとtx通しようがなくなる。
:Bundlerは、誰でもなれるけど信頼できるBundler(Alchemyなど)がプライバシー保護徹底する形。
・Bundler→EntryPointと中継コスト上がるので、ガス代が高くなる。
:CAアカウント発行にガス代かかり、中継あるのでガス代増えるのは課題。
:秘密鍵なくすリスクを軽減するのとトレードオフ。
・EntryPoint
:ループ使って実行していくので、脆弱性あると即時に悪影響が出てしまう。
:Entry pointに依存することが1つの課題として検討される。(トラストポイントになる可能性など)
:あくまで現行のウォレットがあって、1つの選択肢が増えるのみと考えた方がよい。
・L2とAAの関係
:zksyncネイティブでAA入っている。
:Starknet コンセンサスレベルでAA対応。
:ETH + AA = L1.5。Bundler/EntryPointのトラストが必要なため。
・CA
:ハッシュの代わりにsignatureという変数があってそれが式の答えになるので 外部からはわからない
:アカウントの答えを変えられるので安全
Account Abstractionについてほとんど知識がなかったのですが、輪読会に参加して非常に勉強になりました〜✌️
まとめ
2023年は、Account Abstraction実装型の秘密鍵管理不要/ガス代支払い分の暗号資産チャージ済みウォレットなどを大手企業が開発/提供するとビジネスにが採用される機会は増えるのかなと感じました。
輪読会後の懇親会では、匿名系暗号資産による送金ビジネスやスイス・プライベートバンクとデジタルな匿名通貨についてなど、ディープなディスカッションもあり、とても楽しかったです。🤗
輪読会関係者や会場に来ていた皆様ありがとうございました🙇♂️