ZenithはCantonとZenith EVM間のアトミックトランザクションフローを実証
Zenith Network

CantonとZenith EVM間のアトミックトランザクションフロー
CantonにEVM互換性をもたらすための取り組みの中で、Zenithでは、Cantonテスト環境上でCantonとZenith EVM間のエンドツーエンドのトランザクション処理を実装しました。本日のブログでは、CantonとZenith EVMにまたがるZenithのアトミックトランザクションフローについて詳しく解説します。
Zenithとは?
ZenithはCanton NetworkをEVM環境で拡張し、その後まもなくSVMにも対応します。これによりEthereumアプリケーションをCantonに導入し、開発者がCantonとアトミックに連携するEVMアプリケーションをデプロイできるようになるとともに、企業がCantonサブネットと組み合わせ可能な独自のプログラマブルEVM環境を運用できるようになります。
Zenithがアトミックコンポーザビリティを実現する仕組み
Zenithの中核的な設計原則の一つは、すべてのEVMアクティビティがCantonを経由してルーティングされ、Canton MainNet上でも決済されるという点です。そのため、Zenith EVMはCanton上のEVMベースのサブネットに非常に近い存在です。
Zenith EVMとCanton間のアトミックコンポーザビリティは、ZenithがCantonのネイティブ言語であるDamlで実装したexternal_call()プリミティブによって実現されています。この関数により、DamlコントラクトがEVM実行環境を決定論的に呼び出すことができます。
- これはネイティブEVM実行の結果をCantonに確認するため、およびCanton上のEVMのDamlコントラクトでEVMステートルートを検証するために使用されます。
external_call()プリミティブはCantonのネイティブな二段階検証プロセスに従っており、追加の信頼前提を導入しません。
- サブミッターは解釈処理中に関数を実行し、その結果(およびオプションでそのハッシュ+メタデータ)をトランザクションビューの一部として含めます。
- 各バリデーターは同じexternal_call()をローカルで再実行します。
- いずれかのバリデーターが異なる出力を得た場合、既存のDamlプリミティブと同じ決定論ルールを反映して検証が失敗します。
アトミックコンポーザビリティの動作を実際に確認するには、トランザクションライフサイクル全体の追跡を可能にする社内testnetのパブリックエクスプローラーをご覧ください:https://explorer.zenith.network/

テスト環境
社内テスト環境は、ローカルのマルチノードCantonテストネットワークであり、CantonとZenith間のトランザクションフローのエンドツーエンド実装と、そこにデプロイされたZenith EVMを含んでいます。
このnetworkは以下で構成されています:
- メッセージパッシングの促進、トランザクションの順序付け(シーケンサーとして)、およびコンセンサスとファイナリティの確認(メディエーターとして)を行うシンクロナイザー。
- 注:シーケンサーとメディエーターは、Cantonシンクロナイザーノードが担う「ロール」または「機能」です。
- 外部呼び出しおよびEVMイベントを含むすべてのトランザクションをエンドツーエンドで再実行する2つのCanton参加者ノード(Validator 1およびValidator 2)。
- 外部呼び出しを再実行せずにトランザクションを検証するCantonオブザーバー。
- EVMノード、リレイヤー、および外部コールサーバー(ECS)は、2つのCantonパーティシパントノードによって運営されています。
外部コールとEVM実行
前述のとおり、すべてのEVMトランザクションはCantonを経由してルーティングされ、ネイティブのCantonトランザクションにラップされます。そのため、Canton上でZenith EVMコントラクトをホストするCantonパーティシパントは、CantonとZenith EVM間でトランザクションを実行するために、EVMノード、リレイヤー、および外部コールサーバー(ECS)も運営しています。
執筆時点で、現在のテストネットワークインスタンスを通じて100K件以上のEVMトランザクションを正常に処理しており、一般的なレイテンシは400msから1.5秒の間で変動しています。(注:EVM実行時間の最適化には一切時間を費やしていません。)

CantonとZenith間のトランザクションライフサイクル
例としてこのトランザクションを見てみましょう:
- Canton update ID: 1220fd2553b5b39d2154f79d05fc058c906672e285bba0adcbc68d3b2d1a8ee967ba
- EVM tx hash: 0x96b71ed28b7d593c5d78dfc76fef0dae2a35dc39284908ec7cb8c2fb52bb5f2f

このトランザクションはEVM側から直接開始され、Cantonのコンセンサスを通じて処理されます。トランザクションフローは以下のとおりです:
- EVMノードは受信トランザクションをリッスンします。
- リレイヤーは、ラップされたEVMペイロードを、Canton上でシーケンス処理を行うシンクロナイザーに送信します。
- Validator 1(Canton上でZenith EVMコントラクトをホストするCantonパーティシパントの1つ)
- Cantonトランザクションを受信し、
- ECSを通じてexternal_call()を開始し、
- EVMノード内でEVMトランザクションをネイティブに実行し、
- 結果(txハッシュおよびメタデータを含む)をトランザクションビューに含め、サイドエフェクトをCantonノードに渡します。
- Validator 2 (Zenith EVMコントラクトをテストネットワーク上でホストするもう一方のCanton参加者) は、Validator 1と同じ手順でトランザクションを再実行します。
- Observer は、他の参加者が投稿したEVM結果を使用してトランザクションを検証します。
- シンクロナイザー(メディエーターとして)はすべての署名を確認し、ファイナリティを確定します。
- 新しい状態ルートが更新され、EVMブロックが公開されます。

EVMイベントは、ネイティブCantonトランザクションのオペレーションツリー内でアトミックに実行され、エンドツーエンドの処理時間は650ミリ秒でした。

Cantonから開始されたEVMトランザクション
上記の例では、EVMを通じて開始されたトランザクションのフローを説明しており、処理されるためにCantonを経由してルーティングされます。
逆に、CantonユーザーがCantonでトランザクションを開始し、それがEVMイベントをトリガーする場合、フローは非常に似ていますが、考慮すべきいくつかの重要な違いがあります。EVMノードを実行していないCanton参加者が、ラップされたEVMペイロードを含むトランザクションを送信できるようにする必要があるためです。この場合、最初のステップは次のようになります:
- ユーザートランザクションを受信したCanton参加者は、EVMに対応した参加者ノード(例:Validator 1)の/prepareを呼び出します。
- Validator 1はEVMを実行してトランザクションを生成しますが、送信する代わりに、最初の参加者に返送します。最初の参加者はそれを検査して署名し、シンクロナイザーにトランザクションを送信します。
- この時点から、プロセスは前述の例のステップ3から6へと続きます。
これにより、すべてのCanton参加者がEVMペイロードを含むトランザクションを送信できるようになり、真のアトミックな相互運用性が実現します。
次のステップは?
external_call()プリミティブがCanton TestNetに展開された後、Canton TestNet上にZenith EVMを直接デプロイするtestnetを立ち上げます。
並行して、Zenith EVMをプロダクショングレードにすることに注力しています。Zenithは2026年第3四半期初頭にCanton MainNetで稼働開始する予定です。
私たちは、企業、開発者、エコシステムパートナーと緊密に連携し、さまざまな市場やユースケースにおける実際の活用と普及を加速することにコミットしています。
ブロックチェーンソリューションを検討している企業、革新的なアプリケーションを構築している開発者、またはデジタルファイナンスの未来を形作るCantonエコシステムのコントリビューターの方、ぜひご一緒に取り組みましょう。
お問い合わせ Zenithがあなたのアプリケーションをどのようにサポートできるかをご検討ください。
About Zenith:
Zenith は、Canton Network の EVM および SVM 実行レイヤーであり、オンチェーンでの実世界の資本市場イニシアチブを推進します。
「Zenith によるアトミックに合成可能な EVM、および計画中の SVM 実行の追加は、ネットワークのユーティリティを高める形で Canton の機能を拡張します」と Digital Asset のネットワーク戦略責任者である Eric Saraniecki は述べています。「これにより、開発者は Canton ベースのインフラとアトミックにインタラクションできる Solidity アプリケーションをデプロイできるようになり、確立された金融ビルディングブロックを、すでに実世界で大規模に稼働している機関グレードのレールにもたらします。」
Zenith の詳細はこちら:ウェブサイト | ドキュメント | GitHub | Blog | X (Twitter) | Telegram | Discord
