1
In IsStandardTx within main.cpp, there is a comment:
// Treat non-final transactions as non-standard to prevent a specific type
// of double-spend attack, as well as DoS attacks. (if the transaction
// can't be mined, the attacker isn't expending resources broadcasting it)
// Basically we don't want to propagate transactions that can't included in
// the next block.
What are the specific type of double-spend attacks and the DoS attacks alluded to here?
Thanks, David, you're very articulate. Couldn't the DOS attack be mitigated just by only allowing like 16 possible values for the nSequence? That way nSequence could still be useful. And the second attack makes sense, but it also seems like something that software just has to account for (don't accept a non-final transaction as payment for goods/services). Blockchain.info would only show it as unconfirmed, and that's probably what Wallet software should do too. – morsecoder – 2014-11-21T00:31:27.927
@StephenM347 Thanks. Only allowing 16 values means only 16 updates are possible, limiting the utility of the field. A main use was to be mostly-out-of-band micropayments where thousands of tiny payments would be advantageous. I agree about the second attack being not very scary, but I can't think of a scarier scenario to account for the comment you pasted. :-) – David A. Harding – 2014-11-21T00:40:04.133