1

I am trying to determine how many confirmations would be reasonably safe to wait before accepting a Bitcoin transaction from an attacker that is not a miner and hence cannot rely on Finney attacks, but that could try to freely double spend based on his observation of the state of the blockchain.

I understand that at 0-confirmation, attempting a double spend may well work if for example the transaction fee of the second transaction is higher, and the first transaction has not been widely disseminated yet (so nodes would not reject it as a double spend).

At 1-confirmation, any double-spend would automatically be rejected by all nodes accepting the first confirmed block. However, should (i) the blockchain be "reorganized" with a minor fork taking over, as I understand happens regularly (are there statistics on this?), and (ii) the initial transaction not be included in the fork, the attacker could immediately retry double-spending in the hope it gets included in the next block.

Should I be worried of such blockchain reorganizations when accepting n-confirmation transactions? Am I right to say that any successful 6-block fork would open the risk of free riding the double spending of ALL transactions not included in the fork, not just those targeted by the rogue miner? Or would most nodes (including the rogue miner) most likely reject the free-riding double spend attempts anyway (even if its transaction fees are set way higher), as the first transaction would by that time be fully disseminated?

  • How can you possibly know whether the counterparty is or is not a miner? (Note that "is a miner" includes "can pay a miner to do something on their behalf".) – Nate Eldredge Dec 5 '15 at 16:56
  • This is an assumption. I am also excluding the possibility of the counterparty go try to pay a miner to do something on his behalf. I am basically interested in the free-riding double spending case only. – Erwin Mayer Dec 6 '15 at 13:05
2

Should I be worried of such blockchain reorganizations when accepting n-confirmation transactions?

Forks do occur quite frequently, and if you're only requiring a single confirmation the counterparty will have the opportunity to double spend each time these orphaned blocks occur.

Am I right to say that any successful 6-block fork would open the risk of free riding the double spending of ALL transactions not included in the fork, not just those targeted by the rogue miner?

Yes, a successful 6-block fork would allow double spending for all n-confirmation transactions not included in the fork, where n ≤ 6.

Would most nodes (including the rogue miner) most likely reject the free-riding double spend attempts anyway (even if its transaction fees are set way higher), as the first transaction would by that time be fully disseminated?

Hard to say. The bitcoin protocol doesn't explicitly have a rule for n-confirmations (this is just an accepted number of confirmations after which the receiver of a transaction can be reasonably sure double spending will not occur), so according to the protocol, the transactions would be valid. I doubt there are many miners with logic built in to deal with this scenario since when it becomes anything more than close to impossible (an entity having about half the computing power of the network) the currency probably won't have legitimacy left (therefore no value in them acting as miners).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.