Document 14544857

advertisement
The SIJ Transactions on Computer Networks & Communication Engineering (CNCE), Vol. 3, No. 2, February 2015
Simply Dividing a Bitcoin Network Node
may Reduce Transaction Verification
Time
Juan Eduardo Pazmiño* & Carlo Kleber da Silva Rodrigues**
*Department of Electrical and Electronics, University of the Armed Forces - ESPE, Sangolqui, Ecuador, BRAZIL.
E-Mail: juan_pincel_90{at}hotmail{dot}com
**Department of Electrical and Electronics, University of the Armed Forces - ESPE, Sangolqui, Ecuador, University Center of Brasília UniCEUB, Brasília, DF, BRAZIL. E-Mail: carlokleber{at}gmail{dot}com
Abstract—Herein it is proposed a simple competitive analysis to evaluate the benefits of dividing a Bitcoin
node according to the number of computers the user has locally available. This division, if cleverly done, may
potentially yield shorter transaction verification time and, therefore, a more efficient Bitcoin system.
Experiments and theoretic analysis are performed on three Bitcoin organizations, where the two first ones are
broadly known in the literature, while the third one results from a baseline algorithm proposed in this work.
The final results coming out from the experiments indicate for instance an optimization of at most 71.42% at
the verification time, given that the number of divisions is set to five. If this number is set greater, i.e., more
divisions (parts) in a node of the network, a even better system performance may be achieved. Lastly, possible
ways for future work are included at the end of this article.
Keywords—Bitcoin; Bitcoin Core; Node Division; Transaction; Verification Time.
Abbreviations—Peer-to-Peer (P2P), Transaction Verification Time (TVT).
I.
T
INTRODUCTION
HE Bitcoin network can be understood as a peer-topeer (P2P) infrastructure used to make financial
transactions with users all over the world [Nakamoto,
1; Mier et al., 9]. These transactions are handled by a protocol
called Bitcoin and consider a cryptocurrency also denoted as
Bitcoin [Grinberg, 3]. Users for such transactions
individually have a wallet, which is an account that contains
the bitcoins in addition to the private key needed to perform
the required transactions [Nakamoto, 1; Hurlburt &
Bojanova, 13]. In spite of the existing debates and recent
discussions concerning eventual vulnerabilities, it is true that
the Bitcoin paradigm has been quickly emerging as a popular
digital payment system [Eyal & Sirer, 4; Androulaki et al., 6;
Aron, 15].
There are several organizations for using this network.
Herein it is discussed the two most important ones. The first
is that the user has installed on his local computer a database,
also denoted as Bitcoin data directory, which contains all
system transactions processed until the current date, besides
the files required to execute the protocol itself. The second
organization assumes that the user, through a browser,
accesses a set of remote web servers (i.e., in the cloud) which
contain the database and run the Bitcoin protocol.
ISSN: 2321-2403
The database along with the wallet information is
denoted as node. Therefore, a node consists of the
information of all transactions processed by all system users
up to the current date. In fact, there are multiple nodes when
one considers the actual implementation of the Bitcoin
network. These multiple nodes are replicas, that is, have
exactly the same information. They guarantee network
stability [Donet et al., 16].
Within this context, this paper proposes a simple analysis
of these two organizations, besides a baseline algorithm to
divide the Bitcoin network node taking into account the
number of computers the user has to access the Bitcoin
network. For the experiments, a series of transactions in each
of the organizations listed above are performed. Besides, a
theoretical estimate for this time is obtained considering the
deployment of the baseline algorithm herein proposed. The
resulting times are all then competitively compared and it
may be noticed, for example, that if the new algorithm is
deployed, then a reduction of at most 71.42 % may be
achieved, comparing to one of the two traditional
organizations.
The remainder of this paper is organized as follows.
Section II gives an overview of how a basic transaction may
be executed by a system user in the Bitcoin network. Section
III discusses related work. Section IV explains the new
© 2015 | Published by The Standard International Journals (The SIJ)
17
The SIJ Transactions on Computer Networks & Communication Engineering (CNCE), Vol. 3, No. 2, February 2015
baseline algorithm for dividing the Bitcoin network node.
Section V contains the experiments, results and
corresponding analysis. Finally, Section VI highlights the
major findings and presents possible directions for future
work.
II.
EXECUTION OF A BITCOIN
TRANSACTION
At first, several specific terms related to Bitcoin systems
[Nakamoto, 1; Buyya et al., 2; Grinberg, 3; Decker &
Wattenhofer, 5; Singh et al., 7; Gervais et al., 11; Garber, 12]
are succinctly reviewed in what follows. This is not an
exhaustive list but suffices to provide the basis for a complete
understanding of the whole text.
 Wallet: It is an account that contains the bitcoins in
addition to the user's private key.
 Private Key: It is a character string that only the
owner´s wallet knows. This accredits the owner to
spend the content of this wallet.
 Core Bitcoin Client: It is the official software of the
Bitcoin protocol. The user can both send and receive
bitcoins by means of this software.
 Bitcoin Client BlockChain: It is an online account that
allows the user to save, send, and receive bitcoins.
 Bitcoin Transaction: It is a transfer of bitcoins
between wallets. The user should wait a time
confirmation between each of them.
 Commission or fee: It may be a small or a large
amount of bitcoins to be debited at the time of each
transaction, giving priority to this transaction itself.
 Transaction verification: A verification means that the
transaction has been processed by the network; this
indicates that the transaction cannot be reversed.
 Node: It is the set of files containing information of all
transactions up to the current date, together with the
wallet information.
 Bitcoin database: It refers to files containing
information of all transactions up to the current date.
 Equipment: refers to desktops or personal computers.
 BTC: It is the unit of the Bitcoin currency.
 Cloud: It is the paradigm that can offer computing
services over the Internet, such as: storage, office
automation, email accounts, etc.
 Cryptocurrency: Similar to the dollar or any other
currency. It is a medium of exchange, with the
difference that this is a digital currency and therefore
decentralized, i.e., without a supervisory body like a
bank or whatever similar institution.
 Data Directory: Is the location where the data files
using the Software Bitcoin are saved.
 GNU Bash: Bash is the command-line shell used in
many Linux and Unix operating systems, as well as
several Mac OS X versions, and some Windows and
IBM products.
ISSN: 2321-2403
How a user executes a basic transaction in the Bitcoin
network is briefly explained in Algorithm 1, considering the
first organization mentioned in Section I. To this end, it is
considered the point of view of a user accessing the network
for a simple payment transaction. It is clarified that these
steps consider that the user already has or knows his: source
address, destination, wallet, and all other specific terms just
listed above. Likewise, Algorithm 2 does the same
considering the second organization, also mentioned in
Section I.
Algorithm 1: The first organization.
Steps:
1. The first step is access
https://bitcoin.org/en/download and download
the Bitcoin Core Software.
2. Install de Bitcoin Core software in the PC.
3. The user must run the Bitcoin Core software
and wait for synchronization.
4. The creation of wallet is done by the software.
5. The user must encrypt his wallet assigning a
private key
6. The user is now able to make their first
transactions.
Algorithm 2: The second organization.
Steps:
1. To access https://blockchain.info/wallet.
2. Inside of website, the user must follow the steps
of wallet creation.
3. Then the user must enter the address of his
wallet with his private key in the specified
fields.
4. The user is now able to make their first
transactions.
III.
RELATED WORK
The majority of the existing works in the literature explain
how the Bitcoin network itself operates and discusses the
advantages or disadvantages of using a decentralized
cryptocurrency [Hurlburt & Bojanova, 13; Donet et al., 16].
Additionally, there are also several works focusing on either
vulnerability of the cryptocurrency or the mining operation
[Eyal & Sirer, 4; O’Dwyer & Malone, 8; Gervais et al., 11].
This latter refers to the process of generating bitcoins. Still,
there are a few works studying whether Bitcoin is really a
decentralized currency or not [Gervais et al., 11]. And, lastly,
there are also a few works focused on the user’s privacy
when making transactions over such a digital payment system
[Androulaki et al., 6].
Within this context and to name two important papers,
the work of Nakamoto [1] explains how Bitcoin protocol
works, and how transactions are performed in the network.
And, in the work of Bohr & Bashir [10], there is a study on
© 2015 | Published by The Standard International Journals (The SIJ)
18
The SIJ Transactions on Computer Networks & Communication Engineering (CNCE), Vol. 3, No. 2, February 2015
the current use of Bitcoin. Finally, to end this section, it is
worth saying that, to the best of our knowledge, there are not
specific works focusing on the node division or how it affects
the operation of the Bitcoin network and so its end clients.
Thus, this is very likely to be the first time a study with the
focus herein adopted is carried out.
IV.
NEW BASELINE ALGORITHM
The new baseline for node division is presented in Algorithm
3. The general idea is that the user can divide the Bitcoin
database into n parts of a same size. Each of these n parts is
then distributed among his local computers: one in each
computer. All parts have the same public and private keys,
since the entire set of computers represents a same single
wallet. The difference between these parts is that each has a
different portion of the whole data base. For the description
that follows, we consider the point of view of a user who
accesses the network for executing a given transaction for
first time.
Algorithm 3: Node Division
Steps:
1. The user must follow the same steps as in Algorithm
1.
2. The user checks the size of the Bitcoin database in
the corresponding folder.
3. The user decides in how many parts the database
will be divided. Let n be the number of parts.
According to that, the user groups the n parts in n
computers. Each part will be included in one specific
folder, considering the order of folder creation. That
is, folder 1 will be in computer 1, folder 2 in
computer 2, and so on.
4. The user must modify the source code of Bitcoin
Core. To this end, the following steps must be
followed:
a. Download the source code of Bitcoin Core
(https://github.com/bitcoin/bitcoin)
b. Edit the source code using QT Project (http://qtproject.org).
i.
The parts to be modified are referring to:
 How do nodes share the data base
together?
 How do nodes share the wallet
information together?
5. After the modification of the Bitcoin, the user can
start distributing the parts in different computers.
6. The user can execute transactions.
As already mentioned, the proposed baseline algorithm
aims to enable the user to have optimized-time transaction
verifications due to the division of the Bitcoin node over his
local available computers. In spite of this being a chiefly
innovative technical aspect, it is worth saying that this
solution is also certain to produce an eventual potential
ISSN: 2321-2403
impact on the way a common citizen execute payment
transactions in his ordinary life.
Now, since this solution provides is focused on more
efficiency, it comes as a consequence that more and more
common citizens are to be more inclined to use Bitcoin than
any other kind of digital payment systems of less efficiency.
In other words, this solution may surely help to settle a new
behavior pattern to common citizens all over the world who
will be mostly attracted by the system efficiency, no matter it
refers to local or international commerce, since no tax or any
other economical barrier is to exist in the Bitcoin conception.
V.
PERFORMANCE ANALYSIS
5.1. Scenarios and Performance Metrics
Three scenarios are considered in the studies carried out
herein: Scenario 1, Scenario 2 and Scenario 3. In the first
scenario, the user makes use of Bitcoin Core and performs 24
faster-type transactions, which are characterized by a
commission of 0.0001 BTC. These transactions are divided
into three groups owning eight transactions each. A
transaction is valued at 0.00003547 BTC (first group),
0.00012077 BTC (second group), and 0.00025254 (third
group), respectively. See that Scenario 1 refers to the
organization where the node is entirely located on the user's
local computer.
In Scenario 2, likewise in Scenario 1, there are 24 fastertype transactions divided into three groups, considering the
same commission and transaction value. Nonetheless,
Scenario 2 makes use of BlockChain. See that Scenario 2
refers to the second organization, where the node is located in
the cloud, i.e., the node lies on remote servers. At last,
Scenario 3 refers to the organization provided by the baseline
algorithm proposed herein. The node of the Bitcoin network
is divided into n parts, where n is the number of local
computers the user owns. So, 24 faster-type transactions are
then executed in each of the n computers.
The performance metric that is used to compare
Scenarios 1, 2, and 3 is denoted as the Transaction
Verification Time (TVT). It stands for the time necessary for
a user to make a transaction on his local computer until this
transaction is verified by the network for the first time. It is
measured in minutes.
5.2. Results and Analysis
Figures 1 and 2 refer to Scenarios 1 and 2, respectively. Each
figure is related to one of the groups consisting of 8 fastertype transactions. In general, it may be observed that the TVT
is smaller in the first organization than in the second
organization. For example, in Group 3 (Figure 1), transaction
index 5 takes 5 min, considering Bitcoin Core, while this
same transaction takes 17 min considering BlockChain. This
may leads us to conclude that using Bitcoin Core results more
efficient than using BlockChain, since a greater number of
transactions may be executed within the same time.
© 2015 | Published by The Standard International Journals (The SIJ)
19
The SIJ Transactions on Computer Networks & Communication Engineering (CNCE), Vol. 3, No. 2, February 2015
TVT (min)
Group 1
Group 2
Group 3
40
35
30
25
20
15
10
5
0
1
2 3 4 5 6
Index of transaction
7
8
Figure 1: Bitcoin Core Results, First Organization
TVT (min)
Group 1
Group 2
Group 3
Table 2: Comparison between Organizations
First Organization
Third Organization
Average Group 1
Average Group 1
Average Group 2
Average Group 2
Average Group 3
Average Group 3
Total average 1: 4.583 minutes
Total average 2: 14.125 minutes
40
35
30
25
20
15
10
5
0
VI.
1
2 3 4 5 6
Index of transaction
7
8
Figure 2: BlockChain Results, Second Organization
Now, to compare Scenario 1 to that proposed in this
paper (Scenario 3), which considers the node of the Bitcoin
network is divided into n parts (where n is set to 5, since this
is the number of local computers the user owns indeed in this
experiment), the number of transactions and verifications are
assessed in addition to the metric TVT.
The resulting TVT for Scenario 3 is equal to that of
Scenario 1 because, in both scenarios, it is used a local node.
The number of total transactions is computed by the number
of transactions in each computer times the number of parts (in
which the node was divided). Table 1 indicates the results
obtained. As it can be seen, the number of transactions and
verifications increases n times, which corresponds to the
number of parts in which the node is divided. That means that
the third organization is more efficient. The more divisions
the node has, the more transactions and verifications are
observed. Thus, comparing the results obtained in both
Scenario 1 and Scenario 2, it is clear that the first
organization is more efficient than the second.
Table 1: Comparison between Organizations
First Organization
Third Organization
Number of transactions: 24
Number of transactions: 24
Number of parts: 1
Number of parts: 5
Number of verifications: 24
Number of verifications: 120
ISSN: 2321-2403
From the above experiments and analysis, it comes that,
in general, faster transaction verification may be achieved by
diving the database node among the user´s available local
computers. More precisely, compared to Scenario 1, although
it is true that there is no absolute optimization at the TVT
itself, there is indeed an increase in the number of
transactions that can be performed at a particular time period,
since the amount of transactions is related to the number of
parts in which the node is divided. This means that the
number of total transactions is in reality the sum of all
transaction verifications done in all computers at a particular
time period. Now, compared to Scenario 2, the optimization
then achieved is not only limited to the number of
transactions that can be performed at a particular time period.
One may see that the verification time of each transaction is
significantly reduced, achieving at most 71.42%, as shown in
Table 2.
CONCLUSIONS AND FUTURE WORK
This article proposed a very simple analysis to verify the
benefits of dividing a Bitcoin node according to the number
of computers the user has locally available. This division, if
cleverly done, may potentially yield faster transaction time
verification. Experiments and theoretic analysis were
performed on three Bitcoin organizations, where the two first
ones are well known in the literature, while the third results
from a baseline algorithm proposed in this work.
Among the major results, we may outline the following
ones: (1) it was found that the baseline algorithm is efficient
and of feasible implementation; (2) More divisions (parts) in
a node of the network results in a greater number of
verifications and so a better system performance; (3) The
user´s local available equipment limits the division of the
nodes, since the divisions themselves (parts) are installed in
them.
As future research, we may suggest the following
promising avenues. First, the real implementation of the
baseline algorithm to confirm the results obtained herein in
addition to a search of alternatives or methods that equal or
improve the performance of what is proposed in this paper,
considering the potential benefits to the end user as well to
the network itself. Second, the analysis of the deployment of
Bitcoin under an AS’level with the aim of achieving results
as for the resilience of the Bitcoin ecosystem, the
unambiguousness of the blockchain in use, and the
propagation and verification of transaction blocks [Feld et al.,
14]. Finally, an analysis focused on the user’s privacy when
making transactions over Bitcoin-like payment systems
[Androulaki et al., 6].
© 2015 | Published by The Standard International Journals (The SIJ)
20
The SIJ Transactions on Computer Networks & Communication Engineering (CNCE), Vol. 3, No. 2, February 2015
Still, it is worth mentioning that the BitcoinCore source
code is written in C++, which allows editing and compiling it
in QT Project. In order to execute the source code, it is
necessary to use GNU bash, this command interpreter will
execute the program allowing its proper use. The
implementation of the algorithm is then feasible as long as
the user has the knowledge needed to lift up each node part in
different computers.
On the other hand, to make the above node division, it is
necessary to have a certain number of available computers.
The minimum number of computers should be notably two,
and the maximum number depends directly on the user´s own
resources rather than on any technological features, since this
solution scales well.
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
S. Nakamoto (2008), “Bitcoin: A Peer-to-peer Electronic Cash
System”, URL: http://www.bitcoin.org/bitcoin.pdf.
R. Buyya, Y.S. Chee & S. Venugopal (2008), “Cloud
Computing and Emerging IT Platforms: Vision, Hype, and
Reality for Delivering Computing as the 5th Utility”, High
Performance Computing and Communications, Pp. 5–13.
R. Grinberg (2011), “Bitcoin: An Innovative Alternative
Digital Currency”, Hastings Science & Technology Law
Journal, Vol. 4, Pp. 160.
I. Eyal & E.G. Sirer (2011), “Majority is not Enough: Bitcoin
Mining is Vulnerable”, Financial Cryptography and Data
Security, Pp. 436–454.
C. Decker & R. Wattenhofer (2013), “Information Propagation
in the Bitcoin Network”, IEEE Thirteenth International
Conference on Peer-to-Peer Computing (P2P), Pp. 01–10.
E. Androulaki, G.O. Karame, M. Roeschil, T. Scherer & S.
Capkun (2013), “Evaluating User Privacy in Bitcoin”,
Financial Cryptography and Data Security. LNCS, Vol. 7859,
Pp. 34–51.
P. Singh, B.R. Chandavarkar, S. Arora & N. Agrawal (2013),
“Performance Comparison of Executing Fast Transactions in
Bitcoin Network using Verifiable Code Execution”, Second
International Conference on Advanced Computing, Networking
and Security (ADCONS), Pp. 193–198.
K.J. O’Dwyer & D. Malone (2013), “Bitcoin Mining and its
Energy Footprint”, 25th IET Irish Signals & Systems
Conference 2014 and 2014 China-Ireland International
Conference on Information and Communications Technologies,
Pp. 280–285.
ISSN: 2321-2403
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
I. Mier, C. Garman, M. Green & A.D. Rubin (2013),
“Zerocoin: Anonymous Distributed E-Cash from Bitcoin”,
Security and Privacy (SP), Vol. 1, No. 1, Pp. 397–411.
J. Bohr & M. Bashir (2014), “Who Uses Bitcoin? An
Exploration of the Bitcoin Community”, Privacy, Security and
Trust (PST), Vol. 1, No. 1, Pp. 94–101.
A. Gervais, G.O. Karame, V. Capkun & S. Capkun (2014), “Is
Bitcoin a Decentralized Currency?”, IEEE Security & Privacy,
Vol. 12, No. 3, Pp. 54–60.
L. Garber (2014), “News Briefs”, Computer, Vol. 47, No. 11,
Pp. 14–18.
G.F. Hurlburt & I. Bojanova (2014), “Bitcoin: Benefit or
Curse?”, IT Professional, Vol. 16, No. 3, Pp. 10–15.
S. Feld, M. Schonfeld & M. Werner (2014), “Analyzing the
Deployment of Bitcoin’s P2P Network under an AS-level
Perspective”, Procedia Computer Science, Vol. 32, Pp. 1121–
1126.
J. Aron (2014), “What’s Wrong with Bitcoin?”, New Scientist,
Vol. 221, No. 2955, Pp. 19–20.
J.A.D. Donet, C. Perez-Sola & J. Herrera-Joancomarti (2014),
“The Bitcoin P2P Network”, Financial Cryptography and Data
Security, Pp. 87–102.
Juan Pazmiño. He was born on June 30,
1990. Studied at the Military School Eloy
Alfaro and is currently studying Electronic
Engineering in Networks and Data
Communication at the University of the
Armed Forces – ESPE. Also, he studies at
CISCO Academy. His areas of research
interest include computer networks and
mobile applications development.
Carlo Kleber da S. Rodrigues received the
B.Sc. degree in Electrical Engineering from
the Federal University of Paraiba in 1993, the
M.Sc. degree in Systems and Computation
from the Military Institute of Engineering
(IME) in 2000, and the D.Sc. degree in
System Engineering and Computation from
the Federal University of Rio de Janeiro
(UFRJ) in 2006. Currently he is Military
Assessor of the Brazilian Army in Ecuador, Professor at the Armed
Forces University (ESPE) in Ecuador, and Professor at the
University Center (UniCEUB) in Brazil. His research interests
include the areas of computer networks, performance evaluation,
and multimedia streaming.
© 2015 | Published by The Standard International Journals (The SIJ)
21
Download