Я ищу простую, удобную в использовании биткойн-библиотеку для Python.
Что я хочу сделать, так это убедиться, что я могу ввести шестнадцатеричный закрытый ключ, который я хочу, и получить ожидаемый открытый ключ в сжатом формате и адрес 1Btc....
Я просмотрел криптоинструменты на github, которые выглядели многообещающими и простыми в использовании, но они не принимали шестнадцатеричное значение, не кратное 2. Я знаю, что это звучит странно, но я хочу иметь возможность вводить шестнадцатеричное значение. значение, как c12, и заставить его работать, как ожидалось (если мне не нужно вводить 0c12, и это будет работать, с отброшенным начальным нулем). Я ожидаю, что когда я введу 0cfa721d, это будет интерпретировано как прямой порядок байтов.
bitcoinlib выглядит многообещающе, но меня это сбивает с толку, и я пробовал пару часов, но не знал, как получить то, что я хочу.
Интересно, это строгое математическое соотношение? Например, может ли быть произвольное или бесконечное количество открытых ключей от закрытого ключа? Есть ли способ убедиться, что я получу публичный ключ, который хочу, из закрытого ключа? Я хочу протестировать известные закрытые ключи с помощью сгенерированного публичного ключа и адреса BTC, которые соответствуют известным закрытым ключам и адресам, поэтому я могу попытаться выяснить, как кто бы ни сгенерировал эти адреса из вариантов закрытых ключей, я могу попытаться воспроизвести и сделать то же самое. сам.
Спасибо за любую помощь или предложения.
Для этого очень упрощенного случая вы можете взглянуть на https://github.com/circulosmeos/bitcoin-in-tiny-pieces .
Каждая операция закодирована для простоты понимания, изолирована в другом файле, но их легко объединить или использовать непосредственно из командной строки: например:
$ echo 0x01 | ./bitcoin-public-from-private.py | ./bitcoin-address-from-public-key.py
И на вопрос:
Например, может ли быть произвольное или бесконечное количество открытых ключей от закрытого ключа?
В принципе, из закрытого ключа получается только один открытый ключ, но он может быть закодирован в трех разных биткойн-адресах . Обычно используются только один или два из этих форматов.
Это в самом простом случае, не считая более сложных случаев, появившихся позже в биткойнах (таких как HD-ключи и т. д.)...
Майк Д
myprivatekey.to_public().to_address('P2PKH', compressed=True)