I have been searching the forum and I can not find a solid answer to this question: Is there a way that anyone can stop a transaction before the confirmations have been made. For example; I pay Joe Dip 1.1 BTC for a domain name. I can see that the transaction is waiting confirmation in the block chain, however there are no confirmations yet. The seller can also see that the transaction is waiting for confirmations to come through. Once we are at this point is there anyway that I could stop the transaction?
Not if the transaction is valid (signed) and the receiver has already seen it. Lets assume Im Joe Dip here and you send me 1.1 BTC without a fee. Currently thats a bad idea, but you say you are sorry and I believe you.
Now it would take a long time for the transaction to get a confirmation. I could also happen, that the
entire network forgets about the transaction and it essentially never happened. I can however - and would in this case - remind the network about your transaction. For 1.1 BTC worth I would probably write a small script that does this every 30-60 minutes. You can now remove the transaction from your own wallet, but I will keep reminding the rest of the network until its confirmed. This will make it almost impossible for you to issue a different transaction that sends the coins elsewhere.
If we both agree that the TX should be removed and redone. I would not write nor start the script. You remove the TX from your wallet and we both wait a few days until the network forgot about it. This essentially "stops" the transaction, unless someone else rebroadcasts it for some reason (or none at all).
If the transaction pays a reasonable high fee, you can remove it from your wallet all you want. Chances are it gets confirmed anyway.
I am sorry, but this makes sense to me, but I do not understand the jargon of it all. What do you mean I should write a script? I am thinking about taking Bitcoin as a form of payment in my local store, but I do not want the customers to have to wait forever to leave and I want to make sure that if I let them leave with the product before the transaction is confirmed, they can not try to take it back. Are you saying that is a fee such as .00001 is paid as a fee it will be completed faster?
I could tell you what a reasonable high fee is for today, but it might be wrong tomorrow. How a high a good fee is greatly depends on the number of transactions that try to get a confirmation as well as the fee they pay.
As someone accepting bitcoin as payment you have essentially 3 options.
#1 you learn the details
#2 you use a service like bitpay as they know the details. They have the scrips ready and AFAIK they also have contracts with mining pools that ensure confirmations.
#3 you accept that a small number of payments might fail.
#4 well, you can wait for a confirmation, but that usually is not acceptable for stores.
-snip-
yes... If a transaction contains a fee, it will be an incentive for the miners to include your transaction into a block. A transaction without a fee will usually be confirmed slower than a transaction with a fee (during a spam attack, a fee-less transaction might not be included for a very long time)
Most clients include a fee out-of-the-box.
This sounds like 1 satoshi is enough of a fee to get a confirmation.
If you use, for example, blockchain , to look at the transaction, you can easily see if the fee your customer added was large enough.
This would require the person accepting the payments to look up the transaction and be able to judge the fee based on the current state of the network. Not typicall what you expect from someone handling the register.
if the fee is small the transaction will be long, blockchain originally has a pattern which can be increased fee
The fee can not be increases once the transaction is broadcasted.