LP-176 mirrors HIP-0089 into Lux. Under LUX_STRICT_PQ the randomness
beacon is a Hash-DRBG over SHA3-384 per NIST SP 800-90A Rev. 1
§10.1.1, reseeded each epoch from a HIP-0073 QRNG entropy source XORed
with a Pulsar (LP-171) aggregated contribution. The per-block beacon
output is bound into the Q-Block transcript (LP-170) and signed by the
Pulsar-65 finality cert.
ProfileID: 0x01 (ProfileLuxStrictPQ)
ProfileName: LUX_STRICT_PQ
HashSuiteID: SHA3_NIST (0x01)
DRBGConstruction: HASH_DRBG_SHA3_384 (0x90)
DRBGSecurityStrength: 256
ReseedCadence: EPOCH_OR_2POW48
MinSoundnessBits: 128
MinHashOutputBits: 384
RequireTransparent: true
ForbidPairings: true
ForbidKZG: true
ForbidClassicalSNARKs: true
ForbidFallbacks: true
luxfi/consensus/protocol/auth/beacon.go is the canonical reference.luxfi/qrng adapter implementing the HIP-0073interface.
COMMITTEE-V1 — Pulsar committee selection (LP-171).LEADER-V1 — block-leader election.RNG-V1 — on-chain RNG opcode / contract-callable beacon.LUX_STRICT_PQ. The classicalVRF lives only on permissive profiles.
luxfi/consensus/protocol/auth/testdata/hash_drbg_v1.json.Generator passes NIST CAVP DRBGVS test vectors.
A Lux validator on LUX_STRICT_PQ MUST source on-chain randomness
from the Hash-DRBG beacon. Contracts calling block.difficulty /
RANDAO opcodes receive the PQ beacon output under the strict-PQ
profile.
luxfi/consensus/protocol/auth/beacon.go.