コンテンツへスキップ
0%

Rundlerのオープンソース化 🦀

著者: Dan Coombs

最終更新日: 2023年9月28日1分で読めます

本日、AlchemyによるRundlerのオープンソース化(Rust Bundler)を発表します。これはRustで書かれたERC-4337 bundler実装です。Rundlerによって、私たちはEVMチェーン上でのユーザー体験を次のレベルに引き上げるべく、スマートアカウントへの移行を加速させることを目指しています。BundlerはAccount Abstractionを支えるインフラストラクチャの重要な一部です。私たちがRundlerをオープンソース化するのは、この移行を支える分散型で堅牢なネットワークを育てるためです。

rundlerとは

Rundlerは高性能・高信頼性・モジュール型のERC-4337 bundlerです。

言葉が多すぎるでしょうか?

分解して説明します👇

ERC-4337

ERC-4337は、コアプロトコルに一切変更を加えることなく、すべてのEVMチェーン上でAccount Abstractionを実現するための標準です。これはBundlerのような、より上位のオフチェーンインフラストラクチャに依存することで実現されています。つまりERC-4337によって、開発者はコアプロトコル開発のリスクを負うことなく、Account Abstractionの恩恵をすべて得られるようになります。

ERC-4337の仕組みを学ぶには、AlchemyのAAチームのエンジニアであるDavid Philipsonによる全4回のシリーズ「You Could Have Invented Account Abstraction」をご覧ください。

ERC-4337アカウントでの開発を始めるには、私たちのエンタープライズグレードのEmbedded Accountsをご覧ください。

Bundler

上述のより上位のオフチェーンインフラの中核となる部分がBundlerです。Bundlerの役割は、ユーザーから送信されるトランザクションのようなオブジェクト(User Operations)を受け取り、それらを1つのEVMトランザクションにまとめ、そのトランザクションをオンチェーンに着地させることです。その見返りとして、各ユーザーから少額の手数料を受け取ります。EOAウォレットがノードにトランザクションを送信するのに対し、すべてのERC-4337スマートアカウントはUserOpをBundlerに送信します。

バンドラーがユーザーオペレーション(UO)を処理する仕組みの図。
バンドラーがユーザーオペレーション(UO)を処理する仕組みの図。

rundlerの目標は何か

私たちがRundlerを構築したのは、web3への次の10億人のユーザーのオンボーディングをエコシステムが実現する手助けをするためです。私たちは、Account AbstractionとERC-4337が、暗号資産をメインストリームのユーザーにとって使いやすいものにするための最善の道だと考えています。そのメインストリーム向けの体験を届けるには、最高水準の開発者体験、モジュール設計、そしてすべてのEVMチェーンへの対応を備えた、高信頼性のインフラストラクチャが必要です。

1. ERC-4337エコシステムの成長

Rundlerの構築を通じて、私たちはERC-4337標準の進化に深く関わってきており、今後もここに貢献し続けるつもりです。本番環境でRundlerを運用する中で多くのことを学んでおり、その経験を4337コミュニティと共有し続けることで、改善に役立てています。

2. 最高水準のパフォーマンスと信頼性

10億人ものユーザーをオンチェーンにもたらすようなアプリケーションをオンボーディングするには、パフォーマンスと信頼性が何よりも重要です。この考え方はRundlerおよびAlchemyの関連APIの中核にあり、私たちはその限界を押し広げ続けることを目指しています。

3. 拡張性とチェーン対応

すべてのEVMチェーンは、Account Abstractionを支える最高水準のインフラストラクチャを享受するに値します。各プロトコルは、ガス使用量、プリコンパイル、トランザクションのサプライチェーンなど、細かい部分の扱いがそれぞれ異なります。Rundlerでは、そのロジックを拡張することで、こうしたユースケースの大半、あるいはすべてに対応できることを期待しています。

4. モジュール性

私たちはRundlerだけで止まるつもりはありません。Rundlerライブラリの各コンポーネントが拡張され、新しい4337やalternative-mempoolのインフラを支えるために使われることを目指しています。

rundlerのアーキテクチャの利点

Alchemyでは、Ethereumの技術の恩恵をすべての人に届けるには、スマートアカウントへの移行が不可欠だと考えています。Rundlerは、そのビジョンを実現するための重要な一歩です。

1. 高性能

Rundlerは、最も要求の厳しいワークロードに求められる水準のパフォーマンスを達成できるように構築されています。これを実現するため、私たちはプログラミング言語としてRustを選びました。その並行処理のプリミティブとゼロコスト抽象化が役立っています。Rundlerには、次世代アプリケーションのスケーラビリティ要求に応えられるよう、高い並行性、水平方向のスケーラビリティ、そして容易な拡張性を持たせたいと考えています。

最近測定した結果では、Rundlerは Polygon Mainnet上で1秒あたり750万ガスを着地させており(そのワークロードではおおよそ55 TPSに相当します)、このアーキテクチャによって、さらに高い処理量を実現できます。

Polygon上でのeth_sendUserOperationの持続的な秒間トランザクション数。
Polygon上でのeth_sendUserOperationの持続的な秒間トランザクション数。

2. 高信頼性

Rundlerのアーキテクチャは、ユーザーが期待する高信頼性のサービスを満たすように設計されています。ブロックチェーンインフラを何年も運用してきた経験を活かし、私たちはその精神の延長としてRundlerを構築しました。Rundlerは、各コンポーネントが独立して動作・スケールできる現代的なクラウドのような環境、かつ可観測性とテレメトリが必須となる環境で真価を発揮します。

3. モジュール性

Rundlerはモジュール方式で構築されており、各コンポーネントは1つのライブラリ(Rustでいうcrate)としてモデル化され、他のコンポーネントから独立して動作できます。インターフェースが安定するにつれて、これらのコンポーネントを使って書き込みパス系インフラの次の世代を支えていきたいと考えています。

次の10億人のユーザーを支える

私たちは4月からRundlerを本番環境で運用しており、CyberConnect CyberAccountsやCircle Programmable Walletsをはじめとする、この分野で最も期待の高いアプリケーションの一部を支えるのに使われています。

最初の数か月間の数値の一部を紹介します:

  • 40万2千件超のUserOpsがオンチェーンで正常に着地
  • UserOpsの71%が、複数のUOを含むバンドルとして着地しており、これは他の既知のbundler実装と比べて4.7倍高い数値
  • UserOpsを送信するユニークアクティブ開発者チーム数が四半期で430%成長

rundlerの現在のステータスは

Rundlerは、私たちのBundler APIエンドポイントを支えるために使われています。ただし、現在もAlchemyの優秀な開発者チームによって活発に開発が進められています。私たちは、ユーザーがAccount Abstractionの力を最大限に活用できるよう、今後も機能を追加していきます。

ERC-4337仕様への完全な準拠とv0.6 Entry Pointコントラクトへの対応に加えて、Rundlerには注目に値する、いくつかの興味深い機能があります。

統合型または分散型のデプロイ

Rundlerは、単一のプロセス内でフルノードとして実行でき、その場合各コンポーネントはインメモリのメッセージパッシングを通じて通信します。あるいは、これらのコンポーネントを独立したプロセスとして実行し、gRPCを介して通信させることも可能で、これにより水平方向のスケーラビリティと冗長なデプロイが実現できます。

正確なガス見積もり

私たちは、巧妙なスマートコントラクトのトリックと二分探索を活用して、ERC-4337のUser Operationの各種ガスフィールドを見積もる新しい手法を切り開いてきました。

Reorg対応

私たちのmempool実装は、チェーンのreorganization(再編成)に対して耐性があります。チェーンの進行状況を追跡し、チェーンがreorgしたことを検知すると、チェーンから外れた可能性のあるUser Operationsをmempoolに戻し、再度含めることができるようにしています。

大規模なバンドル構築とトランザクションの信頼性

私たちは、ネットワークレベルのガススループットを達成できるよう、バンドル構築コンポーネントを構築してきました。つまり、ブロックのガスリミットに近づくバンドルでネットワークを完全に飽和させ、それらすべてのブロックに着地させることを目指しています。

Alternative mempool

私たちはERC-4337のalternative mempoolについて実験を重ねており、この議論を前進させる一助となってきました。現状、これらのalt-mempoolはbundlerを特定のmempool攻撃に晒すことになりますが、この研究を活かして、将来的に安全なalt-mempoolを実装したいと考えています。

rundlerのロードマップは

ここまで来た今、次は何でしょうか。直近のロードマップでは、P2Pおよび安全なalternative mempool、Entry Point v0.7への対応、署名集約、そしてブロックビルダーとの統合の構築に着手しています。

P2P mempool

かねてより約束されているERC-4337のパブリックP2P mempoolは、この秋に登場予定であり、私たちは現在その対応を構築中です。

安全なalternative mempool

前述の通り、私たちはalternative mempoolのアプローチを改良し、bundlerにとって安全な実装を構築することを目指しています。

Entry point v0.7と複数バージョン対応

ERC-4337チームは、Entry Pointコントラクトの次のバージョンであるv0.7の開発に精力的に取り組んでいます。リリースされ次第、v0.6コントラクトへの対応を維持しつつ、迅速な対応を目指します。

署名集約

署名集約は、ERC-4337の最も話題にされる機能の1つです。しかし、bundlerが収益性を維持できる形でこれを実装するのは、これまで容易ではありませんでした。私たちはこの点をより詳しく検討しており、最初の実用的な署名集約器を実現したいと考えています。

ブロックビルダーとの統合

User Operationsを高い頻度でオンチェーンに着地させようとする中で、私たちはP2P mempoolの導入によってさらに悪化するであろう課題に直面してきました(これについては別の機会に詳しく述べます)。これらの問題は、ブロックビルダーがbundlingを自身のプロセスに直接組み込めば、大きく軽減されます。

rundlerへの貢献方法

Rundlerをオープンソース化することで、この分野でのイノベーションを引き続き促進できればと考えています。ユーザーは自分のUser Operationsを支えているロジックを調べることができ、コントリビューターは機能を追加したり、バグを修正したりして、Rundlerの改善と堅牢化に貢献できます。

貢献をお考えの方は、コントリビューションガイドをご覧のうえ、ぜひご連絡ください!

謝辞

ERC-4337エコシステムを構築するのはチームとしての取り組みであり、この分野の複数のチームからのリーダーシップ、指導、支援がなければ、私たちが達成してきたことは実現できませんでした。

ERC-4337チーム

ERC-4337チームはこの標準を切り開き、私たちの開発中に数え切れないほどの質問に答えてくれました。彼らが開発したbundlerリファレンス実装とspec testは、私たちの開発プロセスにおいて非常に貴重なものでした。このチームとともに、引き続きERC-4337を前進させていけることを嬉しく思います。

Rethチーム

Rethチームにも感謝します。私たちの多くの取り組みは、彼らから着想を得たものです。彼らはEthereumのRustエコシステムをオープンな形で前進させており、その継続的な貢献に感謝します。

(alternative)mempoolでお会いしましょう。

🦀

Alchemy Newsletter

リリース情報をいち早く受け取る

ニュースレターに登録する

Alchemyの最新のプロダクト情報とリソースをお届けします

A
O
D
+
80,000人以上が購読中

メールアドレスを入力すると、当社のマーケティング情報およびプロダクト最新情報の受信に同意したことになります。Alchemyが受け取った情報をプライバシー通知に従って取り扱うことに同意するものとします。購読はいつでも解除できます。