Content uploaded by Remigijus Paulavičius
Author content
All content in this area was uploaded by Remigijus Paulavičius on Sep 06, 2022
Content may be subject to copyright.
An Overview and Current Status of
Blockchain Simulators
Remigijus Paulaviˇ
cius
Institute of Data Science and
Digital Technologies
Vilnius University
Vilnius, Lithuania
remigijus.paulavicius@mif.vu.lt
Saulius Grigaitis
Institute of Data Science and
Digital Technologies
Vilnius University
Vilnius, Lithuania
saulius.grigaitis@mif.vu.lt
Ernestas Filatovas
Institute of Data Science and
Digital Technologies
Vilnius University
Vilnius, Lithuania
ernestas.filatovas@mif.vu.lt
Abstract—Since the introduction of Bitcoin, blockchain has
attracted tremendous interest from both academia and industry.
During the last decade, various large-scale blockchain sys-
tems were developed. However, the complexity of large-scale
distributed systems makes the performance evaluation process
challenging and costly. Here, blockchain simulators give the
possibility to repeat complex real-world processes at a low cost.
Simulators are easily extensible and can test distributed ledger
performance using different settings and parameter variations.
This work reviews and summarizes the current status of the
state-of-the-art blockchain simulators.
Index Terms—Blockchain, Bitcoin, simulators, review.
I. INTRODUCTION
Since its first introduction in cryptocurrency, Bitcoin [1],
blockchain has been recognized as a breakthrough technol-
ogy and attracted much attention from both academia and
industry [2], [3]. However, compared to traditional central-
ized solutions, the decentralized nature limits blockchain
performance [4], which becomes a significant constraint of
broader blockchain applications in production [5]. Moreover,
blockchain-based system blind development without initial
performance evaluation may have an immense negative impact
during the actual deployment stage [6]. Therefore, perfor-
mance evaluation is a crucial topic for blockchain and all
distributed ledger technologies (DLTs). The architecture of
blockchain systems is complex, and even its simplified abstrac-
tion consists of five layers [2], [7]: network layer, consensus
layer, data layer, execution layer, and application layer. The
complexity of such systems makes the performance evaluation
process challenging.
Here, the simulation of blockchain systems often is the only
alternative to evaluating the blockchain system’s performance
under different scenarios. Blockchain simulators attempt to
reproduce a real system’s performance and progress over time
by implementing and running a simulation model [8]. By
changing the simulated model variables and conditions, the
simulated system can be thoroughly investigated without the
need to implement an entire system [6]. Therefore, simulators
are valuable tools in the development of blockchain protocols
and systems.
978-0-7381-1420-0/21/$31.00 ©2021 European Union.
Unfortunately, the design and development of blockchain
simulators are complex. Thus, most blockchain simulators are
developed to reproduce only one or several aspects of the
system realistically (e.g., mining and miner behavior, attacks
on the network, and data dissimulation). The implementation
of other processes (e.g., fixing network delays, hashing power,
transaction propagation) is simplified, while other features
(e.g., Merkle trees, UTXO) may be skipped altogether. Con-
sequently, the selection of a suitable simulator may be a
challenging task. To address this, an overview and current
status of blockchain simulators have been performed during
this work.
The remainder of the paper is organized as follows. Sec-
tion II presents a more in-depth overview and comparison
of the identified blockchain simulators, while Section III
concludes this work.
II. OVE RVIEW OF IDENTIFIED BLOCKCHAIN SIMULATOR S
To identify the key publications on blockchain simulators,
we performed a literature search in scientific databases fol-
lowing PRISMA methodology [9]. Our performed analysis
covered leading publishers of computer science journals and
conferences, e.g., IEEE Xplore, WoS and Scopus databases.
To find relevant publications for our research, we used
the following search string: ((DLT OR Blockchain OR
Bitcoin OR Ethereum OR Hyperledger OR DAG)
AND (Simulator)). All searches were conducted in
November 2020. At the end of this process, we identified 26
blockchain simulators and their extensions.
In Table I, we summarize the 26 identified blockchain
simulators. It can be observed that the first blockchain sim-
ulators were presented in 2013. The majority of simulators
appeared in 2019 and 2020 (16 of 26). This shows that the
development/application of blockchain simulators has received
significant attention only recently, and the field requires much
more consideration from the research community. In the next
columns, we provide: supported blockchain platform or its
type, simulated layer(s), simulation model type, programming
language and framework (if any). The links to the source code
(if provided) are given in References.
TABLE I
OVERVIEW OF IDENTIFIED BLOCKCHAIN SIMULATORS AND THEIR EXTENSIONS
Simulator’s name, year and source Platform(s) Layer(s) Model type Language/Framework
“Bitcoin privacy simulator”a(2013) [10] Bitcoin data discrete-event C++
BTCsim (2013) [11] Bitcoin consensus, network discrete-event Python
Bitcoin protocol simulator (2014) [12] Bitcoin consensus discrete-event not specified
Simbit (2014) [13] Bitcoin consensus, network discrete-even Javascript
Shadow-Bitcoin (2015) [14] Bitcoin consensus, data, network discrete-even Python/Shadow
Bitcoin simulator (2016) [15] PoW blockchains consensus, network discrete-event C++/NS3
Bitcoin mining simulator (2017) [16] Bitcoin consensus not specified C++
VIBES (2017) [17] PoW blockchains consensus, data discrete-event Scala
eVIBES (2018) [18] Pow Ethereum consensus, data discrete-event Scala
CLoTH (2018) [19] Bitcoin network discrete-event Go
“Algorand simulator” (2019) [20] Algorand consensus not specified Java
Bitcoin network simulator (2019) [21] Bitcoin consensus discrete-event Python
Ext1-Bitcoin-simulatorb(2019) [22] PoW blockchains consensus, network discrete-event C++/NS3
BlockSim:Alharby (2019) [23] PoW blockchains consensus, data discrete-event Python
BlockSim:Faria (2019) [8] Bitcoin, Ethereum consensus, data, network discrete-event Python/SimPy
BlockSim:Hao (2019) [24] PoW blockchains network discrete-event Java/PeerSim
DAGsim (2019) [25] DAG consensus, network agent-based Python
“Mining strategy simulator” (2019) [26] Bitcoin consensus agent-based Python/Mesa
LUNES-Blockchain (2019) [27] Bitcoin consensus, network agent-based ART`
IS+GAIA
“Proof of Prestige Simulator” (2019) [28] Proof-of-Prestige consensus not described Python
SimBlock (2019) [29] PoW blockchains consensus, network discrete-event Java
Ext2-Bitcoin-simulator (2020) [30] Raft consensus, network discrete-event C++/NS3
I-Green simulator (2020) [31] PoW, PoS, PoGeneration application, consensus not specified Python
Local Bitcoin Network Simulator (2020) [32] Bitcoin network virtualization-based Python
Ext-BlockSim:Alharby (2020) [33] Bitcoin consensus, data, network discrete-event Python/SimPy
Ext-SimBlock (2020) [34] PoW blockchains consensus, network discrete-event Java
aThe simulators not named by their authors were given names in quotation marks.
bNames of the extended versions of simulators were given a prefix “Ext”.
Note that most of the existing simulators implement con-
sensus, data, and network layers as they are integral parts of
blockchain systems; however, some are usually very simpli-
fied. Thus, in the column “Layer(s),” we stress only those lay-
ers with more sophisticated models that could be investigated
under various parameters and scenarios. The next observation
is that most of the simulators implement blockchain systems
based on the PoW-type consensus algorithms (21 out of 26)
and mainly focus on simulating the Bitcoin network. More-
over, blockchain simulators typically follow a discrete-event
system simulation, i.e., simulation at a discrete set of points in
time (18 out of 22 simulations specifying their modeling type),
while only three simulators are agent-based. The most often
utilized programming language is Python — 11 simulators are
built using it. The architecture of blockchain simulators usually
follows the multi-layered paradigm and consists of such layers
as consensus, data, network, and models describing the behav-
ior of layers, components/resources, and interactions between
them. Our preliminary investigations showed that simulators,
covering fewer layers, have more sophisticated models and
simulate them more realistically. Clearly, an in-depth compar-
ative experimental analysis to identify blockchain simulators’
main features, advantages, and limitations is still required.
III. CONCLUSIONS
In this paper, we identified that the simulation of
blockchains is still in the early stages, and the existing simu-
lators are very limited. Moreover, the most developed simula-
tors are devoted to simulate various PoW-based blockchains,
therefore, there is a need for simulators based on other
types of consensus algorithms, such as PoS or various BFT
variations [35]. Unfortunately, most of the existing simulators
are not actively developed and improved further. Finally, an in-
depth comparative analysis to identify blockchain simulators’
main features, advantages, and limitations is required.
REFERENCES
[1] S. Nakamoto, “Bitcoin: A peer-to-peer electronic cash system,” 2008.
[Online]. Available: https://bitcoin.org/bitcoin.pdf
[2] M. Belotti, N. Bozic, G. Pujolle, and S. Secci, “A Vademecum on
Blockchain Technologies: When, Which, and How,” IEEE Communi-
cations Surveys & Tutorials, vol. 21, no. 4, pp. 3796–3838, 2019.
[3] R. Paulaviˇ
cius, S. Grigaitis, A. Igumenov, and E. Filatovas, “A Decade
of Blockchain: Review of the Current Status, Challenges, and Future
Directions,” Informatica, vol. 30, no. 4, pp. 729–748, 2019.
[4] Q. Zhou, H. Huang, Z. Zheng, and J. Bian, “Solutions to Scalability of
Blockchain: A Survey,” IEEE Access, vol. 8, pp. 16 440–16 455, 2020.
[5] C. Fan, S. Ghaemi, H. Khazaei, and P. Musilek, “Performance Evaluation
of Blockchain Systems: A Systematic Survey,” IEEE Access, vol. 8, pp.
126 927–126 950, 2020.
[6] S. Smetanin, A. Ometov, M. Komarov, P. Masek, and Y. Koucheryavy,
“Blockchain Evaluation Approaches: State-of-the-Art and Future Per-
spective,” Sensors (Basel, Switzerland), vol. 20, no. 12, pp. 1–20, 2020.
[7] Q. Zhu, S. W. Loke, R. Trujillo-Rasua, F. Jiang, and Y. Xiang, “Appli-
cations of Distributed Ledger Technologies to the Internet of Things,”
ACM Computing Surveys, vol. 52, no. 6, pp. 1–34, jan 2020.
[8] C. Faria and M. Correia, “BlockSim: Blockchain simulator,” in
2019 IEEE International Conference on Blockchain (Blockchain),
2019, pp. 439–446, Last commit: 19/05/2020. [Online]. Available:
https://github.com/carlosfaria94/blocksim
[9] D. Moher, A. Liberati, J. Tetzlaff, D. G. Altman, P. Group et al.,
“Preferred reporting items for systematic reviews and meta-analyses:
the prisma statement,” PLoS med, vol. 6, no. 7, p. e1000097, 2009.
[10] E. Androulaki, G. O. Karame, M. Roeschlin, T. Scherer, and
S. Capkun, “Evaluating User Privacy in Bitcoin,” in Lecture
Notes in Computer Science (including subseries Lecture Notes
in Artificial Intelligence and Lecture Notes in Bioinformatics),
2013, vol. 7859 LNCS, pp. 34–51. [Online]. Available: http:
//link.springer.com/10.1007/978-3-642- 39884-1 4
[11] R. Brune, “Bitcoin network simulator,” 2013, Last commit: 17/12/2017.
[Online]. Available: https://github.com/rbrune/btcsim/
[12] I. Eyal and E. G. Sirer, “Majority Is Not Enough: Bitcoin Mining Is
Vulnerable,” in Financial Cryptography and Data Security, N. Christin
and R. Safavi-Naini, Eds., 2014, pp. 436–454.
[13] S. Bowe, “Javascript p2p network simulator,” 2013, Last commit:
27/05/2016. [Online]. Available: https://github.com/rbrune/btcsim/
[14] A. Miller and R. Jansen, “Shadow-bitcoin: Scalable simulation via direct
execution of multi-threaded applications,” in 8th Workshop on Cyber
Security Experimentation and Test (CSET 15), Last commit: 11/04/2018.
[Online]. Available: https://github.com/shadow/shadow-plugin-bitcoin
[15] A. Gervais, G. O. Karame, K. W¨
ust, V. Glykantzis, H. Ritzdorf,
and S. Capkun, “On the Security and Performance of Proof of
Work Blockchains,” in Proceedings of the 2016 ACM SIGSAC
Conference on Computer and Communications Security, 2016,
pp. 3–16, Last commit: 13/10/2016. [Online]. Available: https:
//github.com/arthurgervais/Bitcoin-Simulator
[16] M. Carlsten, H. Kalodner, S. M. Weinberg, and A. Narayanan, “On
the instability of bitcoin without the block reward,” in Proceedings of
the 2016 ACM SIGSAC Conference on Computer and Communications
Security, 2016, pp. 154–167, Last commit: 07/07/2017. [Online].
Available: https://github.com/citp/mining simulator
[17] L. Stoykov, K. Zhang, and H.-A. Jacobsen, “VIBES: Fast Blockchain
Simulations for Large-scale Peer-to-Peer Networks,” in Proceedings
of the 18th ACM/IFIP/USENIX Middleware Conference: Posters and
Demos, 2017, pp. 19–20, Last commit: 25/04/2020. [Online]. Available:
https://github.com/i13-msrg/vibes
[18] A. Deshpande, P. Nasirifard, and H.-A. Jacobsen, “eVIBES:
Configurable and Interactive Ethereum Blockchain Simulation
Framework,” in Proceedings of the 19th International Middleware
Conference on - Middleware ’18, 2018, pp. 11–12, Last commit:
12/12/2018. [Online]. Available: https://github.com/i13-msrg/evibes
[19] M. Conoscenti, A. Vetr`
o, J. C. De Martin, and F. Spini, “The cloth
simulator for htlc payment networks with introductory lightning network
performance results,” Information, vol. 9, no. 9, p. 223, 2018.
[20] M. Conti, A. Gangwal, and M. Todero, “Blockchain trilemma solver
algorand has dilemma over undecidable messages,” in Proceedings of the
14th International Conference on Availability, Reliability and Security,
2019, pp. 1–8.
[21] H. Azimy and A. Ghorbani, “Competitive selfish mining,” in 2019 17th
International Conference on Privacy, Security and Trust (PST). IEEE,
2019, pp. 1–8.
[22] A. R. Sai, J. Buckley, and A. Le Gear, “Assessing the security
implication of bitcoin exchange rates,” Computers & Security, vol. 86,
pp. 206–222, 2019, Last commit: 26/04/2019. [Online]. Available:
https://github.com/ashishrsai/BTC
[23] M. Alharby and A. van Moorsel, “Blocksim: a simulation framework
for blockchain systems,” ACM SIGMETRICS Performance Evaluation
Review, vol. 46, no. 3, pp. 135–138, 2019, Last commit: 05/12/2020.
[Online]. Available: https://github.com/maher243/BlockSim
[24] W. Hao, J. Zeng, X. Dai, J. Xiao, Q. Hua, H. Chen, K.-C. Li, and
H. Jin, “Blockp2p: Enabling fast blockchain broadcast with scalable
peer-to-peer network topology,” in International Conference on Green,
Pervasive, and Cloud Computing. Springer, 2019, pp. 223–237.
[25] M. Zander, T. Waite, and D. Harz, “Dagsim: Simulation of dag-
based distributed ledger protocols,” ACM SIGMETRICS Performance
Evaluation Review, vol. 46, no. 3, pp. 118–121, 2019, Last commit:
25/03/2020. [Online]. Available: https://github.com/IC3RE/DAGsim
[26] F. Bruschi, V. Rana, L. Gentile, and D. Sciuto, “Mine with it or sell
it: the superhashing power dilemma,” ACM SIGMETRICS Performance
Evaluation Review, vol. 46, no. 3, pp. 127–130, 2019, Last commit:
05/10/2018. [Online]. Available: https://github.com/lorenzogentile404/
incentive-network-simulator
[27] E. Rosa, G. D’Angelo, and S. Ferretti, “Agent-Based Simulation of
Blockchains,” in Methods and Applications for Modeling and Simulation
of Complex Systems, G. Tan, A. Lehmann, Y. M. Teo, and W. Cai, Eds.,
vol. 1094. Springer Singapore, 2019, pp. 115–126.
[28] M. Kr´
ol, A. Sonnino, M. Al-Bassam, A. Tasiopoulos, and I. Psaras,
“Proof-of-prestige: A useful work reward system for unverifiable
tasks,” in 2019 IEEE International Conference on Blockchain and
Cryptocurrency (ICBC), 2019, pp. 293–301, Last commit: 15/03/2019.
[Online]. Available: https://gitlab.com/mharnen/pop
[29] Y. Aoki, K. Otsuki, T. Kaneko, R. Banno, and K. Shudo, “SimBlock:
A Blockchain Network Simulator,” in IEEE INFOCOM 2019 - IEEE
Conference on Computer Communications Workshops (INFOCOM
WKSHPS), 2019, pp. 325–329, Last commit: 22/08/2020. [Online].
Available: https://github.com/dsg-titech/simblock
[30] P. Foytik, S. Shetty, S. P. Gochhayat, E. Herath, D. Tosh, and L. Njilla,
“A blockchain simulator for evaluating consensus algorithms in di-
verse networking environments,” in 2020 Spring Simulation Conference
(SpringSim). IEEE, 2020, pp. 1–12.
[31] F. Zhao, X. Guo, and W. K. V. Chan, “Individual green certificates on
blockchain: A simulation approach,” Sustainability, vol. 12, no. 9, p.
3942, 2020.
[32] L. Alsahan, N. Lasla, and M. Abdallah, “Local bitcoin
network simulator for performance evaluation using lightweight
virtualization,” in 2020 IEEE International Conference on
Informatics, IoT, and Enabling Technologies (ICIoT), 2020,
pp. 355–360, Last commit: 11/02/2020. [Online]. Available:
https://github.com/noureddinel/core-bitcoin-net- simulator
[33] S. M. Fattahi, A. Makanju, and A. M. Fard, “Simba: An efficient
simulator for blockchain applications,” in 2020 50th Annual IEEE-IFIP
International Conference on Dependable Systems and Networks-
Supplemental Volume (DSN-S), 2020, pp. 51–52, Last commit:
20/05/2020. [Online]. Available: https://github.com/nyit-vancouver/
SIMBA
[34] Z. H. Chin, T. T. V. Yap, and I. K. Tan, “Simulating difficulty adjustment
in blockchain with simblock,” in Proceedings of the 2nd ACM Inter-
national Symposium on Blockchain and Secure Critical Infrastructure,
2020, pp. 192–197, Last commit: 06/07/2020. [Online]. Available:
https://github.com/Z-Hau/SimBlock-with- Difficulty-Adjustment
[35] Y. Xiao, N. Zhang, W. Lou, and Y. T. Hou, “A Survey of Distributed
Consensus Protocols for Blockchain Networks,” IEEE Communications
Surveys & Tutorials, vol. 22, no. 2, pp. 1432–1465, 2020. [Online].
Available: https://ieeexplore.ieee.org/document/8972381/