Skip to content

Threshold Cryptography for ECDSA signatures, based on Bonneh, Goldfeder and Narayanan paper.

License

Notifications You must be signed in to change notification settings

niclabs/tcecdsa

Repository files navigation

Threshold Cryptography Eliptic Curve Digital Signature Algorithm

Go Report Card Build Status GoDoc

Implementation of Threshold Cryptography Eliptic Curve Digital Signature Algorithm proposed on the paper Using Level-1 Homomorphic Encryption To Improve Threshold DSA Signatures For Bitcoin Wallet Security.

This implementation is loosely based on the extension of Paillier Toolbox to use Level-2 Homomorphic Encryption from Princeton CITP. That code is the working example of the work in the paper mentioned earlier.

This code also implements the level-2 homomorphic encryption protocol from Dario Catalano et al, Boosting Linearly-Homomorphic Encryption to Evaluate Degree-2 Functions on Encrypted Data.

Requirements

The only requirement for this library is our Threshold Paillier Implementation. It will be downloaded automatically if the module is used with Go Modules

Using the library

To use the library with a module-enabled go project, you must write the following line on a terminal on the root file of the project.

go get github.com/niclabs/tcecdsa

Tests

To run the tests you just need to use go test:

go test github.com/niclabs/tcecdsa

Commitments

This library does not implement the commitments used in the examples of the paper for distributing the shares between the participants. This is because this library is designed to be used in a synchronous message distribution scheme. For example, we use it the library in the DTC project, delegating to the user of the library the task of receiving the shares and send them to all the nodes.

About

Threshold Cryptography for ECDSA signatures, based on Bonneh, Goldfeder and Narayanan paper.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages