Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: Daanshaw
  • License: apache-2.0
  • Language: Go
  • Default Branch: master
  • Size: 473 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 3 years ago · Last pushed almost 3 years ago
Metadata Files
Readme Citation

README.md

Multi-Party Threshold Signature Benchmarking

This repository contains a modified version of the multi-party threshold signing implementation in Go, originally developed by Adrian Hamelink and Taurus SA, for benchmarking purposes.

How to run it?

cmp-master/example contains the benchmark which can be run by using either default benchmarking Go commands or simply by running the functions in benchmark-test.go.

Number of parties can be changed by adding characters to party.IDSlice and threshold by just changing the threshold variable.

The original implementation supports:

  • ECDSA: Using the "CGGMP" protocol by Canetti et al. for threshold ECDSA signing. The implementation includes both the 4-round "online" and the 7-round "presigning" protocols from the paper. The latter also supports identifiable aborts. Implementation details are documented in docs/Threshold.pdf. The original implementation supports ECDSA with secp256k1, with other curves planned for the future.
  • Schnorr signatures: As integrated in Bitcoin's Taproot, using the FROST protocol. Due to the linear structure of Schnorr signatures, this protocol is less expensive than CMP. The necessary adjustments have been made to make the signatures compatible with Taproot's specific point encoding, as specified in BIP-0340.

Disclaimer

Use this modified implementation at your own risk, as the original project needs further testing and auditing to be production-ready. The changes made for benchmarking purposes may also affect the behavior or performance of the implementation.

License

This modified version is based on the code which is copyright (c) Adrian Hamelink and Taurus SA, 2021, and is distributed under the Apache 2.0 license. The original license and copyright notice can be found in the LICENSE file in this repository.

Files added/changed to the original repo: benchmark_test.go main.go

Owner

  • Name: Daniel Roszak
  • Login: Daanshaw
  • Kind: user
  • Location: Edinburgh

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software in your research, please cite it as below."
authors:
- family-names: "Hamelink"
  given-names: "Adrian"
  affiliation: "Taurus SA"
- family-names: "Meier"
  given-names: "Lúcás Críostóir"
  affiliation: "Taurus SA"
- family-names: "Aumasson"
  given-names: "J.-P."
  affiliation: "Taurus SA"
title: "multi-party-sig"
version: "v0.3.0-alpha-2021-08-09"
date-released: "2021-06-12"
url: "https://github.com/taurusgroup/multi-party-sig"

GitHub Events

Total
Last Year

Dependencies

go.mod go
  • github.com/cronokirby/safenum v0.29.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0
  • github.com/fxamacker/cbor/v2 v2.3.0
  • github.com/rs/zerolog v1.23.0
  • github.com/stretchr/testify v1.7.0
  • github.com/zeebo/blake3 v0.2.0
  • golang.org/x/crypto v0.0.0-20210817164053-32db794688a5
  • golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
  • golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55
  • gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
go.sum go
  • github.com/coreos/go-systemd/v22 v22.3.2
  • github.com/cronokirby/safenum v0.29.0
  • github.com/davecgh/go-spew v1.1.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/decred/dcrd/chaincfg/chainhash v1.0.2
  • github.com/decred/dcrd/crypto/blake256 v1.0.0
  • github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0
  • github.com/fxamacker/cbor/v2 v2.3.0
  • github.com/godbus/dbus/v5 v5.0.4
  • github.com/kr/pretty v0.2.1
  • github.com/kr/pty v1.1.1
  • github.com/kr/text v0.1.0
  • github.com/pkg/errors v0.9.1
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/rs/xid v1.2.1
  • github.com/rs/zerolog v1.23.0
  • github.com/stretchr/objx v0.1.0
  • github.com/stretchr/testify v1.7.0
  • github.com/x448/float16 v0.8.4
  • github.com/yuin/goldmark v1.2.1
  • github.com/zeebo/assert v1.1.0
  • github.com/zeebo/blake3 v0.2.0
  • github.com/zeebo/pcg v1.0.0
  • golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
  • golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
  • golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
  • golang.org/x/crypto v0.0.0-20210817164053-32db794688a5
  • golang.org/x/mod v0.3.0
  • golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3
  • golang.org/x/net v0.0.0-20190620200207-3b0461eec859
  • golang.org/x/net v0.0.0-20201021035429-f5854403a974
  • golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
  • golang.org/x/sync v0.0.0-20190423024810-112230192c58
  • golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
  • golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
  • golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
  • golang.org/x/sys v0.0.0-20190412213103-97732733099d
  • golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f
  • golang.org/x/sys v0.0.0-20201014080544-cc95f250f6bc
  • golang.org/x/sys v0.0.0-20201119102817-f84b799fce68
  • golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4
  • golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1
  • golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55
  • golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
  • golang.org/x/text v0.3.0
  • golang.org/x/text v0.3.3
  • golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e
  • golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e
  • golang.org/x/tools v0.1.0
  • golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
  • golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898
  • golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
  • gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c