noctis-1 · proof of proof · private notes · anchored to robinhood

The proof
is the work.
The note is dark.

NOCTIS is a private chain where mining means proving. Every block carries a proof of a 1,024-step computation over the Goldilocks field. Every transfer hides the sender, the receiver and the amount. Every hundred blocks the chain writes its own fingerprint onto Robinhood Chain.

noctis-1 liveheight –
latest block–
trace root–
proof–
difficulty–
private transactions–
mined so far–
last robinhood anchor–
watchtowers–
01 · consensus

Proof of work, where
the work is a proof.

Hash grinding proves you burned electricity. NOCTIS's miners do something you can check: they run a fixed program, commit to every step of it, and hand the network a proof that the program ran. The commitment is what has to beat the difficulty, so you can't win a block without doing the computation, and nobody has to redo it to believe you.

01 · seed

Start from the header

The block header and a nonce are hashed into two Goldilocks field elements: the program's starting state (a₀, b₀).

02 · run

1,023 field rounds

Each step is a' = (a+b)⁷ + cᵢ, b' = a over p = 2⁶⁴ − 2³² + 1. x⁷ is a permutation of this field, so no step can be skipped.

03 · commit

Merkle the trace

All 1,024 states become leaves of a Merkle tree. Its root is the trace commitment, one hash binding every step.

04 · target

Beat the difficulty

sha256(root ‖ header ‖ nonce) × diff < 2²⁵⁶. Miss, and you start a whole new trace with a new nonce.

05 · prove

Open 32 steps

Fiat–Shamir draws 32 steps from the root. The miner opens each one and the step after, and nodes check every transition in about 4 ms.

Nockchain's idea, on a private chain

Nockchain made proof-of-work into proof-of-proof: miners generate proofs of a fixed puzzle in the Goldilocks field, and the chain rewards provers instead of hashers. NOCTIS takes that consensus idea, keeps the field, and puts it under a chain where every note is private.

Why spot checks are enough

The 32 steps are picked after the trace is committed, so a miner can't know in advance which steps get checked. Faking a fraction f of the trace survives with probability (1 − f)³². Faking 20% of it gets caught over 99.9% of the time, so honest proving is the cheapest way to win.

02 · private notes

Every note
is dark.

NOCTIS keeps value in notes, one-time outputs like Nockchain's UTXO notes. The difference is what the ledger can see: on NOCTIS, nothing that links a note to a person or a number.

Hidden sender: a ring of 16

Each spend signs with 16 notes from the chain (an MLSAG over ristretto255). Fifteen are decoys, and the signature doesn't say which one is real. A key image stops the same note being spent twice.

Hidden receiver: stealth notes

Every payment goes to a fresh one-time key derived from your address. Your address never appears on chain.

Hidden amount: Pedersen + range proofs

Amounts live in commitments. A 48-bit range proof shows each one isn't negative, and the node checks that inputs equal outputs plus the fee without seeing a number.

Quantum receive: ML-KEM-768

noctq1 addresses find payments with NIST's lattice KEM, so a recording of today's chain stays unlinkable after a quantum computer arrives.

what the ledger sees · one transfer
inputs2 rings × 16 notes
real note spent1 of 16, unknown
key images2 × 32 bytes
outputs2 stealth keys
amountscommitments only
range proofs48 bits each
receiver addressnever written
ML-KEM ciphertext1,088 bytes
fee0.01 NOCT, public

Open any transaction on the explorer and press verify in your browser. Your machine re-runs the ring signatures and range proofs from the raw transaction.

03 · fair launch

2³² coins. No premine.
Every one proved.

Like Nockchain, NOCTIS's supply is a power of two and starts at zero. There was no presale and no team allocation. Every NOCTIS in existence came out of a block that a miner proved, and the open miner on this site uses the same work endpoint as the node itself.

max supply4,294,967,296

2³² NOCTIS, six decimals.

emissionleft ÷ 2¹⁹

Each block pays 1/524,288 of what is left, so the reward decays smoothly instead of halving in steps.

tail2 NOCT

A permanent floor reward keeps provers paid after the curve flattens.

block time~20 s

Difficulty retargets every block over the last five.

mined supply by block · the dot is now
04 · robinhood

Proved on NOCTIS.
Pinned to Robinhood Chain.

Every 100 blocks the node writes noctis-1:<height>:<block hash> to Robinhood Chain as the calldata of a Robinhood Chain transaction. Each anchor is a Robinhood Chain transaction anyone can open on the Robinhood Chain explorer and compare with the same block on the NOCTIS explorer.

A rewrite of NOCTIS's history would have to contradict a record on Robinhood Chain that nobody can edit. $NOCT is the Robinhood Chain token for the network; the anchors tie the token's home chain to the chain it represents.

noctis blocks · ■ anchored to robinhood
05 · where it sits

Prove like Nock.
Hide like Monero.

NOCTISNockchainMoneroZcash
miningproof of proof (trace)proof of proof (zkPoW)RandomX hashingEquihash hashing
fieldGoldilocksGoldilocksnonenone
preminenonenonenonefounders' reward
supply2³²2³²tail emission21M
hidden senderring of 16noring of 16shielded pool
hidden amountyesnoyesshielded pool
quantum-safe receiveML-KEM-768nonono
browser mineryesnonono
anchored toRobinhood Chainnonenonenone
06 · roadmap

From proofs of work
to proofs of everything.

phase i · live
  • noctis-1 with proof-of-proof blocks
  • private notes: ring 16, stealth, Pedersen
  • ML-KEM-768 quantum addresses
  • browser + CLI provers
phase ii · live
  • Robinhood Chain anchors via Calldata
  • explorer re-verifies proofs and txs in your browser
  • genesis prover leaderboard
  • light client at /verify: genesis → tip + Robinhood Chain, in your browser
  • watchtowers: signed attestations from independent verifiers
  • $NOCT on Robinhood Chain
phase iii
  • full STARK per block: low-degree test over the whole trace
  • proof aggregation: one proof per anchor window
  • peer-to-peer nodes
phase iv
  • NOCTIS ⇄ Robinhood Chain bridge: notes in, SPL out
  • useful puzzles: proving other programs as the block work
  • light clients that only check anchors and proofs
07 · questions

FAQ

What is NOCTIS?

NOCTIS is a private blockchain mined by proof of proof. Blocks are won by proving a computation instead of grinding a hash, and every transaction hides the sender, the receiver and the amount. The chain's history is anchored to Robinhood Chain every 100 blocks, and $NOCT is the network's token on Robinhood Chain.

How is this like Nockchain?

Nockchain replaced hash-based proof of work with proof of proof: miners generate proofs of a fixed puzzle over the Goldilocks field, the supply is 2³² with no premine, and value lives in UTXO notes. NOCTIS follows the same model: Goldilocks field, a fixed puzzle, proofs in every block, 2³² supply, no premine, notes. What NOCTIS adds is privacy on every note, quantum-safe payment detection, a miner that runs in a browser tab, and anchoring to Robinhood Chain.

What exactly does a miner prove?

The program starts from two field elements derived from the block header and a nonce, then runs 1,023 rounds of a' = (a+b)⁷ + cᵢ, b' = a over p = 2⁶⁴ − 2³² + 1, with fixed round constants. The miner Merkle-commits all 1,024 states. If sha256 of the root, header and nonce beats the difficulty, the block is theirs, and they attach the start state, the final state and 32 Fiat–Shamir-chosen steps, each with the following step and Merkle paths. The code is client/pop.js, about 60 lines, and the explorer re-runs the check for any recent block.

Is this a full STARK?

Not yet. Today each block proves its trace by Merkle commitment plus 32 random step openings, which makes skipping work a losing strategy: faking a fifth of the trace is caught more than 99.9% of the time. A full STARK adds a low-degree test so that a single wrong step is caught. That is phase iii, and the puzzle and field were picked so the move is direct.

Can I mine on my computer?

Yes. Open /mine, paste your noct1 or noctq1 address, pick a thread count and press start. Each browser thread runs the same program and proof as the node. For all cores, run the command-line prover from the repository: node miner/miner.js YOUR_ADDRESS. Block rewards go straight to your own private address.

What is public and what is hidden?

Public: blocks, trace roots, proofs, key images, fees, ring members, and the Robinhood Chain anchors. Hidden: who sent a note, who received it, how much it was worth, and which of the 16 ring members was really spent. Coinbase rewards show their amount, as on Monero, but go to stealth keys.

What does the Robinhood Chain anchor prove?

That NOCTIS block N had hash H at the time the anchor was written. Robinhood Chain's record can't be edited afterwards, so any later attempt to present a different history for NOCTIS is checkable against Robinhood Chain by anyone with a block explorer.

Where do keys live?

In your browser. The wallet makes keys locally, scans the chain locally and builds proofs locally. The node only sees finished transactions. Back up the 64-character seed: it is the only way to restore the wallet.

Is the code open?

Yes. The node, wallet, explorer, prover and both CLI tools are in one public repository with unit tests for the cryptography and an end-to-end test that boots a node, mines, sends privately and checks proofs.

Prove a block.
Stay dark.