Sieht so aus, als würde die Transaktion gut dekodiert. Aber wenn ich senddrawtransaction benutze, bekomme ich
Data push larger than necessary
Was ist falsch an diesem TX?
bitcoin-cli -testnet decoderawtransaction 020000000149d4a5f520ded6fa94f79cd268f0334baeec9a7732c9d946d1cdee58d81e7aad00000000020101ffffffff01904c96000000000017a914f45d94733d430261962932e0c847075195916a048700000000
{
"txid": "1bbf569b281f2cd9d948e4273120a9bc3bb2c21e31bc9786682c0a22d8feb76c",
"hash": "1bbf569b281f2cd9d948e4273120a9bc3bb2c21e31bc9786682c0a22d8feb76c",
"version": 2,
"size": 85,
"vsize": 85,
"weight": 340,
"locktime": 0,
"vin": [
{
"txid": "ad7a1ed858eecdd146d9c932779aecae4b33f068d29cf794fad6de20f5a5d449",
"vout": 0,
"scriptSig": {
"asm": "1",
"hex": "0101"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.09850000,
"n": 0,
"scriptPubKey": {
"asm": "OP_HASH160 f45d94733d430261962932e0c847075195916a04 OP_EQUAL",
"hex": "a914f45d94733d430261962932e0c847075195916a0487",
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"2NFXJy8mvz7ZiT4VVN29xPGC38hTygd3AyJ"
]
}
}
]
}
Ihr scriptSig
verwendet einen Daten-Push, um 0x01 auf den Stack zu schieben. Es könnte OP_1
stattdessen verwenden.
Ihre Transaktion schlägt bei der Validierung mit SCRIPT_VERIFY_MINIMALDATA fehl, was in BIP 62 Regel 3 Schutzmaßnahmen gegen Formbarkeit beschrieben wird. CheckMinimalPush () erfordert, dass ein Push von 0x01 mit OP_1 ausgeführt wird.
Diese Standarditätsregel vermeidet den Fall, dass jemand eine Transaktion aus dem Netzwerk und einen Push mit einer längeren Codierung desselben Pushs nimmt und als Ergebnis eine manipulierte Form der Transaktion erzeugt.
Andreas