Skip to content

ift:2025q2-zerokit:semaphore-parts-bench Tracking issue #307

@Ben-PH

Description

@Ben-PH

Roadmap Reference

task text ### Description

Semaphore 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:

  1. Compare the light-poseidon library
    with our current Poseidon hash implementation

    • Verify whether the parameters used are the same
    • Prepare performance benchmarks
  2. 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
  3. 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 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)

Metadata

Metadata

Assignees

Labels

track:zerokitZerokit track (Applied ZK/Explorations)

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions