ZooBC ウィキ
セキュリティとアーキテクチャ

3 分の 2 ルール

ZooBC で起こることのほとんどは、投票をまったく必要としません。抽選された 1 つの生成者が各ブロックに署名し、すべてのノードがそれを確認します。しかし、レジストリ全体を代表する決定もあります。履歴を確定させるチェックポイント、別のチェーンへの入金に対してミントされるコイン、欠陥のあるリリースの拒否です。これらについて、ZooBC は 1 つの基準を使います。登録済みの席の 3 分の 2 です。席が 11 なら 8 です。

3 分の 2 が適用される場面

決定必要なもの
スパインブロックの保存署名者リスト全体の 67 %(切り上げ、11 のうち 8)の共同署名。スパインブロックのない期間が 3 つ続いた後に限り過半数(11 のうち 6)。5 を下回ることはない
ブリッジの入金の記帳、ブリッジの出金の解放レジストリの 3 分の 2 のアテステーション。それぞれノード鍵で署名される
1 日の上限を超えるブリッジのミント一時停止中でないすべての席
支払いを引き起こすオラクルの事実の確定アクティブなレジストリの 3 分の 2 が同じ値をアテステーションすること
リリースの拒否登録済みの席の 3 分の 2 が拒否をアテステーションすること
リリース権限者の交代同じ 3 分の 2 の定足数。最も古い票が 1 週間経過してはじめて数えられる
新しいルールのバンドルの有効化登録済みの生成者の少なくとも 3 分の 2 が、最近、新しいバージョンでブロックを作っていること

より詳しく説明します。

  • スパインブロック。 基準は max(spine_min_signatures, ceil(n × 67 / 100)) で、n はスパインの署名者リストにある席の数です。つまりリストの 67 %(切り上げ)です。各署名者は署名する前に、ブロックの内容を自分自身のチェーンと照合します。スパインチェーン を参照してください。
  • ブリッジ。 そのルールはバージョン 0.5.8 以降ノードに含まれています。ノードの横で動くキーパーのプログラムが、もう一方のチェーンのカストディアドレスを監視し、手数料不要のアテステーションで投票します。集計対象の席、つまり一時停止中でない登録済みノードの 3 分の 2 が同じトークン、金額、受取人をアテステーションすると、入金は 1 対 1 で、ブリッジ手数料なしでミントされます。あるコインの 1 日のミントが、コイン 1 枚分とその供給量の 10 % のうち大きい方を超えてしまう場合は、一時停止中でないすべての席が同意しなければなりません。各チェーンはバージョン 0.5.8 で再始動しますが、その際ブリッジのサービスは開始されません。ブリッジとラップドコイン を参照してください。
  • オラクルの事実。 登録済みノードがイベントをアテステーションします。アクティブなレジストリの 3 分の 2 が同じ値をアテステーションすると、イベントは確定し、それを指定する保留中のトリガーがすべて支払われます。トリガーとアテステーション を参照してください。
  • リリース。 席の 3 分の 2 がアテステーションした拒否は、リリース権限者自身による取り消しとまったく同じようにリリースを取り消します。新しいリリース権限者を指名する投票は、最も古い票が 1 週間(40,320 ブロック)経過してはじめて数えられるため、現在の権限者は事前にそれを察知できます。リリースとアップデート を参照してください。
  • 準備判定ゲート。 新しいコンセンサスルールのバンドルが有効になるのは、少なくとも ceil(2 × R / 3) の異なる登録済み生成者が、max(720, 5 × n) ブロックの最近の時間枠の中で新しいバージョンでブロックを作ったときだけで、リリースが登録されてから 1 日経つまでは有効になりません。ここで R は一時停止中でない登録済みの席の数、n は登録済みノードの数です。
決定の表:スパインブロック(一時停止中の席も数えられる)、ブリッジの入金または出金、リリースの拒否、オラクルの事実には 3 分の 2 が必要です。通常のブロックと投票可能な価格には必要ありません。
決定の表:スパインブロック(一時停止中の席も数えられる)、ブリッジの入金または出金、リリースの拒否、オラクルの事実には 3 分の 2 が必要です。通常のブロックと投票可能な価格には必要ありません。

一時停止中の席の数え方

バージョン 0.5.8 以降、一時停止中の席(逃した番、一時停止、除名 を参照)は、すべての 3 分の 2 の集計から外れます。投票もせず、総数にも数えられません。スパインは意図的な唯一の例外です。スパインは一時停止中かどうかにかかわらず署名者リストのすべての席を数え続けるため、スパインのチェックポイントは常にすべての席の 3 分の 2 を代表します。

レジストリの下限

レジストリ全体の決定には下限もあります。レジストリの席数または異なるオーナーアカウントの数が max(3, min_registry_size)、つまり mainnet では 7 を下回っている間は、レジストリ全体のアテステーションは何も確定しません。1 人の運用者の 2 つの席は、オーナーの集計では 1 票です。

3 分の 2 を必要としないもの

  • 通常のブロック。 シードによって抽選された 1 つの生成者が署名し、すべてのノードがそれを確認します(抽選 を参照)。
  • 投票可能な価格(アカウントレントや送金手数料など)。サイクルごとに 1 回、各価格は集計対象の席の票の平均へ動き、各票はまず最大 20 % の上昇または半分への引き下げまでに制限されます(価格投票 を参照)。

ノードが自分のために行う確認の中にも、3 分の 2 かそれに近い基準を使うものがありますが、それらはコンセンサスではなくローカルなポリシーです。遅れたノードは登録済みピアのサンプルの 3 分の 2 が報告する先端に従います。スナップショットの確認の拡大ラウンドでは、回答したピアの 3 分の 2 が必要です(スナップショットとファストシンク を参照)。そしてノードのフォークの問い合わせには、投票したピアの少なくとも 0.66 が必要で、これは 3 分の 2 をわずかに下回ります。

3 分の 2 の裏側

3 分の 2 という基準は、3 分の 1 をわずかに超える席が、一緒に行動するか単に投票しないことで、決定を止められることを意味します。スパインについては、停滞した期間が 3 つ続いた後に過半数へ下がるフォールバックによってこれが和らげられています。準備判定ゲートには期限がないため、3 分の 1 をわずかに超える席でアップグレードを止めることができます。

関連項目