原始比特币交易广播错误

2024-03-28 17:50:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个原始事务并将其发送到testnet。我正在使用testnet密钥。hear是我的脚本的简化可读输出:

decoded private key:  SOME_KEY

testnet private ky =  SOME_KEY

Receiver public key:   a4842eed5a2c6fd7b71a238632f268d5831dacc0

out1Script:  76a914a4842eed5a2c6fd7b71a238632f268d5831dacc088ac
out1 script length in bytes =  25

My public key:  2431e05399f655c52f2e7ab6227837c94d450312
out2Script:  76a9142431e05399f655c52f2e7ab6227837c94d45031288ac
out2 script length in bytes =  25

Message to sign:  f1c7146e665f9b59a6cce31526d85abb2d76859ba13219e9f8cf8e0d51051e45

my pub k without 04 part added:  be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881
pub k len:  128 that is 64 byte long

signatureeeee:  30450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c
signature lenght:  142

verify signatureeeee with pub key without '04' added that is derived directly from private key:  True

wif pub ky:  2431e05399f655c52f2e7ab6227837c94d450312
pub ky from pr ky:  be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881

sigscript:  4830450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c014104be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881
sigscript lennn:  278
pubky len in sigscript:  65

 formatting or real transaction: 

version------------------- 01000000
transaction used---------- 01
transaction out Hex------ 245d84ae31c473495d2ba9b3a57b44196d634acf8a8d689960550345422a01fd
transaction out index----- 00000000
signing script size------- 8b
sigScript----------------- 4830450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c014104be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881

-----sigscript formatting----

sig size---- 48

signature--- 30450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c

how this script applies----- 01

pub ky len--- 41

pub key-- 04be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881

this pub key is 65 byte long dueto '04' added
---end sigscript formatting----

sequence------------------ ffffffff
no. of out trxn----------- 02
out1 value---------------- 00c4090000000000
out1 script len----------- 19
out1 Script--------------- 76a914a4842eed5a2c6fd7b71a238632f268d5831dacc088ac
out2 value---------------- c0cf6a0000000000
out2 script len----------- 19
out2 script--------------- 76a9142431e05399f655c52f2e7ab6227837c94d45031288ac
lock time----------------- 00000000

十六进制字符串事务:

^{pr2}$

我正在使用十六进制字符串中的事务来广播使用https://live.blockcypher.com/btc-testnet/pushtx/ 显示此错误:

Error validating transaction: Error running script for input 0 referencing fd012a424503556099688d8acf4a636d19447ba5b3a92b5d4973c431ae845d24 at 0: Script was NOT verified successfully..

该事务中的0索引为:

OP_DUP OP_HASH160 2431e05399f655c52f2e7ab6227837c94d450312 OP_EQUALVERIFY OP_CHECKSIG

尝试广播使用:https://testnet.blockexplorer.com/tx/send 显示此错误:

16: mandatory-script-verify-flag-failed (Script evaluated without error but finished with a false/empty top stack element). Code:-26

当我使用:https://live.blockcypher.com/btc-testnet/decodetx/解码事务时 它显示:

{
    "addresses": [
        "mipLNRZc9oo2fKFzhfwJVNy1t29VsqHRvS", 
        "mvWqTmhjEyMkymTm4VMFWLPQhzGwo6RPGM"
    ], 
    "block_height": -1, 
    "block_index": -1, 
    "confirmations": 0, 
    "double_spend": false, 
    "fees": 6499, 
    "hash": "28aa9b738ec668c62280c7d7cb19c1b907ec10427050902609a54264774c77ca", 
    "inputs": [
        {
            "addresses": [
                "mipLNRZc9oo2fKFzhfwJVNy1t29VsqHRvS"
            ], 
            "age": 1489541, 
            "output_index": 0, 
            "output_value": 7646499, 
            "prev_hash": "fd012a424503556099688d8acf4a636d19447ba5b3a92b5d4973c431ae845d24", 
            "script": "4830450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c014104be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881", 
            "script_type": "pay-to-pubkey-hash", 
            "sequence": 4294967295
        }
], 
    "outputs": [
        {
            "addresses": [
                "mvWqTmhjEyMkymTm4VMFWLPQhzGwo6RPGM"
            ], 
            "script": "76a914a4842eed5a2c6fd7b71a238632f268d5831dacc088ac", 
            "script_type": "pay-to-pubkey-hash", 
            "value": 640000
        }, 
        {
            "addresses": [
                "mipLNRZc9oo2fKFzhfwJVNy1t29VsqHRvS"
            ], 
            "script": "76a9142431e05399f655c52f2e7ab6227837c94d45031288ac", 
            "script_type": "pay-to-pubkey-hash", 
            "value": 7000000
        }
    ], 
    "preference": "low", 
    "received": "2019-05-02T00:31:23.148760954Z", 
    "relayed_by": "54.162.99.128", 
    "size": 258, 
    "total": 7640000, 
    "ver": 1, 
    "vin_sz": 1, 
    "vout_sz": 2
}

到目前为止,我发现sigscript部分有些混乱,因为发送硬币的地址是:2431e05399f655c52f2e7ab6227837c94d450312,这是添加到pub密钥中的'04',并将sha256应用于这个新密钥,然后ripemd160,但是签名只能用pubkey而不是04部分进行验证。在

所以现在,我不知道该如何继续下去。 如果有人需要代码查看,我很乐意提供。 请帮帮我!在


Tags: tokeylenvaluescripthash事务testnet