Precompile
ZK Precompiles
Zero-knowledge proof verification, commitments, and rollup support
ZK precompiles provide native proof verification for Groth16, PLONK, Halo2, and KZG commitments, enabling privacy-preserving transactions and ZK rollups on Lux.
| Address | Name | Gas | Description |
|---|
0x0900 | ZK_VERIFY | 200,000 | Generic ZK proof verification |
0x0901 | GROTH16 | 200,000 | Groth16 verifier |
0x0902 | PLONK | 250,000 | PLONK verifier |
0x0903 | FFLONK | 250,000 | fflonk verifier |
0x0904 | HALO2 | 300,000 | Halo2 verifier (no trusted setup) |
| Address | Name | Gas | Description |
|---|
0x0910 | KZG | 50,000 | KZG polynomial commitments (EIP-4844) |
0x0911 | PEDERSEN | 10,000 | Pedersen commitments |
0x0912 | IPA | 75,000 | Inner product arguments (Verkle trees) |
| Address | Name | Gas | Description |
|---|
0x0920 | PRIVACY_POOL | 50,000 | Confidential transaction pool |
0x0921 | NULLIFIER | 5,000 | Nullifier verification (double-spend prevention) |
0x0922 | COMMITMENT | 10,000 | Commitment verification |
0x0923 | RANGE_PROOF | 100,000 | Range proof verification (hidden amounts) |
| Address | Name | Gas | Description |
|---|
0x0930 | ROLLUP_VERIFY | 500,000 | ZK rollup batch verification |
0x0931 | STATE_ROOT | 25,000 | State root verification |
0x0932 | BATCH_PROOF | 100,000 | Batch proof aggregation |
| Address | Name | Gas | Description |
|---|
0x0700 | FHE | 500,000 | Fully Homomorphic Encryption |
0x0701 | ECIES | 25,000 | Elliptic Curve Integrated Encryption |
0x0702 | RING | 50,000 | Ring signatures (anonymous signing) |
0x0703 | HPKE | 20,000 | Hybrid Public Key Encryption |
| Address | Name | Gas | Description |
|---|
0x0800 | FROST | 25,000 | Schnorr threshold signatures |
0x0801 | CGGMP21 | 50,000 | ECDSA threshold signatures |
0x0802 | RINGTAIL | 75,000 | Post-quantum threshold lattice signatures |