¿Qué lenguajes de programación tienen algunas bibliotecas listas que admiten la curva ECDSA de Bitcoin - secp256k1?
El proyecto Bouncy Castle permite esto y se ejecuta en Java VM (como se mencionó anteriormente), así como en .NET Runtime . En esta publicación de blog se muestra un ejemplo de su uso en C# . Puede usar la versión .NET de Visual Basic .NET (así como también cualquiera de los otros lenguajes en CLR, obviamente).
Para C++, consulte la biblioteca Crypto++ que admite secp256k1 .
La biblioteca Bouncy Castle brinda soporte para todos los idiomas en Java VM
Esta biblioteca (y ahora una biblioteca derivada llamada Spongy Castle ) se usa en la biblioteca BitCoinJ .
Desafortunadamente, la biblioteca Bouncy Castle se implementó mal en Android, lo que provocó conflictos de código que requirieron soluciones alternativas complejas. Spongy Castle resolvió esos problemas haciendo que las versiones de Java y Android funcionen mucho más limpiamente entre sí.
Hay una discusión interesante sobre la elección de secp256k1 por Satoshi en los foros.
Los idiomas actualmente admitidos por JVM incluyen (y cito):
Hay una biblioteca C dedicada para esta curva. Esta es probablemente la biblioteca más analizada y probablemente tenga el mejor rendimiento. Los envoltorios para otros idiomas están disponibles.
Recomiendo encarecidamente usar enlaces para la biblioteca oficial https://github.com/bitcoin/secp256k1 .
Implementar una biblioteca segura de Elliptic Curve no es fácil, por lo que usar una aleatoria es una mala idea
Un ejemplo de enlaces a un idioma diferente, aquí hay enlaces oxidados: https://github.com/rust-bitcoin/rust-secp256k1
Niels Abildgaard