Можно ли декодировать открытый ключ из "scriptSig", найденного в необработанной транзакции?
7. "in":[
8. {"prev_out":
9. {"hash":"2007ae...",
10. "n":0},
11. "scriptSig":"304502... 042b2d..."}],
Строка 11 содержит подпись лица, отправляющего деньги,
304502...
затем пробел, а затем соответствующий открытый ключ
04b2d.... Опять же, они оба в шестнадцатеричном виде.
Могу ли я декодировать шестнадцатеричный открытый ключ в исходный адрес биткойна или это невозможно? Спасибо:)
1 ответ
Решение
Да, это возможно, и вот функция, которая делает это:
pub = 'public key string you wish to decode'
def addr_decode(pub, testnet=True):
h3 = hashlib.sha256(unhexlify(pub))
h4 = hashlib.new('ripemd160', h3.digest())
result =(b'\x00' if not testnet else b'\x6f') + h4.digest()
h5 = hashlib.sha256(result)
h6 = hashlib.sha256(h5.digest())
result += h6.digest()[:4]
return b58encode(result)
В приведенной выше форме он настроен для testnet, для использования в основной сети просто измените testnet=
в False
или удалите его из кортежа аргументов функций.
Наслаждаться:)
* модифицировано из репозитория yodro's addgen.