¿Qué aspecto tiene un gasto doble (CVE-2018-17144) si obtengo una transacción?

Solo me preguntaba cómo se vería la salida de gettransaction (¿o debería usar getblock?) si le pasara un txid (o blockhash) que contenía un conjunto de transacciones que explotaban el error de doble gasto CVE-2018-17144. ¿Se distingue de un gasto normal, sin doble gasto? ¿La billetera que se consulta debe conocer las dos direcciones gastadas para mostrar algo fuera de lo común?

Respuestas (1)

Podrías usar $ getblock <blockhash> 2o $ getrawtransaction <tx-hash> 2.

Aquí hay una transacción que explotó este error en testnet: fb7a8658ec015133e36e2cf7ddf7e8c887c3a5becec2f30f24ebfe43e72f4b59

$ bitcoin-cli -testnet getrawtransaction fb7a8658ec015133e36e2cf7ddf7e8c887c3a5becec2f30f24ebfe43e72f4b59
    {
      "txid": "fb7a8658ec015133e36e2cf7ddf7e8c887c3a5becec2f30f24ebfe43e72f4b59",
      "hash": "fb7a8658ec015133e36e2cf7ddf7e8c887c3a5becec2f30f24ebfe43e72f4b59",
      "version": 1,
      "size": 403,
      "vsize": 403,
      "weight": 1612,
      "locktime": 0,
      "vin": [
        {
          "txid": "6a08723bc717e1ddf91fa60fde25784ef66952e8687f3bffe391fc2c819dbfd9",
          "vout": 1,
          "scriptSig": {
            "asm": "3045022100e412610b2e2b8370f2eda0cf29fe19c2a4ea35191d8b42656e81bc97026b229e022046ff1df7293f8dbc3efd95b125ebf679a4a68e8de2265990ef7553f1060dc9e3[ALL] 0455fd1c1a6cbfb25b5bba1cf6f850de00d79852be3de51e50c0da683613303c533d079e147dfe07ce4d40df2b776b35184698d14fa107a61e0976b0d9416880c8",
            "hex": "483045022100e412610b2e2b8370f2eda0cf29fe19c2a4ea35191d8b42656e81bc97026b229e022046ff1df7293f8dbc3efd95b125ebf679a4a68e8de2265990ef7553f1060dc9e301410455fd1c1a6cbfb25b5bba1cf6f850de00d79852be3de51e50c0da683613303c533d079e147dfe07ce4d40df2b776b35184698d14fa107a61e0976b0d9416880c8"
          },
          "sequence": 4294967295
        },
        {
          "txid": "6a08723bc717e1ddf91fa60fde25784ef66952e8687f3bffe391fc2c819dbfd9",
          "vout": 1,
          "scriptSig": {
            "asm": "304402206fa6ef6c0727ecf8d40b2b4648a93b084396c9819d20a3300e83ac4d110589e8022060c78d44db1d5b5babd1629c55d8058643d11a14da933b4bc5f7a8a2a7da3773[ALL] 0455fd1c1a6cbfb25b5bba1cf6f850de00d79852be3de51e50c0da683613303c533d079e147dfe07ce4d40df2b776b35184698d14fa107a61e0976b0d9416880c8",
            "hex": "47304402206fa6ef6c0727ecf8d40b2b4648a93b084396c9819d20a3300e83ac4d110589e8022060c78d44db1d5b5babd1629c55d8058643d11a14da933b4bc5f7a8a2a7da377301410455fd1c1a6cbfb25b5bba1cf6f850de00d79852be3de51e50c0da683613303c533d079e147dfe07ce4d40df2b776b35184698d14fa107a61e0976b0d9416880c8"
          },
          "sequence": 4294967295
        }
      ],
      "vout": [
        {
          "value": 0.09900000,
          "n": 0,
          "scriptPubKey": {
            "asm": "OP_DUP OP_HASH160 c8b876680fef08df5278a9df92df7e30b83cbb71 OP_EQUALVERIFY OP_CHECKSIG",
            "hex": "76a914c8b876680fef08df5278a9df92df7e30b83cbb7188ac",
            "reqSigs": 1,
            "type": "pubkeyhash",
            "addresses": [
              "mypGR6pDS85nidXk3DoHZCNBuYd6WBhzgU"
            ]
          }
        }
      ],
      "hex": "0100000002d9bf9d812cfc91e3ff3b7f68e85269f64e7825de0fa61ff9dde117c73b72086a010000008b483045022100e412610b2e2b8370f2eda0cf29fe19c2a4ea35191d8b42656e81bc97026b229e022046ff1df7293f8dbc3efd95b125ebf679a4a68e8de2265990ef7553f1060dc9e301410455fd1c1a6cbfb25b5bba1cf6f850de00d79852be3de51e50c0da683613303c533d079e147dfe07ce4d40df2b776b35184698d14fa107a61e0976b0d9416880c8ffffffffd9bf9d812cfc91e3ff3b7f68e85269f64e7825de0fa61ff9dde117c73b72086a010000008a47304402206fa6ef6c0727ecf8d40b2b4648a93b084396c9819d20a3300e83ac4d110589e8022060c78d44db1d5b5babd1629c55d8058643d11a14da933b4bc5f7a8a2a7da377301410455fd1c1a6cbfb25b5bba1cf6f850de00d79852be3de51e50c0da683613303c533d079e147dfe07ce4d40df2b776b35184698d14fa107a61e0976b0d9416880c8ffffffff01e00f9700000000001976a914c8b876680fef08df5278a9df92df7e30b83cbb7188ac00000000",
      "blockhash": "00000000eba3f43a8624750f39e4520a1678c0dbdf8707bfa4854a12fbf086c5",
      "confirmations": 0,
      "time": 1537995498,
      "blocktime": 1537995498
    }

¿Se distingue de un gasto normal, sin doble gasto?

Notará que la entrada aparece dos veces en el 'vin':

"txid": "6a08723bc717e1ddf91fa60fde25784ef66952e8687f3bffe391fc2c819dbfd9",
"vout": 1,

Eso se considera un doble gasto.

¿La billetera que se consulta debe conocer las dos direcciones gastadas para mostrar algo fuera de lo común?

La billetera tendría que estar vigilando las direcciones asociadas o probablemente no tendría esa transacción almacenada. Incluso si se trata de un nodo completo, solo puede obtener el tx por txid si ha indexado la cadena de bloques usando la -txindexbandera.

Ves en ese json donde tienes vin.voutdos veces, y ambos son 1. ¿Siempre es así? Mientras navegaba sin hacer nada por la lista rica del explorador de bloques en busca de una moneda, tengo algunos hodlings antiguos, noté esto: chainz.cryptoid.info/funk/tx.dws?1211915.htm - ¿Es ese también el mismo exploit? El txid se repite una y otra vez, pero el vout es diferente, a diferencia de su ejemplo
Si solo el vout es diferente, entonces es una salida diferente de la misma transacción
Entonces, ¿debo buscar los resultados de la transacción para encontrar los que tienen el mismo valor?
Si buscas un gasto doble, sí. La salida de una transacción se identifica únicamente por su txid y vout juntos. Esto se debe a que las transacciones pueden tener múltiples salidas.
Ok, entonces en ese tx que vinculé ( chainz.cryptoid.info/funk/tx.dws?1211915.htm ) todos esos vout son diferentes, por lo que son entradas legítimamente diferentes para esa transacción... PERO si retrocedo otro paso y ver la transacción en la que se generaron ( chainz.cryptoid.info/funk/tx.dws?1211349.htm ) esta tiene decenas de txid/vout idénticos, ¿entonces ESA es la transacción que explotó el error?
si, eso parece