Witness encryption made practical: encrypt with statements, decrypt with proofs—using Circom.
Witness Encryption enables a new paradigm: encrypt data that can only be decrypted when specific real-world conditions are proven—without requiring a secret key holder.
Our implementation makes this powerful primitive accessible to developers. Encrypt messages with programmable conditions like "unlock when this payment is verified" or "decrypt when this computation result is proven." Built on Circom compatibility, developers can use existing zero-knowledge circuits without learning new languages.
Use cases: trustless escrows, conditional access control, time-locked disclosures, and automated secret reveals based on verifiable events.
zkenc is built for production deployment with a focus on developer experience and cross-platform compatibility.
Core Implementation:
Security Stack:
Engineering Highlights:
Cryptographic Innovation:
The scheme is based on original research adapting Groth16 protocols for witness encryption, currently under peer review at a cryptography conference. Academic reviewers have validated the core construction. Unlike theoretical approaches requiring impractical primitives (iO, trusted parties), our implementation is deployable today.
Impact:
First practical witness encryption tool. Developers can implement programmable conditional encryption using familiar Circom—no specialized cryptographic expertise required. Enables trustless escrows, conditional access, time-locked disclosures, and automated secret reveals.

