Skip to content

Commit

Permalink
IETF BBS
Browse files Browse the repository at this point in the history
Signed-off-by: lovesh <[email protected]>
  • Loading branch information
lovesh committed Jun 7, 2024
1 parent 3652320 commit 9b5a68d
Show file tree
Hide file tree
Showing 19 changed files with 790 additions and 390 deletions.
12 changes: 7 additions & 5 deletions bbs_plus/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ The threshold signing protocol has 3 phases (not communication rounds)

Note that only 3rd phase requires the messages to be known so the first 2 phases can be treated as pre-computation
and can be done proactively and thus only phase 1 and 2 are online phases of the MPC protocol and phase 3 is the offline
phase.
phase.
Secondly since the communication time among signers is most likely to be the bottleneck
in threshold signing, phase 1 and 2 support batching meaning that to generate `n` signatures only a single execution
of phase 1 and 2 needs to done, although with larger inputs. Then `n` executions of phase 3 are done to generate
the signature.
the signature.
Also, its assumed that parties have done the DKG as well as the base OT and stored their results before starting phase 1.
Both BBS and BBS+ implementations share the same multiplication phase and the base OT phase but their phase 1 is slightly
less expensive as BBS+ needs 2 random fields elements but BBS needs only 1.
less expensive as BBS+ needs 2 random fields elements but BBS needs only 1.

### Modules

Expand All @@ -44,8 +44,9 @@ different from BBS+ but public key is same.
3. BBS+ proof of knowledge of signature module - [`proof`]
4. BBS signature module - [`signature_23`]
5. BBS proof of knowledge of signature module - [`proof_23`]
6. BBS proof of knowledge of signature module, alternate implementation - [`proof_23_cdl`]
7. Threshold BBS and BBS+ signatures - [`threshold`]
6. BBS proof of knowledge of signature module, implementation as in appendix B - [`proof_23_cdl`]
7. BBS proof of knowledge of signature module, implementation as in appendix A - [`proof_23_ietf`]
8. Threshold BBS and BBS+ signatures - [`threshold`]

The implementation tries to use the same variable names as the paper and thus violate Rust's naming conventions at places.

Expand All @@ -56,6 +57,7 @@ The implementation tries to use the same variable names as the paper and thus vi
[`signature_23`]: https://docs.rs/bbs_plus/latest/bbs_plus/signature_23/
[`proof_23`]: https://docs.rs/bbs_plus/latest/bbs_plus/proof_23/
[`proof_23_cdl`]: https://docs.rs/bbs_plus/latest/bbs_plus/proof_23_cdl/
[`proof_23_ietf`]: https://docs.rs/bbs_plus/latest/bbs_plus/proof_23_ietf/
[`threshold`]: https://docs.rs/bbs_plus/latest/bbs_plus/threshold/

<!-- cargo-rdme end -->
Expand Down
7 changes: 5 additions & 2 deletions bbs_plus/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@
//! 3. BBS+ proof of knowledge of signature module - [`proof`]
//! 4. BBS signature module - [`signature_23`]
//! 5. BBS proof of knowledge of signature module - [`proof_23`]
//! 6. BBS proof of knowledge of signature module, alternate implementation - [`proof_23_cdl`]
//! 7. Threshold BBS and BBS+ signatures - [`threshold`]
//! 6. BBS proof of knowledge of signature module, implementation as in appendix B - [`proof_23_cdl`]
//! 7. BBS proof of knowledge of signature module, implementation as in appendix A - [`proof_23_ietf`]
//! 8. Threshold BBS and BBS+ signatures - [`threshold`]
//!
//! The implementation tries to use the same variable names as the paper and thus violate Rust's naming conventions at places.
//!
Expand All @@ -55,12 +56,14 @@
//! [`signature_23`]: crate::signature_23
//! [`proof_23`]: crate::proof_23
//! [`proof_23_cdl`]: crate::proof_23_cdl
//! [`proof_23_ietf`]: crate::proof_23_ietf
//! [`threshold`]: crate::threshold
pub mod error;
pub mod proof;
pub mod proof_23;
pub mod proof_23_cdl;
pub mod proof_23_ietf;
pub mod setup;
pub mod signature;
pub mod signature_23;
Expand Down
Loading

0 comments on commit 9b5a68d

Please sign in to comment.