trailofbits / trailofbits/decree
Add more zero-knowledge proof examples
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 12
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Overview
Add additional zero-knowledge proof examples to demonstrate the Decree library's capabilities and provide reference implementations for common cryptographic protocols.
Existing Examples
- Girault proof (test in
tests/inscribe_tests.rs) - Schnorr proof (test in
tests/inscribe_tests.rs)
Possible Options
Simple Examples (Sigma Protocols)
- Chaum-Pedersen proof - equality of discrete logarithms (#10)
- Product proof - prove
z = x * ygiven commitments - Range proof - prove
0 ≤ x < 2^nusing bit-by-bit approach
Complex Examples (Beyond Sigma Protocols)
- Small-factor proof - prove RSA modulus has factors above threshold (#14)
- Paillier-Blum modulus proof - prove N = pq with p ≡ q ≡ 3 (mod 4) (#14)
- MPC-in-the-head proof (e.g., Ligero-style) - demonstrates complex multi-round Fiat-Shamir
- Inner product argument (Bulletproofs-style) - shows recursive proof structure
Implementation Guidelines
- Use Ristretto255 for elliptic curve examples
- Include comprehensive test suites in example files
- Focus on clean implementations
- Demonstrate proper use of the
Inscribetrait with domain separation
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing Girault and Schnorr proof tests in tests/inscribe_tests.rs and review how they use the Inscribe trait with Ristretto255. Choose and scope one example from the listed options, then add its implementation and comprehensive tests in the example files. Done means the selected protocol is demonstrated with domain separation and passing tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cryptography
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100