ZooBC Foundation
ZooBC Foundation は ZooBC を支える組織です。各チェーンでノードレジストリの 11 のジェネシス席を保有し、公開のコマンドラインツールを公開しています。トランザクションや残高に対する特別な権限は持っていません。プロトコルは各鍵に 1 つの役割を与えており、どの鍵にもまったくできないこともあります。
ジェネシス席
各チェーンは、その ジェネシスブロック に書き込まれた 11 の登録済みノードから始まります。これがジェネシス席で、ZooBC Foundation が保有しています。それ以外の運用者はすべて、キュー(キュー)を通じて ノードレジストリとその席 に加わります。新規ノードを選ぶ者はおらず、プロトコルが定めるペースで 1 つずつ加入が認められます。mainnet では最初の新規ノードがジェネシスの 7 日後に加入し、その後は 600 日を集計対象の席数で割ったサイクル(7 日から 90 日の間に保たれます)ごとに 1 つ加入します。11 席が数えられている間はおよそ 54.5 日です(加入ペース)。この集計では、ジェネシス席は最大 11 までしか数えられません。
いったん加入が認められれば、アクティブな席はすべて同じ確率でブロックを作るよう抽選されます。ジェネシス席も他の席と同じルールに従い、新しいノードと同じ 20 % の 参加スコア から始まります。
ツール
ZooBC Foundation は公開のコマンドラインツールを、MIT ライセンスのもとで、C++、TypeScript、JavaScript、Python、Go、Rust、Kotlin、Swift、PHP、Perl の 10 の言語で github.com/zoobc/tools に公開しています。ツールは、どのアプリケーションとも同じように、ノードの公開 API を通じてのみノードと通信します(コマンドラインツール)。
鍵とその役割
ZooBC は各鍵に 1 つの役割を与えています。
| 鍵 | 役割 |
|---|---|
| リリース権限者 | ソフトウェアのリリースをそのファイルのハッシュで登録し、取り消すこともできる |
| トレジャリー | 通常のアカウント。保有しているものを支出する |
| マーケットメイカー | 通常のアカウント |
| ページ権限者 | チェーンのどのルールもこれを読まない |
| 席のオーナー | 自分のノードの登録、更新、鍵の変更、削除を行い、ノードの当選分を受け取る |
| ノード鍵 | ブロックを作り、レシート、アテステーション、投票に署名する |
バージョン 0.5.8 以降、4 つの役割鍵(リリース権限者、ページ権限者、トレジャリー、マーケットメイカー)は、3 つのチェーンすべてで 4 つの異なるアドレスを持ち、それぞれが専用のデバイスに保管されています。ジェネシスの構築ツールは、それらが異なることを確認します。4 つのうちチェーン上で権限を持つのはリリース権限者だけで、手数料を支払うためにジェネシス時点で最大 1,000 ZBC を保有できます。席はそれに対する抑止力を持っています。席の 3 分の 2 はリリースを拒否でき、3 分の 2 が 1 週間投票を維持すれば権限者を交代させることができます(リリースとアップデート)。
席のオーナーとノード鍵については ノードの鍵 で説明しています。
どの鍵にもできないこと
- コンセンサスに管理者鍵はありません。 ルール、パラメータ、残高が変わるのは、すべてのノードが検証するトランザクションか、席による範囲の限られた価格投票(価格投票)を通じてだけで、署名されたメッセージによって変わることは決してありません。
- ジェネシスは固定されています。 そのアカウント、席、パラメータ、ルールの高さは、チェーンの身元の一部です。
- ルールの有効化は、投票でも署名でも行えません。 自分のチェーンに記録されたルールの高さと食い違うノードのバイナリは、動作を拒否します。
- トレジャリーは発行できません。 新しい ZBC はコインベースのスケジュールからのみ生まれます(供給量と発行)。
- リリースの登録は助言的なものです。 自動更新を選んだノードを案内するだけで、それらのノードはハッシュをチェーンと照合します。運用者が選んだバイナリを動かしているノードは動かされません。
- トランザクションを承認する者はいません。 すべてのノードがすべてのトランザクションとブロックを同じルールで検証するため、ZooBC Foundation が支払いを承認したり、取り消したり、止めたりすることはできません。
これらの保証が成り立つのは、すべてのノードが動かすコードによるものであって、誰かの約束によるものではありません。新しい ZBC も、誰かがマイニングしたり販売したりするものではありません。固定されたスケジュールに従い、抽選によって登録済みノードにスコアに比例して支払われます(コインベース抽選)。