Validator income: separate protocol (i.e., network) fees from DIN issuance, stop calling both "rewards", and keep DIN for staking

未关闭
#340 0 条评论 0 个 reaction 已指派 3 人 在 GitHub 查看

维护者通常 1 天内回复

@umermjd11 已经在做这个了。

开始于 2026年11月13日。

评估

这个 Issue 还没有评估数据。

描述

enhancement

Decision

Validator income comes from two clearly separate sources:

  1. 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.
  2. 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).
  • DinEmission mints 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).
  • DinFeeRouter collects fees in DIN.
  • Dispute bonds are posted in DIN.

Questions to settle

  1. 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?
  2. 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?
  3. Contribution: what counts? For aggregators, revealing in a finalized batch (#335). What about auditors, uptime and consistency over time?
  4. 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)?
  5. Dispute bonds: keep them in DIN (like stake), or move them to the chain's native currency?
  6. 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 小时
30 天内合并 PR
43

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

InfiniteZeroFoundation/DevNet 的其他 Issue

查看 InfiniteZeroFoundation/DevNet 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。