pokt-network / pocket

Official implementation of the Pocket Network Protocol v1
https://pokt.network
MIT License
62 stars 33 forks source link

[WIP][SPIKE][Tooling] Keybase - Adding support for threshold sigs vs. multisigs #485

Open jessicadaugherty opened 1 year ago

jessicadaugherty commented 1 year ago

Objective

Research adding support for multi-signatures and/or threshold signatures in the keybase.

Origin Document

The key base is currently basic assymetric cryptography & DSAs.

https://github.com/pokt-network/pocket/issues/455#issuecomment-1402842239

Screenshot 2023-02-03 at 12 17 59 PM

Goals

Deliverables

Non-goals / Non-deliverables


Creator: @jessicadaugherty Co-owner: @Olshansk

h5law commented 1 year ago

Might be worth looking into these at some point: https://github.com/bnb-chain/tss-lib https://github.com/taurusgroup/frost-ed25519 https://github.com/taurusgroup/multi-party-sig https://github.com/niclabs/tcrsa https://gitlab.com/alephledger/consensus-go

The main issue really seems around the DKG, one party could easily do the creation but that defeats the point of the entire thing. We would need to connect n peers and have them participate in the LocalParty DKG phase at the same time to have their secret shares distributed safely it seems...

Need to keep doing more research

Olshansk commented 1 year ago

@h5law I went down this rabbit hole about a year ago and found myself prototyping w/ most of the same libraries. Here are a couple journal entries:

12/01/2022: https://www.notion.so/pocketnetwork/01-12-2022-5f2e26159daa46889f238b1f32cd9c00 10/01/2022: https://www.notion.so/pocketnetwork/1-10-2022-3676382b35ed42fd85e11911b63df1ad

Some high-level thoughts:

  1. For k-of-n threshold sigs, we'd need it to be non-interactive.
  2. For signature aggregation, it'd be interesting to see the "latest and greatest" of EDDSA, because last I checked it was only efficient for BLS signatures.
  3. For multisignatures, this might end up being the simplest approach, but we need it to be k-of-n rather than n-of-n.