Заменяемая транзакция или не заменяемая. Как я могу идентифицировать его из необработанной транзакции?

Я создал две транзакции на клиенте Electrum Mac. Первая транзакция заменяема, а другая не заменяема. Ниже приведены результаты get-rawtransaction двух транзакций. Как я могу определить из двух необработанных транзакций, можно ли их заменить или нет. Я предполагаю, что «последовательность = 4294967295» означает «Незаменяемый».

Сменный:

{
    "result": {
        "hex": "0100000001344620a6c74ecc9df79d035f6c470c9fcada00e6103b8aa6da55b2eced1161f7000000006a473044022039a9d24c53605797c7fe74f69e97564b6e9346779ce32e208624049011fcbc04022010d481a6ca5aa88e0891b30caba160675ad21bf29dffa6bee63c2e6c98ac43bb01210228a0fc2a9872fab14eab65f3994089c2c285a549dbcbf0924788fee759960a96fdffffff0210270000000000001976a9141485d9d03b41aaa9dca7d70d7f63ff4a0826100e88acc0a20100000000001976a914e6df3a7f505b79b8da79c6fc6f5444ffe843f5f588ac00000000",
        "txid": "43f882c7ab0cf18678b171a69278cd496a85152bd88b66b73562601485ff3725",
        "hash": "43f882c7ab0cf18678b171a69278cd496a85152bd88b66b73562601485ff3725",
        "size": 225,
        "vsize": 225,
        "version": 1,
        "locktime": 0,
        "vin": [
            {
                "txid": "f76111edecb255daa68a3b10e600daca9f0c476c5f039df79dcc4ec7a6204634",
                "vout": 0,
                "scriptSig": {
                    "asm": "3044022039a9d24c53605797c7fe74f69e97564b6e9346779ce32e208624049011fcbc04022010d481a6ca5aa88e0891b30caba160675ad21bf29dffa6bee63c2e6c98ac43bb[ALL] 0228a0fc2a9872fab14eab65f3994089c2c285a549dbcbf0924788fee759960a96",
                    "hex": "473044022039a9d24c53605797c7fe74f69e97564b6e9346779ce32e208624049011fcbc04022010d481a6ca5aa88e0891b30caba160675ad21bf29dffa6bee63c2e6c98ac43bb01210228a0fc2a9872fab14eab65f3994089c2c285a549dbcbf0924788fee759960a96"
                },
                "sequence": 4294967293
            }
        ],
        "vout": [
            {
                "value": 0.00010000,
                "n": 0,
                "scriptPubKey": {
                    "asm": "OP_DUP OP_HASH160 1485d9d03b41aaa9dca7d70d7f63ff4a0826100e OP_EQUALVERIFY OP_CHECKSIG",
                    "hex": "76a9141485d9d03b41aaa9dca7d70d7f63ff4a0826100e88ac",
                    "reqSigs": 1,
                    "type": "pubkeyhash",
                    "addresses": [
                        "12sWrxRY7E7Nhmuyjbz4TtGE9jRewGqEZD"
                    ]
                }
            },
            {
                "value": 0.00107200,
                "n": 1,
                "scriptPubKey": {
                    "asm": "OP_DUP OP_HASH160 e6df3a7f505b79b8da79c6fc6f5444ffe843f5f5 OP_EQUALVERIFY OP_CHECKSIG",
                    "hex": "76a914e6df3a7f505b79b8da79c6fc6f5444ffe843f5f588ac",
                    "reqSigs": 1,
                    "type": "pubkeyhash",
                    "addresses": [
                        "1N3jqJwykPZGrskiDi2UujWgmaiPqdcaPz"
                    ]
                }
            }
        ]
    },
    "error": null,
    "id": null
}

Незаменяемый:

{
    "result": {
        "hex": "01000000017502aa8b1662b3974e9f36a308d993e5de6d9acc0a417789f763c77cc1b8774b010000006b483045022100c716b5d6d23e6e980a1be76b62033d4d4213e6308684ef18c02449e9c687581d0220565c89f68fd9f220b6007950da1264e1c29edce8caf2600889b5f22f6e6e69fd012102078eb65f8cdfac159ba9babf0fd28b74477ed1ac108a7ec7f50c3c8b0e05647cffffffff0210270000000000001976a9141485d9d03b41aaa9dca7d70d7f63ff4a0826100e88acfc020100000000001976a914beb0e18e168aab7a1b9601430dd317c1c18b286b88ac00000000",
        "txid": "c374698cff5c784f2af87a637ee9ff571bd2951baecf1942ab377002a599cc16",
        "hash": "c374698cff5c784f2af87a637ee9ff571bd2951baecf1942ab377002a599cc16",
        "size": 226,
        "vsize": 226,
        "version": 1,
        "locktime": 0,
        "vin": [
            {
                "txid": "4b77b8c17cc763f78977410acc9a6ddee593d908a3369f4e97b362168baa0275",
                "vout": 1,
                "scriptSig": {
                    "asm": "3045022100c716b5d6d23e6e980a1be76b62033d4d4213e6308684ef18c02449e9c687581d0220565c89f68fd9f220b6007950da1264e1c29edce8caf2600889b5f22f6e6e69fd[ALL] 02078eb65f8cdfac159ba9babf0fd28b74477ed1ac108a7ec7f50c3c8b0e05647c",
                    "hex": "483045022100c716b5d6d23e6e980a1be76b62033d4d4213e6308684ef18c02449e9c687581d0220565c89f68fd9f220b6007950da1264e1c29edce8caf2600889b5f22f6e6e69fd012102078eb65f8cdfac159ba9babf0fd28b74477ed1ac108a7ec7f50c3c8b0e05647c"
                },
                "sequence": 4294967295
            }
        ],
        "vout": [
            {
                "value": 0.00010000,
                "n": 0,
                "scriptPubKey": {
                    "asm": "OP_DUP OP_HASH160 1485d9d03b41aaa9dca7d70d7f63ff4a0826100e OP_EQUALVERIFY OP_CHECKSIG",
                    "hex": "76a9141485d9d03b41aaa9dca7d70d7f63ff4a0826100e88ac",
                    "reqSigs": 1,
                    "type": "pubkeyhash",
                    "addresses": [
                        "12sWrxRY7E7Nhmuyjbz4TtGE9jRewGqEZD"
                    ]
                }
            },
            {
                "value": 0.00066300,
                "n": 1,
                "scriptPubKey": {
                    "asm": "OP_DUP OP_HASH160 beb0e18e168aab7a1b9601430dd317c1c18b286b OP_EQUALVERIFY OP_CHECKSIG",
                    "hex": "76a914beb0e18e168aab7a1b9601430dd317c1c18b286b88ac",
                    "reqSigs": 1,
                    "type": "pubkeyhash",
                    "addresses": [
                        "1JPHHMtzGbATPDKWtSwX9cZ7qq3KNLg1qZ"
                    ]
                }
            }
        ]
    },
    "error": null,
    "id": null
}

Ответы (3)

Из BIP-125 Opt-in Full Replace-by-Fee Signaling:

Эта политика определяет два способа, которыми транзакция может сигнализировать о том, что ее можно заменить.

  • Явная сигнализация: считается, что транзакция разрешила замену самой себя, если любой из ее входов имеет номер nSequence меньше (0xffffffff - 1).
  • Унаследованная сигнализация: транзакции, которые явно не сигнализируют о заменяемости, могут быть заменены в соответствии с этой политикой до тех пор, пока любой из их предков сигнализирует о заменяемости и остается неподтвержденным.

Поскольку 0xffffffff = 4294967295, а первая транзакция имеет nSequence = 4294967293, это сигнализирует об этом.

вот некоторая ссылка: https://bitcoin.org/en/developer-guide#locktime-and-sequence-number

Само время блокировки представляет собой беззнаковое 4-байтовое целое число, которое можно проанализировать двумя способами:

If less than 500 million, locktime is parsed as a block height. The transaction can be added to any block which has this height or higher... at least one input must have a sequence number below the maximum.

ваш порядковый номер — fdffffff, а не «ffffffff», как обычно.

Я предполагаю, что «последовательность = 4294967295» означает «Незаменяемый».

правильный