toplogo
Sign In

外部呼び出しを含む並行可能なスマートコントラクト処理エンジン「Groundhog」


Core Concepts
Groundhogは、ブロック内の個々のトランザクションの順序を気にせずに並行実行できるスマートコントラクト処理エンジンである。また、外部サービスへの呼び出しを中断可能にすることで、より柔軟な処理を実現する。
Abstract
Groundhogは、スマートコントラクトを並行実行するための新しい設計を提案している。従来のブロックチェーンでは、ブロック内のトランザクションを順次実行していたが、Groundhogではブロック内のトランザクションの順序を気にせずに並行実行できる。 具体的には以下のような特徴がある: トランザクションは、ブロック開始時のレジャー状態のスナップショットに対して実行される。 トランザクションの出力は、キーバリューストアに対する型付きの変更として表現される。多くの変更は可換であり、並行適用できる。 一方で、一部の変更は競合解決が困難であり、有効性制約を満たす必要がある。これらの制約は、ブロック提案時に効率的にチェックされる。 この設計により、Groundhogは高スループットかつ拡張性の高い処理を実現できる。また、外部サービスへの呼び出しを中断可能にすることで、より柔軟な処理が可能となる。 Groundhogでは、トークン、オークション、マーケットメーカーなどの一般的なスマートコントラクトアプリケーションを実装できることを示している。また、評価では、96コアを使って50万件/秒以上の支払いトランザクションを処理できることを確認している。
Stats
ブロック内のトランザクション数が10万件の場合、1000万アカウントでも1秒間に383,000件のトランザクションを処理できる。 ブロック内のトランザクション数が10万件の場合、10,000アカウントでは1秒間に476,000件のトランザクションを処理できる。 永続化のオーバーヘッドは、アカウント数が1000万件、スレッド数が64の場合で最大9%である。
Quotes
なし

Key Insights Distilled From

by Geof... at arxiv.org 04-05-2024

https://arxiv.org/pdf/2404.03201.pdf
Groundhog

Deeper Inquiries

Groundhogの並行実行モデルを、より一般的な状態マシンのパラダイムにどのように位置づけられるか

Groundhogの並行実行モデルは、従来の複製状態機械に基づく設計と比較して、新しい設計空間を開拓しています。従来のシーケンシャルなセマンティクスに縛られることなく、Groundhogはブロック内のトランザクションを並行して実行することができます。この点で、Groundhogは柔軟性とスケーラビリティを両立させており、トランザクション間の競合がスループットに影響を与えない点が特筆されます。従来のブロックチェーンの構造では、トランザクションの順序付けが重要であり、競合が発生すると処理が直列化されますが、Groundhogはこの制約から解放されています。

Groundhogの設計は、ブロックチェーン以外のどのようなアプリケーションに適用できるか

Groundhogの設計は、ブロックチェーン以外のさまざまなアプリケーションにも適用できます。例えば、金融機関の支払い処理、オークション、マーケットメイカー、アルゴリズムマネーマーケットプロトコルなど、さまざまな重要なアプリケーションを実装することが可能です。Groundhogの柔軟なセマンティクスは、これらのアプリケーションを効率的に処理し、スケーラビリティを確保することができます。さらに、外部サービスへのアクセスや外部情報の取得など、ブロックチェーン以外の領域でもGroundhogの設計は有用性を発揮します。

Groundhogの外部サービス呼び出し機能は、どのようなユースケースで有効活用できるか

Groundhogの外部サービス呼び出し機能は、例えば、外部情報に基づいたトランザクションの実行や外部サービスとの連携が必要なユースケースで有効活用できます。銀行業界においては、個人情報を保護しつつ、外部データベースから情報を取得してトランザクションを承認する場合などに活用できます。また、ブロックチェーン上での取引や契約において、外部の署名済み結果を取得して処理する際にも利用できます。この機能により、Groundhogはブロックチェーンの機能をさらに拡張し、外部サービスとの連携をスムーズに行うことが可能となります。
0