English/USD
Language
Currency
News and updates from the world’s leading cryptocurrency exchange
Mar 12
2020
Binance Adds Open-Source Implementation for Edwards-Curve Digital Signature Algorithm (EdDSA) in the TSS Library

Three months ago, Binance announced the open-source implementation of a Threshold Signature Scheme (TSS) library as a major step we’ve taken to contribute to open-source blockchain development. The library is compatible with ECDSA-based blockchains, including Binance Chain, Bitcoin, and Ethereum networks. It has already been used for building token swap bridges and more.

The Binance Chain development team continues its efforts in developing this exciting new technology. Today we are excited to announce the open-source implementation of a TSS  library for EdDSA, which will expand to support more types of blockchains, including Cardano, NANO, Stellar Lumens, WAVES, and even Libra!   

Why EdDSA

Elliptic curves are among the most powerful types of cryptography in wide use today, and Edwards curves are the latest and greatest among elliptic curves. Elliptic curve digital signature algorithms can sign messages faster than the existing signature algorithms such as RSA, DSA or ElGamal. When coupled with Edwards curves, the Edwards-curve digital signature algorithm (or EdDSA for short) is a digital signature scheme using a variant of Schnorr signatures based on twisted Edwards curves.

It would seem that some blockchains such as Tezos, Libra and Cardano chose to use the EdDSA algorithm with the Ed25519 curve instead of ECDSA with the secp256k1 curve. But why?

Key Features of EdDSA Signatures:

  • Faster validation: The EdDSA algorithm is simpler than ECDSA, and is both easier to understand and to implement. Due to this simplicity, EdDSA often performs slightly better than ECDSA.

  • Provable security [1]: Schnorr signatures are provably secure. More specifically, they are strongly unforgeable under a chosen message attack and are non-malleable. On the other hand, this sort of malleability is possible in the ECDSA signature scheme and has led to many problems in Bitcoin.

  • Linearity [1]: We can add up several Schnorr signatures and the result is still a valid signature. This can save computational power and form the building blocks for various higher-level constructions that improve efficiency and privacy, such as multi-signature transactions and more. 

Security First

Security has always been the top priority for Binance and Binance development teams. Kudelski Security was invited to perform a security audit of the first version of tss-lib. The new EdDSA implementation has reused much of the existing codebase and new implementation checks are actively done. You can track the updates in GitHub issues here.

Tss-lib is part of the Binance Bug Bounty program where researchers are welcomed to report vulnerabilities and receive rewards. As TSS research and technology is still quite new, cryptographers are actively analyzing our implementation. So far, this has resulted in patches for two security enhancements: 

  1. https://github.com/binance-chain/tss-lib/releases/tag/v1.1.0

  2. https://github.com/binance-chain/tss-lib/releases/tag/v1.2.0

Both of these findings are making Binance TSS library one of the most secure TSS implementations out there. We want to extend our thanks for their expert analysis and timely reporting of these issues.

Future Plans

Today we are adding EdDSA-related libraries to the existing open-source tss-lib codebase in release v1.3.0. We expect that more members of the Binance ecosystem and community can integrate this TSS library with their applications, such as wallets and custodians, and further develop this exciting new technology.

This is just one milestone in our work with TSS. We continue researching and implementing a better asset management solution and more along with the Binance Chain community.  Building a healthy and supportive open-source community will benefit both the Binance Chain community and the global blockchain and cryptocurrency community. 


Footnotes: 

[1] https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki#Motivation