Zetachain architecture
https://www.zetachain.com/docs/developers/concepts/architecture/
バリデータ―ズというノード達によって構成されている。
このバリデータは、外部状態とイベントに関するコンセンサスに達するための分散型オブザーバとして機能し、分散型鍵署名によって外部のチェーン状態を更新することもできる。
各バリデータには、ZetaCoreとZetaClientが含まれる。
ZetaCoreは、ブロックチェーンを生成し、複製されたステートマシンを維持する。
ZetaClientは、外部チェーン上のイベントを観察し、アウトバウンドトランザクションに署名する。
バリデーターになるにはいくらかお金が必要そう
https://scrapbox.io/files/6485ecec03b086001ba3bba2.png
Validatorsの概観
ロールが三つある、1ノードがすべてをこなせないといけない。(シーケンサーは除く)
Basic Validator
ふつうにバリデーター。ブロック生成する。生成率(選出率)はステーク量に比例する。
Observer
外部チェーンのイベントや状態についてのコンセンサスを得る。
外部チェーンのフルノード(自身で建てる)を介して、txやアドレスを監視する役目。
また、SequenserとVerifierに分かれる。
Sequenser...シーケンサーは関連する外部チェーンのtx/イベント/状態を発見してVerifierに報告
Verifier...VerifierはZetaChainを検証して投票し、コンセンサスを得ます。
少なくとも1人のシーケンサーと複数のVerifierが必要。
シーケンサーは信頼される必要はないが、少なくとも1人の正直なシーケンサーが有効性のために必要。
シーケンサーの分散化が重要だなぁ
TSS Signer
ZetaChainは、外部チェーンとの認証された相互作用のための標準的なECDSA/EdDSAキーを集合的に保持している。
鍵は、そのうちの超多数だけがZetaChainを代表して署名できるような方法で、複数の署名者の間で配布される。
いかなる時も、単一のエンティティまたはノードのごく一部が、外部チェーン上でZetaChainに代わってメッセージに署名できないことを保証することが重要となる。
TSSについて
Zetachainでは、異なるチェーン間でtxを起こすために、その外部チェーン上のコントラクトの(或いはEOAの)秘密鍵等を保持する必要がある。
これを、マルチパーティ閾値署名(TSS)で可能にする。
分割されたカギはバリデーター全員で共有し、元の完全版の秘密鍵は誰も知ることができなくなっている。←どうやって?
Zetachain Validator-reqirement