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
  • 466
  • 3
  • 16

1 Answers1

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
  • 29,184
  • 11
  • 69
  • 129
  • 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 Apr 04 '17 at 22:11
  • 'particularly if it contradicts a transaction you have' - please elaborate! – Ben Muircroft Apr 04 '17 at 22:13
  • @BenMuircroft If two transactions spend the same outpoint, they cannot both succeed. One or more must not get into the chain. – Nick ODell Apr 04 '17 at 22:13
  • '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 Apr 04 '17 at 22:17
  • 1
    @BenMuircroft Yes, that's correct. – Nick ODell Apr 04 '17 at 22:17
  • wow that is a major exception! it is occuring like mad frequently right now on testnet3! – Ben Muircroft Apr 04 '17 at 22:18
  • 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 Apr 04 '17 at 22:22
  • related: http://bitcoin.stackexchange.com/a/22058/14316 – Ben Muircroft Apr 04 '17 at 22:30