¿Por qué Schnorr se agregó a la biblioteca secp256k1 en lugar de una biblioteca separada?

Las firmas de Schnorr a menudo se comparan como superiores a las de la curva elíptica. Entonces, ¿por qué los desarrolladores agregaron Schnorr a libsecp256k1la biblioteca que es, como sugiere el nombre, una biblioteca de curvas elípticas ?

¿Por qué no crear una biblioteca C separada? ¿O la firma Schnorr es parte del grupo de firmas Elliptic Curve?

Gracias

Respuestas (1)

Sí, el esquema de firma BIP340 que se agregó a libsecp256k1 es una variante basada en la curva elíptica de las firmas Schnorr. Tradicionalmente, las firmas de Schnorr usan un grupo de módulos de multiplicación de enteros un número primo grande, pero eso no es lo que se usa aquí. Está integrado en libsecp256k1, porque es un esquema de Schnorr sobre el grupo secp256k1, por lo que se comparte mucho código entre ECDSA y Schnorr.

¿Se mantienen todas las ventajas de Schnorr incluso si utiliza una implementación de curva elíptica no tradicional?
Las "firmas de Schnorr" no son un esquema totalmente especificado; es una clase general de algoritmos de firma digital con muchas variaciones posibles. Obviamente, se aplican todas las ventajas del esquema BIP340 sobre ECDSA: ¡el esquema fue diseñado específicamente para tenerlas!
@PieterWuille, ¿cuáles son las ventajas de hacer eso sobre secp256k1 en lugar del número primo grande normal"?
@Ron ¿Te refieres a usar Schnorr sobre un grupo de multiplicación de enteros? Eso tiene todas las desventajas que tienen estos grupos: necesita alrededor de claves y firmas de 3000 bits para un nivel de seguridad similar, son mucho más lentos y necesitan una asunción de seguridad muy diferente a la que ya confía Bitcoin (dureza DL de secp256k1) .