-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Roadmap Reference
task text
### DescriptionSemaphore is a zero-knowledge protocol
that allows users to prove membership in a group without revealing their identity.
This enables anonymous messaging, voting, and other privacy-preserving applications.
In this task, we aim to evaluate whether replacing the current zero-knowledge proof system makes sense.
To begin, we will focus on two areas of research:
-
Compare the light-poseidon library
with our current Poseidon hash implementation- Verify whether the parameters used are the same
- Prepare performance benchmarks
-
Evaluate the efficiency of the lean-imt Merkle tree
versus our current Merkle tree implementation- Focus on tree initialization, leaf insertion, proof generation, and proof verification
-
Compare the zero-knowledge proof systems themselves
- Once we understand the relative performance of Poseidon and Merkle tree implementations,
evaluate the zk-proof construction step - Assess the performance and complexity of generating and verifying proofs
using the current system versus potential alternatives
For context, see our previous investigation into Semaphore usage in Zerokit:
Semaphore README in Zerokit branch
Deliverables
Submit either a pull request or a comment on this issue
in the Zerokit repository that includes:
- Benchmark results for both the Poseidon hash and the Merkle tree implementations
- A summary of findings, including whether it makes sense to proceed
with evaluating alternative zk-proof systems based on the current efficiency data
- Benchmark PR: Benchmark current internal impl of poseidon + external available impls #305
- evaluate efficiency of lean-imt Merkle tree
- compare the zk proof systems themselves
Benchmark report can be found as a comment in issue #17
benchmarks can be found at #305 (cargo bench --bench poseidon_benchmark) and #308 (cargo bench --bench imt_benchy)