{"op":"random","draw":"dice","notation":"2d6","rolls":[1,4],"total":5,"nonce":"example","beacon":{"source":"drand","chain":"quicknet","round":0,"randomness":"f099bd2cc1806f9329b3e214d6e70d0bebb06342c1dc3910f8623426c9aa0995"},"deterministic_given_round":true,"engine":"drand quicknet beacon -> sha256 CSPRNG stream, rejection-sampled","proof":{"scheme":"bls-unchained-g1-rfc9380","chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","public_key":"83cf0f2896adee7eb8b5f01fcad3912212c437e0073e911fb90022d3e760183c8c4b450b6a0a6c3ac6a5776a2d1064510d1fec758c921cc22b0e17e63aaf4bcb5ed66304de9cf809bd274ca73bab4af5a6e9c76a4bc09e76eae8991ef5ece45a","round":0,"signature":"<48-byte BLS signature, hex>","randomness":"f099bd2cc1806f9329b3e214d6e70d0bebb06342c1dc3910f8623426c9aa0995","randomness_is":"sha256(signature)","relays_agreed":"2/3","derivation":"seed=sha256(randomness||'|'||op||'|'||nonce); stream=sha256(seed||counter_be64); rejection sampling / Fisher-Yates","verify":"(live) refetch the round, BLS-verify the signature, re-run the derivation"}}