How LiberProof works
From zero-knowledge fundamentals to Groth16 circuits and on-chain attestation — the complete picture of how LiberProof turns credentials into proofs without leaking data.
Foundations
What is a zero-knowledge proof?
A ZK proof lets you convince someone that a statement is true — without revealing anything about why it's true. The math enforces the privacy; there's no trust required.
Formally, a ZK proof satisfies three properties: Completeness (an honest prover always convinces the verifier), Soundness (a dishonest prover cannot fake a valid proof), and Zero-Knowledge (the verifier learns only that the statement is true — nothing more). LiberProof implements ZK-SNARKs: Succinct Non-interactive Arguments of Knowledge. "Succinct" means proofs are small (~128 bytes) and fast to verify. "Non-interactive" means no back-and-forth — you generate the proof once and anyone can verify it.
Construction
Groth16 — the proving system
LiberProof uses Groth16, a pairing-based ZK-SNARK construction that produces constant-size proofs with millisecond verification — ideal for both browser and on-chain use.
age - threshold ≥ 0 as a constraint. Compilation converts the R1CS into the Groth16 proving/verification key pair.Full Pipeline
Credential to proof — step by step
Every LiberProof flow follows the same four-stage pipeline. Private data stays local at every stage.
{ age, citizenship, balance, ... }. The signature is an EdDSA commitment over the attribute set. The credential is delivered to you and stored only on your device.age ≥ 18. LiberProof constructs the witness: the full private inputs to the circuit, including your actual age value and the credential signature. The witness never leaves your device.Integration
API reference
LiberProof exposes a clean JavaScript API. Generate and verify proofs in a few lines.
On-Chain
Attestation on the Liberland chain
Proofs can be submitted as permanent, verifiable records on the Liberland blockchain — creating tamper-proof attestations without revealing the underlying data.
verifyProof() function that runs the Groth16 pairing check on-chain. Gas cost is constant regardless of circuit complexity.Own your
proof layer.
LiberProof is open source and ready to integrate. Start building privacy-preserving credentials for your sovereign systems.