Wallet
壓縮 WIF 的私鑰:哪一個是正確的?
這就是我們如何從私鑰中找到 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。
此外,似乎:
- 在 Electrum 中導入的未壓縮 WIF 最終生成一個未壓縮的 Base58 地址,
- 導入 Electrum 的壓縮 WIF 最終生成一個壓縮的 Base58 地址
這似乎很明顯。但我想確保最後的 WIF 壓縮和地址壓縮確實是相關的。
我們能否得出結論,在將它們導入 Electrum 時,使用壓縮或非壓縮的 WIF(都編碼相同的私鑰)將決定公鑰(以及最終的地址)最終是壓縮的還是非壓縮的?壓縮?
似乎#1是正確的而不是#2。
是的,#1 是正確的。編碼器將為您將
01
標誌字節添加到私鑰的末尾。通過在 #2 中手動執行此操作,您將導致私鑰具有一個不正確的附加字節。