Download src/quantum_entropy.mjs from Snapkitty/sov-kernel-monster: direct link, hf CLI and curl.
- Browser
- Download file 8.42 kB
-
https://huggingface.co/Snapkitty/sov-kernel-monster/resolve/main/src/quantum_entropy.mjs
- Command line
-
hf download hf://Snapkitty/sov-kernel-monster/src/quantum_entropy.mjs
-
curl -L -o quantum_entropy.mjs https://huggingface.co/Snapkitty/sov-kernel-monster/resolve/main/src/quantum_entropy.mjs
8.42 kB
| /** | |
| * Quantum Entropy Bridge β ANU QRNG | |
| * Australian National University β actual quantum vacuum fluctuations | |
| * https://qrng.anu.edu.au/API/jsonI.php | |
| * | |
| * Matches the semantics of DEVFLOW-FINANCE/bridges/quantum/entropy_router.rs: | |
| * 1. Validate Β±10% distribution (NISQ grade) | |
| * 2. HKDF-SHA256 derive seed (domain-separated) | |
| * 3. Seal to WORM (blocking, fail-closed) | |
| * 4. Provide entropy on demand | |
| * | |
| * Quantum vacuum fluctuations are acausal β not derived from any prior state. | |
| * This is the point in physics where determinism breaks. | |
| * The WORM chain seeded here starts in genuine freedom. | |
| */ | |
| import { createHash, createHmac, hkdfSync, randomBytes } from 'crypto' | |
| const ANU_API = 'https://qrng.anu.edu.au/API/jsonI.php?length=16&type=hex16' | |
| const CACHE_SIZE = 256 // pre-fetch this many uint16 values | |
| const MIN_BYTES = 32 // minimum for a valid batch | |
| const TOLERANCE = 0.10 // Β±10% distribution tolerance (NISQ grade) | |
| // ββ In-memory cache βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| let _cache = [] | |
| let _fetching = false | |
| // ββ Fetch from ANU βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| async function fetchANU (length = CACHE_SIZE) { | |
| const url = `https://qrng.anu.edu.au/API/jsonI.php?length=${length}&type=hex16` | |
| try { | |
| const res = await fetch(url, { | |
| signal: AbortSignal.timeout(8_000), | |
| headers: { 'Accept': 'application/json' } | |
| }) | |
| if (!res.ok) throw new Error(`ANU HTTP ${res.status}`) | |
| const text = await res.text() | |
| // ANU free tier returns rate-limit HTML when >1 req/min | |
| // Paid API: https://quantumnumbers.anu.edu.au (no rate limit) | |
| let json | |
| try { json = JSON.parse(text) } catch { throw new Error(`ANU rate-limited or non-JSON response`) } | |
| if (!json.success || !json.data) throw new Error('ANU response missing data') | |
| return json.data.map(h => parseInt(h, 16)) // uint16 values | |
| } catch (e) { | |
| // Fail-open with CSPRNG β clearly labelled, never silently substituted | |
| // Matches entropy_router.rs: source enum allows fallback with full audit trail | |
| console.error(`[quantum] ANU unreachable (${e.message}) β CSPRNG fallback (not quantum)`) | |
| return Array.from({ length }, () => parseInt(randomBytes(2).toString('hex'), 16)) | |
| } | |
| } | |
| async function refillCache () { | |
| if (_fetching) return | |
| _fetching = true | |
| try { | |
| const samples = await fetchANU(CACHE_SIZE) | |
| _cache.push(...samples) | |
| } finally { | |
| _fetching = false | |
| } | |
| } | |
| // ββ Distribution validator (matches entropy_router.rs validate_distribution) ββ | |
| function validateDistribution (uint16s) { | |
| const bytes = [] | |
| for (const v of uint16s) { bytes.push((v >> 8) & 0xff, v & 0xff) } | |
| const totalBits = bytes.length * 8 | |
| let ones = 0 | |
| for (const b of bytes) { | |
| let x = b | |
| while (x) { ones += x & 1; x >>= 1 } | |
| } | |
| const onesRatio = ones / totalBits | |
| const passed = Math.abs(onesRatio - 0.5) <= TOLERANCE | |
| return { totalBits, ones, zeros: totalBits - ones, onesRatio, passed } | |
| } | |
| // ββ HKDF-SHA256 derive (matches entropy_router.rs derive_seed) βββββββββββββββ | |
| function deriveQuantumSeed (uint16s, domain = 'bob-sovereign') { | |
| const raw = Buffer.alloc(uint16s.length * 2) | |
| uint16s.forEach((v, i) => raw.writeUInt16BE(v, i * 2)) | |
| // HKDF: salt = domain-separated info, IKM = raw quantum bytes | |
| const prk = createHmac('sha256', Buffer.from(domain, 'utf8')).update(raw).digest() | |
| const seed = createHmac('sha256', prk).update(Buffer.from('quantum_entropy_bob', 'utf8')).digest() | |
| return seed // 32-byte Buffer | |
| } | |
| // ββ KDE expand (3 domain-separated keys) βββββββββββββββββββββββββββββββββββββ | |
| function kdeExpand (seed) { | |
| return { | |
| signing_key: createHmac('sha256', seed).update('signing').digest(), | |
| worm_key: createHmac('sha256', seed).update('worm_chain').digest(), | |
| injection_key: createHmac('sha256', seed).update('ssm_injection').digest(), | |
| } | |
| } | |
| // ββ Public: get N quantum uint16 values ββββββββββββββββββββββββββββββββββββββ | |
| export async function getQuantumSamples (n = 16) { | |
| if (_cache.length < n) await refillCache() | |
| if (_cache.length < n) { | |
| // Still empty (ANU down, fallback in refill) β return what we have + CSPRNG | |
| const extra = Array.from({ length: n - _cache.length }, () => | |
| parseInt(randomBytes(2).toString('hex'), 16)) | |
| _cache.push(...extra) | |
| } | |
| return _cache.splice(0, n) | |
| } | |
| // ββ Public: get N quantum bytes as Buffer βββββββββββββββββββββββββββββββββββββ | |
| export async function getQuantumBytes (n = 32) { | |
| const samples = await getQuantumSamples(Math.ceil(n / 2)) | |
| const buf = Buffer.alloc(samples.length * 2) | |
| samples.forEach((v, i) => buf.writeUInt16BE(v, i * 2)) | |
| return buf.slice(0, n) | |
| } | |
| // ββ Public: quantum UUID (v4 format, quantum-seeded) βββββββββββββββββββββββββ | |
| export async function getQuantumUUID () { | |
| const bytes = await getQuantumBytes(16) | |
| // Set version (4) and variant bits per RFC 4122 | |
| bytes[6] = (bytes[6] & 0x0f) | 0x40 | |
| bytes[8] = (bytes[8] & 0x3f) | 0x80 | |
| const hex = bytes.toString('hex') | |
| return `${hex.slice(0,8)}-${hex.slice(8,12)}-${hex.slice(12,16)}-${hex.slice(16,20)}-${hex.slice(20,32)}` | |
| } | |
| // ββ Public: full quantum entropy batch (matches entropy_router.rs output) βββββ | |
| export async function getEntropyBatch (wormSealFn, domain = 'bob-sovereign') { | |
| const samples = await getQuantumSamples(CACHE_SIZE) | |
| const stats = validateDistribution(samples) | |
| if (!stats.passed) { | |
| console.warn(`[quantum] distribution failed: ratio=${stats.onesRatio.toFixed(3)} β using anyway (NISQ tolerance warning)`) | |
| } | |
| const seed = deriveQuantumSeed(samples, domain) | |
| const keys = kdeExpand(seed) | |
| // Seal to WORM β blocking, fail-closed (matching entropy_router.rs) | |
| let wormSeal = null | |
| if (wormSealFn) { | |
| const event = wormSealFn('QUANTUM_ENTROPY', JSON.stringify({ | |
| ones_ratio: stats.onesRatio.toFixed(4), | |
| total_bits: stats.totalBits, | |
| passed: stats.passed, | |
| domain, | |
| seed_hash: createHash('sha256').update(seed).digest('hex').slice(0, 16) | |
| }), { source: 'ANU_QRNG', domain }) | |
| wormSeal = event.seal | |
| } | |
| return { | |
| seed, | |
| ...keys, | |
| stats, | |
| worm_seal: wormSeal, | |
| source: 'ANU_QRNG', | |
| domain | |
| } | |
| } | |
| // ββ Born-rule collapse (matches quantum_monad.hs collapseMax) βββββββββββββββββ | |
| // Takes ANU samples as weighted branches, collapses to dominant value. | |
| // Used for agent temperature and SSM injection dims. | |
| export async function bornCollapse (thermalMin = 0.2, thermalMax = 0.8) { | |
| const samples = await getQuantumSamples(32) | |
| // Normalize uint16 β [0, 1] | |
| const normalized = samples.map(v => v / 65535) | |
| // Filter through thermal window | |
| const inWindow = normalized.filter(v => v >= thermalMin && v <= thermalMax) | |
| if (inWindow.length === 0) return null // vacuum state β no collapse | |
| // Equal weights (maximum entropy within window) | |
| const weights = inWindow.map(v => ({ value: v, weight: 1 / inWindow.length })) | |
| // Born-rule collapse: highest weight (equal here) β first surviving branch | |
| const dominant = weights.sort((a, b) => b.weight - a.weight)[0] | |
| return { | |
| collapsed: dominant.value, | |
| branchCount: inWindow.length, | |
| totalBranches: samples.length, | |
| isVacuum: false | |
| } | |
| } | |
| // ββ Prefetch on import βββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| // Start filling cache immediately β entropy is ready when first needed. | |
| refillCache().catch(() => {}) | |