Files
neuron-tai/docs/adr/0018-fraud-detection-verification-and-reputation.md
D.Popov 68e057209c Add alpha-hardening ADRs and issue plan from pre-release audit.
Lock alpha scope, tracker auth, TOPLOC fraud verification, and deferred multi-tracker money-path work; supersede legacy fraud issues with ADR-0018.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 23:12:09 +03:00

5.5 KiB
Raw Blame History

ADR-0018: Fraud detection, verification, and reputation

Status: Accepted

Context

ADR-0003 established optimistic sampling with stake slashing; ADR-0015 replaced stake with pending-balance forfeiture as collateral. Pre-alpha audits identified two distinct fraud types:

  1. Correctness fraud — wrong model, layer-skipping, garbage outputs.
  2. Accounting fraud — inflated token counts or shard-span work units reported by nodes.

The validator today compares final text only and always blames the last hop (_final_text_node in packages/validator/meshnet_validator/__init__.py ~137140) — wrong for multi-hop pipelines.

Research (.scratch/alpha-hardening/research-verifiable-inference.md, 2026-07-04) grounds the alpha design in deployed patterns (Prime Intellect TOPLOC, Hyperbolic PoSP, Gensyn Verde blame patterns). This ADR is the flagship decision record for alpha hardening.

Decisions

1. Anchor technique: optimistic accept + teacher-forced audit

  • Default audit probability p ≈ 5% — a budget target, not a hard cap. Anomalies, low reputation, and disputes escalate rate; veterans floor at ≥ 2% (research §6, §8).
  • Deterrence condition: at p = 0.05, penalty L must exceed L > g·(1p)/p ≈ 19× per-job gain g (research §1.1). Full pending forfeiture is the primary penalty; three strikes → ban. The ×0.8-per-strike multiplier applies to routing/payout weight (reputation decay), not to the forfeiture amount.
  • Single-tracker alpha: the tracker (or a designated reference node) is the auditor — no verifier market, no verifier's dilemma (research §1.1).

2. Detection primitive: ADOPT TOPLOC

  • pip install toploc (MIT, PrimeIntellect-ai/toploc) for activation fingerprint commit + verify (research build-vs-adopt table).
  • Teacher-forced prefill re-verification — compare in logit/activation space with tolerances, never free-running token equality (research §2).
  • Pin one canonical precision/quantization per served model; TOPLOC detects precision drift by design.
  • Per-hop boundary fingerprints extend TOPLOC's final-hidden-state encoding for multi-hop blame (research §1.2, §8 layer 1).

3. Commit layer: on-demand activation commitments

  • Nodes commit compact TOPLOC-style fingerprints of output boundary activations per hop when selected for audit (on-demand, not every request — lower serving latency; brief retention window for recent activations).
  • Commitments are audit pins, not proofs — correctness requires independent recomputation (research §4).

4. Blame layer: hop-boundary bisection (adapt Verde pattern)

On audit failure:

  1. Referee (tracker) teacher-forces claimed token sequence through reference model.
  2. Compare committed hop-boundary fingerprints to reference at each cut-point.
  3. First divergent hop is the culprit — fixes _final_text_node last-hop-only bug.
  4. Full interactive Truebit/Verde on-chain game and bitwise RepOps kernels: roadmap-only (research §1.2, §9).

5. Accounting fraud: tracker-authoritative metering

  • Token counts come from the tracker's proxied stream/non-stream response parsing (server.py ~18901943), not node self-reports.
  • Work units derive from tracker-assigned shard span at route construction (server.py ~17761782), not node-declared ranges at billing time.
  • See issue H2.

6. Reputation model (graduated, persisted)

Reputation derives only from tracker-verified audit outcomes + uptime/latency — never peer ratings (research §6, collusion surface).

Signal Effect
Clean audits Slow reputation build; higher routing weight
Strike ×0.8 routing multiplier per strike (graduated decay)
Failed audit Full pending forfeiture + strike; audit rate → maximum
Ban (3 strikes) Registration rejected; excluded from routes; pending never paid
New/low reputation Elevated audit rate (2030% target for newcomers)
Inactivity Reputation decay

Persist strike/ban/reputation in SQLite alongside billing (issue A1/A5). Probation (first N jobs unpaid) retained as re-entry cost.

7. Passive tripwires

Perplexity/repetition/truncation heuristics on all traffic raise audit rate without direct punishment (research §8 layer 5).

8. Roadmap-only (explicitly NOT alpha)

  • zkML proofs of LLM inference (research §1.3)
  • GPU TEE attestation on consumer cards (research §1.4)
  • Fully trustless Verde interactive games + RepOps bitwise kernels (research §9)
  • Decentralized verifier markets
  • Peer-rating reputation (EigenTrust)
  • PoW as correctness proof — registration-time hardware attestation only, optional (research §4)

Consequences

  • Validator must be rewired: TOPLOC verify, hop blame, tracker-authoritative events — not string compare on final text alone.
  • Threshold calibration requires an honest-noise corpus across the volunteer fleet before production thresholds (research §8).
  • ADR-0003 remains historical; penalty mechanics follow ADR-0015 + this ADR.
  • Implementation order: auth + persistence → accounting → TOPLOC → bisection → reputation routing (.scratch/alpha-hardening/README.md).
  • Research: .scratch/alpha-hardening/research-verifiable-inference.md (§8 recommended scheme, §9 roadmap, build-vs-adopt table)
  • ADR-0015 (forfeiture collateral)
  • ADR-0016 (alpha scope)
  • ADR-0017 (validator/forfeit auth)
  • Issues: 06-fraud-toploc-integration.md through 10-fraud-penalty-calibration-wiring.md