Вот как мы можем найти WIF из закрытого ключа:
private_key = '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
decoded_private_key = bitcoin.decode_privkey(private_key, 'hex')
wif = bitcoin.encode_privkey(decoded_private_key, 'wif')
# 5HpHgWkLaovGWySEFpng1XQ6pdG1TzNWR7SrETvfTRVdKHNXZh8
Но как сжать WIF?
Я должен делать:
private_key = '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
compressed_private_key = private_key + '01'
wifcomp1 = bitcoin.encode_privkey(bitcoin.decode_privkey(private_key, 'hex'), \
'wif_compressed')
# KwDidQJHSE67VJ6MWRvbBKAxhD3F48DvqRT6JRqrjd7MHLBjGF7V
или
wifcomp2 = bitcoin.encode_privkey(bitcoin.decode_privkey(compressed_private_key, 'hex'), \
'wif_compressed')
# KwFfpDsaF7yxCELuyrH9gP5XL7TAt5b9HPWC1xCQbmrxfFzfMakg
Кажется, что № 1 правильный, а не № 2.
Также кажется, что:
несжатый WIF, импортированный в Electrum, в конечном итоге создает несжатый адрес Base58,
сжатый WIF, импортированный в Electrum, в конечном итоге создает сжатый адрес Base58.
что кажется очевидным. Но хотелось бы быть уверенным, что сжатие WIF и сжатие адресов в конце действительно связаны.
Можем ли мы сделать вывод, что использование сжатого или несжатого WIF (оба кодируют один и тот же закрытый ключ) будет определять при их импорте в Electrum, будет ли открытый ключ (и, следовательно, в конечном итоге адрес) сжатым или несжатым? сжатый?
Кажется, что № 1 правильный, а не № 2.
Да, №1 правильный. Кодер добавит 01
байт флага в конец закрытого ключа для вас. Делая это вручную в # 2, вы получите закрытый ключ с дополнительным байтом, который неверен.
Баш