Skip to content

Auditor

umeradl edited this page Jul 8, 2026 · 1 revision

Auditor

Auditors are the network's quality control: staked validators who evaluate the local models submitted by Clients and decide, by score and vote, which contributions are good enough to enter the global model. Without them, one poisoned submission could corrupt the model everyone shares — the audit phase is what makes open participation safe.

Like Aggregators, auditors are validators with skin in the game: they stake DIN tokens in DinValidatorStake, and misbehavior — failing to evaluate an assigned batch, or scoring against the consensus — is punished by slashing that stake.

Becoming an auditor

dincli auditor dintoken buy <amount_eth>     # exchange ETH for DIN
dincli auditor dintoken stake <amount>       # stake (approval + stake in one command)
dincli auditor register <model_id>           # register for the current GI (window must be open)

Staking is once (topped up as needed, minimum 10 DIN per stake call, 7-day unbonding on exit); registration is per model, per Global Iteration, and only while the model owner has the auditor registration window open.

The job: evaluate a batch

After the LMS phase closes, the model owner forms audit batches — each batch is a random set of submitted local models assigned to a small group of auditors, with a test-dataset CID to evaluate against. For each model in the batch, the auditor:

  1. fetches the local model and test data from IPFS,
  2. runs the model owner's scoring function (in a sandboxed Worker Node) against the test data,
  3. submits on-chain a score (0–100) and an eligibility vote (does the model conform at all?).
dincli auditor lms-evaluation show-batch <model_id>          # see your assignment
dincli auditor lms-evaluation evaluate <model_id> --submit   # evaluate & record on-chain

A local model is approved for aggregation only when a quorum of its batch's auditors has voted, the eligibility majority passed it, and its final average score meets the pass threshold. Multiple independent auditors per model means no single auditor decides anything — and disagreeing with the majority is visible on-chain.

What gets an auditor slashed

At the end of each GI, the model owner triggers slashing against auditors who:

  • failed to participate — registered for the GI but did not evaluate their assigned batch, or
  • scored dishonestly — submitted results inconsistent with the consensus of their batch.

Slashing is executed by the model's DINTaskCoordinator (an authorized slasher) against the auditor's stake — including any stake in the unbonding queue, so exiting doesn't dodge the penalty.

Further reading

Clone this wiki locally