It depends on the programming of the mining client. They might accept the first one received or reject both, given they can collect transactions for the next block while calculating the hash solution for the current block.
Wait isn't the same thing as reject. If miner waits until the next block then one of the tx will be confirmed. Still there is no reason for a miner to wait on a paying tx. Once again theoretical nonsense, based on a presumption that miners are idiots and will do dumb things you need them to.
I have no idea what you are babbling about. If I send a tx to a mining node, that node collects the txs that will be in the next block solution, because it can't modify the hash of the current block solution it is working on. While it is collecting these txs, if it notices two are double-spends, then it could either not include either in the next block solution or it could include one of them. Most logically it would not include either since it can't be sure which was first due to propagation delays.
You can not dictate how all mining clients will be programmed. You might be referring to the default choice in the official reference client?
Economics dictate miners won't be stupid. If they are they will go bankrupt and be replaced by ones less stupid.
Huh?
I wrote that when the seller releases the product after Tx send. You are writing about a seller waiting a while and trying to sniff the network activity, which is not a guaranteed method due to propagation of transactions not being guaranteed by the protocol.
You say "send" and "propagation" as if they are different events. How do you think the merchant LEARNS of the payment. That is right it is propogated through the network.
So the merchants tx propagates rapidly within seconds, but magically the attackers tx only propagates to nodes that aren't linked to the merchant although the attacker has no way of knowing which ones those are.
Gotcha.
The post I was responding to said "confirmation of tx send". If the attacker knows which mining node the merchant is receiving confirmation from, he can send directly to that node, then send his double-spend within the propagation delay to other nodes.
Due to propagation delays, if mining nodes are accepting the first one received, then it is not sure which transaction will be confirmed in the next block solution, i.e. nodes will not all be keeping the same of the two transactions.
If the merchant waits long enough and his mining node is reporting the receipt of a double-spend to him, then he can abort the transaction. But this was not the statement of the post I was responding to which said the product was released upon "confirmation of tx send".
Worse however, if the attacker can identify mining nodes which are withholding high valued transactions (or have significant propagation delay, i.e. there is no requirement that miners must propagate quickly) and have significant hashrate, he can put a high tx fee on his payment to self (not necessary if just a propagation delay attack). Then even if the merchant waits significant time, the double-spend might still succeed. The attacker himself doesn't need to have that mining hashrate.
You have many assumptions which won't always be true. This is typical for the junior level programmer that you are. Get off my lawn child.
Just like the recent malleability issue. You Bitards make many assumptions about how the mining clients "should" work. You forget it is a free market and chaos rules. You need to design for every potential outcome.
The non-zero tx fee is a flaw in many ways.
I put him on "Ignore" long ago so I wouldn't be tempted to respond to his silly, mis-informed, useless drivel.
Good to see that I made the right decision on the matter.
I must have taken it off some time ago for one reason or another. Always good to reverify ones assumptions by experimentation. In this case the experiment validated the hypothesis. Also knowing Angry Mint this will likely span countless posts of baseless assumptions and blatantly incorrect technical details so I think it is back to ignore. Life is too short, and you can't fix stupid.
Typical junior level programmer that thinks he is hot shit.
Life is too short, and you can't fix stupid.
I'm not convinced that he's stupid. I suspect that he knows how things work but...
I know not only how things "should" work, but also think about all the ways they "do" work. You stay in your perfect little lab enclosed world. I will stay out here in the real world, where I don't make assumptions that can't be guaranteed.
You all are making many assumptions which you've forced on yourself to counteract a major design flaw in Bitcoin which is the 10 minute block period. Just keep digging that hole please.