This project provides a modular and zk-friendly implementation of Schnorr signatures and MuSig multi-signatures over elliptic curve groups, using the arkworks ecosystem.
- Poseidon-based sponge hashing (native implementation)
- Schnorr signatures over any curve group (
G: CurveGroup) - MuSig multi-party signatures: Aggregates signatures from multiple participants
- Transcript abstraction for Fiat–Shamir transformation
- Designed for ZK circuits, recursive proofs, and modular backend swaps
This crate is under active development. Stay tuned for:
- Expanded unit tests
- Circuit-ready signature gadgets
- Seamless spongefish drop-in support
To see basic Schnorr signatures and MuSig multi-signatures in action, you can run the following examples:
You can run a minimal example:
cargo run --example basic_signThis will:
-
Generate a key pair
-
Sign a message
-
Verify the signature using a Poseidon-based transcript
See examples/basic_sign.rs for full code.
To see MuSig multi-signature aggregation across multiple participants, run the following:
cargo run --example musig_signThis will:
-
Aggregate signatures from two participants
-
Verify the aggregated MuSig signature using a Poseidon-based transcript
See examples/musig_sign.rs for full code.