ZetaChainは、あらゆるブロックチェーンと接続するL1チェーンです。先日、ホワイトペーパーとdevnetの立ち上げが発表されました。本ブログでは、ホワイトペーパーの内容を簡単に要約してみようと思います。ものすごく内容を省いたので、逆にわかりにくくなってしまったり、内容の齟齬が生じてしまったりするかもしれません。予めご了承ください。
ホワイトペーパーとウェブサイトはこちら
本ホワイトペーパーでは、EthereumやSolana、さらにはBitcoinといった、あらゆるブロックチェーンと接続する汎用オムニチェーン型スマートコントラクト対応ブロックチェーンである「ZetaChain」を提案する。
ZetaChainは、PoS型ブロックチェーンで、オブザーバと署名者から成る。これにより、資産のラッピングまたはブリッジすることなく、直接的に異なるブロックチェーンと同士の相互作用するオムニチェーンdAppsを可能とする。
一つのブロックチェーンですべての需要に応えることはできず、マルチチェーンの未来は必然だ。そこで、ブロックチェーン間の相互運用性が重要になるが、今日存在するプロジェクトは、大半が特定のブロックチェーンにのみにしか対応していなかったり、安定性の低いブリッジを介する必要があったりする。本ホワイトペーパーでは、相互運用性を促進する新しいパブリックL1チェーンを提案し、クロスチェーンdAppsへの扉を開く。
ZetaChainのビジョンは、すべての主要なブロックチェーン上のパブリックコンピュータであり、その上にクロスブロックチェーンのdAppsが、パブリックで信頼できる持続的なスマートコントラクトとして容易に構築できるようにすることである。
Bitcoinは暗号学、行動経済学、コンピュータサイエンスの技術を駆使した公開台帳である。そのスクリプトはチューリング完全ではないものの、マルチシグや原子スワップなど、シンプルだが有用なアプリケーションをサポートしている。
Ethereumは任意の状態遷移関数を実装可能なブロックチェーンであり、Bitcoinで採用されたUXTOからアカウントベースへのシステムへ移行することで、表現豊かなアプリケーションのサポートを可能にした。
複数のブロックチェーンが混在する未来は確実であるが、各ブロックチェーンは閉じたシステムである。そこで、クロスブロックチェーンを実現する戦略として、サイドチェーン、リレー、公証スキーム、ハッシュタイムロックコントラクト、ブロックチェーン・オブ・ブロックチェーンズなどが挙げられる。
(本ブログでは省略します。)
ZetaChainは、Cosmos SDKとTendermint PBFTコンセンサスエンジン上に構築されたPoSブロックチェーンである。バリデータで構成され、関連する外部の状態やイベントに関してコンセンサスを得たり、分散型鍵署名によって外部のチェーンの状態を更新することができる。各バリデータにはZetaCoreとZetaClientが含まれ、前者はブロックチェーンを生成し、複製されたステートマシンを維持し、後者は外部チェーン上のイベントを観察し、アウトバウンドトランザクションに署名する。
バリデータ:ステーキングされたZETAコインに比例する投票力を持ち、ブロックの生成に参加する。
オブザーバ:ZetaChainが接続する外部チェーンのイベントと状態についてコンセンサスを得る。オブザーバはさらに、外部の様子を検証者に報告するシーケンサと、報告内容をZetaChain上でコンセンサスを得る検証者の二つの役割に分けられる。
署名者:ZetaChainは、外部チェーンとの認証された相互作用のための標準的なECDSA/EdDSAキーを集合的に保持する。ZetaChainを代表して署名できるのは、それらの過半数のみとなるように、複数の署名者にキーが配布される。
実際には、上記のシーケンサ以外は同じコンピュータノードに併設される。
オブザーバは、独立して外部チェーンの独自のフルノードを使用して観察し、最終決定とみなされる前にZetaChain上でコンセンサスを得る。そして、ZetaChainロジックの実行を自動的にトリガーする。
観察には、アクティブモードとパッシブモードの二つのモードが存在する。後者の「生存性がシーケンサに依存してしまう」という弱点を克服するために、参入障壁を取り除く工夫がされている。
ZetaChainは、外部チェーンの資金を管理し、特権アクション(焼却、造幣、ボールトからの資金移動など)を実行するために、外部チェーンのアカウントを保持する必要がある。アカウントを保持するために、ZetaChainは秘密鍵を持っている必要がある。単一障害点を避けるために、ZetaChainは分散型しきい値署名スキームを必要とする。これは、BitcoinやDogecoinのようなスマートコントラクトではないチェーンや、マルチシグの検証にコストがかかるスマートコントラクトプラットフォームをサポートするためにも必要である。
ZetaChainスマートコントラクトは、外部チェーンの状態と直接対話できるように設計されている。
汎用クロスチェーンスマートコントラクトプラットフォームを設計する上で、非同期性とプログラミングモデルという二つの重要な課題が存在する。前者は、他のチェーンの状態を問い合わせたり変更したりすることは非同期であるということを意味する。よって、状態変更は外部チェーンからのメッセージ(観測)によってトリガーされる。後者は、シンプルで堅牢なUTXOベースを採用すると、アカウントベースと異なり、Uniswapのような複雑なdAppsをサポートできなくなることを意味する。
本ホワイトペーパーでは、UTXOとアカウントベースのハイブリッドなアプローチを模索し、それぞれの長所を取り入れる。基本的には、UTXOを使用して外部ブロックチェーントランザクションを表現・追跡し、アカウントベースのスマートコントラクトを使用してロジックと共有グローバルステートを管理する。
ブロックチェーンをまたいだトランザクションの原子性をサポートし、安全性を確保するために、スマートコントラクト仮想マシンにいくつかの制約を設ける。主な制約事項は以下の通り。
各UTXOは、一つの出力イベントしか生成できない。
クロスブロックチェーンでの価値移転は、すべてZETAトークンでなければならない。
ZetaChainのトークンZETAは、ZetaChainスマートコンタクトのガス料金を支払うために使用され、さらにボンディング/ステーキング/スラッシングによってPoS ZetaChainブロックチェーンを保護するために使用される。ZETAはまた、ZetaChainのクロスチェーン転送、スワップ、メッセージ配信、およびセキュリティの中核をなす。ユーザーは、ZETAトークンを任意のチェーンAからチェーンBに直接移動できる。メカニズムは一方向のペッグである(つまり、チェーンAでX量を焼却し、次にチェーンBでX量を造幣する)。
以下の理由から、クロスチェーンで価値を表現するために、独自のトークンZETAを使用する。
ラッピングがないため、同じ原資産を二重に表現することがない。
クロスチェーンに移行できる(ネイティブな)価値はZETAトークン経由のみであり、攻撃対象が大幅に減少するため、結果として監査が簡便化し、セキュリティも高くなる。
ユーザーは、ZetaChainが提供するクロスチェーンサービスと、デスティネーションチェーン上のガスに対して、ワンステップ/バンドルでZETAを支払うことができる。
一つのチェーンから別のチェーンへ確実かつ安全にメッセージを渡すことができるため、ZetaChainのネイティブスマートコントラクトでなくても、強力なクロスチェーンアプリケーションを実現できる。ZetaChainシステムの特徴は、メッセージにZETAコイン(ネイティブクロスチェーン)の形で価値を付与でき、価値をクロスチェーンで移動する必要があるdAppsをかなり簡素化できることにある。メッセージパッシングにより、クロスチェーンDEX、貸付・借入、マルチチェーンNFTなど、様々な重要なアプリケーションを実現することができる。
Bitcoin、Dogecoin、Moneroなどの主要なブロックチェーンは、AMM取引所などの有用なアプリケーションをサポートできるほど一般的なスマートコントラクト機能を有していない。ZetaChainのクロスチェーンスマートコントラクト機能は、外部チェーン上の資産を直接保有し使用することができるため、ETH、ERC20、Algorand ASAなどの他のネイティブ資産に加え、ZetaChain上のネイティブBitcoinを管理するスマートコントラクトを可能にする。
ZetaChainは、スマートコントラクトの上に構築された真のクロスチェーンAMM分散型取引所を実現することができる。ZetaChain上でAMM DEXを構築する方法には、メッセージパッシングとネイティブZetaChainスマートコントラクトの二つがある。前者ではアセットプールは外部チェーン上のスマートコントラクトによって管理され、後者では、プールはTSSアカウントを介してZetaChainスマートコントラクトによって管理される。
マルチチェーンNFTの世界では、同じNFTのコレクションが複数のチェーン(Ethereum、Flow、Solanaなど)で発行される。あるNFTが他のチェーンに転送できる場合、ブリッジモデルでは、あるNFTの所有者は誰か、転送の取引記録はどこのチェーンにあるのかといった問題が生じる。この問題は、NFTのクロスチェーン所有権移転を促進するZetaChainスマートコントラクトによって解決できる。
ZetaChainのシステムは、主に分散化によって単一障害点を持たないように設計されている。ZetaChainはアーキテクチャ的にもインフラ的にも非中央集権的であり、ノードはパーミッションレスに運営される。
一方、外部のチェーンに変更を加える際には、署名鍵の集中化という問題が生じる。この問題は、GG20リーダレスしきい値署名スキーム(TSS)を利用することで解決を図る。
外部チェーン上の観察されたイベントは、ZetaCoreの状態変化を引き起こすために、ZetaCore上でコンセンサスを得る。また、ZetaCoreの状態変化により、ZetaClientの署名者は、トランザクションを準備・署名し、外部チェーンにブロードキャストする。ZetaChainのコンセンサスメカニズムは、トランザクションが合意されることを保証する。TSSキーは、ZetaClientsの超多数が署名できることだけを保証する。
ZetaChainノードは、ZETAトークンの造幣を開始する前に、チェーン全体の供給量をチェックする。ZETAの総供給量はChainlinkによって提供され、接続された各チェーンに提示される。この保護機能により、誰も恣意的に造幣することができず、ZETAの総供給量がチェーン間で固定されたままであることが保証される。
また、バリデータノードが攻撃者に制圧されるような最悪のシナリオにおいて危険にさらされる資金は、悪用された時点でクロスチェーンに移動しているZETAの量に限られる。静止している資金は危険にさらされない。
ZetaChainで接続された外部チェーンが攻撃された場合、二重支払い・検閲・原子性を喪失するような復帰・フォークといった違反が発生する可能性がある。しかし、ZetaChainは総供給量がチェックされるため、これらのケースのいくつかを軽減することができる。
ZetaChainは、ほとんどすべての既存または将来のブロックチェーンおよびL2ロールアップへの接続と、それらのチェーン上のネイティブ資産の全供給へのアクセスで構築される分散型クロスチェーンアプリケーションのための最も一般的なプラットフォームを提供する。