Beacon Semiprime
Reveal factors (recomputed on demand; nothing is stored)
| # | Round | UTC | N | Answer | Result | Time |
|---|
Reveal factors
Every round between two times, newest first. At most 100 rounds (5 minutes) per lookup.
Verify pasted round JSON offline
Paste a round ({"round":…,"randomness":…,"signature":…}), for example from an exported session, to verify it with no network.
What this is
A live test of mental factoring. Every 3 seconds the drand quicknet beacon publishes a round of randomness that nobody can know in advance; the page turns each round into a 16-digit semiprime N = p·q with two 8-digit prime factors. Because the derivation is deterministic and public, anyone can confirm later that the number shown at a given moment was the only number that could have been shown, and that it could not have existed before that moment.
The large number on the Live tab is the round that was current when the page loaded, and it stays until you press Update, so it can be read calmly. New rounds keep arriving in the Recent rounds list below it, newest first. Verify a round checks a round number, a 16-digit number, or its 5 words. A number or words cannot be turned back into a round, so the site keeps an archive: a scheduled job records every new round's number and works backwards through older rounds. The archive only says which round a number came from; the round's signature is always re-checked in your browser. The same tab lists every number shown in a time range (archive first, the drand relays for anything it lacks).
Derivation (SPEC.md v1)
- Fetch round r from quicknet; verify its BLS signature against the chain's public key and that
randomness = SHA-256(signature). - For tag
"p", then"q": computeSHA-256(randomness ‖ tag ‖ ctr)with a one-byte counter starting at 0; take the first 4 bytes as a big-endian integer x; reject and increment the counter if x ≥ 4 239 387 826; otherwise the candidate is31622777 + (x mod 68377223). - The factor is the smallest prime ≥ candidate (primality by trial division to 10⁴, which is exact below 10⁸). Reject if it reaches 10⁸ or, for q, equals p.
- N = p·q. The lower bound ⌈√10·10⁷⌉ guarantees exactly 16 digits.
Words
N is also shown as 5 words from the BIP39 English list (11 bits each, big-endian). A factor is 3 words. Typing a factor as words or digits is equivalent. The first 4 letters of a word are enough.
What it does and doesn't prove
It proves the number is fresh: not precomputed, not memorized, not chosen by the tester. It does not stop a device from factoring a 16-digit number instantly, so the test is only meaningful if the person being tested has no device and no confederate. Factors are never written to the page until you tap "Reveal"; they are recomputed from public data, so this is a courtesy against casual snooping, not a secret.
Verify independently
The repo ships verify.py (standard library only; py_ecc optional for the signature check) and test vectors. Run python3 verify.py ROUND.