Binance agrega implementación de Open-Source en el Algoritmo de la firma digital Edwards-Curve (EdDSA) en la biblioteca TSS

2020-03-11

Hace tres meses, Binance anunció la implementación de código abierto de una biblioteca de Esquema de Firma Umbral (Threshold Signature Scheme, TSS) como un paso importante que hemos dado para contribuir al desarrollo de blockchain de código abierto. La librería es compatible con las blockchains basadas en ECDSA, incluidas las redes Binance Chain, Bitcoin y Ethereum. Ya se ha utilizado para construir token swap bridges y más.

El equipo de desarrollo de Binance Chain continúa sus esfuerzos para desarrollar esta nueva y emocionante tecnología. Hoy nos complace anunciar la implementación de código abierto de una biblioteca TSS para EdDSA, que se expandirá para admitir más tipos de blockchains, incluidos Cardano, NANO, Stellar Lumens, WAVES e incluso Libra.   

¿Por qué EdDSA?

Las curvas elípticas se encuentran entre los tipos más potentes de criptografía que se usan ampliamente hoy en día, y las curvas de Edwards son las últimas y mejores entre las curvas elípticas. Los algoritmos de firma digital de curva elíptica pueden firmar mensajes más rápido que los algoritmos de firma existentes como RSA, DSA o ElGamal. Cuando se combina con las curvas de Edwards el algoritmo de firma digital de curva de Edwards (o EdDSA para abreviar) es un esquema de firma digital que utiliza una variante de firmas Schnorr basadas en curvas torcidas de Edwards.

Parece que algunas blockchains como Tezos, Libra y Cardano optaron por usar el algoritmo EdDSA con la curva Ed25519 en lugar de ECDSA con la curva secp256k1. ¿Pero por qué?

Características clave de las firmas EdDSA:

  • Validación más rápida: el algoritmo EdDSA es más simple que ECDSA y es más fácil de entender e implementar. Debido a esta simplicidad, EdDSA a menudo funciona ligeramente mejor que ECDSA.

  • Seguridad demostrable [1]: las firmas Schnorr son demostrablemente seguras. Más específicamente, son fuertemente inolvidables bajo un ataque de mensaje elegido y no son maleables. Por otro lado, este tipo de maleabilidad es posible en el esquema de firma ECDSA y ha generado muchos problemas en Bitcoin.

  • Linealidad [1]: podemos sumar varias firmas de Schnorr y el resultado sigue siendo una firma válida. Esto puede ahorrar poder computacional y formar los bloques de construcción para varias construcciones de nivel superior que mejoran la eficiencia y la privacidad, como las transacciones de firma múltiple y más. 

La seguridad primero

La seguridad siempre ha sido la máxima prioridad para los equipos de desarrollo de Binance y Binance. Kudelski Security fue invitado a realizar una auditoría de seguridad de la primera versión de tss-lib. La nueva implementación de EdDSA ha reutilizado gran parte de la base de código existente y las nuevas verificaciones de implementación se realizan activamente. Puede rastrear las actualizaciones en los problemas de GitHub aquí.

Tss-lib es parte del programa Binance Bug Bounty donde los investigadores son bienvenidos para reportar vulnerabilidades y recibir recompensas. Como la investigación y la tecnología de TSS todavía son bastante nuevas, los criptógrafos están analizando activamente nuestra implementación. Hasta ahora, esto ha resultado en parches para dos mejoras de seguridad: 

  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

Ambos hallazgos están haciendo que la biblioteca TSS de Binance sea una de las implementaciones de TSS más seguras que existen. Queremos extender nuestro agradecimiento por su análisis experto y el informe oportuno de estos problemas.

Planes Futuros

Hoy estamos agregando bibliotecas relacionadas con EdDSA a la base de código tss-lib de código abierto existente en la versión v1.3.0. Esperamos que más miembros del ecosistema y la comunidad de Binance puedan integrar esta biblioteca TSS con sus aplicaciones, como billeteras y custodios, y desarrollar aún más esta nueva tecnología emocionante.

Este es solo un hito en nuestro trabajo con TSS. Continuamos investigando e implementando una mejor solución de gestión de activos y más junto con la comunidad de Binance Chain. Construir una comunidad de código abierto saludable y de apoyo beneficiará tanto a la comunidad de Binance Chain como a la comunidad global de blockchain y criptomonedas. 

Notas: 

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