enum ProofSystem
Available proof systems
Source: lib.joule:15
enum ProofSystemAvailable proof systems
Source: lib.joule:15
enum CurveElliptic curve for SNARKs
Source: lib.joule:27
struct VariableVariable in a circuit
Source: lib.joule:39
fn is_public(&self) -> boolSource: lib.joule:45
fn id(&self) -> usizeSource: lib.joule:49
struct LinearCombinationLinear combination: sum of (coefficient * variable)
Source: lib.joule:55
fn zero() -> SelfSource: lib.joule:60
fn from_variable(var: Variable) -> SelfSource: lib.joule:64
fn from_constant(value: i64, one: Variable) -> SelfSource: lib.joule:68
fn add_term(&mut self, coeff: i64, var: Variable)Source: lib.joule:72
fn add(mut self, other: LinearCombination) -> LinearCombinationSource: lib.joule:79
fn sub(mut self, other: LinearCombination) -> LinearCombinationSource: lib.joule:87
struct ConstraintR1CS constraint: A * B = C
Source: lib.joule:96
struct CircuitBuilderCircuit builder for creating R1CS circuits
Source: lib.joule:103
fn new() -> SelfCreate a new circuit builder
Source: lib.joule:112
fn public_input(&mut self, name: &str) -> VariableAllocate a public input variable
Source: lib.joule:122
fn private_witness(&mut self, name: &str) -> VariableAllocate a private witness variable
Source: lib.joule:130
fn one(&self) -> VariableGet the constant 1 variable
Source: lib.joule:138
fn constant(&self, value: i64) -> LinearCombinationCreate a constant as linear combination
Source: lib.joule:143
fn enforce(&mut self, a: LinearCombination, b: LinearCombination, c: LinearCombination)Enforce A * B = C
Source: lib.joule:148
fn enforce_equal(&mut self, a: LinearCombination, b: LinearCombination)Enforce equality: a = b (as a * 1 = b)
Source: lib.joule:153
fn mul(&mut self, a: Variable, b: Variable) -> VariableMultiply two variables, return result
Source: lib.joule:158
fn add(&mut self, a: Variable, b: Variable) -> VariableAdd two variables
Source: lib.joule:169
fn enforce_boolean(&mut self, var: Variable)Enforce variable is boolean (0 or 1)
Source: lib.joule:177
fn power(&mut self, base: Variable, n: u32) -> VariableCompute x^n using repeated squaring
Source: lib.joule:189
fn build(self) -> CircuitBuild the circuit
Source: lib.joule:218
struct CircuitCompiled circuit
Source: lib.joule:229
struct ProvingKeyProving key (for proof generation)
Source: lib.joule:241
fn to_bytes(&self) -> Vec<u8>Source: lib.joule:247
fn from_bytes(bytes: &[u8], curve: Curve) -> Result<Self, ZkpError>Source: lib.joule:251
fn size(&self) -> usizeSize in bytes (can be large)
Source: lib.joule:257
struct VerifyingKeyVerifying key (for proof verification, much smaller than proving key)
Source: lib.joule:263
fn to_bytes(&self) -> Vec<u8>Source: lib.joule:269
fn from_bytes(bytes: &[u8], curve: Curve) -> Result<Self, ZkpError>Source: lib.joule:273
fn size(&self) -> usizeSource: lib.joule:278
struct ProofA zero-knowledge proof
Source: lib.joule:288
fn to_bytes(&self) -> &[u8]Serialize to bytes
Source: lib.joule:295
fn size(&self) -> usizeGet proof size in bytes
Source: lib.joule:300
fn system(&self) -> &ProofSystemGet the proof system used
Source: lib.joule:305
struct FieldElementField element (scalar in the finite field)
Source: lib.joule:311
fn from_u64(value: u64, curve: Curve) -> SelfCreate from u64
Source: lib.joule:318
fn from_bytes(b: &[u8], curve: Curve) -> SelfCreate from bytes
Source: lib.joule:325
struct Groth16Groth16 proof system
Source: lib.joule:338
fn new() -> SelfCreate Groth16 prover/verifier with BLS12-381
Source: lib.joule:344
fn with_curve(curve: Curve) -> SelfCreate with specific curve
Source: lib.joule:349
fn setup(&self, circuit: &Circuit) -> Result<(ProvingKey, VerifyingKey), ZkpError>Source: lib.joule:356
fn prove(Source: lib.joule:366
fn verify(Source: lib.joule:378
struct StarkSTARK proof system (post-quantum secure)
Source: lib.joule:393
enum HashFunctionHash function for STARK
Source: lib.joule:399
fn new() -> SelfCreate with 128-bit security
Source: lib.joule:407
fn with_security(bits: usize) -> SelfCreate with custom security level
Source: lib.joule:415
fn with_hash(mut self, hash: HashFunction) -> SelfSet hash function
Source: lib.joule:423
fn prove(Source: lib.joule:430
fn verify(Source: lib.joule:448
fn range_check(builder: &mut CircuitBuilder, value: Variable, bits: usize) -> Vec<Variable>Source: lib.joule:468
fn hash_preimage(Source: lib.joule:474
fn merkle_proof(Source: lib.joule:485
fn eddsa_verify(Source: lib.joule:497
enum HashTypeHash type for gadgets
Source: lib.joule:507
enum ZkpErrorErrors from ZKP operations
Source: lib.joule:519