464 PDF
464 PDF
464 PDF
Bjrn Scheuermann
{tschorsch, scheuermann}@informatik.hu-berlin.de
ABSTRACT
Besides attracting a billion dollar economy, Bitcoin revolutionized the field of digital currencies and influenced many
adjacent areas. This also induced significant scientific interest. In this survey, we unroll and structure the manyfold
results and research directions. We start by introducing the
Bitcoin protocol and its building blocks. From there we
continue to explore the design space by discussing existing
contributions and results. In the process, we deduce the fundamental structures and insights at the core of the Bitcoin
protocol and its applications. As we show and discuss, many
key ideas are likewise applicable in various other fields, so
that their impact reaches far beyond Bitcoin itself.
1.
INTRODUCTION
2.
In this section we will explain the core Bitcoin protocol as originally introduced in [Nakamoto 2008a]. This will
pave the ground for more in-depth discussions of specific aspects in subsequent sections. We begin with an abstract and
rather simplistic view of a digital currency, which we then
iteratively refine. We also sketch the research context of the
presented ideas, and, where appropriate, follow the early
steps of digital currencies before Bitcoin [Chaum 1982, Law
et al. 1996]. However, our discussions are always directed towards the foundations of the Bitcoin protocol and its main
idea: the use of proof of work to eliminate the bank and to
decentralize and secure the ledger. In particular, this section
will successively introduce the basics on mining, the block
chain, transactions and scripting.
The Bitcoin developer documentation [Bitcoin dev 2014],
the Bitcoin wiki [Bitcoin wiki 2014] and the Bitcoin source
code (github.com/bitcoin/bitcoin) constituted valuable
sources for the aspects discussed in this section. For
a tutorial-like explanation of the Bitcoin basics from a
slightly different angle, we also refer the reader to the blog
post [Nielsen 2013].
2.1
2.2
tactual
2016 10 min
(1)
where Tprev is the old target value and tactual the time span
it actually took to generate the last 2,016 blocks. However,
the target never changes by more than a factor of four. If
2,016 blocks were generated during a time span shorter than
two weeks, this indicates that the overall computing power
has increased, so that the proof of work difficulty should also
be increased.
In Bitcoin, the term difficulty is used in the specific meaning to express how difficult it is to find a hash below a given
target. The ratio of the highest possible target and the current target is used as the difficulty measure.
Let us recap this in the context of our example, where Alice still wants to transfer coins to Bob. When Alice broadcasts her transaction, Bob, Charlie and many others receive
it. They all verify its legitimacy based on their local copy of
the block chain. Subsequently they enqueue it to the pending transactions they have heard of (that is, they add it to
the current block). If Charlie intends to spread his opinion that the collection of pending transactions is valid, he
first needs to solve the puzzle. Let us assume Charlie is the
first participant who solves the puzzle, i. e., the first one to
find a nonce for which the hash value meets the target. He
then broadcasts the block of transactions together with this
nonce. Other participants can verify that the nonce is a valid
solution, and hence add the new block to their block chain.
2.3
Block Chain
https://blockexplorer.com/b/210000
Because of the continuous mining, the block chain constantly grows. Due to the popularity of Bitcoin in general and gambles such as SatoshiDice (satoshidice.com) in
particular, the number of transactions has increased enormously. For instance, bets on SatoshiDice result in two
transactions: the stake and the payout (which is at least
one satoshi). The winner is determined by a pseudo-random
number, which is derived from hashing a daily changing secret and information extracted from the transaction. Their
transaction volume peaked in June 2012 with about 62,000
daily transactions. As a consequence, this inflates the block
size and results in a non-negligible size of the block chain,
currently in the order of tens of gigabytes. Furthermore,
the high number of transactions increases the effort of the
validation procedure itself. In order to keep the size and
the computational effort low, Bitcoin offers a simplified payment verification (SPV) [Nakamoto 2008a] based on Merkle
trees [Merkle 1987]. It takes the transactions as leaves and
builds a hash tree on top. The root of this tree is a hash
value including information from all transactions; this root
is included in the block header. The hash tree enables the
verification of transactions without the need for a complete
local copy of all transactions. Since the root is known and
secured through the mining process, branches can be loaded
on demand from untrusted sources. Tampering with any
transaction would result in different hash values and would
thus be detected.
Because block validations are calculated in a distributed
way through mining, forks can occur: independent block
validations can be broadcast almost simultaneously, or while
the distribution of one validated block is stalled due to propagation delays. In case of a fork, there are two (or more)
different versions of the linked list with, potentially, different
sets of included transactions. That is, different participants
in the system will disagree on the structure of the block
chain. Consequently, there might no longer be a consensus on the order of transactions. Hence, ownership is not
settled.
Bitcoin solves this issue by a simple, but effective rule:
mining is continued on the longest locally known fork, that
is, the one involving the highest amount of computational
effort so far. At some point, miners of one fork will broadcast validations before others. Thus, one of the forks will
overtake the other and, once it has been propagated, will
become the longest fork for all participants. Thereby, distributed consensus is restored.
If, for example, Alice tries to double spend the same coin
with Bob and Charlie and shares the two transactions with
two separate subsets of miners respectively, the block chain
may fork. Eventually, only one fork will survive, that is, the
longer fork will be considered the valid block chain. The
other fork is then called orphaned and the included transactions are nullified. However, valid transactions of one fork
may already be part of the other fork, too, or they will be
added to the next block of transactions. Assuming Alices
transaction to Bob made it into the valid block chain, the
transaction to Charlie will not be considered anymore, because it attempts to double spend coins. Charlie will recognize this situation after the fork is resolved.
Nevertheless, double spending is still possible under certain circumstances. Suppose Alice buys Charlies car and
wants to pay with Bitcoin. Hence she issues and broadcasts
a transaction transferring the agreed amount to Charlie. At
2.4
Transactions
Figure 3: Transaction.
2.5
Scripts
https://blockexplorer.com/b/0
Stack
Script
sigBob pubKeyBob OP_DUP OP_HASH160 pubKeyBobHash
OP_EQUALVERIFY OP_CHECKSIG
sigBob pubKeyBob
OP_EQUALVERIFY OP_CHECKSIG
sigBob pubKeyBob
OP_CHECKSIG
true
Table 1: P2PKH exemplary execution.
3.
SECURITY
In this section, we discuss security risks and security implications of the Bitcoin protocol and system design. Since
Bitcoin is a digital currency with a notable market value,
motives to exploit weaknesses for profit are ubiquitous. Beyond double spending, the attack vectors include key recovery and transaction malleability, for example. However, the
most fundamental fear is the so-called 51% attack, during
the discussion of which we will also have the opportunity to
explore some fundamental system properties of Bitcoin.
3.1
more than one signature, making it possible to derive private keys. For all these public keys, the remaining balance is
negligibly small (smaller than the transaction fees needed to
transfer them). However, one single address claimed coins
from 10 of the vulnerable accounts (in sum over 59 BTC)
from March to October 2013. The coins appear to have been
stolen by this address. [Bos et al. 2013] traced the incident
back and found that one cause was the incorrectly seeded
random number generator of blockchain.infos JavaScript
client.
Thefts due to hacked systems, buggy software or incorrect usage are probably the greatest security risk in Bitcoin.
As we will see, there are more examples which confirm this
view. However, the most prominent type of attack is double
spending which we already touched in the previous section,
and which we will now re-consider in more detail.
3.2
Double Spending
13
q = 0.20
q = 0.51
11
9
7
5
3
1
-1
0
6
8
Rounds (i)
10
12
14
n=1
n=2
n=4
n=6
n=8
0.8
0.6
0.4
0.2
0
0
0.1
0.2
0.3
0.4
Attackers hash rate (q)
0.5
0.6
P (m) qz = (...)
m=0
(
1
P
=
1 n
m=0
(4)
m+n1
m
n m
(p q pm q n )
if q p
if q < p.
We visualized the results of equation (4) for various numbers of confirmations n in Figure 4b. Clearly, the higher
the number of confirmations, the lower the probability of a
successful double spend. The success probability converges
to one when the attackers hash rate approaches the 50%
threshold. As [Rosenfeld 2012a] concludes from the results,
double spending is possible with any hash rate of the attacker, and there is no number of confirmations that can
reduce the success probability to zero: an attacker with less
than 50% of the total computational power is able to perform a double spend by brute force and a bit of luck. A
51% attack will definitely lead to success. In this case, the
attacker is able to claim all block rewards for himself, reject transactions and include only those he likes. This will
3.3
Transaction Malleability
3.4
Pooled Mining
difficulty, so that every 30 seconds a new block is generated. If a P2Pool peer finds such a block, it gets broadcast,
verified by others, and added to the share chain in similar
manner as in Bitcoin itself. This continues until a peer finds
a block that also meets Bitcoins mining difficulty. The respective block is broadcast in the Bitcoin network and the
reward is distributed among the P2Pool clients according to
the share chain. Since the share chain blocks are required
to include a coinbase transaction, which reflects the shares
(i. e. the previously found blocks) and pays the miners accordingly, a successful miner cannot claim the reward for
herself alone. P2Pool has some weaknesses, though, such as
additional complexity and significant resource consumption,
which might be the reason why it is not as attractive as its
centralized counterparts.
Miners (and mining pools) compete with each other: their
chance of winning is proportional to their computational
power. However, rogue miners can achieve an unfairly high
share by attacking the mining process. The typical intent
behind these attacks is to weaken competitors with the aim
to gain higher revenue. For that reason, mining pools are the
second-most popular target of distributed denial of service
attacks in the Bitcoin ecosystem [Vasek et al. 2014]. Actually, the trade-off between attacking or investing to gain
an advantage can be expressed by rational game-theoretic
models [Johnson et al. 2014, Laszka et al. 2015].
But miners can also exploit the mining process itself to
gain an advantage: Instead of directly announcing mined
blocks, miners keep their discovery private and establish a
private chain. If the public chain approaches the length
of the private chain, the rogue miner broadcasts his chain
to catch up. This way miners intentionally force a block
chain fork and initiate a block race. The key idea is to
let honest miners waste their power by mining on the public chain, so as to increase the own chances of winning on
subsequent blocks. The strategy is widely known as selfish
mining [Eyal and Sirer 2014]. It can also be used to gain
an advantage while participating in a mining pool [Rosenfeld 2011, Eyal 2014]. More generally, the attack vector is
called block withholding attack [Courtois and Bahack 2014]
or block discarding attack [Bahack 2013]. For example, the
previously mentioned Finney attack also falls into this category (but with the aim of double spending). The problem of
selfish mining is that it increases transaction approval time
and facilitates double spending.
[Eyal and Sirer 2014] formally analyzed the incentives for
selfish mining and showed that selfish miners obtain a revenue larger than their relative share. The success and profitability heavily depends on the selfish miners share q of
hash rate and the fraction of honest miners that choose to
mine on the private chain after broadcasting. The latter is
denoted by and often depends on network properties (i. e.,
who hears which block first). In particular, [Eyal and Sirer
2014] made the observation that selfish mining is profitable
if
1
1
<q<
.
(5)
3 2
2
Since selfish (or adversarial) miners who control more than
half of the hash rate asymptotically always win the race and
are able to catch up with public chains, we are interested in
the case q < 0.5 only. For 1, which implies that (almost)
all honest miners favor the private over the public chain,
selfish mining is profitable for virtually all shares q. In the
other extreme case of 0, where (almost) all honest miners disregard the private chain, the profitability threshold of
selfish mining equals a share of at least 1/3. That is, miners
with more than one third of the computational power can increase their revenue by following the selfish mining strategy.
Note that, depending on , the threshold ranges between
0 and 1/3 and thus is substantially lower than the usually
considered critical hashing power of q > 0.5. Solo miners are
unlikely to deliver such a performance nowadays, but mining
pools are very well able to do so. The lower bound given by
the left hand side of (5) can be considered a security metric:
the higher this security threshold, the higher the fraction of
the total computational power that is necessary to exploit
selfish mining.
The true, current value of (and thus of the security
threshold) is unknown. By mounting eclipse attacks, which
we will discuss soon, an adversary is likely able to push
closer to one and thus to lower the security threshold significantly. Therefore, [Eyal and Sirer 2014] propose to relay
all blocks that are received within a certain timespan and to
select the fork to mine on randomly. As a result, half of the
honest miners will choose the private block, which fixes at
0.5. This yields a security threshold of 0.25. [Heilman 2014]
raises the threshold to 0.32 which renders selfish mining ineffective. Their mitigation is called freshness preferred;
it suggests to choose the most recent block (according to
its timestamp). Yet, it assumes unforgeable and accurate
timestamps, which is not easy to achieve [corbixgwelt 2011,
Cohen 2014].
Bitcoin peers maintain a network time, which is the median of time samples from their neighbors. It is secured from
arbitrary manipulation by allowing at most a deviation of 70
minutes from the system time. For the sake of triple modular redundancy (never go to sea with two chronometers;
take one or three.), the user is asked to double check the
time. Nevertheless, an adversary is able to slow down or to
speed up nodes within a tolerance range of 70 minutes. This
attack is known as timejacking [corbixgwelt 2011]. An advanced attacker can use timejacking to isolate a miner. By
speeding up the majority of clocks while slowing down the
targets clock, the attacker can achieve a difference of 140
minutes. Since the network time is used to validate blocks,
the attacker can generate a poison pill block with a custom
timestamp, which is accepted by the majority but rejected
by the target. As a result, the target sticks to the previous
chain and continues mining on this part, whereas the majority of the network has moved on. All newly generated
blocks are immediately rejected by the target. Timejacking
can be considered a form of denial of service attack, but
it also facilitates double spending. Furthermore, it can be
used to influence the mining difficulty calculation [Cohen
2014]. The proposed solutions include to tighten the tolerance ranges, to use NTP, or to use trusted peers for time
sampling only [corbixgwelt 2011].
Most of the attacks discussed in this section are possible
because of Bitcoins network structure. As we will see next,
significant propagation delays and scalability issues of the
network are often the root causes.
4.
NETWORK
4.1
Every peer in the Bitcoin network actively tries to maintain a minimum of eight connections in the overlay. That is,
the peer tries to establish additional connections if this number is underrun. The number of eight connections can be significantly exceeded if incoming connections are accepted by a
Bitcoin peer; usually a network participant does not handle
more than 125 connections at a time (maxconnections). By
default, peers listen on port 8333 for inbound connections.
When peers establish a new connection, they perform an application layer handshake, consisting of version and verack
messages. The messages include a timestamp for time synchronization, IP addresses, and the protocol version. Since
Bitcoin version 0.7, IPv6 is supported.
In order to detect when peers have left, Bitcoin uses a
soft-state approach. If 30 minutes have been passed since
messages were last exchanged between neighbors, peers will
transmit a heartbeat message to keep the connection alive.
If 90 minutes have passed without any incoming message,
the client will assume that its counterpart is offline. Bitcoin peers also keep track of not directly connected peers in
the network. They maintain a list of recently active peers,
including their IP address and a timestamp. Every peer
broadcasts its own IP address in an addr message every 24
hours through the overlay. The absence of the message from
a certain peer is interpreted as a sign that the respective
peer is now offline. Exchanging addr messages (during bootstrapping and later on) is the common way to explore the
network.
the study, they discovered 872,648 IP addresses in sum. Geolocation lookups revealed that they are spread all over the
world. Most of these peers are located in the US (22%) and
China (14%). However, considering the number of Internet
users in the respective countries, the Netherlands and Norway show the highest adoption rates. The discovered peers
in each round show a significant overlap. However, most of
them were gone after five days and only 5,769 were online
throughout the whole period. Note that some of the peers
have dynamic IP addresses and therefore may appear to be
more unstable than they really are. [Feld et al. 2014] provides statistics on the AS level. The online service Bitnodes
(getaddr.bitnodes.io) maps the global Bitcoin node distribution on a regular basis. All reveal the dimension of the
Bitcoin network.
4.2
Based on the unstructured overlay as discussed so far, information about new transactions and blocks is spread to
the peers in order to form the distributed consensus. The
mechanism is simple: messages are flooded through the network. Let us revisit our example where Alice wants to issue
a transaction. Where we focused on the semantics and the
transaction and block chain structure before, we now take
a closer look on the exchanged messages. The message flow
is illustrated in Figure 5. Assume Alice constructed a valid
transaction. Before broadcasting the actual transaction data
including all details of inputs and outputs, she sends an inventory (inv) message stating I know about new transactions to all of her neighbors. This message contains a list of
transaction hashes (TXIDs), but not the actual transaction
data.
Alices neighbors will request data from specific transactions in a separate getdata message, if these transactions
are so far unknown to them. This pull-based communication mechanism reduces the load on the network by avoiding
unnecessary, redundant transmissions of transaction records.
In response to a getdata message, Alice sends the respective transaction record. After Alices neighbors verified the
transaction, they will make it available to all their neighbors in the same manner as Alice did, starting with an inv
message.
Messages in general are flushed periodically about every
100 ms. However, transaction relaying takes place by trickling messages out. Bitcoin randomly selects with a probability of 1/4 the transactions for an inv message and stalls
the remaining transactions. Every neighbor gets a different
set of randomly chosen transactions (about 1/4 of the currently available set). Only the randomly selected trickling
node (cf. addr message relaying) gets all transactions immediately. The other neighbors either get it later or already
got it from another neighbor. Trickling reduces the overhead
and at the same time makes traffic analysis more difficult, in
a similar manner as mixes do in mix networks [Chaum 1981].
It also helps to conceal the originator of a transaction. However, since every 100 ms a random batch is flushed, an additional delay in the order of some hundreds of milliseconds
is induced to the propagation of transactions. Therefore,
trickling in Bitcoin is, in fact, counterproductive to the aim
of propagating information as fast as possible. It trades off
overhead and privacy against fast transaction propagation.
Peers keep track of the transactions that they have already seen, but forget them after a while if they do not
4.3
Scalability
We can conclude that the general scalability issues of unstructured overlays combined with the issues induced by the
Bitcoin protocol itself remain. Some practical, pragmatic
solutions appear able to keep Bitcoin in a working state for
the foreseeable future. However, many of the results suggest
that scalability remains an open problem. A summary of the
most prevalent issues is provided by [Courtois et al. 2014a].
The considerations also raise the question whether Bitcoin
is (and can remain) a decentralized currency [Laurie 2011,
Gervais et al. 2014, Kroll et al. 2013].
4.4
Deanonymization
4.5
Botnets
their work. The proxy bots run the standard Bitcoin client
software and connect to a randomly selected mining pool
from a hard-coded list. Every 20 minutes, proxy bots post
their wallet holding the minted coins to the C&C server.
The geographical distribution of the Miner botnet clusters
around the countries Ukraine, Russia, Poland, Romania,
and Belarus, which is likely due to the spreading strategy
adopted by the Botnet owner.
The authors of [Huang et al. 2014] termed the above
mentioned approach proxied pool mining. By investigating
several other botnets, they identified additional strategies,
which they called direct pool mining and dark pool mining.
As the name implies, with direct pool mining, boneed to
rets do not need a proxy and directly connect to a mining
pool. The approach is very simple and does not require
a separate proxy infrastructure, but it also has some disadvantages. Mining pools can easily detect botnet mining,
because of the large number of miners with small hash rates,
all sharing the same account. Proxied pool mining can be
detected, too, but masks the worker bots and has the flexibility to quickly switch to a new proxy if banned. With dark
pool mining, the botnet hosts its own mining pool to which
workers connect. The mining pool server consequentially
connects to the Bitcoin network. The earnings for direct
and proxied pool mining flow constantly due to the public
mining pools. Dark pool mining will result in bursts of earnings. [Huang et al. 2014] analyzed the profitability of mining
botnets and concludes that throughout most of 2012 and the
first quarter of 2013 it was absolutely profitable, even considering the prices charged (in dark corners of the Internet)
for hiring a botnet. [Heusser 2013, Dev 2014] propose techniques to accelerate mining with non-custom hardware, i. e.,
CPUs and GPUs, of which Botnets can make use.
Since botnet mining exploits mostly unused resources and
hence does not interfere with most other typical botnet activities, it can be expected that mining remains profitable
for large botnets. But why break into other peoples systems
if we can use free resources? [Ragan and Salazar 2014] asked
this question and used free trials and freemium accounts of
cloud services to develop a cloud-based mining botnet. The
main challenge was to automate the process, especially generating credible email addresses, to acquire a significant
amount of bots, i. e., free accounts. In their tests, they were
able to aggregate computing power worth thousands of dollars per week.
4.6
and human-meaningful. Examples include OpenPGP public key fingerprints, which are secure and decentralized, but
not human meaningful. Domain names, in contrast, are
meaningful and can be considered secure, but are managed
centrally. The conjecture that building a system incorporating all three properties is infeasible became known as
Zookos triangle.
Bitcoin breathed new life into the feasibility discussion.
The late Aaron Schwartz described a naming service based
on Bitcoins protocol [Schwartz 2011], which defies Zookos
triangle. He leverages the decentralized block chain as a
key-value storage. Instead of assigning coins to addresses,
he proposes to translate meaningful names to addresses. In
his design, the proof-of-work scheme secures the mapping
stored in the block chain in the very same way in which Bitcoin secures the transactions. Roughly at the same time, a
Bitcoin-based naming service was discussed in [kiba 2010],
and only a few months later Namecoin [vinced 2011] was
announced. The authors of [Barok 2011] also provide additional background information on the development history.
Namecoin (NMC, namecoin.info) is an alternative approach to DNS, coordinating .bit domains. It shares the
codebase with Bitcoin and inherits its properties. The mining process is therefore identical to Bitcoin, but starts with
a fresh genesis block and consequently creates on its own
block chain. For the most part, Namecoin extends the Bitcoin protocol to handle additional information (such as domain names) and introduces three new types of transactions: name_new, name_firstupdate and name_update. Assume Alice wants to register example.bit. First, she needs to
broadcast a special pre-order transaction of type name_new.
It consist of a sufficiently high network fee (currently 0.01
namecoins) as input and a name_new output script which
includes the encrypted domain name. Please note: at this
point the domain is not yet owned by Alice or anyone else.
Thus, it is still possible to issue another name_new transaction with the same domain name, for example when loosing the necessary key to successfully connect to the output
script. After a mandatory waiting period of 12 blocks, Alice
broadcasts the actual registration in a name_firstupdate
transaction. It publicly announces the domain name in
plaintext and assigns the ownership. Updates need to be
performed every 36,000 blocks (approx. 250 days) at the
latest by issuing a name_update transaction, otherwise the
domain expires.
The initial pre-ordering prevents others from quickly registering the same domain name when seeing the registration.
The 12 blocks waiting period provides time to broadcast the
registration and to anchor it in the block chain. The network fees purpose is to prevent from massive pre-ordering.
Once used in a pre-order, the fee gets destroyed and cannot be used for normal payments anymore. Thus, domain
names are, in a sense, attached to special coins, which
can, however, still be exchanged and traded through updates. Indeed, updates are basically normal transactions
referring to the previous update. They enable, for instance,
IP address updates and domain transfers. In Namecoin, every user can become her own domain registrar. However,
the system is not strictly limited to domains. For example
CertCoin [Fromknecht et al. 2014] proposes a authentication
system based on Namecoin.
In principle, any type of data can be registered (also in
Bitcoin), as long as it follows the protocol specification. So-
5.
PRIVACY
The original Bitcoin paper briefly describes privacy considerations: in contrast to traditional bankingthat is,
trusted third party models which limit the accessible trading informationBitcoins block chain publicly reveals all
transaction data. The public addresses in the block chain,
though, intend to provide pseudonymity, so that this openness of the transaction history does not automatically imply
identifiability. To support this feature, a new key pair (and
thus a new address) should be used for each transaction.
In this sense, Bitcoin clients use so called change addresses
(sometimes also called shadow addresses) by default, which
are generated for each transaction and receive the change of
the transaction on the output side.
However, as [Nakamoto 2008a] already points out
and as we know from privacy and social network research [Narayanan and Shmatikov 2009, Backstrom et al.
2007, Narayanan and Shmatikov 2008], even when hiding behind multiple pseudonyms, these can be linked and often reveal identifying information. Along these lines, there is a significant body of research on the analysis of Bitcoins publicly
available block chain [Ron and Shamir 2013, Reid and Harrigan 2013, Androulaki et al. 2012, Meiklejohn et al. 2013,
Ober et al. 2013, Baumann et al. 2014, Ron and Shamir
2014, Vasek and Moore 2015].
In the following, we will outline the methodology most
block chain analysis approaches follow (Sec. 5.1), before
5.1
Transaction Graph.
The most straightforward step is to construct a transaction graph T (T,L), where T is the set of transactions in the
block chain and L is the set of directed assignments (i. e.,
transaction output-input relations) between these transactions. Each assignment l L carries a number of coins Cl .
Inherently, transactions have a total order defined by the
block chain, so, as [Reid and Harrigan 2013] noted, there
cannot be any loops in T .
Address Graph.
From the assignments in the transaction graph, we can infer an origin-destination pair of Bitcoin addresses. This will
be possible at least for most standard transactions such as
P2PKH. Based on these relations, we can derive an address
graph A(A,L0 ), where A is the set of all Bitcoin addresses
and L0 is the set of directed assignments, but this time connecting addresses rather than transactions. Optionally, we
can make A a multigraph and add a timestamp as an attribute to each l L0 so as to distinguish between multiple
assignments between the same pair of addresses. Please note
that some assignments will not yield an origin-destination
pair. For example, coinbase blocks have no origin address
(i. e., no input) and point to one destination address (i. e.,
one output) only.
Entity Graph.
The next step aims at grouping addresses which probably
belong to the same user. Based on a number of heuristics,
which are either directly derived from the Bitcoin protocol
or reflect common practices, a so-called entity graph can be
constructed. The entity graph E(E,L00 ) consists of a set E
of entities, where each e E is a disjoint subset of addresses
A. Like [Ron and Shamir 2013], we use the neutral term entity here to express the possibility of errors and the missing
ground-truth knowledge about real ownerships.
Ownership.
Mapping addresses and thus entities to identities finally
requires side channels. Some addresses, e. g., from WikiLeaks or Silk Road, are publicly known. Many services,
like online stores or exchanges, expect the user to identify
before using the service. Others can be detected by using
web crawlers searching social networks (like, for instance,
bitcointalk.org) for Bitcoin addresses (in the users post signatures, for example) as it was done in [Reid and Harrigan
2013, Fleder et al. 2013]. The software BitIodine [Spagnuolo et al. 2014] offers an automated analysis framework.
Using similar means as described above, it parses the block
chain, constructs the respective graphs, uses heuristics for
clustering, and links addresses to users by adding side channel information.
Another approach is to match IP addresses. [Reid and
Harrigan 2013] used publicly available data sets from Bitcoin faucets, which give out coins for free. These services
save and publish the IP address of the recipients to prevent
abuse. A more rigorous way is to exploit the information
that can be revealed by observing the network. In particular, as explained in Section 4, it is possible to correlate
transaction originators to IP addresses. Based on the techniques presented in this section, transaction can be linked
with the Bitcoin address and thus also with the IP address.
If the linked Bitcoin address is part of an entity cluster, the
whole cluster with all involved transactions is deanonymized.
5.2
Based on the methods described above, a number of interesting and useful insights on the use of Bitcoin and the
flow of transactions can be gained. In this section we will
give a brief summary.
[Reid and Harrigan 2013] and [Fleder et al. 2013] identified transactions and entities of interest and illustrated their
relationships. [Fleder et al. 2013] used the PageRank algorithm [Page et al. 1999] to find important entities: entities
with more references (i. e., a higher number of incoming
transactions) are ranked higher, as well as entities referenced
by entities with a high rank. With this method, [Fleder et al.
2013] identified the addresses of SatoshiDice and the FBI as
particularly interesting. [Reid and Harrigan 2013] started
from known addresses such as WikiLeaks and visualized its
neighborhood. This way they (directly or indirectly) linked
entities to their donations and revealed that donations were
forwarded to other addresses.
The graphs allow to track Bitcoins along a sequence of
transactions and to reveal patterns. Popular strategies to
divert large amounts of Bitcoins (e. g., from thefts) are to
create long chains of transactions with branches and (re)collections [Ron and Shamir 2013, Reid and Harrigan 2013,
Meiklejohn et al. 2013]. Such a practice can be used to
obscure Bitcoin flows. Noteworthy is a pattern termed peeling chain [Meiklejohn et al. 2013], which was observed in
multiple studies: a single address starts with a large bitcoin
5.3
Enabling Privacy
Even though privacy is not an inherent property of Bitcoin, it is strongly associated with it. Hence, it is often
used for purposes where sender and/or receiver intend to remain anonymous. Dread Pirate Roberts, the operator of Silk
Road, is cited in an interview after his arrest with the statement that Silk Road would not have been possible without
Bitcoin [Greenberg 2013]. Besides, there is a strong desire
to create an anonymous digital currency. In this section we
discuss some of the best-practice techniques and proposals,
which enable (more) privacy either within Bitcoin or in related digital currency systems.
In order to prevent block chain analysis techniques from
succeeding, decoupling of information about the sender and
the receiver is required. In analogy to mix networks for
network anonymity like Tor (which, as discussed above in
Sec. 4.4, decouple sender and receiver addresses in communication), mixing services for Bitcoin transactionsmoney
laundry servicescan be constructed. Indeed, there are
many parallels between these fields.
The easiest way for gaining anonymity in Bitcoin
is a third-party approach, comparable to a single-hop
anonymization proxy in anonymous communication: a
trusted third party gets the bitcoins (including a tip), with
the request to transfer the coins to a given destination address. Due to the extremely large trading volume, the popular dice gamble SatoshiDice could leave the impression of
being a good way to obscure transactions and to launder
bitcoins (even when losing every now and then). As noted
by [Meiklejohn et al. 2013], the winnings are tied to the wager transaction, though. Thus, a block chain analysis would
be able to follow the flow. In order to avoid this, the coins
need to be juggled around by the third party in such a way
that incoming and outgoing transactions cannot be linked.
Indeed such services exist. They all follow similar principles: transactions are routed through a shared wallet, so
as to break the chain of trackable transactions. Assume Alice wants to send a bitcoin to Bob. Alice sends the bitcoin
to a new bitcoin address generated by the mixing service.
The mixing service aggregates bitcoins received from all its
users to re-distribute them again. Some services use randomness, i. e., they split the amount into smaller random
chunks and transfer them after random intervals. The user
can schedule the transactions and provide time constraints.
This way, as indicated in Figure 7, rather than receiving the
bitcoin directly from Alice, Bob will receive it from others,
which ideally will not reveal a relationship between Alice
and Bob. [M
oser et al. 2013] experimentally analyzed three
services, namely Bitcoin Fog (bitcoinfog.com), BitLaundry
(bitlaundry.com) and Send Shared by blockchain.info3 .
They confirmed that most of them indeed obscure the transaction, but they still have issues and leak links. The most
important reason is the sometimes low usage volume and, in
consequence, the small anonymity set. If this happens and
no reserve assets exist in the mixing services pool, it will
likely use the just-received bitcoins next.
Sometimes a taint analysis
as provided by
blockchain.info4 is used to evaluate the anonymity
provided by a mixing service. It describes which fraction
3
The mixing service Send Shared was dropped by blockchain.info.
Their new service Shared Coin follows a different strategy, which we
will cover later in this section.
4
https://blockchain.info/taint/1dice6GV5Rz2iaifPvX7RMjfhaNPC8SXH
service and Bob build another 2-of-2 multi-signature transaction with the mixing services coins. These transactions
are announced publicly. The respective refund transactions
are time-locked and held back for safety, in case one party
vanishes. Next, Alice and the mixing service as well as Bob
and the mixing service each construct and exchange redeem
transactions for the multi-signature transactions. Both redeem transactions are additionally hash-locked by the same
secret (which comes from Bob). Thus, both of them can
be redeemed by the respective participants as soon as the
secret is known. This ensures that if Bob gets paid, the mixing service gets paid, too. Once the mixing service becomes
confident that it gets paid, it can release the multi-signature.
The same applies to Alice. In the end, successful CoinSwap
transactions are not distinguishable from standard multisignature transactions.
The anonymity set of CoinSwap consists of all 2-of-2
multi-signature transaction published at roughly the same
time. Since Alice could also play the role of Bob in the protocol, CoinSwaps can be chained. Every CoinSwap requires
four transaction and rather complex staged phases. As mentioned, it can also be used to exchange (or mix) coins in a
peer-to-peer fashion. CoinJoin, in comparison, is less complex, but also has a limited anonymity set, namely the number of participants in a single transaction. However, both
approaches seem to have a place: CoinJoin could be used
(opportunistically) to increase overall privacy for everyone,
and CoinSwap could achieve stronger anonymity when desired, at the cost of additional transactions.
Instead of developing means of usage which increase the
privacy, there are also approaches which extend the Bitcoin
protocol or propose altcoins with native untraceable transaction support. The aforementioned Darkcoin [Duffield and
Hagan 2014] is one example. Another approach builds upon
non-interactive zero-knowledge proofs [Blum et al. 1988].
Zerocoin [Miers et al. 2013] is a protocol extension to Bitcoin
by which Alice can prove to others that she owns a bitcoin
and is thus eligible to spend any other bitcoin. First she
produces a secure commitment, i. e., the zerocoin, which is
recorded in the block chain so that others can validate it. In
order to spend a bitcoin, she broadcasts a zero-knowledge
proof for the respective zerocoin, together with a transaction. The zero-knowledge proof protects Alice from linking the zerocoin to her. Still, the other participants can
verify the transaction and the proof. Instead of a linked
list of Bitcoin transactions, Zerocoin introduces intermediate
steps. Unfortunately, even though Zerocoins properties may
seem appealing, it is computationally complex, bloats the
block chain and requires protocol modifications. However,
it demonstrates an alternative, privacy-aware approach.
An extension of Zerocoin is presented by [Androulaki and
Karame 2014]. The authors developed additional means
to also hide the coin volume of transactions and Bitcoin
addresses. A fully-fledged altcoin design named Zerocash
with strong privacy guarantees was presented in [Ben-Sasson
et al. 2014]. It takes the zero knowledge approach from Zerocoin, but improves it both in terms of functionality and
efficiency.
Another altcoin approach is CryptoNote [van Saberhagen 2013], which denotes a protocol and technology
framework. An actual implementation is Bytecoin (BCN,
bytecoin.org). CryptoNote aims for the same two major
privacy features as Zerocoin and its extensions: unlinkable
transactions and untraceable payments. Unlinkable transactions help hiding the balance of a Bitcoin address. In
Bitcoin, users are able to prevent this by always using a
fresh address. However, as the existing results based on
block chain analyses underline, if the public address is know
(as with WikiLeaks or Silk Road, for example), the account
balance can be determined. CryptoNote utilizes the basic
idea of the Diffie-Hellman exchange protocol [Diffie and Hellman 1976] to derive one-time key pairs for each transaction.
These key pairs are generated on demand by the respective parties, without previous interaction. In particular, the
sender uses the recipients public address and generates a
one-time public key to which the coins are sent. In addition, the sender adds half of the Diffie-Hellman handshake
to the transaction. The receiver can use this half and its
original private key to compute the private key required to
redeem the transaction.
In order to further increase the difficulty of tracing
payments and coin flows, CryptoNote uses ring signatures [Rivest et al. 2001]. Ring signatures secure a message like any digital signature, but can be produced by any
member of a group. Unlike group signatures, ring signatures make it infeasible to determine which member of the
group signed the message. Every member can compute a
ring signature on a message using their own private key and
the groups public keys. For CryptoNote this means: when
signing a transaction, in addition to the output he owns, the
sender selects multiple other outputs of foreign transactions
with the same amount (i. e., outputs she does not necessarily
own). She then joins them as a single input. From the public
keys of all outputs and her own private key, the sender creates the respective ring signature for the input. The validity
of the transaction only implies that one of the group members has signed the transaction and spends a coin, but not
which coin exactly. This is significantly different from Bitcoin, because only one of the selected outputs can actually
be spent, not all of them. It increases the resistance against
analysis of the block chain by providing multiple plausible
paths to follow. Every consecutive transaction amplifies the
effect by adding additional cash flow options.
However, such a scheme raises questions regarding double spending. In particular, if it is not possible to determine which coin has been spent, how can attempts of double
spending be detected? CryptoNote tackles this issue by employing traceable ring signatures [Fujisaki and Suzuki 2007]:
if somebody uses a private key more than once to create
a signature, this can be detected, because every transaction
also holds a so-called key image. If the same key image reappears, it means the one-time private key has been used more
than once. This indicates double spending. Therefore, every
peer keeps track of the previously seen key images. As with
Zercoin, though, the increased privacy level comes at the
price of a bloated block chain and more complex operations.
6.
6.1
From a general perspective, Bitcoin works towards a consensus in a distributed manner and replicates the state network-wide. In order to guarantee fault tolerance, some redundancy is necessary. The amount of redundancy depends
on the failure types. Consider, for example, three entities
holding a value. Assume that a single entity fails: it always
returns the same, wrong value. By comparing the answers,
it is easy to identify the failing entity and to decide on the
true value. Two entities would not suffice, an analogous situation would result in a conflict. In general terms, in the
presence of f failures, the network needs n 2f + 1 entities
to tolerate the failures.
However, failures in a broader sense can also be random
or malicious. These failures are called Byzantine failures, after the famous Byzantine Generals problem [Lamport et al.
1982]. The original problem description considers the case of
n generals trying to mutually agree via messengers on a common battle plan. However, f of the generals are traitors and
try to thwart the agreement. The situation is comparable
to a distributed system which aims to reach consensus. The
Byzantine Generals problem with synchronous and reliable
communication reaches consensus as long as n 3f + 1 is
satisfied [Lamport et al. 1982]. In case of asynchronous communication, the Fischer-Lynch-Paterson (FLP) proof shows
that a asynchronous and deterministic consensus protocol
cannot tolerate any failures at all [Fischer et al. 1985]. Later
[Dolev et al. 1987] refined the results and revealed the dependency on the system properties process synchronicity, communication delay (bounded or undbounded), message order,
and transmission method (point-to-point or broadcast). An
overview of the first decade of this broad field is given by
[Lynch 1989, Turek and Shasha 1992].
The topic kept research busy. Some contributions relaxed
the conditions in order to overcome the impossibility results.
Non-deterministic consensus protocols, for example, provide
solutions to the asynchronous case [Aspnes 2003]. While
consensus becomes possible due to the randomness, the approach leaves a (small) chance of failing. Others replaced
the requirement of each entity to commit to a final decision
by accepting that each entity has a current view (or opinion) that may change as execution proceeds [Angluin et al.
2006]. This yields the concept of stabilizing consensus.
All of this comes quite close to what we see in the Bitcoin
protocol: it makes heavy use of randomness in the mining
process and re-adjusts it regularly. Furthermore, Bitcoin
deliberately omits a final and fixed ownership attribution6 .
Instead, it uses a rule of thumb: after (typically) six confirmations, transactions are considered settled. Convergence
is achieved via the longest chain rule.
6
By now, Bitcoin in fact has checkpoints, which are once in a while
hardcoded into the software and mark an irreversible block height in
the block chain. Checkpoints were introduced by Satoshi Nakamoto
later and are not part of the original design.
A popular example which borrows directly from the results of Byzantine agreement is Ripple (XRP, ripple.com).
Ripple takes a different direction and relies on a set of
trusted authorities to build consensus. It implements a
round-based consensus algorithm with final decision making.
The final decision results in a so-called last closed ledger
which represents the current state of all accounts. Ripples
consensus algorithm achieves 5f +1 resilience [Schwartz et al.
2014].
Another condition is the timing model, which describes
the message propagation in the network. In the synchronous
communication case, messages arrive after a certain fixed
time span. Any message that takes longer is considered a
failure. Protocols for the synchronous case explicitly rely on
timing assumptions; they often proceed in discrete rounds.
As numerous impossibility results show, solutions are often only possible for the synchronous case. In the much
more general asynchronous timing model, no assumptions
are made on the relative rate of execution or message delivery. As [Aguilera 2010] points out, the asynchronous timing
model might not be realistic, because it is unlikely that messages take longer than a certain threshold (even though this
threshold could well be very high). However, protocols for
the asynchronous casewhere they existare very generic
and work irrespective of the systems condition.
Thus, the system designer is left with two bad choices.
The fact that Bitcoin allows the blocks timestamp to deviate only within a certain range hints at the assumption of a
synchronous network model. The 10 minutes block creation
time was, in the first place, chosen as a tradeoff between
confirmation time and the amount of work wasted due to
chain forks. But it also ensures to reach every corner of the
network even in the face of prolonged propagation times. It
therefore, in a sense, synchronizes the network (loosely).
In addition to the already mentioned conditions, the Bitcoin network is, due to its structural properties which support anonymity, of unknown size. In the face of Byzantine failures, this additional condition makes the problem
harder. Malicious entities can set up fake identities which
subvert the election and inject faulty information, i. e., they
can mount a Sybil attack [Douceur 2002]. In Bitcoin, the
proof-of-work requirements tackle this vulnerability by artificially increasing the cost of a vote. This approach originates from the attempts to combat spam [Dwork and Naor
1993, Back 2002]. In fact, the idea to use it in the context
of Byzantine agreement protocols has been proposed before
Bitcoin already [Aspnes et al. 2005]. Yet, even though the
possibility of Sybil attacks had been considered there, the
size of the network was assumed to be known; otherwise, the
assumptions are comparable to those behind Bitcoin.
Thus, in principle, all the puzzle pieces required to build a
consensus protocol similar to Bitcoin were there. The similarity of the problem and the advances in the field were recognized [Szabo 2003]. The idea to employ Byzantine agreement protocols such as [Malkhi and Reiter 1998] to the area
of distributed digital currencies paved the ground [Szabo
1998]. Even design proposals and prototypes existed [Dai
1998, Finney 2004, Szabo 2005]. Eventually, in 2008, time
was ready and Bitcoin appeared.
In summary, we can say that Bitcoin tackles the Byzantine
Generals problem from a practical angle. Nakamoto himself compared the protocol design to this particular problem
[Nakamoto 2008c]. As also discussed in [Miller 2012], Bit-
6.2
bound hash functions are suitable for hardware acceleration [Chaves et al. 2008] received attention. Thus, it
was only a matter of time until hardware-based mining
solutions became availablefirst based on reconfigurable
logic (Field-Programmable Gate Arrays, FPGAs) and subsequently based on application-specific integrated circuits
(ASICs). FPGAs and especially ASICs significantly accelerate the speed and efficiency of mining. Since then, only
ASICs are economically viable for bitcoin mining. They
achieve hash rates in the order of one terahash per second.
[Bedford Taylor 2013, ODwyer and Malone 2014] tell the
story of Bitcoin hardware and its energy footprint in detail. Recent observations and optimizations [Courtois et al.
2014b] will probably continue to push the hash rates even
higher in the future.
Following the increasing computational power, Bitcoin adjusts the difficulty, i. e., the target value, to maintain the
ten-minute-per-block target rate. This behavior can be seen
in Figure 8, which we generated by parsing the block chain
and calculating a moving average of the block confirmation
time (plotted on the left y-axis) for a small part of the block
chain. We can observe a repeated decrease of the confirmation time, which implies that the total hash rate of all
participants increases. Every 2016 blocks, Bitcoin adjusts
the difficulty of the proof of work (plotted on the right yaxis). Only very seldom in the history of Bitcoin it happened
that the difficulty was adjusted downwards. Most often it
increases.
Overall the difficulty follows an exponential growth, as
Figure 9 shows (please note the logarithmically scaled yaxes). Since the difficulty is continuously adjusted to the
hash rate, the data line in this plot can be interpreted as
either of these: the hash rate (according to the left y-axis)
or the difficulty (according to the right y-axis).
The use of specialized mining equipment increases the voting power per entity. This development subverts the proofof-work paradigm and therefore implies a threat. In particular, it reduces the democratic basis by suppressing small
miners. As consequence, the trust in Bitcoin degrades.
In Bitcoin, we can take the idiom rich gets richer literally: it has been shown that the wealth of rich users increases
faster than the wealth of users with low balance [Kondor
et al. 2013]. Additionally, there is an alarming trend that
the power of a small group of miners significantly exceeds the
power that all other users contribute [Gervais et al. 2014].
This raises the question whether Bitcoin is still truly a decentralized currency or if it is shifting towards the centralized
banking model which it originally questioned.
During the early steps of proof of work (i. e., Hashcash)
and before Bitcoin, the imbalanced capabilities of systems
were already identified as a possible issue. This was considered inherent to CPU-bound functions. In order to recover the situation, the idea to employ memory-bound functions instead was introduced. The approach is to incorporate
large amounts of (unpredictable) memory access operations
in the proof of work calculations, so that these constitute
the dominant factor. Hence, solving the proof of work is
limited by the memory access time, not by the CPU speed.
The underlying assumption is that the differences between
users with regard to memory access speed are inherently
much smaller than the differences with respect to computing power. Memory-bound functions had been proposed in
the context of spam prevention before [Dwork et al. 2003,
Abadi et al. 2005].
620
7109
6109
600
5109
580
560
410
540
Difficulty
640
3109
520
500
2109
480
460
282000
285000
288000
Block Index
291000
294000
110
10
16
10
14
10
12
10
10
10
10
10
10
104
Difficulty
102
10
80640
161280
Block Index
241920
10
In the context of Bitcoin, functions such as scrypt [Percival 2009] and CryptoNight [van Saberhagen 2013] have
been discussed. In a corresponding proof-of-work scheme,
memory-intensive operations are added to the hashing operations. The intention is to foster more evenly distributed
power among the user base, to avoid the emergence of a
monopoly. Unfortunately, scryptwhich is probably the
most popular alternative proof of work scheme, and is used,
e. g., by Litecoin (LTC, litecoin.org)still enables the
use of specialized mining devices. The appearance of more
energy-efficient GPU-based mining brought a significant increase of Litecoins hash rate. Moreover, most alternative
hash functions are rather immature and not as well analyzed as, for example, SHA-256. Therefore, concerns about
possible future weaknesses remain. In general, there are discussions whether ASIC-resistant proof of work can exist at
all [Hearn 2014, Lists 2014a].
Another fundamental criticism of proof of work in general and Bitcoin in particular is that it wastes computational power (and thus energy) without any intrinsic
value. Contributions which try to alter this situation are
NooShare [Coventry 2012], Primecoin [King 2013b] and Permacoin [Miller et al. 2014]. NooShare proposes the scheduling of arbitrary Monte-Carlo simulations as a proof of work.
Primecoin (XPM, primecoin.io) requires miners to find long
chains of prime numbers, so-called Cunningham chains. Permacoin realizes distributed storage by requiring so-called
proofs of retrievability, that is, access to local storage. All
three approaches provide an added value besides securing
the block chain. However, other difficulties arise then, such
as fine-tuning the difficulty and prohibiting the reusability
of earlier results. For example, in case of Primecoin, the
length of a prime chain does not naturally imply a suitable
difficulty metric. Chains of eight primes may be a hundred
times harder to find than chains of seven primes. Primecoin
solves this issue by using Fermats primality test, to construct an approximately linear difficulty metric for a given
chain length. Even though Primecoin is considered a CPUonly currency (since finding prime chains appears to be inefficient on GPUs), doubts along the same lines as mentioned
earlier exist [Koooooj 2013], and first GPU-based miners are
already available.
For completeness, we briefly mention some altcoins which
also rely on proof of work. We have already mentioned Litecoin as an adopter of scrypt as the underlying hash function.
Dogecoin (DOGE, dogecoin.com) is another popular altcoin
which uses scrypt. Both are Bitcoin forks (and thus use
the same code base), but have faster confirmations times of
2.5 minutes and 1 minute, respectively. Dogecoin also has
a much higher coin supply and a higher reward per block.
Therefore, it is gaining traction as a microdonation system.
Not deployed, but nevertheless appealing is the idea of
FawkesCoin [Bonneau and Miller 2014]. As the name indicates, it builds upon the Guy Fawkes signature protocol [Anderson et al. 1998], which substitutes Bitcoins elliptic curve DSA (ECDSA). FawkesCoin thereby constructs
a digital currency with only symmetric cryptography. Due
to the symmetry property, signatures can be used securely
only once. Hence, FawkesCoin requires to use a fresh address
for every transaction (which, however, is also recommended
for Bitcoin anyway).
6.3
6.4
In order to determine the N lucky stakeholders, the pseudorandom number is interpreted as an index in the list of all
so far minted satoshis. Finding the user in possession of the
satoshi is done by a procedure called follow-the-satoshi.
Everybody can verify it by inspecting the block chain and
following the satoshi from the coinbase transaction up to the
address currently holding it. Please note that this is much
like proof of stake, with the difference that the coin age is irrelevant. Alice holding two coins has twice as high a chance
to be picked as Bob holding one coin. The decision to share
the transaction fees as reward among the stakeholders and
not, for example, the entire block reward is rooted in the
observation which we pointed out earlier: a high reward for
the stake incentivizes undesirable coin hoarding. The small
fees are considered a nice bonus, but not an incentive for
hoarding.
The underlying concept is to reward active peers which
are online. If one of the lucky stakeholders is offline, he will
not be able to respond and to add her signature. Hence, the
block cannot be completed. At some point, there will be
another miner solving the proof of work, drawing N different stakeholders. The difficulty is adjusted according to the
hash rate and the fraction of active peers. The concept is accordingly called proof of activity (PoA) [Bentov et al. 2014].
It rewards stakeholders who participate rather than punishing passive stakeholders. The proof-of-work component
is inevitable to make the system converge and to provide
a rule to resolve forks. Moreover, it is necessary to throttle
the speed of picking the lucky stakeholders. Proof of activity
improves security: besides a huge amount of computational
power, an attacker needs a significant amount of stake to
double spend.
6.5
7.
After our extensive characterization of Bitcoin and its related approaches, it is time to take a look back and briefly
summarize our observations, before we discuss future research directions and the next generation of Bitcoin.
We exposed the agreement on and maintenance of an unforgeable, but distributed, ledgerthe block chainwhich
holds all assignments ever createdthe transactionsand
makes them verifiable to everyone. Bitcoin is considered a
secure timestamping service and a practical solution to the
Byzantine Generals problem. In order to achieve consensus, Bitcoin accepts the risk of failure. In particular, double
spends (or race attacks) are and will always be possible. The
risk, though, can be minimized and is subject to a personal
trade-off.
The transparency of the system is a fundamental aspect
to achieve verifiability, but likewise it introduces an omnipresent global attacker model. Therefore, we can conclude
Bitcoin is anything but private. Nevertheless, it can hide
identities and the efforts to strengthen this property continue. The attempts and techniques recall the discussion
on anonymity networks. However it also brings up commitment schemes such as zero knowledge proofs and gives them
a whole new playground. Thus, we see the starting point
of a symbiotic effect between different areas.
Probably one of the most outstanding contributions of
Bitcoin is the degree of decentralization which was previously deemed impossible. The ingenious concept of mining,
may it be based on proof of work, proof of stake or something else, secures the ledger and eventually stabilizes the
consensus. It binds votes to something expensive and
incentivizes to pay for it by holding out the prospect of
a reward, which at the same time controls the money supply of the digital currency. Without mining, fake identities
would be able to subvert the consensus and destroy the system. Because of this crucial point, we can conclude that
> 50% attacks are the worst-case scenario. Furthermore,
the mining monopoly threatens the decentralization.
The previously listed observations and features are often
considered to be the most innovative parts of Bitcoin. But
only in combination with one of the most distinctive features, namely the scripting capabilities, the depth of possibilities becomes evident. The instruction set may be limited,
but it is still a powerful tool to realize sophisticated transactions and contracts. This trend is further followed by a
8.
CONCLUSION
9.
ACKNOWLEDGMENTS
10.
REFERENCES
Precursor
Altcoins
Protocols / Extensions
Altchains
Approach
Sec.
B-Money
Bit Gold
RPOW
6.2
Bitshares (BTS)
6.3
Bytecoin (BCN)
Implements CryptoNote [van Saberhagen 2013], which aims for unlinkable transactions and untraceable payments
5.3, 6.2
Counterparty (XCP)
6.5, 6.5
Cryptonite (XCN)
4.3
Darkcoin (DRK)
5.3
Dogecoin (DOGE)
4.3, 6.2
Litecoin (LTC)
6.2
Mastercoin (MSC)
6.5
Nextcoin (NXT)
6.3
Peercoin (PPC)
6.3
Primecoin (XPM)
6.2
Reddcoin (RDD)
6.2
Ripple (XRP)
6.1
Zerocash
5.3
CoinJoin
5.3
CoinShuffle
5.3
CoinSwap
5.3
CommitCoin
6.5
[Bruce 2014] identifies individual block chain components and proposes a mini block chain with a decentralized balance sheet
4.3
Mixcoin
5.3
Zerocoin
5.3
Bitmessage
4.6
Ethereum (Ether)
2.5
Namecoin (NMC)
4.6
Metadisk
4.6
15.
[Bamert et al. 2014] Tobias Bamert, Christian Decker, Roger
Wattenhofer, and Samuel Welten. 2014. BlueWallet: The
Secure Bitcoin Wallet. In STM 14: Proceedings of the 10th
International Workshop on Security and Trust Management.
6580.
[Barber et al. 2012] Simon Barber, Xavier Boyen, Elaine Shi, and
Ersin Uzun. 2012. Bitter to better how to make bitcoin a
better currency. In FC 12: Proceedings of the 16th
International Conference on Financial Cryptography and
Data Security. 399414.
[Barok 2011] Du
san Barok. 2011. Bitcoin: censorship-resistant
currency and domain system for the people. Technical Report.
Networked Media, Piet Zwar Institute, Rotterdam,
Netherlands.
[Baumann et al. 2014] Annika Baumann, Benjamin Fabian, and
Matthias Lischke. 2014. Exploring the Bitcoin Network. In
WebDB 04: Proceedings of the 10th International
Conference on Web Information Systems and Technologies.
[Bedford Taylor 2013] Michael Bedford Taylor. 2013. Bitcoin and
the age of bespoke silicon. In CASES 13: Proceedings of the
8th International Conference on Compilers, Architecture, and
Synthesis for Embedded System. 110.
[Ben-Sasson et al. 2014] Eli Ben-Sasson, Alessandro Chiesa,
Christina Garman, Matthew Green, Ian Miers, Eran Tromer,
and Madars Virza. 2014. Zerocash: Decentralized anonymous
payments from Bitcoin. In SP 14: Proceedings of the 35th
IEEE Symposium on Security and Privacy.
[Bentov and Kumaresan 2014] Iddo Bentov and Ranjit Kumaresan.
2014. How to Use Bitcoin to Design Fair Protocols. In
CRYPTO 14: Proceedings of the 34th Annual Conference on
Advances in Cryptology. 421439.
[Bentov et al. 2014] Iddo Bentov, Charles Lee, Alex Mizrahi, and
Meni Rosenfeld. 2014. Proof of Activity: Extending
Zs
Proof of Work via Proof of Stake. In NetEcon 14:
Bitcoin
aA
Proceedings of the 9th Workshop on the Economics of
Networks, Systems and Computation.
[Biryukov et al. 2014] Alex Biryukov, Dmitry Khovratovich, and
Ivan Pustogarov. 2014. Deanonymisation of Clients in Bitcoin
P2P Network. In CCS 14: Proceedings of the 21st ACM
Conference on Computer and Communications Security.
1529.
[Biryukov and Pustogarov 2014a] Alex Biryukov and Ivan
Pustogarov. 2014a. Bitcoin over Tor isnt a good idea. CoRR:
Computing Research Repository (2014).
http://arxiv.org/abs/1410.6079
[Biryukov and Pustogarov 2014b] Alex Biryukov and Ivan
Pustogarov. 2014b. Proof-of-Work as Anonymous
Micropayment: Rewarding a Tor Relay. IACR: Cryptology
ePrint Archive 2014 (2014). Issue 1011.
[Bissias et al. 2014] George Dean Bissias, A. Pinar Ozisik,
Brian Neil Levine, and Marc Liberatore. 2014. Sybil-Resistant
Mixing for Bitcoin. In WPES 14: Proceedings of the 13th
ACM Workshop on Privacy in the Electronic Society.
149158.
[Bitcoin dev 2014] Bitcoin dev 2014. Bitcoin Developer
Documentation. (2014).
https://bitcoin.org/en/developer-documentation
[Bitcoin wiki 2014] Bitcoin wiki 2014. The Bitcoin Wiki. (2014).
https://en.bitcoin.it/wiki
[Blindcoin Blinded 2015] Accountable Mixes for Bitcoin
Blindcoin Blinded. 2015. Luke Valenta and Brendan Rowan. In
BITCOIN 15: Proceedings of the 2nd Workshop on Bitcoin
Research.
[Bloom 1970] Burton H Bloom. 1970. Space/time trade-offs in hash
coding with allowable errors. Commun. ACM 13, 7 (1970),
422426.
[Blum et al. 1988] Manuel Blum, Paul Feldman, and Silvio Micali.
1988. Non-interactive Zero-knowledge and Its Applications. In
STOC 88: Proceedings of the 20th Annual ACM Symposium
on Theory of Computing. 103112.
[Boneh et al. 2003] Dan Boneh, Craig Gentry, Ben Lynn, and Hovav
Shacham. 2003. Aggregate and verifiably encrypted signatures
from bilinear maps. In EUROCRYPT 03: Proceedings of the
22nd International Conference on the Theory and
Applications of Cryptographic Techniques. 416432.
[Bonneau and Miller 2014] Joseph Bonneau and Andrew Miller.
2014. FawkesCoin: A cryptocurrency without public-key
cryptography. In SPW 14: Proceedings of the 22nd
International Workshop on Security Protocols.
[Finney 2011] Hal Finney. 2011. Best practice for fast transaction
acceptance - how high is the risk? (2011). https:
//bitcointalk.org/index.php?topic=3441.msg48384#msg48384
[Fischer et al. 1985] Michael J Fischer, Nancy A Lynch, and
Michael S Paterson. 1985. Impossibility of distributed
consensus with one faulty process. Journal of the ACM
(JACM) 32, 2 (1985), 374382.
[Fleder et al. 2013] Michael Fleder, Michael Kester, and Sudeep
Pillai. 2013. Bitcoin Transaction Graph Analysis. Technical
Report. Massachusetts Institute of Technology (MIT),
Computer Systems Security (6.858). http://css.csail.mit.edu/
6.858/2013/projects/mfleder-mkester-spillai.pdf
[Fromknecht et al. 2014] Conner Fromknecht, Dragos Velicanu, and
Sophia Yakoubov. 2014. CertCoin: A NameCoin Based
Decentralized Authentication System. Technical Report.
Massachusetts Institute of Technology, MA, USA. 6.857 Class
Project.
[Fujisaki and Suzuki 2007] Eiichiro Fujisaki and Koutarou Suzuki.
2007. Traceable ring signature. 181200.
[Gallagher and Kerry 2013] P Gallagher and C Kerry. 2013. Federal
Information Processing Standards (FIPS) publication 186-4:
Digital Signature Standard (DSS). (July 2013).
http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
[Garay et al. 2014] Juan A. Garay, Aggelos Kiayias, and Nikos
Leonardos. 2014. The Bitcoin Backbone Protocol: Analysis and
Applications. IACR: Cryptology ePrint Archive 2014 (2014).
Issue 765. http://eprint.iacr.org/2014/765
[Gerhardt and Hanke 2012] Ilja Gerhardt and Timo Hanke. 2012.
Homomorphic payment addresses and the pay-to-contract
protocol. arXiv preprint arXiv:1212.3257 (2012).
http://arxiv.org/pdf/1212.3257v1.pdf
[Gervais et al. 2014] Arthur Gervais, Ghassan Karame, Srdjan
Capkun, and Vedran Capkun. 2014. Is Bitcoin a Decentralized
Currency?. In SP 14: Proceedings of the 35th IEEE
Symposium on Security and Privacy.
[Ghosh et al. 2014] Mainak Ghosh, Miles Richardson, Bryan Ford,
and Rob Jansen. 2014. A TorPath to TorCoin:
Proof-of-Bandwidth Altcoins for Compensating Relays. In
HotPETs 14: 7th Workshop on Hot Topics in Privacy
Enhancing Technologies.
[Gnutella v0.4 2003] Gnutella v0.4 2003. The Annotated Gnutella
Protocol Specification v0.4. (2003).
http://rfc-gnutella.sourceforge.net/developer/stable/
[Goldfeder et al. 2014] Steven Goldfeder, Joseph Bonneau,
Edward W Felten, Joshua A Kroll, and Arvind Narayanan.
2014. Securing Bitcoin wallets via threshold signatures. (2014).
http://www.cs.princeton.edu/~stevenag/
bitcoin_threshold_signatures.pdf
[Goldschlag et al. 1996] David M Goldschlag, Michael G Reed, and
Paul F Syverson. 1996. Hiding Routing Information. In
IHW 01: Proceedings of the 1st International Workshop on
Information Hiding.
[Greenberg 2013] Andy Greenberg. 2013. An Interview With A
Digital Drug Lord: The Silk Roads Dread Pirate Roberts
(Q&A). (Aug. 2013). http://www.forbes.com/sites/
andygreenberg/2013/08/14/an-interview-with-a-digital-druglord-the-silk-roads-dread-pirate-roberts-qa/
[Haber and Stornetta 1991] Stuart Haber and W. Scott Stornetta.
1991. How to Time-stamp a Digital Document. Journal of
Cryptology 3 (1991), 99111.
[Hajdarbegovic 2014] Nermin Hajdarbegovic. 2014. Bitcoin Miners
Ditch Ghash.io Pool Over Fears of 51% Attack. (Jan. 2014).
http://www.coindesk.com/bitcoin-miners-ditch-ghash-io-pool51-attack/
[Hardin 1968] Garrett Hardin. 1968. The tragedy of the commons.
Science 162, 3859 (1968), 12431248.
[Hearn 2014] Mike Hearn. 2014. Mining Decentralisation: The Low
Hanging Fruit. (July 2014). https://bitcoinfoundation.org/
2014/07/03/mining-decentralisation-the-low-hanging-fruit/
[Hearn and Corallo 2012] Mike Hearn and Matt Corallo. 2012.
BIP 37: Connection Bloom filtering. (Oct. 2012). https:
//github.com/bitcoin/bips/blob/master/bip-0037.mediawiki
[Heilman 2014] Ethan Heilman. 2014. One Weird Trick to Stop
Selfish Miners: Fresh Bitcoins, A Solution for the Honest
Miner.. Poster. In FC 14: Proceedings of the 18th
International Conference on Financial Cryptography and
Data Security.
[Heusser 2013] Jonathan Heusser. 2013. SAT solving - An
alternative to brute force bitcoin mining. Technical Report.
https://jheusser.github.io/2013/02/03/satcoin.html
Z85