価格投票
ZooBC のいくつかの価格は永久に固定されているわけではなく、ノードレジストリとその席 の席が投票で決めます。バージョン 0.5.8 以降、投票可能なすべての価格に 1 つのルールが適用されます。スナップショットサイクル(mainnet では 30 日)ごとに 1 回、各価格は集計対象の席の平均へ動きます。沈黙した席は現行価格として数えられ、平均をとる前にすべての票が、現行価格の最大 20 % 上から最低でもその半分までの範囲に制限されます。発行スケジュールから残高まで、それ以外のものはすべて、いかなる投票も届きません。
投票できるもの
| 価格 | mainnet での開始値 | 範囲 |
|---|---|---|
| 送金手数料(手数料スケール) | 1.0(投票では 0.01 ZBC と書きます) | 1 アトミック単位から 1 ZBC、つまり開始値の最大 100 倍 |
| アカウントレント | 1 期間あたり 0.01 ZBC | 1 期間あたり 1 アトミック単位から 10 ZBC |
| トークン維持費 | 1 期間あたり 0.1 ZBC | 1 期間あたり 1 アトミック単位から 10 ZBC |
| データセットの保存価格 | 1 期間・1 MiB あたり 0.05 ZBC | 1 アトミック単位から |
| 保存乗数 | 1.0 | 独自の範囲 |
| ゲートウェイステーク | 10 ZBC | 1 アトミック単位から |
| マーケット作成コスト | 50 ZBC | 1 アトミック単位から |
| マーケットのテイカー手数料 | 0.1 % | 1 から 100 ベーシスポイント |
| キューの最低額 | 100 ZBC | 1 アトミック単位から 250 ZBC |
送金手数料は、すべてのトランザクションの下限において、0.025 ZBC の基本アクション手数料に掛けられます(手数料)。キューの最低額は、ノードがキューに入れる最小のステークです(ノードの登録)。その他の価格は、それぞれの機能とともに説明しています。アカウントレントとプルーニング、トークン維持費(存続)、データセット、ゲートウェイ、マーケットと注文 です。
価格の動き方
一時停止中でない登録済みの席は、それぞれ 1 票を持ちます。これが集計対象の席です。サイクルの間、席は何度でも投票でき、最新の票が有効となります。サイクルの終わりに次のことが行われます。
- 各票が制限されます。現行価格の最大 20 % 上、最低でもその半分、そして常にその価格の下限と上限の範囲内です。
- 新しい価格は、集計対象のすべての席にわたる平均です。沈黙した席はそれぞれ現行価格として数えられます。
誰も投票しなければ何も変わりません。投じられた票の中央値でも、正確に 3 分の 2 の合意でも、最も高い票でも決まりません。
計算例
集計対象の席が 10 で、価格が 100 の場合です。
| 票 | 各票の数え方 | 新しい価格 |
|---|---|---|
| 2 席が 120 に投票し、8 席は沈黙 | 120、120、沈黙した各席は 100 | (2 × 120 + 8 × 100) ÷ 10 = 104 |
| 1 席が 10,000 に投票し、9 席は沈黙 | 120 | (120 + 9 × 100) ÷ 10 = 102 |
| 1 席が 0 に投票し、9 席は沈黙 | 50 | (50 + 9 × 100) ÷ 10 = 95 |
制限がなければ、10,000 という票による単純平均は 1,090 になります。制限を先に適用すれば、1 つの席が価格を動かせるのは、10 席のレジストリでは 1 ステップ分の最大 10 分の 1、100 席のレジストリでは 0.2 % です。
価格が動ける速さ
すべての席がステップいっぱいに投票しても、価格は 1 サイクルで最大 20 % しか上がらず、最大で半分までしか下がりません。10 倍に上げるには約 13 サイクル、10 分の 1 に下げるには約 4 サイクルかかります。
ZBC 建てのすべての価格は、1 アトミック単位(0.00000001 ZBC)まで投票で下げることができます。ZBC の価値が非常に高くなった場合、これらの価格はそれに合わせて下がることができるため、アカウントやデータセットの維持が実質的に法外な費用になることはありません。アカウントレントの 0.01 ZBC から 1 単位に達するには約 20 回の半減、つまり少なくとも 20 サイクルかかります。無料になるものはありません。計算されたすべての料金は、少なくとも 1 アトミック単位に切り上げられます。
投票の仕方
票は、席のノード鍵で署名された手数料不要の義務のトランザクションです(ノードの鍵)。送金手数料を除くすべての価格は、SetConsensusParam(タイプ 51)で投票されます。
送金手数料は、2 段階の投票を持つ唯一の価格です。
- サイクルの前半に、席は票の 32 バイトのハッシュだけを含む FeeVoteCommitment(タイプ 7)を送るため、値は隠されたままです。
- 後半に、値を含む FeeVoteReveal(タイプ 263)を送ります。
リビールは、そのハッシュが同じ席が同じサイクルに行ったコミットメントと一致する場合にのみ数えられ、席の最新の有効な票が使われます。その後、新しい手数料は他のすべての価格と同じように計算されます。
安全策
- レジストリの下限。 レジストリの席数または異なるオーナーアカウントの数が max(3, ジェネシスの最低数)、つまり mainnet では 7 を下回っている間は、レジストリ全体の決定は何も確定しません。1 人の運用者の 2 つの席は、この集計では 1 票です。
- サイクルに 1 回。 パラメータが変わるのはサイクルごとに最大 1 回で、常にその範囲内にとどまります。
- お金は席のもとにとどまる。 これらの価格で課された料金は、すべて登録済みノードに届きます。レントはロンジェビティプールを通じて、手数料は抽選を通じてです(プール、コインベース抽選)。
どの投票でも変えられないもの
すべてのノードが各ブロックのコインベースを照合する発行スケジュール(供給量と発行)、どのアカウントの残高、コンセンサスルールとそれが適用される高さ、そしてジェネシスです。これらはジェネシスとノードソフトウェアに付属するもので、どの投票も、どの鍵もそれを動かすことはできません(ZooBC Foundation)。席には価格以外にもう 1 つの投票があります。席の 3 分の 2 はソフトウェアのリリースを拒否できます(リリースとアップデート)。