Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add frost-secp256k1-tr crate (BIP340/BIP341) #584

Open
wants to merge 22 commits into
base: main
Choose a base branch
from

Commits on Feb 24, 2024

  1. Configuration menu
    Copy the full SHA
    b380fd5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ab6b0d0 View commit details
    Browse the repository at this point in the history
  3. fix use of tweaked public key

    mimoo authored and zebra-lucky committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    8204166 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a307130 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6d8be7c View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    20da59a View commit details
    Browse the repository at this point in the history
  7. cargo fmt

    conradoplg authored and zebra-lucky committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    00cdfe5 View commit details
    Browse the repository at this point in the history
  8. fix gencode-related issues

    conradoplg authored and zebra-lucky committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    bdc8fb4 View commit details
    Browse the repository at this point in the history
  9. clippy fixes

    conradoplg authored and zebra-lucky committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    a66b9a2 View commit details
    Browse the repository at this point in the history
  10. Refactor Ciphersuite taproot methods for universal applicability (#2)

    The taproot compatibility methods added to Ciphersuite were
    very specific to taproot. I renamed them, and tidied up their
    usage to remove unnecessary if/else branches. This should make
    them applicable to any ciphersuite which needs to modify such
    internal processes of the FROST algorithm.
    
    This change should be a pure refactor with no logical changes.
    conduition authored and zebra-lucky committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    142556f View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    0ed163f View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    c63a3ca View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. encapsulate BIP341 tapscript commitment in new SigningTarget type

    I added the SigningTarget type, which encapsulates both the message
    to be signed, and also the tapscript merkle root which the signature
    should commit to. This allows a FROST group to dynamically select
    what taproot tweak they would like to commit their signatures to,
    and to optionally elect not to commit to any tweak at all if desired.
    conduition authored and zebra-lucky committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    e5b3f5d View commit details
    Browse the repository at this point in the history
  2. add effective_key method to VerifyingKey

    This method allows the group to export their tweaked
    VerifyingKey, so 3rd parties can verify their signatures
    without learning the taproot tweak.
    conduition authored and zebra-lucky committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    155dfa6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1268f5c View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2024

  1. Configuration menu
    Copy the full SHA
    1c085ba View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2024

  1. Configuration menu
    Copy the full SHA
    c1b8663 View commit details
    Browse the repository at this point in the history
  2. remove unneeded Into invocation

    conduition authored and zebra-lucky committed Mar 16, 2024
    Configuration menu
    Copy the full SHA
    8f52646 View commit details
    Browse the repository at this point in the history
  3. fix reference to internal function

    conduition authored and zebra-lucky committed Mar 16, 2024
    Configuration menu
    Copy the full SHA
    5d2d683 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    20c2c98 View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2024

  1. ensure taproot signatures always use even nonce points

    BIP340 signatures are usually represented with x-only (even parity)
    nonce points. As a step towards normalizing this for the frost-secp256k1-tr
    crate, we should ensure all Signature struct instances always use the
    effective nonce point, including the DKG proof-of-knowledge.
    conduition authored and zebra-lucky committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    15688ab View commit details
    Browse the repository at this point in the history
  2. serialize taproot signatures as 64 bytes with x-only nonce

    BIP340 signatures are supposed to be serialized as a 64-byte array:
    32 bytes for the x-only nonce point 'R', and 32 bytes for the signature
    component 's'. This commit customizes the frost-secp256k1-tr crate so
    that signatures are serialized with x-only nonces, omitting the leading
    parity byte.
    conduition authored and zebra-lucky committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    d580241 View commit details
    Browse the repository at this point in the history