Replay sampling
Validators sample ≥10% of inferences per epoch and replay them on independent hardware.
Selection (RFC-0006)
Target commit-reveal randomness from RFC-0006:
- Per epoch, each validator commits
H_i = BLAKE2(secret_i). - One epoch later, each reveals
secret_i. Defectors lose one epoch's emissions; 2nd offense loses permit. epoch_random = XOR(all revealed secrets).- Per-receipt sample selection: stake-weighted Fisher-Yates seeded by
BLAKE2(epoch_random || receipt_merkle_root || batch_id).
The current pallet-yuma-consensus runtime surface implements governed validator admission, top-K permits, weight submission, and incentive computation. RFC-0006 commit/reveal extrinsics are not in the pallet yet.
Replay process
For each sampled receipt:
- Pull receipt blob from
chain-indexeror operator's pinned URL. - Re-fetch
(model, adapter)frompallet-model-registrycontent-addressed URLs. - Replay using exact environment (
model_weight_hash,kernel_pack_hash,gpu_model,driver_version,cuda_version). - Compare
response_hashandlog_probs_sampleper-tier float ε. - Mismatch → submit slashing extrinsic (RFC-0005).
Sample rate by tier
| Tier | Min sample |
|---|---|
| dc-premium | 10% |
| dc-standard | 10% |
| cloud-rented | 15% |
| prosumer | 25% |
Independence requirement
A validator's worker pool must be independent of the operator being audited. Otherwise a colluding validator could pass everything. The validator-watcher flags subnet correlation between validator + operator and reduces the validator's score weight.