About Nocturnal
Why it exists, what it borrows, and what it does not claim.
Why another privacy coin
Most chains are transparent ledgers: every amount and every counterparty is permanently
public. That is a poor property for money. Monero solved this well, and Nocturnal does not
claim to improve on its cryptography. It reuses that cryptography through the
monero-oxide crates and builds a smaller, more readable chain around it in Rust.
The goal is a codebase one reviewer can hold in their head. The consensus layer is a few thousand lines, each module documents the reasoning behind it, and the security review is published in full rather than summarised.
What it borrows
Cryptographic primitives are never hand-rolled here. The chain depends on:
monero-clsagfor CLSAG ring signatures and key imagesmonero-bulletproofsfor Bulletproofs+ range proofsmonero-primitivesandmonero-generatorsfor commitments and generatorscurve25519-dalekfor the underlying group arithmetic- RandomX for proof of work, via the reference C++ implementation
Hashing is original Keccak-256, not NIST SHA-3. That is the same choice Monero made, and a distinction that silently breaks compatibility if you get it wrong.
What it does not claim
- Not audited. Internal review is an argument, not evidence. It is published so that it can be disagreed with.
- Not novel cryptography. If you want new primitives, this is the wrong project.
- Not network-level anonymity. Transactions relay over Dandelion++, which frustrates naive origin tracing but is not Tor. Run over Tor if that is your threat model.
- Not immune to global timing analysis by an observer who can watch the whole network.
Naming
The project is Nocturnal and the unit is NOCT. Every crate, binary and path is
spelled noct*: noct-core, noctd,
/var/lib/noct. Same thing abbreviated, not a second project. The short form
appears in consensus-visible constants, so renaming it would change the chain itself.