Proof of Quality

Consensus simulator

Walk a Proof of Quality review end to end — from the finding under review to the final verdict. Booted with an example security-audit project; change anything.

Step 0

The sample project

This simulator is set up as a security audit. Each datapoint is a single vulnerability — here, one flagged by an AI agent — and a panel of validators reviews the agent's report before the finding is trusted.

Sample evidencefinding #4213 · reported by AI agent

Reentrancy in withdraw() — an attacker can re-enter before the balance updates and drain the pool.

function withdraw(uint256 amount) external {
    require(balances[msg.sender] >= amount, "insufficient");
    (bool ok, ) = msg.sender.call{value: amount}("");   // external call first
    require(ok, "transfer failed");
    balances[msg.sender] -= amount;                     // state updated too late
}
AI agent reportwhat the agent claimed
ValidityValid
SeverityCritical
Confidence92%

In the steps below, each validator says whether they agree with the agent's report — its validity, severity, and confidence — and those votes resolve into a verdict in the Result.

Step 1

Validator classes

Classes are personas defined once — human or AI, each with its own vote weight. Which classes review (and how many) is decided per round below, not here.

Step 2

Escalation ladder

Round 1 is the base review. Each escalation step below is run in order, but only while the datapoint stays unverified — any required dimension below its strength threshold. When a step runs, its validators are added and every dimension is re-scored.

Round 1 · base
Escalation step 1

Run only if the datapoint still isn't verified after round 1

Step 3

Rubric dimensions

Define what validators score. Each dimension is scored independently and has its own strength threshold. Its group signal is a weighted median of the votes (snapped to the nearest scale point) — robust to a single outlier — and strength is the share of weighted votes clustered near that value. If any required dimension misses its threshold, the whole datapoint isn't verified and the next escalation step is added. Cast the votes in Step 4.

Required
Scale labels (low → high)
Required
Scale labels (low → high)
Required
Scale labels (low → high)
Step 4

Cast validator votes

Each validator scores every dimension on the sample finding. Escalation rounds only count once the earlier rounds leave the datapoint unverified — see how each dimension resolves in the Result below.

Round 1 · base review

AI Validator 1

AI Validator 2

Security Analyst 1

Security Analyst 2

Round 2 · escalationNot needed

Not needed — the finding was already verified in round 1, so these votes don't count toward the outcome.

Senior Security Analyst 1

Result

Project outcome — this datapoint

The verdict for the single sample finding above. A real project runs this same review on every datapoint it ingests.

Accepted100%

Every required dimension reached the strength threshold.

Do you agree with Validity?

Resolved · Agree
DisagreeAgree
Strength100%
Resolved inRound 1/2
Counts

Do you agree with the Severity?

Resolved · Agree
DisagreeAgree
Strength100%
Resolved inRound 1/2
Counts

Do you agree with the Confidence level?

Resolved · Agree
DisagreeAgree
Strength100%
Resolved inRound 1/2
Counts

New to this? Read How consensus works for the plain-English version.