手数料
ZooBC のトランザクションはすべて ZBC で手数料を支払います。その最低額である下限は、トランザクション自体とネットワーク全体のいくつかのパラメータから、すべてのノードが同じ方法で計算するため、ウォレットは署名前にそれを知ることができます。下限を超えて申告した分は同じブロックで戻ってきて、保持された手数料は登録済みノードに報酬を支払う抽選に回ります。バーンされるものはなく、単一のノードや組織が手数料を取ることもありません。
最低手数料
下限は 2 つの部分から成ります。
floor = base action fee × fee scale
+ price of the body and message bytes, kept for the minimum window,
× number of registered nodes
- 基本アクション手数料は 2,500,000 アトミック単位(0.025 ZBC)です。タイプごとの基本手数料はありません。支払いも、トークンの発行も、マーケットの注文も、すべて同じ基本手数料から始まります。
- 手数料スケールは、レジストリの席が投票で決める送金手数料です。1.0 から始まり、30 日のサイクルごとに 1 回動くことができます(価格投票)。
- バイト料金は、トランザクションの本体とメッセージを、mainnet では 17,280 ブロック(3 日)の最小保持期間だけ、データセットの保存価格で保持する料金です。バージョン 0.5.8 以降、この料金は直前のブロック時点の登録済みノードの数を掛けたものになります。すべてのノードがそれらのバイトのコピーを保持するからです。
したがって、単純な支払いの下限は 0.025 ZBC をわずかに上回る額です。ノード API の GET /api/v1/blockchain/estimate-fee は、署名前に下限を返します。
下限より少なく申告したトランザクションは拒否され、それを含むブロックは無効になります。何も動かさない no-op トランザクションであるタイプ 0 も、ゼロより大きい手数料を支払わなければなりません。ノードが手数料の高すぎることを理由に拒否することはありません。1 つのトランザクションにまとめられた複数のアクションは、各アクションが単独で支払う額の合計を支払い、メッセージの料金は 1 回だけ課されます(1 ブロックにつき 1 アカウント 1 トランザクション、そしてバッチ)。また、計算されたすべての料金は、少なくとも 1 アトミック単位に切り上げられます。
超過分は返金される
下限より多く申告することもできます。ブロックが適用されると、申告した手数料の全額がアカウントから出ていき、下限を超える部分は同じブロックの中で、アカウントの履歴に別の返金エントリーとしてすぐに戻ってきます。たとえば、testnet で 0.02550004 ZBC を申告した支払いでは、0.02500003 ZBC が徴収され、0.00050001 ZBC が返金されました。したがって、誤って多く払いすぎても何も失いません。
その代わり、多く払っても得るものもありません。ノードの待機プールは、ノードが実際に受け取る手数料、つまり超過分は返金されるので下限の額を、バイトあたりで比べてトランザクションを順位付けします。同じ場合は到着順、次にトランザクション ID の順です。下限の 10 倍を申告しても、下限を申告したときと同じ順位になります。高い手数料で早い位置を買うことはできず、プールが満杯のときの追い出しを防ぐこともできず、他のトランザクションを押し出すこともできません。
手数料の行き先
ブロックが保持する手数料はすべて、新たに放出されたコインとロンジェビティプールの一部とともに、そのブロックの報酬プールに加わります。そして コインベース抽選 が、そのプールを登録済みノードの間で参加スコアに比例して分配します。ブロックを作ったノードに手数料への特別な権利はありません。手数料はバーンされず(ZBC は決してバーンされない)、ZooBC Foundation も取り分を受け取りません。
別の料金が 1 つだけ異なる仕組みです。組み込みのマーケットでは、取引のテイカー手数料(開始時は 0.1 %、テイカーが受け取る額から差し引かれます)がブロックの生成者に渡ります。メイカーは何も支払いません(マーケットと注文)。
手数料のかからない義務
トランザクションの中には、ノードが自分のためではなくネットワークのために行う仕事があります。これらの義務は手数料をちょうどゼロと申告しなければならず、登録済みノード自身のアカウント、つまりノード鍵から作られたアドレスから送られなければなりません。
- SubmitStorageProof:保存されたファイルのピースを保持していることのノードによる証明(分散ストレージプール)
- AttestEvent:イベントについてのノードのアテステーション。トリガー、ブリッジ、リリースの拒否がこれに依存します(トリガーとアテステーション)
- SetConsensusParam、FeeVoteCommitment、FeeVoteReveal:席による価格投票(価格投票)
- EquivocationReport:生成者が 1 つの親の上に 2 つのブロックに署名したことの証明(二重署名(equivocation))
- 手数料 0 の QueueAttendance として送られる、登録済みノードの生存のアテステーション(逃した番、一時停止、除名)
それ以外の手数料を付けた義務や、それ以外の鍵から送られた義務は拒否されます。無料だからといって無制限ではありません。ノードが保留できる義務は、義務の対象ごと(1 つのエポックの 1 つのストレージピース、1 つのイベント、1 つのパラメータ、1 つの投票時間枠)に最大 1 つで、義務はノードの待機プールの専用レーンを通るため、通常のトラフィックに押し出されることはありません。
その他の料金
一部の機能には手数料とは別に独自の料金があり、それらは決して返金されません。エスクローのレント(エスクロー)、プルーニングを越えてトランザクションを保存しておくロンジェビティデポジット(データ保持のための支払い(ロンジェビティ))、トークンの維持費(トークン維持費(存続))です。これらは最終的にロンジェビティプールに入り、プールはすべてのブロックでその一部をノードに支払います(プール)。