What Consensus Is
For each task that gathered at least three valid SSSAs, the validator computes a per miner consensus score in [0, 1]. This score multiplies the miner’s per task emission.The Seven Components
| Component | Weight | Compares |
|---|---|---|
| Findings recall | 0.30 | Did this miner find what most others found? |
| Findings precision | 0.15 | Did this miner avoid spurious findings? |
| Verdict agreement | 0.15 | Same ALLOW / BLOCK / REVIEW? |
| Capabilities agreement | 0.15 | Same declared capability set? |
| Risk score agreement | 0.10 | Same risk number? |
| Dependencies agreement | 0.10 | Same SBOM with same CVE annotations? |
| Policy agreement | 0.05 | Same enforcement policy? |
Canonical Finding Keys
Comparing findings across miners requires matching findings that describe the same risk even when miner A and miner B use differentdescription text or id values.
Each finding is reduced to a canonical key:
normalised(evidence_ref)strips the per miner span ID prefix and keeps just the file path + line rangesorted_cve_idsis the sorted CVE list referenced by the finding, if anytarget_patternis the resource (file path, URL, package) the finding refers to
Findings Recall
Findings Precision
Verdict Agreement
Capabilities Agreement
Risk Score Agreement
Dependencies Agreement
Policy Agreement
Worked Example
Amcp_server task receives three SSSAs from primaries P1, P2, P3 and two from auditors A1, A2.
Group canonical findings union (with majority threshold of 3 out of 5):
| Canonical key | P1 | P2 | P3 | A1 | A2 |
|---|---|---|---|---|---|
| tool_poison(getfile) | Y | Y | Y | Y | Y |
| dependency_cve(requests, CVE-X) | Y | Y | Y | Y | N |
| prompt_injection(manifest) | Y | N | Y | N | Y |
{tool_poison(getfile), dependency_cve(requests, CVE-X), prompt_injection(manifest)} (each appears in at least 3 of 5).
For P1:
| Component | Value |
|---|---|
| Findings recall | 3/3 = 1.0 |
| Findings precision | 3/3 = 1.0 |
| Verdict agreement | 1.0 (matched group verdict) |
| Capabilities agreement | 0.83 (one tool missing) |
| Risk agreement | 0.92 |
| Dependencies agreement | 1.0 |
| Policy agreement | 0.80 |
| Consensus | 0.95 |
| Component | Value |
|---|---|
| Findings recall | 2/3 = 0.67 (missed dependency CVE) |
| Findings precision | 2/2 = 1.0 |
| Verdict agreement | 1.0 |
| Capabilities agreement | 0.83 |
| Risk agreement | 0.85 |
| Dependencies agreement | 0.50 |
| Policy agreement | 0.50 |
| Consensus | 0.78 |
Why the Weighting Is Skewed Toward Findings
Verdict and risk score are scalar outputs that are easy to guess or copy. A miner who returns the majority verdict and the mean risk on every task earns 0.25 from those two components alone without doing any analysis. Findings (and their canonical keys) are the actual evidence the miner found. Weighting findings 0.45 in total forces miners to produce diverse, specific findings rather than just guessing the verdict. This is also why canonical keys includeevidence_ref. A miner who guesses “there is a tool poisoning finding” without identifying which tool would produce a different canonical key from miners who identified the specific tool, and would not match.
Collusion Resistance
The consensus score uses the whole group, not just the primaries. This means an auditor who diverges from the primaries reduces every primary’s consensus score by a small amount. For collusion to succeed, the colluding miners would need to:- Land in the same group together more than half the time (no, validators randomise auditor sampling)
- Predict the auditors in advance (no, auditors are random per round)
- Bias the validator’s group selection (no, deterministic primary selection plus random auditor sampling)
What’s Next
Verification Groups
Group composition and rotation.
Scoring
Per type Q axis formulas the consensus is layered on top of.
Reputation
How per type reputation evolves based on round outcomes.
Sandbox Reruns
The async layer that catches miners who diverge after the fact.