Live Verifier

Verify a quantum block yourself

This runs entirely in your browser. It recomputes the block’s Bell/Mermin statistic from the published measurements and checks it against the classical bound. Given the run anchor, it also rebuilds the Merkle roots and re-derives the challenge-bound settings, a full independent verdict. Nothing contacts our servers. The math is yours to run.

These three buttons run the same Bell test, a Mermin (GHZ) inequality, on real Rigetti Cepheus-1-108Q hardware across three separate campaigns (that’s why the numbers differ): |M| = 2.685, 2.377, 2.724, each shown with its standard error. Because all three independent campaigns clear the classical bound of 2, their combined significance is far stronger than any single run. Each reaches VERIFIED in your browser. Real hardware never returns a perfect 4, and it doesn’t need to.

Loaded: a real 256-shot Mermin (GHZ) run on Rigetti Cepheus-1-108Q (Rigetti Cepheus, first run (Jul 11)).

What This Proves, and What It Doesn’t

Recomputing the statistic from the published outcomes proves two things: the block’s data violates the classical bound (a correlation no local, classical system can produce), and those same outcomes reproduce the block’s chain commitment (its Merkle roots and entry hash). Any single ±1 flip in any of the 256 shots would change the Merkle root, so the outcomes shown here are exactly the outcomes that were committed. The measurement settings are not cherry-picked either: the challenge that fixes them is derived from the block’s own chain position (its previous head plus a per-block nonce), which the verifier recomputes.

What it does not prove, on its own, is that the numbers originated on quantum hardware. Anyone can write down GHZ-shaped correlations on paper. That provenance rests on the run anchor and its attestation chain: the AWS Braket task ARNs (here, real Rigetti Cepheus-1-108Q and IonQ Forte-1 campaigns) pin these outcomes to tasks in Amazon’s records, not just ours.

One point of precision, because rigor is the point: “runs_root matches, therefore the outcomes are identical” holds under the published Merkle-leaf encoding used on both sides. That is why the verifier’s code is open below: publishing the encoding is what makes the check externally reproducible rather than self-attested.

View the verification code

The core of verifier.ts, which runs verbatim in your browser. Exact BigInt arithmetic; no floating point ever touches the statistic.

// For each correlator group, average the product of the ±1 outcomes,
// then combine groups with their ±1 coefficients into the statistic M.
// All arithmetic is exact BigInt rationals; no float ever touches M.

for (const r of proof.runs) {
  let p = 1
  for (const o of r.outcomes) p *= o          // product of the ±1 outcomes
  sums[r.group] += BigInt(p)
  counts[r.group] += 1
}

let M = new Rational(0n)
for (const t of proof.terms)                   // M = Σ coeff · (Σ product / N)
  M = M.add(new Rational(sums[t.group], BigInt(counts[t.group])).mulInt(BigInt(t.coeff)))

const passesFence = M.absGt(BigInt(proof.classicalBound))   // |M| > classical bound ?