Validator income: separate protocol (i.e., network) fees from DIN issuance, stop calling both "rewards", and keep DIN for staking
メンテナーはふだん 1 日以内に返信
@umermjd11 がすでに取り組んでいます。
2026年11月13日 から。
評価
この issue はまだ評価されていません。
説明
Decision
Validator income comes from two clearly separate sources:
- Protocol fees. Model owners pay for training rounds, and validators who did the work share them. Fees are paid in the native currency of the chain the protocol runs on (ETH on Optimism). While we're testing, a stablecoin may be used instead.
- DIN issuance. New DIN created on a fixed schedule over set periods, going to staked validators according to their measured, ongoing contribution, and added to their stake (similar to ETH issuance to Ethereum validators).
Separately:
- Gas is paid in the chain's native currency to the chain itself. It is not protocol income.
- Slashing is a penalty on stake for misbehaviour. It doesn't decide who receives fees or issuance.
- DIN (INZ after #281) is the staking token. It enters circulation through issuance, not as a payment for individual batches.
This builds on #283 (data owners: no rewards at launch, stablecoin if ever).
Language: why "rewards" is a problem
Today the code and docs use "rewards" for everything a validator receives (giRewardPool, claimReward, aggregatorWeight as a "reward weight", RewardEngine). That causes confusion in three ways:
- It blurs two different things: fees, which are paid by users for work done, and issuance, which is new DIN created by the protocol on a schedule.
- It suggests validators are paid in DIN for each batch, when DIN is meant to be the staking token.
- To outsiders it can read as a promised return or yield, which is not what either source is.
Proposed terms for code, docs and conversation:
| Use | Meaning | Avoid |
|---|---|---|
| Fees (protocol fees) | What model owners pay for a training round, shared among validators who did the work | "rewards" |
| Issuance | New DIN created on a set schedule, paid to stake by measured contribution | "rewards", "emission rewards" |
| Contribution | The measured work a validator did (e.g. revealing in a finalized batch, #335) | "reward weight" |
| Gas | Transaction costs paid to the chain in its native currency | "fees" when we mean gas |
| Slashing | A penalty on stake for misbehaviour | — |
"Rewards" should only be used, if at all, as a general word covering both fees and issuance, never for one of them on its own.
Where the code differs today (develop)
- Model owners fund each GI's reward pool in DIN (
DINTaskAuditor.depositRewards), and a GI can't start until it's funded (validateGIStart). DinEmissionmints DIN per GI, per model, on a decay schedule, and deposits it into that pool.- The pool is split by
aggregatorWeight(#335 now counts only aggregators who revealed). DinFeeRoutercollects fees in DIN.- Dispute bonds are posted in DIN.
Questions to settle
- Fees: switch fee payments and validator fee shares to the chain's native currency (ETH on Optimism), with the option of a stablecoin while testing? Should the fee currency be set per deployment, so the same code works on any chain?
- Issuance: move from per-GI, per-model emission into a reward pool to a network-wide schedule over fixed periods, paid to stake by measured contribution?
- Contribution: what counts? For aggregators, revealing in a finalized batch (#335). What about auditors, uptime and consistency over time?
- Renaming: which names change in code and docs, e.g. giRewardPool, claimReward, aggregatorWeight, RewardEngine, and when (before the DevNet 2.0 deploy, alongside the #281 rename, or later)?
- Dispute bonds: keep them in DIN (like stake), or move them to the chain's native currency?
- Does any of this block the DevNet 2.0 deploy (#284), or can it follow?
@umeradl, could you scope this and say which parts block DevNet 2.0?
- 主要言語
- Python
- スター
- 4
- フォーク
- 7
- 平均マージ
- 5日 15時間
- マージ済み PR(30日)
- 43
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
InfiniteZeroFoundation/DevNet のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
InfiniteZeroFoundation/DevNet#344 ·
メンテナーはふだん 1 日以内に返信
-
Update the 25 translated organisation READMEs to match the English version対応中かも @mrCabez が 15 日前に担当しました。 オープンgood first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
InfiniteZeroFoundation/DevNet#277 · コメント 3 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Make reference auditors honor `audit_scoring_policy` in the manifest対応中かも @0xzoz が 1 日前に担当しました。 オープンApproved
難易度 4/5 3〜5日 初心者へのやさしさ 54/100
InfiniteZeroFoundation/DevNet#330 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
Serialize only assigned audit examples, not the full parent dataset対応中かも @0xzoz が 1 日前に担当しました。 オープンApproved
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
InfiniteZeroFoundation/DevNet#329 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
Remove plaintext audit dataset keys from model-owner CLI output対応中かも @0xzoz が 1 日前に担当しました。 オープンApproved
難易度 4/5 3〜5日 初心者へのやさしさ 58/100
InfiniteZeroFoundation/DevNet#328 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
InfiniteZeroFoundation/DevNet の issue をすべて見る
似ている issue
-
Email validation accepts a trailing newline対応中かも @marcello-pichini が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
dbt-labs/spark-utils#51 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
bug frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
vendrabuck/HERD#1419 ·
メンテナーはふだん 1 日以内に返信