Bitcoin is a potentially disruptive new crypto-currency based on a decentralized opensource protocol which is gradually gaining popularity. Perhaps the most important question that will affect Bitcoin’s success, is whether or not it will be able to scale to support the high volume of transactions required from a global currency system. We investigate the restrictions on the rate of transaction processing in Bitcoin as a function of both the bandwidth available to nodes and the network delay, both of which lower the efficiency of Bitcoin’s transaction processing. The security analysis done by Bitcoin’s creator Satoshi Nakamoto [12] assumes that block propagation delays are negligible compared to the time between blocks—an assumption that does not hold when the protocol is required to process transactions at high rates. We improve upon the original analysis and remove this assumption. Using our results, we are able to give bounds on the number of transactions per second the protocol can handle securely. Building on previously published measurements by Decker and Wattenhofer [5], we show these bounds are currently more restrictive by an order of magnitude than the bandwidth needed to stream all transactions. We additionally show how currently planned improvements to the protocol, namely the use of transaction hashes in blocks (instead of complete transaction records), will dramatically alleviate these restrictions. Finally, we present an easily implementable modification to the way Bitcoin constructs its main data structure, the blockchain, that immensely improves security from attackers, especially when the network operates at high rates. This improvement allows for further increases in the number of transactions processed per second. We show that with our proposed modification, significant speedups can be gained in confirmation time of transactions as well. The block generation rate can be securely increased to more than one block per second – a 600 fold speedup compared to today’s rate, while still allowing the network to processes many transactions per second.
[1]
David Williams,et al.
Probability with Martingales
,
1991,
Cambridge mathematical textbooks.
[2]
Moni Naor,et al.
Pricing via Processing or Combatting Junk Mail
,
1992,
CRYPTO.
[3]
Seif Haridi,et al.
Distributed Algorithms
,
1992,
Lecture Notes in Computer Science.
[4]
S. Nakamoto,et al.
Bitcoin: A Peer-to-Peer Electronic Cash System
,
2008
.
[5]
Meni Rosenfeld,et al.
Analysis of Bitcoin Pooled Mining Reward Systems
,
2011,
ArXiv.
[6]
Fergal Reid,et al.
An Analysis of Anonymity in the Bitcoin System
,
2011,
PASSAT 2011.
[7]
R. Serfozo.
Basics of Applied Stochastic Processes
,
2012
.
[8]
Ghassan O. Karame,et al.
Double-spending fast payments in bitcoin
,
2012,
CCS.
[9]
Aviv Zohar,et al.
On bitcoin and red balloons
,
2012,
EC '12.
[10]
Ghassan O. Karame,et al.
Evaluating User Privacy in Bitcoin
,
2013,
Financial Cryptography.
[11]
J. D. Bruce.
Purely P2P Crypto-Currency With Finite Mini-Blockchain
,
2013
.
[12]
Christian Decker,et al.
Information propagation in the Bitcoin network
,
2013,
IEEE P2P 2013 Proceedings.
[13]
Matthew Green,et al.
Zerocoin: Anonymous Distributed E-Cash from Bitcoin
,
2013,
2013 IEEE Symposium on Security and Privacy.
[14]
Adi Shamir,et al.
Quantitative Analysis of the Full Bitcoin Transaction Graph
,
2013,
Financial Cryptography.
[15]
Emin Gün Sirer,et al.
Majority Is Not Enough: Bitcoin Mining Is Vulnerable
,
2013,
Financial Cryptography.
[16]
Meni Rosenfeld,et al.
Analysis of Hashrate-Based Double Spending
,
2014,
ArXiv.