{
  "tool_id": "art-774-beacon-seeded-fair-sampling-v2",
  "kernel_id": "art-774-beacon-seeded-fair-sampling-v2",
  "display_name": "Beacon-Seeded Fair-Sampling Deriver V2",
  "tool_version": "1.0.0",
  "mandate_type": "compliance_control",
  "purpose": "Derives a deterministic, offline-replayable audit sample, version 2 of the beacon-seeded fair-sampling family, from a caller-pasted public randomness beacon pulse (drand quicknet or NISTIR-8213) and an item-manifest hash committed before the pulse round, over the same HMAC-DRBG (SHA-256) stream as version 1 (art-583). Version 2 fixes three version 1 defects in a new node rather than editing the proven original: a threshold-rejection reduction replaces the raw modulo so index selection is exactly unbiased; a partial Fisher-Yates walk over an index array consumes exactly sample_size accepted draws with no draw cap, so full samples succeed at any population up to the 1,000,000-item ceiling (version 1's draw cap failed near-full samples above roughly 12,000 items); and both hex inputs are validated as exactly 64 lowercase hex characters, with a structured refusal otherwise. The ceiling commits to a 4 MB index array at maximum population. The emitted per-draw transcript is capped at 50 entries and carries full draws_used and rejection counts, so the artifact stays bounded while the walk remains fully reconstructible offline from the declared inputs alone. The beacon pulse is caller-declared: this kernel does SHA-256/HMAC math only, never fetches a pulse and never verifies its signature. The version 1 node stays untouched and replayable for every receipt already issued against it; new runs should use this node.",
  "control_description": "Derives a deterministic, offline-replayable audit sample, version 2 of the beacon-seeded fair-sampling family, from a caller-pasted public randomness beacon pulse (drand quicknet or NISTIR-8213) and an item-manifest hash committed before the pulse round, over the same HMAC-DRBG (SHA-256) stream as version 1 (art-583). Version 2 fixes three version 1 defects in a new node rather than editing the proven original: a threshold-rejection reduction replaces the raw modulo so index selection is exactly unbiased; a partial Fisher-Yates walk over an index array consumes exactly sample_size accepted draws with no draw cap, so full samples succeed at any population up to the 1,000,000-item ceiling (version 1's draw cap failed near-full samples above roughly 12,000 items); and both hex inputs are validated as exactly 64 lowercase hex characters, with a structured refusal otherwise. The ceiling commits to a 4 MB index array at maximum population. The emitted per-draw transcript is capped at 50 entries and carries full draws_used and rejection counts, so the artifact stays bounded while the walk remains fully reconstructible offline from the declared inputs alone. The beacon pulse is caller-declared: this kernel does SHA-256/HMAC math only, never fetches a pulse and never verifies its signature. The version 1 node stays untouched and replayable for every receipt already issued against it; new runs should use this node.",
  "declared_inputs": [],
  "declared_outputs": [],
  "kernel_digest": "sha256:225a33c9b312d9564601be3adb3aaf90e35f077f3d2352d63ad7a9dc9d55b102",
  "trust_label": "deferred: deterministic source published, zkVM proof not yet generated; New gpu:false node, art-774-beacon-seeded-fair-sampling-v2, built 2026-10-21 (SAMPLER-583-V2-1). No GPU prove has been run and none is proposed by this row: deferred per the section 18 steady-state rule, with the first prove to follow later via SIDEBYSIDE then PROVE. Cycle class declared per the GPU-CYCLE-PREFLIGHT-1 static pre-screen: SLOW at the maximum population (an in-guest HMAC-SHA256 loop per draw plus an O(item_count) Fisher-Yates index-array initialization, up to 1,000,000 entries = a 4 MB Uint32Array, before up to 1,000,000 per-draw HMACs on a full sample); a measured user_cycles exec preflight is owed by the first prove row before any GPU booking. The section 18 ceiling is raised by one deferred node in this PR; scripts/compute-proof-baseline.json is no longer edited by node PRs and is written main-side by the regen workflow (PROVE-BASELINE-SINGLE-WRITER-1).",
  "data_vintage": "2026-10-21",
  "last_validated": "2026-10-21",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "deferred",
  "wave": 135,
  "source_url": "https://ainumbers.co/chaingraph/art-774-beacon-seeded-fair-sampling-v2.html",
  "generated_at": "2026-10-22T05:07:38.540Z"
}
