是否可以从原始事务中的'scriptSig'解码公钥?

时间:2014-05-19 00:48:36

标签: transactions decode bitcoin

7.  "in":[
8.    {"prev_out":
9.      {"hash":"2007ae...",
10.      "n":0},
11.    "scriptSig":"304502... 042b2d..."}],

第11行包含发送钱的人的签名,

  

... 304502

后跟一个空格,然后是相应的公钥

  

04b2d ....再次,这些都是十六进制的。

我可以将十六进制公钥解码为原始比特币地址,还是不可能? 谢谢:))

1 个答案:

答案 0 :(得分:-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配置的,在mainnet上使用只需将testnet=更改为False或从函数参数元组中删除它。

享受:)

*从yorro's addgen存储库修改。