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

feat x/bridge: updated TSS.md #7898

Merged
merged 1 commit into from
Apr 2, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 31 additions & 14 deletions x/bridge/TSS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,32 @@

## Library selection

| Repo | Keygen | Signing | Transport | Security | Last release | Go version | Notes |
|---------------------------------------------------------------------------|--------|---------|-----------|-------------------------|--------------|------------|------------------------|
| [bnb-chain/tss-lib](https://github.com/bnb-chain/tss-lib) | ✅ | ✅ | ❌ | Audited on Oct 10, 2019 | Jan 16, 2024 | 1.16 | 705 stars |
| [thorchain/tss](https://gitlab.com/thorchain/tss/go-tss) | ✅ | ✅ | ✅ | Audited on Jun 16, 2020 | Fer 8, 2024 | 1.20 | Production-use example |
| [getamis/alice](https://github.com/getamis/alice) | ✅ | ✅ | ❌ | Audited on May 19, 2020 | Nov 30, 2023 | 1.20 | Granted by Coinbase |
| [taurusgroup/frost-ed25519](https://github.com/taurusgroup/frost-ed25519) | ✅ | ✅ | ❌ | Not audited | Mar 11, 2021 | 1.14 | Good README |
| [unit410/threshold-ed25519](https://gitlab.com/unit410/threshold-ed25519) | ✅ | ✅ | ❌ | Not audited | Feb 21, 2020 | 1.19 | |
| [coinbase/kryptology](https://github.com/coinbase/kryptology) | | | | Papers + HackerOne | Dec 20, 2021 | 1.17 | Archived |
| [SwingbyProtocol/tss-lib](https://github.com/SwingbyProtocol/tss-lib) | | | | | | | Fork of binance |
| Repo | Keygen | Signing | Transport* | Security | Last release | Go version | Notes |
|---------------------------------------------------------------------------|--------|---------|------------|-------------------------|--------------|------------|------------------------|
| [bnb-chain/tss-lib](https://github.com/bnb-chain/tss-lib) | ✅ | ✅ | ❌ | Audited on Oct 10, 2019 | Jan 16, 2024 | 1.16 | 705 stars |
| [thorchain/tss](https://gitlab.com/thorchain/tss/go-tss) | ✅ | ✅ | ✅ | Audited on Jun 16, 2020 | Fer 8, 2024 | 1.20 | Production-use example |
| [getamis/alice](https://github.com/getamis/alice) | ✅ | ✅ | ❌ | Audited on May 19, 2020 | Nov 30, 2023 | 1.20 | Granted by Coinbase |
| [taurusgroup/frost-ed25519](https://github.com/taurusgroup/frost-ed25519) | ✅ | ✅ | ❌ | Not audited | Mar 11, 2021 | 1.14 | Good README |
| [unit410/threshold-ed25519](https://gitlab.com/unit410/threshold-ed25519) | ✅ | ✅ | ❌ | Not audited | Feb 21, 2020 | 1.19 | |
| [entropyxyz/synedrion](https://github.com/entropyxyz/synedrion) | | | | | | | TODO |
| [coinbase/kryptology](https://github.com/coinbase/kryptology) | | | | Papers + HackerOne | Dec 20, 2021 | 1.17 | Archived |
| [SwingbyProtocol/tss-lib](https://github.com/SwingbyProtocol/tss-lib) | | | | | | | Fork of binance |

__*__ Transport refers to the parties communication during TSS signing.

### bnb-chain/tss-lib

Pros:

* Was [audited](https://github.com/bnb-chain/tss-lib?tab=readme-ov-file#security-audit)
on October 10, 2019, by the Kudelski Security
* Was [audited](https://github.com/bnb-chain/tss-lib?tab=readme-ov-file#security-audit) on October 10, 2019, by the Kudelski Security
* 700+ stars
* A lot of contributors
* Many libs use it as a basis
* Actively maintained

Cons:

* Doesn't have transport or leader election
* Doesn't have built-in transport (but there are repos with its implementation from bnb-chain; see [References](#references) for details)
* Old Go version

### thorchain/tss
Expand All @@ -42,7 +44,8 @@ Pros:
Cons:

* Not popular (11 contributors, 6 stars)
* Doubts on the quality of code (since Throchain itself is quite messy; only doubts without real proofs)
* Doubts on the quality of code
* Hard to import (or even impossible without modifications) due to legacy dependencies

### getamis/alice

Expand All @@ -58,4 +61,18 @@ Pros:
Cons:

* Doesn't have transport or leader election
* HTSS differs from TSS, will need additional time to dig into it
* HTSS differs from TSS, will need additional time to dig into it

## References

1. [Briefly about TSS](https://academy.binance.com/en/articles/threshold-signatures-explained)

2. [Details on TSS workflow](https://docs.bnbchain.org/docs/beaconchain/learn/threshold-signature-scheme/)

3. [Example of signing using bnb-chain/tss](https://github.com/bnb-chain/tss-lib/blob/master/ecdsa/keygen/local_party_test.go)

4. [bnb-chain/tss binary](https://github.com/bnb-chain/node-binary/tree/master/cli/prod/0.6.2-TSS-0.1.2)

5. [CLI and transportation wrappers for bnb-chain/tss](https://github.com/bnb-chain/tss)

6. [Docs on bnb-chain/tss server](https://github.com/bnb-chain/tss/blob/master/doc/UserGuide.md)