CantonとZenith EVM全体にわたる、エンドツーエンドのトークン化JGB担保ライフサイクル
Zenith Network

Zenithは、Progmatが主導するデジタルアセット共創コンソーシアムの「トークン化JGB/オンチェーンレポ」ワーキンググループに参加しています。同グループは、日本国債(JGB)の権利をトークン化し、ステーブルコインを活用したレポ取引における担保として活用する方策を検討しています。この取り組みは、残高250〜270兆円(約1.6兆米ドル)と推計されるJGBレポ市場を対象としており、決済の高速化およびプログラマブルな担保管理によって、効率性・流動性・アクセス性の向上が期待されています。
コンソーシアムへの貢献の一環として、私たちはトークン化JGBをRWAアセットとして担保ライフサイクル全体にわたって処理するエンドツーエンドのパイロットワークフローを構築・検証しました。このワークフローは、発行、DvPによる資産購入、担保化および借入、モニタリング、ならびに返済または清算による解消を含み、Canton NetworkとZenith EVMにまたがるものです。
ワークフロー要件
Zenithの役割は、CantonのアーキテクチャにおけるEVM実行環境を提供し、DamlワークフローとSolidityコントラクトをアトミックに接続するインテグレーションパターンを設計することでした。目的は、Canton上の規制対象アセットの状態が、CantonをカノニカルなコーディネーションおよびSettlementレイヤーとして維持しつつ、EVMベースの決済・信用機能を利用できるようにすることです。
対象ワークフローは、いずれの実行環境も損なうことなく、二つの実行環境を連携させる必要がありました。すなわち、アセットの発行・所有権・適格性・拘束(エンカンバランス)のプライバシー保護記録としてのCanton/Daml、およびDvPの現金レッグとレンディングのためのEVMスマートコントラクトです。
従来のブリッジやクロスチェーンプロトコルでは、一方のレッグがコミット済みであり他方がまだコミットされていないというウィンドウが生じ、実行リスクが発生します。さらに、トランザクションの一方のレッグが失敗した場合に部分的にコミットされた状態を元に戻すための複雑性も増大します。これを軽減するため、パイロットは以下の三つの主要な制御に焦点を当てました。
クロスドメインアトミシティ:Canton上のトークン化JGB購入と、Zenith EVM上のステーブルコイン決済レッグを、単一の不可分な操作として決済する。
EVMファイナリティハンドリング:Canton上でEVMの状態とファイナリティを検証する。
EVM状態およびイベントのDamlへの確実なデリバリー:Damlワークフローが必要なアクションをアトミックにトリガーできるよう、EVM側でローンのヘルスを読み取る。
これらの制御を実現する二つのパスがあります。
書き込みパス(Daml → EVM → Daml):DamlがEVM操作を開始し、EVM実行結果を自身が属する実際のDamlワークフローにフィードバックする。
読み取りパス(Daml ← EVM):Damlが処理の途中でEVM状態を読み取り、その結果に基づいて分岐する。これは、報告者を信頼するのではなく、オンチェーンソースから取得したステートルートに対して読み取りを行い、データを検証することでトラストレスに実装されます。
アトミシティの意味するもの
「アトミックスワップ」は、ハッシュタイムロックコントラクトや、独立したチェーン間のインテントベースの協調トランザクションによって構築されたワークフローに対して使われることが多い用語です。これらのメカニズムは、双方が最終的に完了するという経済的な保証を与えることができますが、各レッグは依然として異なるコンセンサスメカニズムによって異なる速度でファイナライズされます。一方のレッグが失敗した場合は部分的なコミットメントを元に戻す必要があり、ユーザーはサードパーティを信頼しなければならないことも多くあります。
Zenithのアーキテクチャはコンセンサスレベルのアトミシティを提供します:EVM実行とファイナリティは、独立したバリデータセットではなく、CantonのGlobal Synchronizerとコンセンサスによって完全に調整されます。
すべてのEVMブロックはCantonトランザクション内で生成されます。
順序付けられたEVMトランザクションのリストが、Canton上のZenithのブロックビルダーコントラクトに提供され、
上記コントラクトを実行するCantonバリデータがexternal_call()を通じてEVM実行をトリガーし、
これらのCantonバリデータが同じ入力でブロックを再実行し、結果をCanton上に記録します。
Canton上で新しいEVMブロックをファイナライズするには、2/3のクォーラムが必要です。
その結果として:
Damlトランザクションは、EVMブロック全体を含むことができ、Canton側の操作とEVMイベントはすべて、1つのアトミックトランザクションとしてコミットまたは失敗します。
Zenith上のEVMトランザクションは、Cantonの決定論的ファイナリティを数秒以内に継承し、リオーグなしで確定します。
エンドツーエンドのライフサイクルの検証
このパイロットは、単純な資産発行やクロスチェーンメッセージングを超えた検証を目的として設計されました。目標は、Cantonで発行された資産がEVMネイティブの現金と決済され、EVM上のレンディングアプリケーションで担保として利用され、最終的にローンの状態に基づいて解放または移転されるというエンドツーエンドのRWAライフサイクルを検証することでした。
結果として得られるフローは3つのステージで構成されています:発行と決済, 担保化と借入, そして モニタリングと解決。
資産発行

ライフサイクルはまず、TJGBに相当するRWAをDamlコントラクトとしてCanton上で発行することから始まります。このコントラクトは、保有者の適格性および移転制限とともに資産の所有権モデルをエンコードしており、これらの制限がEVMアプリケーションに委任されることなく、ライフサイクル全体にわたって強制可能な状態を維持します。
クロスチェーンの対払渡決済(DvP)
RWA資産を購入するための対払渡決済トランザクションは、CantonネイティブのRWA資産とEVM側のステーブルコインの間でアトミックに実行されます。
買い手は、決済コントラクトが必要なステーブルコインを移動・消費することを承認するEVMトランザクションを承認します。この前提条件が整った後、Canton側のsettleチョイスが交換を調整します。
アトミック決済フローは、RWA資産を買い手に移転するのと同じCantonトランザクションの一部として、ERC-20資産移転を含むEVMブロックをファイナライズします。
このようにして、DvPはアトミックに実行されます:配送レッグと決済レッグは同時にコミットされるさもなければ全くコミットされず、確定的なファイナリティをもって債券を買い手へ、USDCを売り手へ届ける。買い手は担保負担のない保有を確認する。
このパイロットはしたがって、Canton とZenith EVM をまたぐ決済が、一つの不可分な協調オペレーションとして機能するチェーン外の照合を必要とする二つの疎結合レッグとしてではなく、というDvPモデルを検証する。
担保設定と借入
ワークフローの第二フェーズでは、RWAアセットを自由譲渡可能な状態からEVMローンを裏付ける担保拘束ポジションへと移行させる。
このフローは三つのオペレーションを調整する。
ロックされたCantonアセットをZenith EVM上の担保として表現または登録し、
Solidityレンディングコントラクトから借入を実行し、
Cantonが当該RWAを担保拘束済みとして記録する前に、EVM借入レシートの成功を確認する。
RWAをZenithへ移動し、担保として預け入れ、目標EVMアドレスへ目標額を借り入れるという単一のCanton認可から、ワークフローはZenith上にある間に二重利用されないようCantonでRWAアセットをロックし、external_call()を通じて以下を実行する。
Zenith上にERC-20表現をミントし、
その表現をSolidityレンディングプロトコルへ預け入れ、
それを担保にステーブルコインを借り入れる。
Cantonバリデータがそれと同じトランザクション内でEVMブロックを検証・確定し、GatewayがレシートをVerifyしてCanton側のステートをコミットし、RWAを担保拘束済みとしてマーキングし、ローン参照とEVMステートルートをCantonに保存する。借り入れた流動性はZenith上で利用可能となる。
EVMレッグが拒否された場合、そのレシートは存在せず、ステップ全体がアボートし、どちらの側にも部分的にコミットされたステートは残らない。
Cantonからのローン監視
アセットが担保拘束されると、EVMローンのステートが時間とともに変化するにつれて、基礎となるRWAに何が起きるべきかをCantonが判断する必要がある。
Daml監視コントラクトが、Cantonに記録されたZenith EVMブロックハッシュの時点で、ライブのローンステート(未返済債務、担保価値、ヘルスファクター)を定期的に読み取り、それに基づいて分岐する。健全なローンは引き続き監視され、悪化しているローンはマージンコールを発生させ、閾値を下回ったローンは返済または清算へと誘導される。
この読み取りはトラストレスに実行され、ローンのヘルスチェックは参加者全体でレプリケートされ、EIP-1186証明もCantonにピン留めされたEVMブロックハッシュに対して検証される(詳細は次のセクションを参照)。
解決:返済または清算
モニターからライフサイクルは、相互に排他的な二つの分岐のいずれかをたどる。
返済と解放:借り手がZenith上で元本と発生利息を返済する。未返済債務がゼロになると、担保が引き出されて表現がバーンされ、Gatewayはバーンログをストアされたローン参照と照合し、担保拘束を解除してCanton上のRWAをアンロックする。
清算と移転。ヘルスファクターが閾値を下回ると、パーミッションレスの清算がEVM上の担保を差し押さえます。Gatewayは清算レシートに反応し、ロックされたCantonコントラクトに対して所有権の変更を記録し、Cantonが受取当事者のホルダー適格性チェックを経て最終的な権利を決済します。
いずれの場合も、ライフサイクルはホルダー、発行体、レンディングプロトコルへの通知と、Canton上に記録されたEVM状態ルートを含む監査ログによって完了します。
フェイルクローズド
パイロットはネガティブケースの検証も行います。注入された読み取りの不整合(参加者の1つの読み取りが意図的に1バイト破損)、未認可の読み取り、重複したモニター参照、および再生された決済試行はすべてフェイルクローズドとなります。
詳細:証人を信頼せずにEVM状態を読み取る
読み取りパスには、もう少し深い説明が必要な微妙な詳細がいくつかあります。Cantonトランザクションがoriginates、例えば借り入れを開始する場合、信頼すべきものは何もありません。選択は借り入れを含むブロックを確定させ、同じCantonトランザクション内でそのトランザクションのレシートを読み取るため、コミット時に成功が確認されます。しかし、返済と清算はサードパーティによって開始されます。Damlは、報告者を信頼せずにEVM上で何が起きたかをどのように知るのでしょうか?
答えは、このような読み取りをCanton自身が記録したEVMブロックハッシュに固定し、呼び出し元が提供するブロックセレクター、ターゲット、またはコールデータを受け付けないことです。ブロックハッシュはオンレジャーで導出され、呼び出しは読み取り関数によって固定されます。2種類の読み取りが同一の経路で実行されます。
observation readは、固定されたブロックのEVMノードに対してexternal_call()経由でeth_callを開始します。すべての検証参加者が呼び出しを再実行し、不整合があればトランザクションが中断されます。これにより、読み取りは複製された決定論的な観測となり、異議を唱える参加者を検出します。
trustless readは、値に対する残存する信頼を排除します。例えば、単一のデータソースしか存在しない場合でも、値を無条件に受け入れる代わりに、暗号証明をその値とともに取得し、その証明を固定されたブロックハッシュと照合します。証明はブロックから読み取られている正確な残高まで連鎖している必要があり、値が本物である場合にのみ一致します。値について嘘をつくソースは、ハッシュ関数自体を破ることなく一致する証明を偽造できません。値について嘘をつくデータソースは、keccak256の衝突なしに証明を偽造できません。残存する信頼は検証コードが正しいことのみであり、すべての参加者がそれを独立して実行します。
読み取られたEVMデータの鮮度は、Ethereumのライトクライアントからではなく、Cantonがコミットまで取得したブロックをアクティブに保つことから得られます。また、ブロックハッシュが信頼できる理由は、Zenithにおいては、Cantonのコミットがレストをカノニカルにするからです。これらが組み合わさることで、Damlが誰かに報告を信頼することなく、数値に基づいてマージンコールの発動、解放、または移転を分岐・トリガーできるのです。
現状:Zenith EVM Testnet
ここで示したパイロットワークフロー(アトミッククロスチェーンDvP、担保ライフサイクル、固定読み取りレーンなど)は、完全なローカルスタック上で実行されました。その作業が完了して以来、Zenithはさらなるマイルストーンに到達しました。公開Zenith EVM Testnetが2026年9月28日にローンチされました。
開発者は、使い慣れたEthereumツールを使用してSolidityスマートコントラクトをデプロイおよびインタラクションできるようになり、EVMブロックはCantonによって処理・確定されます。公開testnetは、Zenith Gatewayを通じてCantonとZenith EVM間の登録済みトークン転送もサポートしています。
詳細は Zenith EVM Testnetドキュメントをご覧ください。
さらに詳しく
• Zenith、Canton Network上で1.6兆ドルのJGBレポ市場をトークン化するため日本のメガバンクコンソーシアムに招待される
