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