Какие языки программирования имеют готовые библиотеки, поддерживающие кривую ECDSA Биткойна — secp256k1?
Проект Bouncy Castle допускает это и работает на виртуальной машине Java (как упоминалось ранее), а также на среде выполнения .NET . Пример его использования в C# показан в этом сообщении блога . Вы можете использовать версию .NET из Visual Basic .NET (а также, очевидно, любой другой язык в CLR).
Для C++ посмотрите на библиотеку Crypto++ , которая поддерживает secp256k1 .
Библиотека Bouncy Castle обеспечивает поддержку всех языков на виртуальной машине Java.
Эта библиотека (а теперь и производная библиотека под названием Spongy Castle ) используется в библиотеке BitCoinJ .
Библиотека Bouncy Castle, к сожалению, плохо реализована в Android, что приводит к конфликтам кода, требующим сложных обходных путей. Spongy Castle решил эти проблемы, благодаря чему версии для Java и Android работают гораздо чище друг с другом.
На форумах идет интересное обсуждение выбора Сатоши secp256k1.
Языки , поддерживаемые в настоящее время JVM, включают (и я цитирую):
Для этой кривой существует специальная C-библиотека. Это, вероятно, наиболее тщательно изученная библиотека, и она, вероятно, имеет лучшую производительность. Доступны обертки для других языков.
Я настоятельно рекомендую использовать привязки для официальной библиотеки https://github.com/bitcoin/secp256k1 .
Внедрить безопасную библиотеку эллиптических кривых непросто, поэтому использование случайной библиотеки — плохая идея.
Пример привязки к другому языку, вот привязка ржавчины: https://github.com/rust-bitcoin/rust-secp256k1
Нильс Абильдгаард