OpenChainGraph Suite · ART-774 · Public-Infrastructure Verification

Beacon-Seeded Fair-Sampling Deriver V2

Derives a deterministic audit sample from a public randomness beacon pulse (drand's quicknet chain or a NIST NISTIR-8213 beacon) and a pre-committed hash of the item manifest being sampled, over the same HMAC-DRBG (SHA-256) stream as version 1 (ART-583). Selection uses only SHA-256/HMAC with no randomness of its own, no clock, nothing hidden; anyone holding the same three declared inputs (manifest hash, pulse, algorithm id) replays the identical selection offline from the transcript below.

HMAC-DRBG (SHA-256 only)Exactly unbiased threshold reductionPartial Fisher-Yates, no draw capFull samples to 1,000,000 items64-lowercase-hex validated inputs
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
What V2 Changes (and why V1 stays)

Version 1 of this sampler is a proven, sealed node: it is not edited, and every receipt already issued against it keeps replaying byte-identically. New runs should use this V2 node, which fixes three V1 defects in a new algorithm id:

  1. No draw cap. V1 rejected duplicate candidates against a walk capped at 10 × item_count draws; a full sample needs about item_count × H(item_count) draws (coupon collector), so near-full populations above roughly 12,000 items exhausted the cap and failed. V2 walks a partial Fisher-Yates over an index array: every accepted draw selects exactly one remaining item, so exactly sample_size accepted draws are consumed, at any population up to the 1,000,000-item ceiling (a 4 MB index array at maximum).
  2. No modulo bias. V1 reduced each 32-bit draw with a raw remainder, which biases selection toward lower indices by up to item_count / 232. V2 rejects any draw at or above the largest multiple of the remaining window width that fits in 32 bits, so every offset in the window is hit by exactly the same number of raw draws: exact uniformity, proven by integer arithmetic rather than statistics.
  3. Validated hex inputs. Both hex inputs must now be exactly 64 lowercase hex characters (no sha256: prefix); anything else is a structured refusal naming the rule. V1 only trimmed them.

The emitted transcript is capped at 50 draws with full draws_used and rejection counts, so artifacts stay bounded at large sample sizes while the whole walk stays reconstructible offline from the declared inputs. For past receipts and replays of earlier samples, keep using ART-583 (version 1).

The Ceremony: Order Matters

The fairness of this sample depends entirely on doing these three steps in order, before you touch this page:

  1. Fix the population first. Freeze the exact item list to be sampled and hash it (any stable canonical hash of the manifest works; SHA-256 of the sorted item list is typical). Publish or otherwise commit to that item_manifest_hash (exactly 64 lowercase hex characters, no prefix) before the next step.
  2. Wait for a beacon pulse you did not choose. Take the NEXT round of a public randomness beacon after your commitment: drand's quicknet chain (a new pulse roughly every 3 seconds, verifiable output published openly) or a NIST NISTIR-8213 randomness beacon pulse. Paste that round's declared randomness value below exactly as published (exactly 64 lowercase hex characters).
  3. Derive, don't re-roll. This page derives the sample once, deterministically, from the manifest hash and the pulse. If the result is inconvenient, the correct response is never to re-run with a different pulse: that is the cherry-picking this ceremony exists to prevent.

Precedent: NIST's Interoperable Randomness Beacons project names bias-resistant audit sampling as a beacon application; U.S. election jurisdictions running risk-limiting audits (e.g. Colorado, per the U.S. Election Assistance Commission's RLA guidance) draw ballot samples from a public dice roll or beacon for the identical reason. drand quicknet is treated as the primary beacon here (sub-3-second cadence, no single operator); a NISTIR-8213 pulse serves as a corroborating co-seed when both are available.

Declared Inputs
Paste the beacon's published randomness for the round above, not a value you generate. Uppercase hex, a prefix, or 63 characters all refuse.
The hash you committed to (published, timestamped, or otherwise fixed) before waiting for the pulse. This ordering is what makes the sample cherry-pick-proof.
Selected Indices
Seed (HMAC-SHA256 of pulse under the manifest-hash key)
Execution Hash (SHA-256)

Ask your agent

Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this exact tool, with this sample, and verify the artifact.

Run the AINumbers MCP tool `derive_beacon_fair_sample_v2`. Task: Derive a deterministic audit sample from a public randomness beacon pulse and a pre-committed item-manifest hash over the same HMAC-DRBG (SHA-256) stream as version 1, with exactly unbiased threshold-rejection draws, a partial Fisher-Yates walk that needs exactly sample_size accepted draws and no draw cap (full samples to 1,000,000 items), and strict 64-lowercase-hex input validation.
Call it with arguments: {"policy_parameters":{"beacon_source":"drand_quicknet","beacon_round":"4321000","beacon_randomness":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","item_manifest_hash":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","item_count":10,"sample_size":10,"algorithm_id":"hmac-drbg-sha256-v2"}}
Verify before trusting: call `verify_execution_hash` on mcp.ainumbers.co (https://mcp.ainumbers.co/mcp) with the parameter `claimed_hash` set to the returned `execution_hash`, passing the full artifact the run returned (the object containing `policy_parameters` + `output_payload` + `execution_hash`; equivalently `policy_parameters` + `output_payload` with `claimed_hash`), not the bare hash string.
Return the ledger link https://ledger.ainumbers.co/ so a human can re-verify without contacting us.
PII rule: All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Open the tool with the sample prefilled: https://ainumbers.co/chaingraph/art-774-beacon-seeded-fair-sampling-v2.html#p=v1.H4sIAAAAAAAA_wEwAc_-eyJiZWFjb25fc291cmNlIjoiZHJhbmRfcXVpY2tuZXQiLCJiZWFjb25fcm91bmQiOiI0MzIxMDAwIiwiYmVhY29uX3JhbmRvbW5lc3MiOiJlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1IiwiaXRlbV9tYW5pZmVzdF9oYXNoIjoiOWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTViMGYwMGEwOCIsIml0ZW1fY291bnQiOjEwLCJzYW1wbGVfc2l6ZSI6MTAsImFsZ29yaXRobV9pZCI6ImhtYWMtZHJiZy1zaGEyNTYtdjIifaGSJ_8wAQAA