| Crates.io | aingle_zk |
| lib.rs | aingle_zk |
| version | 0.1.0 |
| created_at | 2025-12-18 06:15:31.963322+00 |
| updated_at | 2025-12-18 06:15:31.963322+00 |
| description | Zero-Knowledge Proofs for AIngle - privacy-preserving cryptographic primitives |
| homepage | https://apilium.com |
| repository | https://github.com/ApiliumCode/aingle |
| max_upload_size | |
| id | 1991777 |
| size | 202,309 |
Privacy-preserving cryptographic primitives for AIngle.
use aingle_zk::{PedersenCommitment, HashCommitment};
// Hash commitment (simple)
let commitment = HashCommitment::commit(b"secret value");
assert!(commitment.verify(b"secret value"));
// Pedersen commitment (hiding and binding)
let (commitment, opening) = PedersenCommitment::commit(42u64);
assert!(commitment.verify(42u64, &opening));
use aingle_zk::{MerkleTree, MerkleProof};
// Build tree from leaves
let leaves = vec![b"a", b"b", b"c", b"d"];
let tree = MerkleTree::from_leaves(&leaves);
// Generate proof for leaf at index 2
let proof = tree.prove(2)?;
// Verify membership
assert!(proof.verify(tree.root(), b"c"));
use aingle_zk::{RangeProof, RangeProofGenerator};
// Prove value is in range [0, 2^64) without revealing it
let value = 42u64;
let (proof, commitment) = RangeProofGenerator::prove(value)?;
// Verify the proof
assert!(proof.verify(&commitment)?);
use aingle_zk::{ZkProofSystem, ProofType};
let zk = ZkProofSystem::new();
// Create anonymous credential
let credential = zk.create_credential(&claims)?;
// Prove age >= 18 without revealing exact age
let proof = zk.prove_predicate(
&credential,
"age",
PredicateType::GreaterOrEqual,
18
)?;
// Verify without learning the actual value
assert!(zk.verify_predicate(&proof)?);
| Type | Use Case | Performance |
|---|---|---|
| Hash Commitment | Simple binding | Fast |
| Pedersen | Hiding + binding | Medium |
| Range Proof | Value bounds | Slow |
| Merkle | Set membership | Fast |
Copyright 2019-2025 Apilium Technologies
Licensed under the Apache License, Version 2.0.