SecurityCore release 0.1.0

Security model

Security assumptions across the Core program, circuits, SDK, prover, NoteStore, RPC and relayer boundaries.

The release's security boundary spans on-chain state validation, proof verification and user-side custody. A successful proof is necessary, but it does not eliminate setup, deployment, storage or metadata trust.

Cryptographic and on-chain controls

  • Groth16 circuits over BN254 prove note authorization, Merkle membership, nullifier derivation and swap/withdrawal constraints.
  • Poseidon hashing binds note, owner and nullifier fields and builds the Merkle tree.
  • Core recomputes public inputs, checks live root sequence/generation, derives canonical PDAs, verifies the proof and initializes a one-time spent-nullifier account.
  • Classic SPL Token account/mint identities and public pool/custody account bindings are checked before settlement.

Trust boundaries

BoundaryWhat is trusted / protected
Trusted setupSingle-party toxic-waste non-retention/non-compromise assumption.
Wallet and NoteStoreSeed, spend secret, randomness, journal and backups remain confidential and available.
Prover binary/PKExact authenticated release artifacts and local environment are trusted.
RPC providerAvailability and privacy metadata; Core remains the state-transition authority.
RelayerPublic transaction handling and fee-payer key operations; it receives no note witness by design.
Upgrade/deployment operationsUpgrade authority and operational controls remain external trust boundaries.

The controlled Devnet release gate records zero known unresolved critical, high or medium findings in that gate's scope. This is not an independent external audit or a Mainnet safety certification. The relayer has not been independently audited.

See Trusted setup, Relayer security, Note security and Known limitations.

PreviousToken supportNext Trusted setup
Source baseline: frozen Core v0.1.0 / SDK v0.1.1.