Frequently Asked Questions
- What is double spending?
Double spending bitcoins means including the same bitcoins as inputs in two
or more transactions.
- Why does the bitcoin network allow this?
Because when you double spend, only one of the transactions will get
confirmed. So you don't really get 2 bitcoins for the price of 1.
- So why would I want to double spend?
Double spending takes advantage of people or web sites who give you
something in return for an unconfirmed bitcoin payment. The
creators of bitcoin warned users to never trust an unconfirmed
transaction (because of the double spending problem). However, not
everyone listens to recommendations.
- So how can I use double spending to my advantage?
Find people or web sites that will give you something in return for an
unconfirmed payment. Send the first transaction to them and get something
from them. Then, create a double spend transaction back to one of your
own addresses. If the second transaction confirms (which means the first
can't confirm) then you get your bitcoins back,
plus whatever the person or web site gave you.
- How do I get the second transaction to confirm instead of the
first?
Use a higher transaction fee for the second transaction.
- Can you give me some examples of situations where double spending
might give me something for free?
- In-person bitcoin trading. You want to sell bitcoins to someone.
You meet up with them. You send them the bitcoin payment. They see your
payment, but don't wait for the confirmation (bad idea!) and give you the
cash. You walk away and then double spend the bitcoins back to yourself. Now
you have the bitcoins and the cash. Then they hire Chuck Norris to hunt you
down. OK, maybe this is a bad idea.
- Bitcoin casinos. Some online casinos (such as
BitCasino,
WixiPlay, and
8 Bet allow you to
bet while your deposit is still unconfirmed. Here's how to take advantage:
First, send in a deposit payment. Then, while the payment is still
unconfirmed, you make a bet. If you win, great! Just wait for the payment to
confirm. When it does, withdraw your winnings. What if your bet loses?
No problem. Just double spend the same coins back to yourself before your
deposit transaction confirms. Now you have your coins back and you didn't lose
anything (except your transaction fee).
- Bitcoin mixers. Some mixers (such as
BitCloak)
will send your output
payment to you while your input payment is still unconfirmed. First, send the
mixer a payment. Then wait until you see the payment from the mixer incoming
to your wallet. When you do, double spend the bitcoins you sent the mixer back
to yourself. If the mixer's output transaction to you confirms but your input
transaction to the mixer does not confirm (because your double spend
transaction confirms instead) then you really have doubled your bitcoins
(minus the mixer's fee and your transaction fee).
- Bitcoin ATMs. Some dispense cash before your bitcoin payment into
the ATM confirms. Grab the cash and double spend the coins back to yourself.
- Cryptocurrency exchange sites. Some will send you a payment
in another cryptocurrency (such as Monero) before your bitcoin deposit
payment confirms. Sounds like a bad idea for them. Of course by now you
know what to do about that...
- Isn't this all too good to be true?
Most of the time, yes. It takes a lot of finesse to actually make this work.
Most web sites that give you something while your payment is still
unconfirmed have an algorithm that scores the likelihood of your payment
confirming. If the algorithm predicts your payment could be double spent
then it won't give you anything until your payment confirms.
- So is it hopeless to even try?
Not if you have a lot of time on your hands. Here are some suggestions:
- Try to target newly-created web sites, as they are less likely to have
been burned by double spends before. So they won't be ready for you.
- Look for simple web sites that seem to have been created by just one
person. The administrators of these small sites often make mistakes that
lead to successful attacks because they don't have anyone helping them
review their system for vulnerabilities.
- Play around with the transaction fees and the time lag between your
transactions. You have to find a sweet spot where the
transaction fee for your first transaction is high enough for the web
site to accept your payment while it's still unconfirmed, but low enough
so that you can get your second transaction (the double spend back to
yourself) to confirm first if you use a higher transaction fee. The lag time
between your first and second transactions matters too. Sometimes you might
want to send both transactions just a second or two apart and sometimes you
might want to put a longer delay between them. It takes a lot of
trial and error before you might have your first success.
- Does this ever actually work?
Sure it does. Check out these postings that mention successful double spend
attacks:
-
https://www.reddit.com/r/Bitcoin/comments/3dygn9/double_spend_on_pocket_dice
(PocketDice was allowing people to bet with 0 confirmations and
double spend back to themselves if they lost.)
-
https://blog.blockcypher.com/yes-someone-double-spent-bitcoin-no-zero-confirmation-payments-are-not-dead-944d021b865e
(BlockCypher assigns a "confidence score" to evaluate how likely a
transaction is to be double spent...in this case they got it wrong.)
-
http://bitcoinist.com/peter-todd-double-spends-on-coinbase
(Peter Todd, one of the bitcoin core developers, made a successful
double spend attack on Coinbase in order to prove how easy it is.)
- OK, I want to try this out. How do I use Fomero?
- Go to the Create page to start a new double
spend.
- Enter the transaction amount. For each of the two transactions in the
double spend, enter the destination address and fee rate. Note that
the fee rate for your second transaction must be at least 10 satos/byte
higher than the fee rate for your first transaction.
- Fomero will add up the transaction amount, the transaction fee
amount, and the Fomero fee amount and tell you the total, along with
the funding address.
- Send your funding payment to the funding address.
- You can now click the Send First Transaction button to send the
first transaction. The page will reload and tell you the transaction ID
of this transaction and give you a link to look it up on blockchain.
- At any time before your first transaction confirms you can click the
Send Second Transaction button. This will create a double spend
of the same bitcoins to the second address you entered.
- The difference in transaction fees and sending time between the first
and second transactions will determine whether the first or second
transaction confirms.
- How much is the Fomero fee?
Only 10% from your transaction.
- What if I have a problem or need to ask a question?
You can Contact support.