比特币交易验证如何与scriptSig和sciptPubKey一起使用?

时间:2019-02-01 21:43:08

标签: blockchain bitcoin

我正在研究https://en.bitcoin.it/wiki/Transaction

中的示例
Input:
Previous tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6
Index: 0
scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10
90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501

Output:
Value: 5000000000
scriptPubKey: OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d
OP_EQUALVERIFY OP_CHECKSIG

所以基本上:

Sig = 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10
Pub Key = 90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501

OP_DUP,然后是OP_HASH160

当我HASH160(即RIPEMD160(SHA256())公开密钥)时,我得到6f6c7697c8f93d72d3d8286195dd2c261bdef075而不是404371705fa9bd789a2fcd52d2c580b65d35549d

使用https://md5calc.com,我得到以下信息:

SHA256 (90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501) = 9fb78bdfd748eefc1ab6ff9dd16611f9fc86be5bf12483da612c34887501f195

RIPEME160 (9fb78bdfd748eefc1ab6ff9dd16611f9fc86be5bf12483da612c34887501f195) = 6f6c7697c8f93d72d3d8286195dd2c261bdef075

我必须在那里缺少一些步骤吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您编码了二进制数据的十六进制表示,而不是二进制数据本身。您需要sha256()和maturemd160()实际的二进制数据。