Welche Programmiersprachen haben einige fertige Bibliotheken, die die ECDSA-Kurve von Bitcoin unterstützen - secp256k1?
Das Bouncy Castle- Projekt ermöglicht dies und läuft sowohl auf der Java VM (wie bereits erwähnt) als auch auf der .NET Runtime . Ein Beispiel für die Verwendung in C# wird in diesem Blogbeitrag gezeigt . Sie können die .NET-Version von Visual Basic .NET verwenden (sowie natürlich auch alle anderen Sprachen in der CLR).
Sehen Sie sich für C++ die Crypto++- Bibliothek an, die secp256k1 unterstützt .
Die Bouncy Castle -Bibliothek bietet Unterstützung für alle Sprachen auf der Java VM
Diese Bibliothek (und jetzt eine abgeleitete Bibliothek namens Spongy Castle ) wird in der BitCoinJ- Bibliothek verwendet.
Die Bouncy Castle-Bibliothek war in Android leider schlecht implementiert, was zu Codekonflikten führte, die komplexe Problemumgehungen erforderten. Spongy Castle hat diese Probleme gelöst, sodass die Java- und Android-Versionen viel sauberer miteinander arbeiten.
Es gibt eine interessante Diskussion über die Wahl von secp256k1 durch Satoshi in den Foren.
Zu den derzeit von der JVM unterstützten Sprachen gehören (ich zitiere):
Für diese Kurve gibt es eine eigene C-Bibliothek. Dies ist wahrscheinlich die am häufigsten untersuchte Bibliothek, und sie hat wahrscheinlich die beste Leistung. Wrapper für andere Sprachen sind verfügbar.
Ich würde dringend empfehlen, Bindungen für die offizielle https://github.com/bitcoin/secp256k1-Bibliothek zu verwenden.
Das Implementieren einer sicheren Elliptic Curve-Bibliothek ist nicht einfach, daher ist die Verwendung einer zufälligen Bibliothek keine gute Idee
Ein Beispiel für Bindungen an eine andere Sprache ist hier eine Rust-Bindung: https://github.com/rust-bitcoin/rust-secp256k1
Niels Abildgaard