This is a proof of concept! Circuits have absolutely not been audited!
A library of Circom circuits for TADA, or Time-Assured Deniable Authentication, including
VanillaTada(k, N)- A basic TADA circuit that proves knowledge of either a Pythagorean triple OR opening of a timed commitment with timing difficulty parameter kEncryptionTada(k, N)(UNDER CONSTRUCTION!) - A TADA circuit that proves equality of the preimage of some ciphertext AND the opening of a timed commitment
as well as the following library circuits that may be useful:
TCOpening(k, N)- A circuit for proving knowledge of a valid Boneh-Naor timed commitment opening with public parameter N and timing difficulty parameter kCommitterTCOpening(k, N)- A faster opening circuit, to be used by the creator of the timed commitment
We base our circuits off a Rust implementation of Boneh-Naor timed commitments as well as 0xPARC's ECDSA circom-ecdsa circuits to make example TADA attestation proofs.
- Finish and benchmark
EncryptionTadaimplementation. - Make a
VanillaTadavariant for proving knowledge of a valid ECDSA signature. - Benchmark
VanillaTada. - Efficiency improvements for
TCOpening.