ZK Circuit Registry
Zero-knowledge circuit identifiers and hashes embedded in NØNOS.
Core Circuits
These circuits are hardcoded in the bootloader (highest trust level):
BOOT_AUTHORITY Circuit
Name: BOOT_AUTHORITY
Category: Core
Permissions: BootAuthority, Attestation
Program Hash: fa02d10e8804169a47233e34a6ff3566248958adff55e1248d50304aff4ab230
VK Hash: bf6d8ae8b77c2c0bb9ee46c8a847dfba9114363738cb22f28703a6cd9451a584
Domain: "NONOS:ZK:PROGRAM:v1"UPDATE_AUTHORITY Circuit
Name: UPDATE_AUTHORITY
Category: Core
Permissions: UpdateAuthority
Program Hash: 8b3ca7195ef2710adc4592b86d33aa4f17e9285c447bf6913ace08d5621f73e4
VK Hash: bf6d8ae8b77c2c0bb9ee46c8a847dfba9114363738cb22f28703a6cd9451a584
Domain: "NONOS:ZK:PROGRAM:v1"RECOVERY_KEY Circuit
Verifying Key (VK)
The BOOT_AUTHORITY verifying key (584 bytes, BLS12-381):
Permission Flags
Each circuit has a permission bitmap:
BootAuthority
0
0x00000001
UpdateAuthority
1
0x00000002
RecoveryKey
2
0x00000004
CommunityKey
3
0x00000008
UserCircuit
4
0x00000010
Attestation
5
0x00000020
CircuitAdmin
6
0x00000040
NetworkAccess
7
0x00000080
FilesystemAccess
8
0x00000100
HardwareAccess
9
0x00000200
Circuit Categories
Core
Highest
Compiled into bootloader
Bootloader update only
System
High
Signed ELF sections
Kernel update
Community
Medium
N-of-M multisig
Governance vote
User
Sandboxed
User-installed
User action
Section Magic
ZK circuit sections are identified by magic bytes:
Groth16 Proof Format
Groth16 Proof FormatA
48 bytes
G1 point (compressed)
B
96 bytes
G2 point (compressed)
C
48 bytes
G1 point (compressed)
Total
192 bytes
Complete proof
Proof Limits
Proof LimitsMax Public Inputs
256 KB
Max Proof Size
2 MB
Verification Time
~5 ms
Domain Separators
Domain SeparatorsNONOS:ZK:PROGRAM:v1
Program hash derivation
NONOS:CIRCUIT_KEY:v1
Circuit key derivation
NONOS:CAPSULE:COMMITMENT:v1
Default commitment binding
Hash Derivation
Hash DerivationProgram hashes are derived using BLAKE3:
Capsule Metadata
ZK proofs are wrapped in capsules:
Verification Flow
Adding New Circuits
System Circuit
System CircuitDefine circuit constraints
Run trusted setup ceremony
Compute program hash
Embed VK in kernel
Register in SYSTEM_CIRCUITS
Community Circuit
Community CircuitDefine circuit and run setup
Submit to governance
Collect N-of-M signatures
Register via community process
User Circuit
User CircuitDefine circuit locally
Run setup locally
Install via user API
Runs sandboxed (limited permissions)
Circuit Tools
zk-embed
nonos-boot/tools/zk-embed
Embed VK in binary
zk-ceremony
nonos-boot/tools/zk-ceremony
MPC setup
attestation-circuit
nonos-boot/tools/nonos-attestation-circuit
Attestation circuit
Last updated
Was this helpful?


