Professional Documents
Culture Documents
I.
3)
4)
I NTRODUCTION
II.
2)
Bitcoin is incrementally developed and evolved. The frequent changes that the system undergoes are needed to maintain and enhance its protocol, add new features or improve
existing ones, and to meet the evolving requirements in such
a vibrant cryptocurrency ecosystem where exchange markets,
mining pools, and merchants accepting bitcoins and other
alternative coins are growing exponentially.
1)
1 We
437
436
Fig. 1.
A. Proof-of-Work
Proof-of-work uses Hashcash-double SHA-2563 to generate a unique hash value for each block in the blockchain. The
connectivity of the blockchain is achieved by linking the hash
of a new block to the hash of its parent in the chain all the
way up to the hash of the genesis block.
C. Bloom Filter
Although the difculty adjustment regulates the number
of newly created blocks, the growing size of the blockchain
is a major concern for users with limited memory space
like Bitcoin mobile users. For this reason, Bloom lter was
implemented.
Bloom lter is a practical implementation of Simple Payment Verication (SPV) clients. SPV client releases users from
keeping a local copy of the blockchain [12], [13]. Bloom lter
was introduced as a protocol extension in October 2012 in Bitcoin Improvement Proposal number 37 (BIP: 0037) to enhance
memory usage and to speed up blockchain synchronization
[14]. The main motivation behind implementing this feature
4 The
437
438
TABLE I.
Feature
Scalable difculty
Fair distribution of wealth
Easily veriable results
Sensitivity to tempering block data
Description
The ability to adjust proof-of-work difculty must not be xed. In
other words, if the block generation rate is high the difculty should
increase and it should decrease otherwise.
All miners are equally likely to get the mining rewards. In Bitcoin,
the SHA-256 hashcash function along with the difculty adjustment
algorithm guarantee this.
The ability to verify proof-of-work values by network nodes promptly
and without delaying or relying on a central authority. SHA-256 by
its nature is a one-way, fast and easy to verify function.
This is essential to strengthen blockchains connectivity and to maintain the networks security by preventing malicious attackers from
modifying transactions within blocks.
III.
A. Transactions
Transactions serve not only as a mechanism to transfer
money from one entity to another but also as a payment
verication system. Previous transactions outputs are used
as inputs to a new transaction, the output cannot be spent
partially and that is why Bitcoin transactions have two parts:
the payment and the change. The change is sent back to the
payer.
There are various types of transactions, e.g., coinbase
transaction is special type of transaction with no inputs. One
coinbase transaction is created per block with a single or
multiple output addresses. The output addresses specify the
recipients of the mining reward plus the collected transaction
fees (if any). Coinbase transaction outputs can only be spent
after a certain number of block conrmations, i.e., the number
of blocks appended to the chain after the block containing the
coinbase transaction. This number is dened as the coinbase
maturity, and currently its value equals to 100 block conrmations. On the other hand, Bitcoin dust denes a transaction with
output less than a certain threshold. Dust transaction requires
a fee [16], [17], [18].
%ORFNFKDLQ
:D OOHW
7UDQVDFWLRQ
*H W+DVK OR QJ
&K HFN7 UDQVD FWLRQ ER ROHD Q
,V&RLQ% DVH ERR OHDQ
&KHFNSRLQW
*H W7RWD O%ORFNV(VWLPDW HL QW
*H W/DVW &KHFN3RLQ W% ORFN
&K HFN% ORFNYRL G
0H PRU\3RRO
%ORFN
Fig. 2.
$FFRXQW
3X EOLF. H\. H\
.H \6WRU H
+D YH.H \E RROH DQ
*H W.H\VYRLG
*H W+DVK OR QJ
$FFHSW% ORFNER ROHD Q
*H W%ORFN7LP H LQW
'LVFRQQ HFW%O RFNERR OHDQ
D. Blockchain
Blockchain serves the following functionalities [24], [25]:
encapsulates the values of proof-of-work and difculty, as highlighted in the previous section, that are
responsible for maintaining networks security;
439
440
2)
3)
4)
5)
E. Alerting System
V.
1)
2)
B. Litecoin
R ELATED W ORK
440
441
TABLE II.
File
blocks/blk*.dat
blocks/index/*.sst
chainstate/*.sst
blocks/rev*.dat
peers.dat
wallet.dat
6 WDUW %LWFR LQ
$SSOLFDWLRQDQG
SD UDPH WHUV
LQLWLDOL]DWLRQ
AND
DATABASE
Description
The block chain in network format, blk*.dat les are Berkeley
Database les and these les store the blockchain itself.
A block LevelDB database index that improves/speed up block information retrieval at the cost of more storage space usage. Indexes
provide rapid lookups and efcient access to a database table without
searching the whole table on every single access.
A LevelDB database stores data about unspent transactions, and can
be generated from the block data using re-index command line option.
Needed for new incoming blocks and transactions validation, without
this database validation should be done through a full blockchain scan.
Used in case of block chain reorganization for reversing/rolling back
the chainstate.
A database of peers IP addresses and their connection time.
Used to keep records of users accounts, addresses and their associated
public and private keypairs, and the bitcoins that the owner of the
wallet has spent or received.
,V% LWFRL QSRUW
FXUUHQWO\LQX VH"
1R
1HWZRUNLQLWLOL]DWLRQ
<HV
( QG6 WDUWX SWKUHDG
DUH FUHD WHG *8,
ZLQ GRZ LVRS HQHG
,VUHVFDQ RSWL RQ
HQ DEOHG "
/RDGSH HUV, 3DGGUHVV HV
Fig. 3.
/RDGEORFNFKDLQDQG
Z D OOHWIURPGDWDEDVH
<HV
1R
Bitcoin Initialization
C. Primecoin
2)
3)
4)
R EFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
C ONCLUSION
[9]
Bitcoin as a nancial system is still unstable and unpredictable and its protocol and architecture still need to be
investigated and improved. The rising number of alternative
currencies is an evidence for a need to tailor various quality
attributes and particular functional goals of cryptocurrency systems. The value of Bitcoin comes from the systems capability
to function as a peer-to-peer medium of exchange supported
by powerful computing systems, distributed networks and
enhanced cryptography mechanisms.
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
In this paper, we performed an up-to-date Bitcoin protocol architectural analysis and presented the systems major
architectural components. This was done to facilitate the
evaluating and understanding of Bitcoin system design and
evolution for the sake of the further development of the
general cryptocurrency reference architecture. This will lead
towards alternative design approaches that improve and rene
the current architecture and alleviate potential security risks
when integrating further components or extending the existing
system.
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
442
443
[30]
[31]
[32]
[33]
[34]
[35]
[36]
[37]
[38]
[39]
[40]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
443
444