How did blockr.io see this?

0

Here's the pushed/broacast-ed tx http://tbtc.blockr.io/tx/info/d8e5dac095d5f6133e6c3f11e1d9f923c04dac0824f9f8ce0000573df7cc8080

txid was malleated to txid (when the tx was added into the block):

http://tbtc.blockr.io/tx/info/a9607981ae4bbf42ed0cfacc05455f9396c85a9e8aeb61474f3f7516c35430ec

I am watching all utx broadcasted on the testnet3 network using https://github.com/bitpay/bitcore-p2p

I did not see a9607981ae4bbf42ed0cfacc05455f9396c85a9e8aeb61474f3f7516c35430ec broadcast-ed I only saw d8e5dac095d5f6133e6c3f11e1d9f923c04dac0824f9f8ce0000573df7cc8080

How the hell did blockr.io see both the original broadcasted tx and the altered tx when it never was seen on the network?

What voo-doo magic is this?

Look, blockcypher didn't store the original broadcasted txid: https://api.blockcypher.com/v1/btc/test3/txs/d8e5dac095d5f6133e6c3f11e1d9f923c04dac0824f9f8ce0000573df7cc8080

but they did store the malleated version:

https://api.blockcypher.com/v1/btc/test3/txs/a9607981ae4bbf42ed0cfacc05455f9396c85a9e8aeb61474f3f7516c35430ec

HOW?

related: How confirm my own doublespend transaction got confirmed and testnet3 frequent tx malleability

Ben Muircroft

Posted 2017-04-04T21:27:14.090

Reputation: 408

Answers

1

I did not see a9607981ae4bbf42ed0cfacc05455f9396c85a9e8aeb61474f3f7516c35430ec broadcast-ed I only saw d8e5dac095d5f6133e6c3f11e1d9f923c04dac0824f9f8ce0000573df7cc8080

That might not be meaningful. Bitcoin is a gossip network, so it's possible for a different node to see a transaction that you didn't see, particularly if it contradicts a transaction you have.

If you're connected to 8 nodes, and each of those has transaction TX1 in their memory pool, none of them will send you TX2 if it contradicts TX1. (Assuming they're running Bitcoin Core, of course.)

Nick ODell

Posted 2017-04-04T21:27:14.090

Reputation: 26 536

so i need to 'pool' (https://github.com/bitpay/bitcore-p2p/blob/master/docs/pool.md) more nodes to have a greater chance of seeing it?

Ben Muircroft 2017-04-04T22:11:08.273

'particularly if it contradicts a transaction you have' - please elaborate!Ben Muircroft 2017-04-04T22:13:04.670

@BenMuircroft If two transactions spend the same outpoint, they cannot both succeed. One or more must not get into the chain.Nick ODell 2017-04-04T22:13:59.067

'none of them will send you TX2 if it contradicts TX1' - but if TX2 was the malleated transaction altered and included in the block by the miner then race conditions don't matter so; the none of them sending TX2 is retarded because the logic will always be ignored by the miners choice of what inevitably goes in!Ben Muircroft 2017-04-04T22:17:00.223

1@BenMuircroft Yes, that's correct.Nick ODell 2017-04-04T22:17:55.440

wow that is a major exception! it is occuring like mad frequently right now on testnet3!Ben Muircroft 2017-04-04T22:18:59.773

If a wallet sends raw tx [4d]49[00]3046.... without [in brackets unnecessary bytes] do you think some miners might be resigning the tx with the unnecessary bytes? therefore changing the txid?!Ben Muircroft 2017-04-04T22:22:27.680

related: http://bitcoin.stackexchange.com/a/22058/14316

Ben Muircroft 2017-04-04T22:30:04.787