Two Bitcoins at the Price of One? Double-Spending Attacks on Fast Payments in Bitcoin

Page created by Jared Carr
 
CONTINUE READING
Two Bitcoins at the Price of One? Double-Spending Attacks on
                      Fast Payments in Bitcoin
                  Ghassan O. Karame                                   Elli Androulaki
                NEC Laboratories Europe                                 ETH Zurich
               69115 Heidelberg, Germany                          8092 Zürich, Switzerland
              ghassan.karame@neclab.eu                         elli.androulaki@inf.ethz.ch
                                            Srdjan Capkun
                                              ETH Zurich
                                        8092 Zürich, Switzerland
                                      srdjan.capkun@inf.ethz.ch
Abstract                                                       digitally signing their transactions and are prevented
                                                               from double-spending their coins (i.e., signing-over
Bitcoin is a decentralized payment system that is              the same coin to two different users) through a dis-
based on Proof-of-Work. Bitcoin is currently gaining           tributed time-stamping service [21]. This service
popularity as a digital currency; several businesses           operates on top of the Bitcoin Peer-to-Peer (P2P)
are starting to accept Bitcoin transactions. An ex-            network that ensures that all transactions and their
ample case of the growing use of Bitcoin was recently          order of execution are available to all Bitcoin users.
reported in the media; here, Bitcoins were used as a
                                                                  Nowadays, Bitcoin is increasingly used in a num-
form of fast payment in a local fast-food restaurant.
                                                               ber of “fast payment” scenarios, where the exchange
   In this paper, we analyze the security of using
                                                               time between the currency and goods is short. Ex-
Bitcoin for fast payments, where the time between
                                                               amples include online services, ATM withdrawals,
the exchange of currency and goods is short (i.e.,
                                                               vending machine payments and fast-food payments
in the order of few seconds). We focus on double-
                                                               (recently featured in media reports on Bitcoin [5]),
spending attacks on fast payments and demonstrate
                                                               where the payment is followed by fast (< 30 seconds)
that these attacks can be mounted at low cost on
                                                               delivery of goods. While Bitcoin PoW-based time-
currently deployed versions of Bitcoin. We further
                                                               stamping mechanism is appropriate for slow pay-
show that the measures recommended by Bitcoin de-
                                                               ments (e.g., on-line orders with delivery of physical
velopers for the use of Bitcoin in fast transactions are
                                                               goods), it requires tens of minutes to confirm a trans-
not always effective in resisting double-spending; we
                                                               action and is therefore inappropriate for fast pay-
show that if those recommendations are integrated
                                                               ments. This mechanism is, however, essential for the
in future Bitcoin implementations, double-spending
                                                               detection of double-spending attacks—in which an
attacks on Bitcoin will still be possible. Finally, we
                                                               adversary attempts to use some of her coins for two
leverage on our findings and propose a lightweight
                                                               or more payments. Since Bitcoin users are anony-
countermeasure that enables the detection of double-
                                                               mous and users (are encouraged to) hold many ac-
spending attacks in fast transactions.
                                                               counts, there is only limited value in verifying the
                                                               payment after the user obtained the goods (and e.g.,
1    Introduction                                              left the store) or services (e.g., access to on-line con-
                                                               tent). The developers of Bitcoin implicitly acknowl-
First introduced in 2009, Bitcoin [21] is an emerging          edge this problem and inform users that they do not
digital currency that has, as of September 2011, ap-           need to wait for the payment to be verified as long
proximately 60,000 users [1]. Bitcoin is currently in-         as the payment is not of high value [6]; this, how-
tegrated across several businesses [2] and has several         ever, does not solve this problem but merely limits
exchange markets (e.g., [3]). It is also foreseen that         the damage as the system still remains vulnerable to
Bitcoin ATMs will be deployed in locations around              double-spending attacks.
the globe [4] in order to bridge the gap between dig-             Until now, double-spending attacks on fast pay-
ital currency and cash.                                        ments in Bitcoin or mechanisms for their prevention
   Bitcoin is a Proof-of-Work (PoW) based currency             have not been studied. In this work, we analyze
that allows users to “mine” for digital coins by per-          double spending attacks in detail and we demon-
forming computations. Users execute payments by                strate that double-spending attacks can be mounted

                                                           1
on currently deployed version of Bitcoin, when used                   2   Background on Bitcoin
in fast payments. We further show that the measures
recommended by Bitcoin developers for fast trans-                     Bitcoin is a decentralized P2P payment system [21]
actions are not always effective in resisting double-                 that relies on PoW. Electronic payments are per-
spending; we argue that if those recommendations                      formed by generating transactions that transfer Bit-
are followed1 , double-spending attacks on Bitcoin                    coin coins (BTCs) between Bitcoin peers. These
are still possible. Finally, we propose a lightweight                 peers are referenced in each transaction by means
countermeasure to detect double-spending attacks in                   of virtual pseudonyms—referred to as Bitcoin ad-
fast transactions.                                                    dresses. Generally, each peer has hundreds of differ-
   More specifically, our contributions in this paper                 ent Bitcoin addresses that are all stored and man-
can be summarized as follows:                                         aged by its (digital) wallet. Each address is mapped
                                                                      through a transformation function to a unique pub-
- We measure and analyze the time required to con-
                                                                      lic/private key pair. These keys are used to transfer
  firm transactions in Bitcoin. Our analysis shows
                                                                      the ownership of BTCs among addresses.
  that transaction confirmation in Bitcoin can be
  modeled with a shifted geometric distribution and                      Peers transfer coins to each other by issuing a
  that, although the average time to confirm transac-                 transaction. A transaction is formed by digitally
  tions is almost 10 minutes, its standard deviation is               signing a hash of the previous transaction where this
  approximately 15 minutes. We argue that this hin-                   coin was last spent along with the public key of the
  ders the reliance of transaction confirmation when                  future owner and incorporating this signature in the
  dealing with fast payment scenarios.                                coin [21]. Any peer can verify the authenticity of a
                                                                      BTC by checking the chain of signatures.
- We thoroughly analyze the conditions for perform-
  ing successful double-spending attacks against fast                    Transactions are included in Bitcoin blocks that
  payments in Bitcoin. We then present the first                      are broadcasted in the entire network. To prevent
  comprehensive double-spending measurements in                       double-spending of the same BTC, Bitcoin relies on
  Bitcoin. Our experiments were conducted us-                         a hash-based PoW scheme. More specifically, to gen-
  ing modified Bitcoin clients running on a hand-                     erate a block, Bitcoin peers must find a nonce value
  ful of hosts located around the globe. Our results                  that, when hashed with additional fields (i.e., the
  demonstrate the feasibility and easy realization of                 Merkle hash of all valid and received transactions,
  double-spending attacks in current Bitcoin client                   the hash of the previous block, and a timestamp),
  implementations2 .                                                  the result is below a given target value. If such a
                                                                      nonce is found, peers then include it (as well as the
- We explore and evaluate empirically a number of                     additional fields) in a block thus allowing any entity
  solutions for preventing double-spending attacks                    to publicly verify the PoW. Upon successfully gen-
  against fast payments in Bitcoin. We show that the                  erating a block, a peer is typically granted 50 new
  recommendations of Bitcoin developers on how to                     BTCs. This provides an incentive for peers to con-
  counter double-spending are not always effective.                   tinuously support Bitcoin. Table 1 depicts the infor-
  Leveraging on our results, we propose a lightweight                 mation included in Bitcoin block number 80,000 as
  countermeasure that enables the secure verification                 reported in the Bitcoin block explorer [7]. The re-
  of fast payments.                                                   sulting block is forwarded to all peers in the network,
                                                                      who can then check its correctness by verifying the
   The remainder of the paper is organized as follows.
                                                                      hash computation. If the block is “valid”, then the
In Section 2, we briefly present Bitcoin. In Section 3,
                                                                      peers append it to their previously accepted blocks,
we review how Bitcoin payments can be processed.
                                                                      thus growing the Bitcoin block chain.
In Section 4, we analyze and evaluate the security
of fast payments with existing Bitcoin clients. We                      The main intuition behind Bitcoin is that for peers
then evaluate the security of possible measures to                    to double-spend a given BTC, they would have to
alleviate double-spending against fast payments in                    replace the transaction where the BTC was spent
Bitcoin. In Section 6, we overview related work and                   and the corresponding block where it appeared in,
we conclude the paper in Section 7.                                   otherwise their misbehavior would be detected im-
                                                                      mediately. This means that for malicious peers to
   1 These recommendations are still not integrated in the Bit-
                                                                      double-spend a BTC without being detected, they
coin implementation.
   2 In our experiments, we solely used Bitcoin wallets and           would not only have to redo all the work required
accounts that we own; other Bitcoin users were not affected           to compute the block where that BTC was spent,
by our experiments.                                                   but also recompute all the subsequent blocks in the

                                                                  2
Hash: 000000000043a8c0fd1d6f726790caa2a406010d19efd2780db27bdbbd93baf6
   Previous block: 00000000001937917bd2caba204bb1aa530ec1de9d0f6736e5d85d96da9c8bba
   Next block: 00000000000036312a44ab7711afa46f475913fbd9727cf508ed4af3bc933d16
   Time: 2010-09-16 05:03:47
   Difficulty: 712.884864
   Transactions: 2
   Total BTC: 100
   Size: 373 bytes
   Merkle root: 8fb300e3fdb6f30a4c67233b997f99fdd518b968b9a3fd65857bfe78b2600719
   Nonce: 1462756097

   Input/Previous Output                      Source & Amount                                Recipient & Amount
             N/A                           Generation: 50 + 0 total fees                   Generation: 50 + 0 total fees
       f5d8ee39a430...:0               1JBSCVF6VM6QjFZyTnbpLjoCJ...: 50                  16ro3Jptwo4asSevZnsRX6vf..: 50

Table 1: Example Block of Bitcoin. The block contains 2 transactions, one of which awards the generator peer with
50 BTCs.

chain3 . This ensures that the Bitcoin network can                        Further details on Bitcoin can be found in [8,9,21].
counter such misbehavior as long as the fraction of                    Throughout the rest of the paper, we will adopt the
honest peers in the network exceeds that of malicious                  following notations.
colluding peers [21].
   In what follows, we provide a summary (adapted                      Confirmed transactions: These refer to Bitcoin
from [21]) of the steps that peers undergo in Bitcoin                  transactions that appear in a valid block. As men-
when a payment occurs.                                                 tioned earlier, these transactions are checked before
                                                                       being included in a block to prevent double-spending
  • New transactions are broadcasted by peers in                       attacks; since they already appear in a block in the
    the network.                                                       Bitcoin block chain, they cannot be modified easily.
                                                                       In the paper, we refer to a transaction that has ac-
  • When a new transaction is received by a peer,                      quired X confirmations (i.e., X − 1 blocks appear in
    it checks whether the transaction is correctly                     the chain after the block that confirms the transac-
    formed, and whether the BTCs have been pre-                        tion) by an X-confirmation transaction.
    viously spent in a block in the block chain. If
    the transaction is correct, it is stored locally in
    the memory pool of peers.                                          Memory Pool: This is a local structure at each
                                                                       peer that contains all transactions that have been re-
  • Peers work on constructing a block. If they find                   ceived and not yet confirmed. If a transaction that
    a nonce that solves the PoW, they include all                      appears in the memory pool of a given peer is con-
    the transactions that appear in their memory                       firmed elsewhere, the transaction is removed from
    pool within the newly-formed block. Peers then                     the memory pool. Note that a peer does not need
    broadcast the block in the network.                                to be involved in any of the transactions appearing
                                                                       in its memory pool.
  • When peers receive a new block, they verify that
    the block hash is valid and that every trans-
                                                                       3   Payments in Bitcoin
    action included within the block has not been
    previously spent. If the block verification is                     In transactions where the exchange between curren-
    successful, peers continue working towards con-                    cies and services happens simultaneously, the pay-
    structing a new block using the hash of the last                   ment verification is typically required to be immedi-
    accepted block in the “previous block” field (cf.                  ate, e.g., fast credit-card authorization. Otherwise,
    Table 1).                                                          the delivery of the services will only occur after the
   3 Bitcoin claims that it is computationally infeasible for an       payment is processed, e.g., slow delivery by post.
attacker to redo the PoW required to compute 6 consecutive                Bitcoin is currently being used in both slow and
blocks.                                                                fast payment scenarios. In this section, we review

                                                                   3
and analyze how Bitcoin transactions are processed                  generation times. In Figure 1, we depict the distribu-
in these two scenarios. For that purpose, we consider               tion of the generation times of the extracted Bitcoin
a system that consists of a Bitcoin P2P network, a                  blocks. As shown in Appendix A, this distribution
vendor V and a set of its customers.                                can be fitted to a shifted geometric distribution with
                                                                    success probability 0.19. Our results also show that
                                                                    only 64% of the blocks are generated in less than 10
3.1 “Slow Payments”—Transaction
                                                                    minutes. The remaining 36% of the blocks require
    Confirmation                                                    between 10 and 40 minutes to be generated.
As described in Section 2, the most conventional and
secure way for V to accept a payment made by a cus-
tomer C is to wait until the transaction issued from C              3.2 “Fast   Payments”—Transaction
to V is confirmed in at least one block before offering                 Reception
service to C. Note that the Bitcoin client can inform
V whether its transactions have been confirmed or                   Our analysis shows that the time required to confirm
not. Since confirmed transactions are likely to be ac-              transactions impedes the operation of many busi-
cepted by honest peers in the Bitcoin network, a ma-                nesses that are characterized by a fast-service time
licious client A has negligible advantage in tricking               (i.e., when the exchange of currency and goods is
V to accept incorrect or double-spent transactions.                 shorter than a minute). As such, it is clear that
                                                                    vendors, such as supermarkets, vending machines,
                                                                    take-away stores [13], etc., cannot rely on transac-
Transaction Confirmation Time: In what fol-
                                                                    tion confirmation when accepting Bitcoin payments.
lows, we briefly analyze the time it takes for a given
transaction to be confirmed.                                           To enable fast payments, Bitcoin encourages ven-
                                                                    dors to give away service without waiting for the
   Bitcoin is designed so that blocks are generated
                                                                    transaction verification, as long as the transaction is
every 10 minutes, on average. For that purpose, the
                                                                    not of high value [6, 13].
difficulty of the work required to construct a block
is adjusted dynamically depending on the time it                       As such, for low-cost transactions, Bitcoin pay-
took to solve the previous blocks. More specifically,               ments with zero-confirmations can be accepted as
Bitcoin requires that the hash of the block to be con-              soon as the vendor receives a transaction from the
structed is below a given target value. This target                 network transferring the correct amount of BTCs
is interpolated from the overall time it took to solve              from the client to one of its addresses. This verifica-
the previous 2016 blocks [10]. If it took more than                 tion can be done using current Bitcoin clients since
two weeks4 to generate the last 2016 blocks, the tar-               the vendor can search in his wallet for the client’s
get is increased, otherwise the target is decreased.                transaction. The main intuition here is that this
Since the fields required to construct the hash of a                constitutes sufficient proof that the transaction was
block also change with time (e.g., timestamp, previ-                indeed broadcasted in the network. We emphasize
ous block hash), the probability to successfully con-               that it typically takes few seconds (< 3 seconds)
struct a valid block in Bitcoin is almost constant                  for a transaction to propagate between two Bitcoin
with respect to the number of trials [11].                          peers—which explains the use of the terms “zero-
   To measure the generation time of existing Bitcoin               confirmation transactions” and fast payments inter-
blocks, we created a Python script that parses the                  changeably in the rest of this paper.
block chain of Bitcoin starting from the genesis block
(Block # 0) until Block # 1532605 and extracts the
time intervals between the generation of consecutive                4   Security of Fast Payments with
blocks.                                                                 Current Bitcoin Clients
   Our findings show that while the average block
generation time is approximately 10 minutes (9 min-                 Fast payments cannot rely on the timestamp server
utes and 54 seconds), the standard deviation of the                 of Bitcoin to prevent double-spending. Furthermore,
measurements was about 881.24 seconds which cor-                    current and past Bitcoin clients (up to version 0.5.2)
responds to almost 15 minutes. This shows that                      do not employ any countermeasure against double-
there is a considerable variability among the block                 spending fast payments. In what follows, we analyze
   4 This corresponds exactly to a generation time of 10 min-
                                                                    the necessary requirements for mounting a successful
utes per block.
                                                                    double-spending in existing Bitcoin implementations
   5 This block was generated on the 14th of November 2011,         and we describe how to meet these requirements in
as reported on the Bitcoin Block Explorer [12]                      practical settings.

                                                                4
(a) Block generation times in Bitcoin. Assuming a (time) bin         (b) Cumulative Distribution Function (CDF) of block gener-
 size of 2 minutes, the block generation function can be fitted       ation times. 36% of Bitcoin blocks take between 10 and 40
 to a shifted geometric distribution with p = 0.19. Refer to          minutes to be generated.
 Appendix A for further details.

Figure 1: Block generation times in Bitcoin. Transactions are confirmed when they appear in valid blocks. The
histogram of block generation times was created assuming a bin size δt = 2 minutes. Our measurements show that
the average time to generate a Bitcoin block is almost 9 minutes and 54 seconds with a standard deviation of 14
minutes and 41 seconds.

                                                                      Input A
4.1     Attacker Model                                                Input B                                              Output H
                                                                                                                           Output P
A malicious client A constitutes the core of our at-
tacker model. We assume that A is equipped with
a device that runs Bitcoin. We further assume that
A is motivated to acquire a service from V without                    Input A
                                                                                                                           Output O
having to spend its BTCs. For instance, A could try                   Input B
                                                                                                                           Output F
to double-spend the coin she already transferred to
V. By double-spending, we refer to the case where
                                                                      Figure 2: Example construction of TRA and TRV .
A can redeem and use the same coins with which she                    Here, we show two different transactions with the same
payed V so as to acquire a different service elsewhere.               inputs and different outputs. TRA and TRV can share
We assume that A can only control few peers in the                    a subset of their inputs—in which case A only tries to
network (that she can deploy since Bitcoin does not                   double-spend a subset of the BTCs that she pays with.
restrict membership) and does not have access to V’s
Bitcoin keys or machine. We assume, however, that
A knows the Bitcoin and IP addresses of V 6 . The re-                 true identity is unlikely to be revealed.
maining peers in the network are assumed to be hon-
est and to correctly follow the Bitcoin protocol. We
                                                                      4.2       Necessary Conditions for Suc-
point out here that the computing power harnessed
by A and its helpers does not exceed the aggregated                             cessful Double-Spending
computer power of all the honest peers in the net-                    To perform a successful double-spending attack, the
work. This prevents A from inserting/confirming in-                   attacker A needs to trick the vendor V into accepting
correct blocks in the Bitcoin block chain. In this pa-                a transaction TRV that V will not be able to redeem
per, we consider the scenario where A does not mine                   subsequently. While this might be computationally
for blocks (i.e., it does not participate in the block                challenging for A to achieve if TRV was confirmed
generation process). This also suggests that when a                   in a Bitcoin block7 , this task might be easier if the
transaction is confirmed in a block, this transaction                 vendor accepts fast payments.
cannot be modified by A.                                                 In this case, A creates another transaction TRA
   Conforming with the operation of Bitcoin, we as-                   that has the same inputs as TRV (i.e., TRA and
sume that the set of addresses used by A are insuffi-                 TRV use the same BTCs) but replaces the recipient
cient to identify A. This also suggests that although                 address of TRV —the address of V— with a recipient
the misbehavior of A may be detected at some later                    address that is under the control of A. Note that our
point in time (after it has acquired a service), its                     7 As mentioned earlier, A will then have to do all the work
   6 When  issuing a transaction, a Bitcoin client could either       required to re-generate the block where the transaction ap-
specify a recipient Bitcoin address or an IP address.                 pears in (and all subsequent blocks).

                                                                  5
140

                                                                                            120

                                                                  Number of connections
         Transaction to
         Vendor                                                                             100

                                                                                             80
                                           Vendor
                                                                                             60
                                             Transaction to
                                             Vendor                                          40
                 Bitcoin Network
Attacker                                                                                     20
                                                                                                                                North America
                                                                                                                                       Europe
     Transaction to                                                                          0
     colluding            Transaction to                                                     Day 01       Day 02    Day 03   Day 04     Day 05   Day 06
     address              colluding                                                                                      Time
                          address
                                                                  Figure 4: Number of connections that two Bitcoin
                                                                  nodes (in North America and in Europe, respectively)
                                                                  witnessed over the period of 6 consecutive days. Since
                                                                  the connectivity of peers in Bitcoin varies with time, A
                                 Bitcoin Mining Pools
                                                                  has considerable opportunities to establish at least one
Figure 3: Sketch of a double-spending attack against              direct connection with V.
fast payments in Bitcoin. In typical cases, the attacker
A dispatches two transactions that use the same BTCs
in the Bitcoin network. The double-spending attack is             and will reject TRV as it arrives later. After waiting
deemed successful if the BTCs that A used to pay for V            for few seconds without having received TRV , V can
cannot be redeemed (i.e., when the second transaction is          ask A to re-issue a new payment.
included in the upcoming Bitcoin block).
                                                                  Requirement 2 — TRA is confirmed in the
                                                                  block chain: As mentioned previously, if TRV is
analysis is not restricted to the case where the recip-
                                                                  confirmed first in the block chain, TRA can never
ient address is controlled by A and applies to other
                                                                  appear in subsequent blocks. In this case, V has
scenarios, where the recipient is another merchant.
                                                                  received its BTCs, and can redeem them at its con-
   An example construction of TRA and TRV is de-
                                                                  venience. The attack of A therefore fails unless TRA
picted in Figure 2. If both transactions are sent adja-
                                                                  is confirmed first in the block chain.
cently in time, they are likely to have similar chances
of getting confirmed in an upcoming block. This                      We point out that Requirements (1) and (2) are
is the case since Bitcoin peers will not accept mul-              sufficient for the case where the vendor only checks
tiple transactions that share common inputs; they                 for the reception of the transaction as a proof of pay-
will only accept the version of the transaction that              ment and does not employ other double-spending
reaches them first which they will consider for inclu-            prevention/detection techniques. This accurately
sion in their generated blocks and they will ignore all           mimics the functionality provided by existing Bit-
remaining versions. Given this, a double-spending                 coin client implementations. In Section 5, we ex-
attack can succeed if V receives TRV , and the major-             tend our analysis and we evaluate the effectiveness
ity of the peers in the network receive TRA so that               of possible measures to alleviate double-spending.
TRA is more likely to be included in a subsequent
block. This is sketched in Figure 3.
   In this respect, let tV       A
                         i and ti denote the times at
                                                                  4.3                             Mounting Double-Spending At-
which node i receives TRV and TRA , respectively.                                                 tacks in Bitcoin
As such, tV         A
            V and tV denote the respective times at               In this section, we discuss how A can satisfy Re-
which V receives TRV and TRA .
                                                                  quirements (1) and (2).
   The necessary conditions for A’s success in mount-
ing a double-spending attack are the following:
                                                                  Satisfying Requirement 1:          A connects as a
                                                                  direct neighbor to V in the P2P network8 . Given the
Requirement 1 — tV             A
                         V < tV :    This requirement
                                                                  Bitcoin protocol specification, V will always accept
is essential for the attack to succeed. In fact, if tV
                                                     V >
tA
 V , then V will first add TRA to its memory pool
                                                                                          8 Recall   that the IP address of V is public.

                                                              6
the connection requests by other peers as long as the             that time. We argue that this is a realistic assump-
maximum number of its current inbound connections                 tion given that TRA and TRV need to be typically
has not been reached. By default, this number is set              broadcasted back to back given a small delay (in the
to 125.9 As shown in Figure 4, the connectivity of                order of few seconds); it is therefore unlikely that
Bitcoin peers is heavily dependent on the churn of                one of them is confirmed within the first few sec-
the Bitcoin network (i.e., peers departing/joining);              onds in a new block. In Section 4.4, we relax this
this gives a considerable number of opportunities for             assumption and we evaluate the general case where
A to establish a direct connection with V (e.g., A                either TRA and TRV can be confirmed immediately
could try to connect with V over the weekend or in                when they are broadcasted in the network.
the evening, when the number of connections of V                     We divide time into equal intervals of size δt, such
drops below the maximum).                                         that, the probability of successful block generation
   In the sequel, we assume that A has access to one              in each δt can be modeled as a Bernoulli trial with
or more helpers, denoted by H. A and H do not nec-                success probability η · p, where η is the number of
essarily have to be on physically disjoint machines               peers and p the success probability of a peer in gener-
(e.g., H could run as a thread/process on the same                ating a block within δt (for the reasoning why, refer
machine as A). We further assume that A and H                     to Appendix A).
communicate using a low-latency confidential chan-                   Let tk = k · δt + t0 and ηVk and ηA   k
                                                                                                              denote the
nel (e.g., by exchanging encrypted messages using a               number of Bitcoin peers that have received TRV and
direct TCP connection) and that H never connects                  TRA respectively until time tk . Recall that each
to V.                                                             Bitcoin node will only add the first transaction it
   A sends TRV to V at time τV and TRA to H at                    receives (among TRV and TRA ) to its memory pool
time τA , such that τA = τV + ∆t. V and H relay                   and that only the transactions that appear in the
the transactions that they received from A in the                 memory pool of peers are eligible to be confirmed in
network. Let δtA HV refer to the time it takes TRA to             subsequent blocks. Given this, the probability that
propagate in the Bitcoin P2P network from H to V                  TRV is included in a block that is generated within
and δtVAV denote the time it takes TRV to reach V.                time interval (tk , tk+1 ] is given by PrkV = ηVk · p.
In this case, tA    V
               V − tV can be estimated as follows:                Similarly, for TRA , the corresponding probability is
                                                                  PrkA = ηA  k
                                                                                · p. The probability pV (k) that a block
                                                                  containing TRV is generated within the time interval
         tA    V          A            V
          V − tV ≈ τA + δtVH − (τV + δtAV )            (1)        (tk , tk+1 ], is:
                  ≈ ∆t +   δtA
                             VH   −   δtV
                                        AV .           (2)
                                                                                     k−1
                                                                                     Y                             k−1
                                                                                                                   Y
   Note that since H is never an immediate neighbor                pV (k) = PrkV ·         (1 − PriV ) = ηVk p ·         (1 − ηVi p).
of V, there is at least one hop on the path between                                  i=0                           i=0
H and V. Since A is an immediate neighbor of V
and assuming no congestion at network paths, then                   Similarly, the probability that a block containing
δtA        V                                                      TRA is generated at the same time interval is given
  VH ≥ δtAV , . This suggests that, in this case,
 V    A
tV < tV for reasonably chosen ∆t (e.g., ∆t ≥ 0).                  by:
                                                                                     k−1
                                                                                     Y                             k−1
                                                                                                                   Y
Satisfying Requirement 2:          Since H and V are              pA (k) = PrkA ·          (1 − PriA ) = ηA
                                                                                                          k
                                                                                                            p·                 i
                                                                                                                         (1 − ηA p).
highly likely to have different neighbors, the broad-                                i=0                           i=0
casted transactions are likely to spread in the net-
work till the point where either (i) all Bitcoin peers              If at time ts = s · δt + t0 every node in the network
accept in their memory pools TRV or TRA or (ii)                   has received at least one of the transactions TRV or
either TRV or TRA get confirmed in a block.                       TRA , the following holds:
   In what follows, we estimate the probability that                              k+1
                                                                                       and ηVk ≤ ηVk+1 ,
                                                                        k
                                                                           ηA ≤ ηA
TRA is confirmed in a block first. In our analysis, we                 
                                                                       
                                                                        if k < s
                                                                       
                                                                       
assume that at time t0 both transactions TRA and
TRV coexist in the network10 , and that no block con-                          k+1
                                                                        η k = ηA      s
                                                                                   = ηA and ηVk = ηVk+1 = ηVs ,
                                                                      
                                                                      
taining at least one of them has been generated till                   A
                                                                      
                                                                      
                                                                        otherwise.
   9 The default maximum number of connections is 125. Note

that the maximum number of connections can be modified
                                                                  This suggests that ∀i ≥ s, ηVi + ηA
                                                                                                    i
                                                                                                      = ηVs + ηA
                                                                                                               s
                                                                                                                 .
using the “-maxconnections” command [14].
  10 This does not necessarily mean that TR
                                            A and TRV are
                                                                    To compute the probability of success of the
broadcasted at the same time.                                     double-spending attack, we make the assumption

                                                              7
Success Probability    1                                                                          Location         Number of Hosts
                      0.8                                                                          Europe                4
                                                                                                North America            3
                      0.6                                                                        Asia Pacific            2
                      0.4                                                                       South America            1
                                                                         p=10−6
                      0.2                                                                Table 2: Geographic location of the Bitcoin nodes that
                                                                         p=10−5
                                                                                         we used in our measurements. We made use of 10 Bit-
                       0
                        0         1       2        3        4        5           6       coin nodes located around the globe. All the hosts were
                                 Number of Bitcoin Nodes that received    x 10
                                                                              4
                                                                                         running Ubuntu 11.10 with at least 613 MB of RAM.
                                   the double−spent transaction
                                       k
Figure 5: PS for various values of ηA     and ηVk , with
p = 10−6 , δt = 10 seconds, t0 = 0, ts = δt and the                                      of space, we include in Appendix B the approxima-
number of peers in the network is 60000. Further details                                 tions/formulas that were used to generate the plots
can be found in Appendix B.                                                              in Figure 5.
                                                                                            Our analysis therefore shows that A can maximize
                                                                                         PS (2) by increasing the number of peers that receive
that, ∀k, ηVk and ηA  k
                         do not exchange their newly                                     TRA , ηA k
                                                                                                    , ∀tk . A can achieve this: (i) by sending
constructed blocks; in this way, the time tgV required                                   TRA before TRV and therefore giving TRA a better
by peers that are mining in favor of TRV to generate                                     advantage in spreading in the network and/or (ii)
a new block is independent of that required by the                                       by relying on multiple helpers to spread TRA faster
peers that are mining in favor of TRA , tgA . Given                                      in the network. In the former case, A can delay
this, the probability that Requirement (2) is satis-                                     the transmission of TRV by a maximum of ∆t =
fied, PS (2) , is computed as follows:                                                   δtA         V
                                                                                           VH − δtAV (cf. Equation 1) after sending TRA
                                                                                         while ensuring that V first receives TRV . In this way,
                                         1                                               both Requirements (1) and (2) can be satisfied.
              PS (2) = Prob(tgA < tgV ) + Prob(tgA = tgV ). (3)                             We denote by PS = PS (1) · PS (2) , the probability
                                         2
                                                                                         that the attack succeeds (in satisfying Requirements
That is, PS is composed of two components; one                                           (1) and (2)). Here, PS (1) refers to the probability
corresponds to the event that the block containing                                       that Requirement (1) is satisfied.
TRA is first generated and the second to the event
where the blocks containing TRA and TRV are gen-
erated at the same time, i.e., tgA = tgV . In the latter                                 4.4    Experimental Evaluation
case, the probability that the block containing TRA
is eventually adopted by the Bitcoin peers is 0.5.                                       We now present the experimental results of double-
                                                                                         spending experiments in the Bitcoin network. Our
                                                                                         experiments aim at investigating the satisfiability of
                                           ∞
                                           X                                             aforementioned Requirements (1) and (2).
       Prob(tgA < tgV ) =                         pA (gA ) · pV (gV > gA |gA )
                                          gA =0
   0
                                                                                         Experimental Setup:          We adopt the setup de-
= ηA p(1 − ηV0 p)+                                                                       scribed in Section 4.3 in which the attacker A is
P∞      gA          gA QgA −1        j         j
                                                                                         equipped with one or more helper nodes H that help
 gA =0 ηA p · (1 − ηV p) · j=0 (1 − ηV p)(1 − ηA p).                                     her relay the double-spent transaction. In our ex-
                                                                                         periments, we made use of 10 Bitcoin nodes located
Similarly,                                                                               around the globe (Table 2); this serves to better as-
                                                                                         sess the different views seen from multiple points in
Prob(tgA = tgV ) =                                                                       the Bitcoin overlay network and to abstract away
                            ∞             gA −1                                          the peculiarities that might originate from specific
                            X      gA gA Y                                               network topologies. Appendix C includes the Bit-
                                 2
                                p ηV ηA ·       (1 − ηVj p)(1 − ηA
                                                                 j
                                                                   p).
                        gA =1                j=0
                                                                                         coin addresses that we used while performing our
                                                                                         experiments.
   In Figure 5, we depict PS (2) for various values of                                     Conforming with our analysis in Section 4.3, we
ηVk , ηA
       k
         and p when δt = 10 seconds, ts = δt and the                                     modified the C++ implementation of Bitcoin client
number of peers in the network is 60000. Due to lack                                     version 0.5.2 as follows:

                                                                                     8
Figure 6: PS versus ∆t when the vendor has 8 con-       Figure 7: PS versus ∆t when the vendor has 40 con-
nections.                                               nections.

                                                                    Location             # Helpers     ∆t (sec)    PS

                                                             Asia Pacific 1, 125 conn.        2           0       100%
                                                             Asia Pacific 2, 125 conn.        2           0       100%
                                                            North America 1, 8 conn.          1           0       100%
                                                            North America 2, 40 conn.         1           0        90%
                                                              Asia Pacific 1, 8 conn.         2           1       100%
                                                             Asia Pacific 2, 125 conn.        2           1       100%
                                                            North America 1, 40 conn.         1           -1      100%

                                                        Figure 9: Summary of Results. Here, “Location” de-
                                                        notes the location of V, “conn” is the number of V’s
                                                        connections.
Figure 8: PS versus ∆t when the vendor has 125 con-
nections.

  • The attacker only connects to the vendor’s ma-             We conduct our experiments with a varying num-
    chine.                                                   ber of connections of the vendor (8, 40 and 125 con-
                                                             nections) and by varying the number of helper nodes
  • The attacker creates transactions TRV and
                                                             (1 and 2) chosen randomly from the nodes in Ta-
    TRA constructed using the same coins. She
                                                             ble 2.The helper nodes were connected to at least
    sends TRV using the Bitcoin network to the
                                                             125 other Bitcoin peers. Each data point in our
    neighboring vendor and TRA via a direct TCP
                                                             measurements corresponds to 10 different measure-
    connection to one or more helper nodes with
                                                             ments, totaling approximately 500 double-spending
    an initial delay ∆t of -1, 0, 1, and 2 seconds.
                                                             attempts with a total of 20 BTCs11 . We point out
    Here, ∆t refers to the time delay between the
                                                             that since all the hosts in our measurements were
    transmission of TRV and TRA by A.
                                                             using wallets that were under our control, other Bit-
  • Upon reception of TRA , each helper node                 coin users were not affected by our measurements.
    broadcasts it in the Bitcoin network.                      We also created a Python script that, for each
                                                             conducted measurement, parses the generated logs
  • V accepts the payment if it receives TRA .
                                                             along with the Bitcoin block explorer [12] to check
  With this setup, we performed double-spending              whether the Requirements (1) and (2) described in
attempts when the vendors are located in 4 different         Section 4.2 are satisfied.
network locations (2 vendors were in North America
and the remaining 2 were in Asia Pacific). In our ex-        Results:       To assess the feasibility of double-
periments, A was located in Europe. However, since           spending in fast Bitcoin payments, we evaluate em-
A does not contribute in spreading in the Bitcoin            pirically the success probability, PS , with respect to
network any transaction herself, her location does           the number of helper nodes, the number of connec-
not affect the outcome of the attack. That is, the           tions of the vendor and ∆t.
sole role of A is to send TRV to V using a direct              11 We point out that since all the hosts in our measurements
connection in the Bitcoin network and TRA to the             were using wallets that were under our control, other Bitcoin
helper nodes using a direct TCP connection.                  users were not affected by our measurements.

                                                        9
Our results, depicted in Figures 6, 7, 8, and 9            tening period, of few seconds, before delivering its
show that, irrespective of a specific network topol-          service to A; during this period, V monitors all the
ogy, the probability that A succeeds in mounting              transactions it receives, and checks if any of them at-
double-spending attacks is significant.                       tempts to double-spend the coins that V previously
   Confirming our analysis, PS decreases as ∆t in-            received from A. This countermeasure is based on
creases. As explained in Section 4.3, this is due to          the intuition that since it takes every transaction few
the fact that the higher is ∆t, the larger is the num-        seconds12 to propagate to every node in the Bitcoin
ber of peers that receive TRV ; in turn, the proba-           network, then it is highly likely that V would receive
bility that TRA is confirmed before TRV decreases.            both TRV and TRA within the listening period (and
As shown in Figures 6, 7, and 8, this can be reme-            before granting service to A).
died if the number of helper nodes that spread TRA               We show that this detection technique can be,
increases. Our results show that even for a large ∆t          however, circumvented by A as follows. A can at-
of 2 seconds, relying on 2 helper nodes still guaran-         tempt to delay the transmission of TRA such that
tees that double-spending succeeds with a consider-           t =(tA     V
                                                                    V − tV ) exceeds the listening period while TRA
able probability; when ∆t = 1 seconds, the attack             still has a significant chance of being spread in the
is guaranteed to succeed (PS approaches 1) using 2            network. On one hand, as t increases, the probability
helpers. This is summarized in Figure 9.                      that all the immediate neighbors of V in the Bitcoin
   The number of V’s connections considerably af-             P2P network receive TRV first also increases; when
fects PS especially when A controls only one helper;          they receive TRA later on, TRA will not be added to
in the case where V has a similar number of con-              the memory pool of V’s neighbors and as such TRA
nections when compared to the number of connec-               will not be forwarded to V. On the other hand, A
tions of the helper, PS approaches 0.5. This corre-           should make sure that TRA was received by enough
sponds to the case where both TRA and TRV are                 peers so that Requirement (2) can be satisfied. To
spread equally in the network (Figure 8). On the              that end, A can increase the number of helpers it
other hand, as the connectivity of V decreases, TRA           controls.
spreads faster in the network. This is depicted in
Figures 6 and 7. We thoroughly investigate the im-              To validate this claim, we conducted experiments
pact of the connectivity of V in Section 5.1.                 using the setup described in Section 4.4. Our exper-
                                                              iments aimed at finding triplets (∆t, NH , C), where
                                                              NH is the number of helper nodes, and C is the num-
5     Countering Double-Spending                   in         ber of V’ connections, such that the probability PD
      Fast Bitcoin Payments                                   that V receives TRA (after having received TRV ) is
                                                              minimized. We illustrate our results in Table 3.
In this section, we evaluate two strategies that the
                                                                 Conforming with our analysis, our findings show
vendor can adopt, as recommended by Bitcoin de-
                                                              that, for C < 80, ∃∆t, such that PS ≥ PD . That is,
velopers, to resist double-spending: using a listen-
                                                              in the case where V utilizes a listening period of few
ing period and inserting observers. Moreover, we
                                                              seconds to detect double-spending, there are a num-
propose an effective countermeasure based on the
                                                              ber of cases in which A can circumvent this counter-
propagation of “alert” messages and we show that it
                                                              measure and perform a successful double-spending
does not require significant modifications on existing
                                                              attack without being detected. Note that if PD is
clients.
                                                              small, A has incentives to attempt to double-spend
                                                              even in the case when PS ≈ 0.1), since her attempts
5.1    Using a “Listening Period”                             will be detected with low probability. For a subset
The Bitcoin daemon locally generates an error if              of our measurements, we also show that ∃(∆t, N, C),
it receives a transaction whose inputs have already           such that tA     V
                                                                          V − tV = ∞. This case corresponds to the
been spent. However, this error is not displayed to           event where all the neighbors of V receive TRV first
the Bitcoin user. Therefore, Requirements (1) and             (and do not forward TRV to V). In this case, PD = 0
(2) can be satisfied (as shown in Section 4), but A           and V cannot detect the misbehavior of A, irrespec-
can only trick a vendor who does not thoroughly               tive of the number of double-spending attempts that
check the transactions that are processed by its Bit-         A performs.
coin daemon. Such a functionality would require a
modification of existing Bitcoin clients.                       12 Our experiments in Section 4.4 show that the average
   As advocated in [13], one possible way for V to            time for a peer to receive both TRA and TRV is approxi-
detect double-spending attempts is to adopt a lis-            mately 3.354 seconds.

                                                         10
PS        PD        tA     V
                                                                                        V − tV (sec)      % Observed
       Europe, 8 Connections, 3 Helpers, ∆t = 2.00                10%       10%            8.664             53%
       Europe, 8 Connections, 3 Helpers, ∆t = 2.25                10%       10%∗            5.65             47%
    South America, 8 Connections, 2 Helpers, ∆t = 2.5             20%      6.66%∗          3.749             62%
    South America, 8 Connections, 3 Helpers, ∆t = 2.5            7.7%        0%              ∞               53%
    South America, 8 Connections, 4 Helpers, ∆t = 3.0           13.33%       0%              ∞               57%
     Asia Pacific, 8 Connections, 3 Helpers, ∆t = 2.75            10%        0%              ∞               57%
     Asia Pacific, 8 Connections, 2 Helpers, ∆t = 1.75            55%       20%∗             5.5             91%
     Asia Pacific, 8 Connections, 3 Helpers, ∆t = 2.75            5%         0%∗             ∞               66%
   North America, 20 Connections, 3 Helpers, ∆t = 2.75            5%         0%              ∞               47%
   North America, 20 Connections, 5 Helpers, ∆t = 3.00            11%       11%            3.208             46%
   North America, 20 Connections, 5 Helpers, ∆t = 1.75            10%       10%             5.76             74%
   North America, 20 Connections, 1 Helper, ∆t = 1.25             30%       30%∗            3.34             78%
   North America, 20 Connections, 4 Helpers, ∆t = 2.00            82%       63%             2.85             78%
   North America, 20 Connections, 2 Helpers, ∆t = 2.00            20%       20%∗            4.79             60%
   North America, 20 Connections, 1 Helper, ∆t = 1.50             40%       30%∗            3.51             60%
       Europe, 20 Connections, 3 Helpers, ∆t = 1.0                45%       45%∗           3.844             87%
       Europe, 30 Connections, 1 Helper, ∆t = 1.5                 15%       10%∗           3.412             42%
     Asia Pacific, 40 Connections, 1 Helper, ∆t = 2.9             10%       10%∗           4.946             42%
       Europe, 40 Connections, 1 Helper, ∆t = 1.25                10%       10%            1.841             36%
       Europe, 40 Connections, 2 Helpers, ∆t = 1.5                20%       20%∗           3.075             36%
    South America, 40 Connections, 1 Helper, ∆t = 2.0             30%       40%            3.217             57%
    South America, 60 Connections, 1 Helper, ∆t = 2.5            6.67%      20%∗           3.999             41%
   South America, 60 Connections, 2 Helpers, ∆t = 2.75           6.67%     13.33%          4.157             28%
     Asia Pacific, 60 Connections, 1 Helper, ∆t = 3.00            10%        0%∗             ∞               20%
    Asia Pacific, 60 Connections, 2 Helpers, ∆t = 2.75            30%       50%            3.992             50%
     Asia Pacific, 80 Connections, 1 Helper, ∆t = 3.7             10%       20%             5.04             18%
       Europe, 80 Connections, 1 Helper, ∆t = 2.25              33.33%     66.67%          3.648             61%
       Europe, 80 Connections, 1 Helper, ∆t = 2.75              13.33%     26.67%          5.093             28%
   North America, 100 Connections, 3 Helpers, ∆t = 1.0            60%       80%∗            2.25             88%
    Asia Pacific, 100 Connections, 1 Helper, ∆t = 1.75           44.4%     66.66%          2.871             82%
     Asia Pacific, 100 Connections, 1 Helper, ∆t = 1.5            80%       80%            2.807             88%

Table 3: Monitoring received transactions at V (Section 5.1) and its observers (Section 5.2) to detect double-
spending. Each data point corresponds to 20 measurements. The helpers used in these experiments had between
125 and 400 connections. “PD ” denotes the probability that V receives TRA . “% Observed” refers to the fraction of
observers (among 5) that received TRA . tA      V
                                           V − tV refers to the average of the time it takes V to receive TRA after
having received TRV , for those cases where V receives TRA (PD ). ∗ refers to the case where TRA was received after
15 seconds (beyond the listening period); otherwise, the absence of ∗ shows that TRA was not received.

The Connectivity of V as a Security Param-                     a listening period can be indeed effective to detect
eter:     As shown from our results in Table 3, the            double-spending.
fewer connections of V, the more likely is that all               However, since the connectivity of Bitcoin peers
the neighbors of V receive TRV before TRA and                  largely varies with the network churn13 (Figure 4),
thus that V does not receive TRA . Similarly, as               V needs to constantly monitor its connection count
the number of connections of V increases, the effort           to ensure that it does not drop below a threshold so
(i.e., the number of helpers, the amount of delay)             that it can detect double-spending.
that A needs to invest to ensure that none of V’s                 In Section 5.3, we propose a countermeasure that
neighbors receive TRA becomes considerable. This               effectively detects double-spending even in the case
is depicted in Figure 10; when V adopts a listening            when the number of the connections of V is small.
period of at least 15 seconds, PD increases as the               13 For example, some of the nodes used in our experiments
number of V’s connections increases. When V has
                                                               could not acquire more than 40 connections over a period of
more than 100 connections, the probability that it             few days, due to the fact that these nodes were often restarted.
does not receive TRA is negligible; in this case, using        In such cases, other Bitcoin peers will assign a low priority to
                                                               connecting to these nodes.

                                                          11
0.7                                                       5.3     Communicating         Double-
      0.6
                                                                        Spending Alerts Among Peers
      0.5
                                                                Given our findings, an efficient countermeasure to
                                                                combat double-spending on fast Bitcoin payments
      0.4                                                       would be for Bitcoin peers to propagate alerts when-
PD

      0.3
                                                                ever they receive two or more transactions that share
                                                                common inputs and different outputs (cf. Figure 2).
      0.2                                                       This countermeasure extends the solutions outline
      0.1
                                                                in the previous sections. However, unlike the afore-
                                                                mentioned solutions, double-spending alerts (i) can-
       0                                                        not be evaded by A and (ii) do not incur additional
            0    50        100     150        200   250
                                                                costs on V.
                      Number of Connections
                                                                   The main intuition behind this solution is that
Figure 10: The connectivity of V as a security param-           while A might be able to prevent V and a subset
eter. We measure PD with respect to the number of               of V’s observers from receiving TRA , a considerable
connections of V. Here, we consider a setting where V is        number of Bitcoin peers receive both TRA and TRV .
located in Asia Pacific, ∆t = 3.0 seconds and A controls        If the majority of these peers are honest14 , they can
4 helpers. As the number of connections of V increases,         immediately alert the entire network by broadcast-
the probability that V receives both TRA and TRV also
                                                                ing an alert that includes both TRA and TRV as a
increases.
                                                                proof of double-spending to all network peers. Given
                                                                the fast broadcast medium in Bitcoin, alert broad-
                                                                casts would eventually reach V within few seconds;
                                                                the double-spending of A can be therefore detected
5.2         Inserting Observers in the Net-                     before A actually receives the service from V.
            work                                                   We emphasize that similar alert mechanisms al-
                                                                ready exist in the current implementation of Bitcoin,
Another possible technique that naturally extends               but were devised for other purposes and are cur-
the aforementioned proposal based on the adop-                  rently unused15 . As such, this technique does not
tion of listening period would be for V to insert a             require any significant modification in the Bitcoin
node that it controls within the Bitcoin network—               client. Furthermore, we argue that this solution can
an “observer”—that would directly relay to V all the            easily combat false claims; honest Bitcoin peers will
transactions that it receives. In this case, V can be           only forward alert messages if TRA and TRV are
aware within few seconds of a double-spending at-               indeed correctly formed, share common inputs and
tempt if either it or its observer receive TRA .                different outputs and are equipped with legitimate
                                                                signatures.
   We evaluated this technique using up to 5 ob-
servers. These observers were chosen from the hosts
listed in Table 2. Our findings in Table 3 show                 6     Related Work
that this method can indeed help detecting double-
spending as all double-spent transactions were re-              First introduced in 2009, Bitcoin has recently at-
ceived by at least one observer within few seconds.             tracted the attention of the research community.
However, given that A delays the transmission of                In [20], Elias investigates the legal aspects of pri-
TRA , our results show that only a subset of the ob-            vacy in Bitcoin. Reid and Harrigan [35] explore user
servers receive TRA . As mentioned previously, this             anonymity limits in Bitcoin. In [24], Babaioff et al.
corresponds to the case where all the neighbors of              address the lack of incentives for Bitcoin peers to
these observers have received TRV first and as such             include recently announced transactions in a block.
they will not forward TRA back to the observers.                In [19], Syed et al. propose a user-friendly technique
                                                                for managing Bitcoin wallets.
  Therefore, V needs to employ a considerable num-                Finney [15] describes a double-spending attack in
ber of observers (≈ 3) (that connect to a large num-            Bitcoin where the attacker includes in her generated
ber of Bitcoin peers) to ensure that at least one ob-             14 This is the underlying assumption that ensures the cor-
server detects any double-spending attempt; this,               rect operation of Bitcoin.
however, comes at the expense of additional costs                 15 Bitcoin plans to use “alert” messages to broadcast infor-

for V to maintain the observers in the network.                 mation signed by the private key of Bitcoin’s founder.

                                                           12
blocks transactions that transfer some coins between           7   Concluding Remarks
her own addresses; these blocks are only released
to the network after the attacker double-spends the            Given its design, Bitcoin can only ensure the secu-
same coins using fast payments and acquires a given            rity of payments when a payment verification time
service. In its official documentation [6, 13], Bit-           of few tens of minutes can be tolerated. Moreover,
coin acknowledged that double-spending might oc-               our results show that the verification time of pay-
cur when dealing with fast payments but still en-              ments exhibits a large variance as it depends on
couraged its users to “sell things without waiting for         the confirmation of transactions in blocks—which
a confirmation as long as the transaction is not of            follows a shifted geometric distribution. This slow
high value” [6]. Bitcoin developers claim in [6] that          payment verification is clearly inappropriate for fast
the cost of mounting double-spending attacks for               payments; it is, however, essential for the detection
low-cost transactions is comparatively high and that           of double-spending attacks.
vendors could adopt a listening period for few sec-               In this paper, we addressed the double-spending
onds before delivering a product to counter double-            resilience of Bitcoin in fast payments, in which the
spending attacks. In this work, we thoroughly inves-           time to acquire a service is in the order of few sec-
tigate double-spending attacks in Bitcoin. Namely,             onds. More specifically, we showed that not only
we show that (i) double-spending fast payments in              these attacks succeed with overwhelming probabil-
Bitcoin can be performed without incurring costs               ity, but also that, contrary to common beliefs, they
on the attacker and (ii) the countermeasures rec-              do not incur any significant overhead on the at-
ommended by Bitcoin to alleviate double-spending               tacker. For that purpose, we analyzed the condi-
can be circumvented.                                           tions for performing successful double-spending at-
                                                               tacks against fast payments in Bitcoin and we exper-
   Double-spending in online payments has received             imentally confirmed our analysis. As far as we are
considerable attention in the literature [23, 31]. In          aware, our experiments constitute the first compre-
Credit-Card based payments, fairness is achieved               hensive double-spending measurements in Bitcoin.
through the existence of a bank (e.g., [26,33]) or an-         It is noteworthy that we have performed thousands
other trusted intermediary (e.g., PayPal [30], Mon-            of double-spending attempts using fixed Bitcoin ad-
eyBookers [16]). Here, the intermediaries are trusted          dresses without having to bear any type of penalty.
(i) to verify that the client has not already spent               Finally, we explored the solution space for secur-
the funds he/she is paying the vendor with, and                ing Bitcoin against double-spending attacks. Our
(ii) to reverse a charge, if the vendor has misbe-             findings show that the measures recommended by
haved. Micropayments [22, 32, 34, 36] is an efficient          Bitcoin developers for fast transactions are not al-
payment scheme aiming primarily at enabling low-               ways effective in resisting double-spending. By lever-
cost transactions. Here, the payer provides signed             aging on our results, we propose a lightweight mea-
endorsements of monetary transfers on the vendor’s             sure that would enable the secure and albeit verifi-
name. Digital signatures in these systems consti-              cation of Bitcoin transactions.
tute the main double-spending resistance mecha-                   Given that the vulnerability of existing clients
nism. ECash [27–29] is another form of digital                 to double-spending might severely harm the growth
cash which supports payer anonymity. ECash of-                 of Bitcoin, and impact its financial and economic
fers strong accountability guarantees by relying on            standing, we argue that the integration of double-
a set of cryptographic primitives that ensure that             spending countermeasures in the current implemen-
when a user double-spends a coin, his/her identity             tation of Bitcoin emerges as a necessity. As we show
is revealed.                                                   in this work, the propagation of double-spending
                                                               alerts in the network would constitute a first im-
  Similar to Bitcoin, a number of decentralized pay-           portant step towards efficiently detecting double-
ment systems [25,37] were designed to resist double-           spending.
spending attacks. In [37], Yang and Garcia-Molina
introduce a P2P payment system, in which the first             References
owner of an electronic coin authorizes that coin’s
transfer among other peers in the network. Thus,                [1] Bitcoin – Wikipedia, Available from https://
the generator of the coin is responsible for preventing             en.bitcoin.it/wiki/Introduction.
double-spending. In [25], Belenkiy et al., introduce
an ECash-based P2P payment scheme that provides                 [2] Trade - Bitcoin, Available from https://en.
accountability at the cost of privacy.                              bitcoin.it/wiki/Trade.

                                                          13
[3] Bitcoin Charts,   Available    from    http:         [19] Bitcoin Gateway, A Peer-to-peer Bitcoin Vault
     //bitcoincharts.com/.                                     and Payment Network, 2011. Available from
                                                               http://arimaa.com/bitcoin/.
 [4] Bitcoin  ATM,    Available     from    http:
     //bitcoinatm.com/.                                   [20] Bitcoin:   Tempering the Digital Ring of
                                                               Gyges or Implausible Pecuniary Privacy, 2011.
 [5] CNN: Bitcoin’s uncertain future as cur-                   Available from http://ssrn.com/abstract=
     rency, Available from http://www.youtube.                 1937769ordoi:10.2139/ssrn.1937769.
     com/watch?v=75VaRGdzMM0.                             [21] Satoshi Nakamoto. Bitcoin: A Peer-to-Peer
 [6] FAQ - Bitcoin, Available from https://en.                 Electronic Cash System.
     bitcoin.it/wiki/FAQ.                                 [22] Androulaki, E., Raykova, M., Stavrou,
                                                               A., and Bellovin, S. M. PAR: Payment
 [7] Bitcoin Block 80000, Available from http://               for Anonymous Routing. In Proceedings of
     blockexplorer.com/b/80000.                                the 8th Privacy Enhancing Technologies Sym-
                                                               posium (2008).
 [8] Protocol Rules – Bitcoin, Available from
     https://en.bitcoin.it/wiki/Protocol_                 [23] Asokan, N., Janson, P., Steiner, M., and
     rules.                                                    Waidner, M. State of the Art in Electronic
                                                               Payment Systems. IEEE Computer (1999).
 [9] Protocol Specifications – Bitcoin, Avail-
     able from https://en.bitcoin.it/wiki/                [24] Babaioff, M., Dobzinski, S., Oren, S.,
     Protocol_specification.                                   and Zohar, A. On Bitcoin and Red Balloons.
                                                               CoRR (2011).
[10] Difficulty – Bitcoin, Available from https://        [25] Belenkiy, M., Chase, M., Erway, C., Jan-
     en.bitcoin.it/wiki/Difficulty.                            notti, J., Küpçü, A., Lysyanskaya, A.,
[11] Block hashing algorithm – Bitcoin, Availabe               and Rachlin, E. Making P2P Account-
     from https://en.bitcoin.it/wiki/Block_                    able without Losing Privacy. In Proceedings of
     hashing_algorithm.                                        WPES (2007).
                                                          [26] Bellare, M., Garay, J., Hauser, R.,
[12] Bitcoin Block Explorer, Available from http:              Krawczyk, H., Steiner, M., Herzberg,
     //blockexplorer.com/.                                     A., Tsudik, G., van Herreweghen, E.,
                                                               and Waidner, M. Design, Implementation
[13] Myths - Bitcoin, Available from https://
                                                               and Deployment of the iKP Secure Electronic
     en.bitcoin.it/wiki/Myths#Point_of_sale_
                                                               Payment System. IEEE Journal on Selected Ar-
     with_bitcoins_isn.27t_possible_because_
                                                               eas in Communications (2000).
     of_the_10_minute_wait_for_confirmation.
                                                          [27] Brands, S. Electronic Cash on the Internet. In
[14] Satoshi Client Node Connectivity, Avail-                  Proceedings of the Symposium on the Network
     able from https://en.bitcoin.it/wiki/                     and Distributed System Security (1995).
     Satoshi_Client_Node_Connectivity.
                                                          [28] Camenisch, J., Hohenberger, S., and
[15] The   Finney   Attack,   Available from                   Lysyanskaya, A. Compact E-Cash. In Pro-
     https://en.bitcoin.it/wiki/Weaknesses#                    ceedings of Advances in Cryptology - EURO-
     The_.22Finney.22_attack.                                  CRYPT (2005).

[16] MoneyBookers, Available from https://www.            [29] Chaum, D., Fiat, A., and Naor, M. Un-
     moneybookers.com/app/.                                    traceable electronic cash. In Proceedings on Ad-
                                                               vances in Cryptology - CRYPTO (1990).
[17] Comparison of Mining Pools, Available from           [30] Company, P. Paypal, Available from http:
     https://en.bitcoin.it/wiki/Comparison_                    //www.paypal.com.
     of_mining_pools.
                                                          [31] Everaere, P., Simplot-Ryl, I., and
[18] Comparison of Mining Hardware, Available                  Traore, I. Double Spending Protection for E-
     from https://en.bitcoin.it/wiki/Mining_                   Cash Based on Risk Management. In Proceed-
     hardware_comparison.                                      ings of Information Security Conference (2010).

                                                     14
You can also read