Frost implementations

This is an extensive list of FROST implementations w/ their curves/programming language/status.

! coinbase https://blog.coinbase.com/frost-flexible-round-optimized-schnorr-threshold-signatures-b2e950164ee1 https://github.com/coinbase/kryptology/tree/v1.8.0/pkg/ted25519/frost https://pkg.go.dev/github.com/coinbase/kryptology#section-readme

  • go
  • no signature aggregation role
    • DKG: 2
    • signing: 3
  • no lagrange co-efficient computation library in Go

x frost - waterloo https://crysp.uwaterloo.ca/software/frost/ https://git.uwaterloo.ca/ckomlo/frost/

  • rust
  • using Ristretto group (no secp256k1/bip-340)

x frost-datalek https://github.com/isislovecruft/frost-dalek

  • rust
  • using Ristretto group (no secp256k1/bip-340)

x devos-50 https://github.com/devos50/frost-python

  • port of https://github.com/isislovecruft/frost-dalek to python
  • martijn
  • python (but rust bindings)
  • using Ristretto group (no secp256k1/bip-340)

! devos-50-sec256zk-1 https://github.com/devos50/coincurve/blob/frost/frost.py

  • port of https://github.com/ElementsProject/secp256k1-zkp/pull/138 (frost branch)
  • martijn
  • python (but rust bindings)
  • using correct bip-340 signatures

! jesse possner (python) https://brink.dev/blog/2021/04/15/frost/ https://github.com/jesseposner/FROST-BIP340

  • secp256k1/bip-340
  • python

! jesse possner (c) https://brink.dev/blog/2021/04/15/frost/ https://github.com/jesseposner/secp256k1-zkp

  • secp256k1/bip-340
  • c
  • wip
  • currently uses a modified frost protocol, making use of musig as well to create the nonces for the signature
    • uses musig to replace the broadcast channel (?)
    • not! the same as paper/draft
    • https://github.com/ElementsProject/secp256k1-zkp/pull/138#issuecomment-982808422
    • "hybrid FROST/MuSig"
    • no security proof for this modified protocol

x taurusgroup https://github.com/taurusgroup/frost-ed25519

  • go
  • Ed25519, not compatible
  • GOOD! readme documentation

! taurusgroup 2 https://github.com/taurusgroup/multi-party-sig

  • go
  • BIP340 signatures, compatible (!)

! redjubjub - rust - zcash related - code is rather integrated into non-related project - https://github.com/ZcashFoundation/redjubjub/blob/main/src/frost.rs

! orestisakan https://github.com/OrestisKan/secp256k1-zkp-jni

  • jni port
  • jesse possner (c) port

! secp256kfun (WIP frost, nothing (?)) https://github.com/LLFourn/secp256kfun https://github.com/LLFourn/secp256kfun/pull/84

  • rust
  • not as performant
  • WIP

x ecc ecc - C - risetto group

x frost-ristretto255 https://github.com/ZcashFoundation/frost/tree/main/frost-ristretto255 - rust - risetto group - zcash

! reference impl https://github.com/cfrg/draft-irtf-cfrg-frost/tree/master/poc - python (?) - curve agnostic (?)