【问题标题】:How does Bitcoin transaction validation work with scriptSig and sciptPubKey?比特币交易验证如何与 scriptSig 和 sciptPubKey 一起工作?
【发布时间】:2019-06-26 12:07:01
【问题描述】:

我正在通过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

当我对 Pub 密钥进行 HASH160(即 RIPEMD160(SHA256())时,我得到 6f6c7697c8f93d72d3d8286195dd2c261bdef075 而不是 404371705fa9bd789a2fcd52d2c580b65d35549d

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

SHA256 (90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501) = 9fb78bdfd748eefc1ab6ff9dd16611f9fc86be5bf12483da612c34887501f195

RIPEME160 (9fb78bdfd748eefc1ab6ff9dd16611f9fc86be5bf12483da612c34887501f195) = 6f6c7697c8f93d72d3d8286195dd2c261bdef075

我一定是少了几个步骤吧?

谢谢!

【问题讨论】:

    标签: blockchain bitcoin


    【解决方案1】:

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

    【讨论】:

    • 所以我应该将 90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501 转换为二进制然后运行 ​​HASH160 吗?我仍然没有得到正确的输出:(
    • 不仅如此,您还可以将所有内容都转换为二进制文件。
    • 谢谢迈克尔。我觉得我接近理解它了。您能否进一步详细说明?将所有内容转换为二进制是什么意思?喜欢整个交易吗?然后呢?
    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    相关资源
    最近更新 更多