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