Performance Analysis and Design of An IoT-Friendly DAG-based Distributed Ledger System
Performance Analysis and Design of An IoT-Friendly DAG-based Distributed Ledger System
by
Caixiang Fan
Master of Science
in
Software Engineering and Intelligent Systems
University of Alberta
⃝
c Caixiang Fan, 2019
Abstract
iii
Preface
The research of this thesis has been conducted in the Dependable Distributed
System Lab (DDSL) led by Dr. Hamzeh Khazaei at the University of Alberta.
This thesis is extended from two publications. Chapter 4 and Section 2.1
are mainly formed by the conference paper “Towards A Scalable DAG-based
Distributed Ledger for Smart Communities”, accepted in the 5th IEEE World
Forum on Internet of Things, 2019. Chapter 3, Chapter 5 and Section 2.2
are mainly from the paper “Performance Analysis of DAG-based Distributed
Ledgers: A Hybrid Modeling of IOTA”, submitted to the IEEE Transactions
on Services Computing, Special Issue on Blockchain-Based Services Comput-
ing.
In this thesis, my original work includes the system design and data analy-
sis in Chapter 4 and Chapter 5, protocol theoretical analysis in Chapter 3 and
concluding analysis, as well as the literature review in Chapter 2. Moreover,
I am responsible for all the experiments such as experiment design and envi-
ronment setting up, data collection, processing and visualization, and model
validation. The technical parts including smart community’s system archi-
tecture design, scalability analysis and performance analytical modeling are
conducted by myself under the supervision of Dr. Hamzeh Khazaei and Dr.
Petr Musilek, from the Electrical and Computer Engineering Department, and
Dr. Yuxiang Chen from the Civil and Environmental Engineering Department
of the University of Alberta.
iv
For performance analysis, most system simulations are conducted by Sara
Ghaemi, a master student in DDSL lab. We extended DAGsim [56] simulation
engine to support end-to-end performance analysis for DAG-based distributed
ledger systems.
v
Acknowledgements
The support provided by the Future Energy Systems under the Canada First
Research Excellence Fund (CFREF) at the University of Alberta is gratefully
acknowledged. We would also like to thank SAVI cloud and Cybera, Alberta’s
not-for-profit technology accelerator, that support this research through their
cloud services.
vi
Contents
1 Introduction 1
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Methodologies . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Thesis Organization . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Related Work 10
2.1 DLT Applications in IoT . . . . . . . . . . . . . . . . . . . . . 10
2.2 Performance Evaluation on DL Systems . . . . . . . . . . . . . 12
2.2.1 Simulation Models . . . . . . . . . . . . . . . . . . . . 12
2.2.2 Analytical Models . . . . . . . . . . . . . . . . . . . . . 16
2.3 DAG-based DLTs . . . . . . . . . . . . . . . . . . . . . . . . . 18
vii
4 DAG-based DL Application in Smart Communities 34
4.1 DAG-based Smart Homes Design . . . . . . . . . . . . . . . . 35
4.1.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.2 Consensus Mechanism . . . . . . . . . . . . . . . . . . 37
4.1.3 Coordinators . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.4 Permission Management . . . . . . . . . . . . . . . . . 39
4.2 Evaluation and Analysis . . . . . . . . . . . . . . . . . . . . . 39
4.2.1 Experiments and Results . . . . . . . . . . . . . . . . . 39
4.2.2 Analysis and Discussion . . . . . . . . . . . . . . . . . 42
4.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5 Performance Modeling 48
5.1 Performance Metrics . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.1 Throughput . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.2 Reattachment Waiting Time . . . . . . . . . . . . . . . 49
5.2 Formalizing the Problem . . . . . . . . . . . . . . . . . . . . . 50
5.3 Empirical Simulation Modeling . . . . . . . . . . . . . . . . . 53
5.3.1 Simulation Model . . . . . . . . . . . . . . . . . . . . . 53
5.3.2 Simulation Model Validation . . . . . . . . . . . . . . . 57
5.4 Analytical Layered Model . . . . . . . . . . . . . . . . . . . . 60
5.4.1 Layered Model . . . . . . . . . . . . . . . . . . . . . . 60
5.4.2 Validation of Analytical Layered Model . . . . . . . . . 65
5.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6 Discussion 76
6.1 System Security . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.2 Simulator Efficiency . . . . . . . . . . . . . . . . . . . . . . . . 77
viii
References 81
ix
List of Tables
x
List of Figures
xi
5.5 CTPS in Different α Values . . . . . . . . . . . . . . . . . . . 58
5.6 CTPS in Different Distancess . . . . . . . . . . . . . . . . . . 59
5.7 Experimental and Simulation Comparison, λ=1 . . . . . . . . 60
5.8 Experimental and Simulation Comparison, λ=2 . . . . . . . . 61
5.9 Experimental and Simulation Comparison, λ=3 . . . . . . . . 62
5.10 Experimental and Simulation Comparison, λ=4 . . . . . . . . 63
5.11 Experimental and Simulation Comparison, λ=5 . . . . . . . . 64
5.12 Experimental and Simulation Comparison, λ=6 . . . . . . . . 65
5.13 Experimental and Simulation Comparison, λ=7 . . . . . . . . 66
5.14 Experimental and Simulation Comparison, λ=8 . . . . . . . . 67
5.15 Experimental and Simulation Comparison, λ=9 . . . . . . . . 67
5.16 Experimental and Simulation Comparison, λ=10 . . . . . . . . 68
5.17 Experimental and Simulation CTPS Comparison . . . . . . . . 68
5.18 Layered Model for Transaction Confirmations . . . . . . . . . 69
5.19 Layered Confirmed Transactions Bell-shape for λ=1 . . . . . . 69
5.20 Layered Confirmed Transactions Bell-shape for λ=2 . . . . . . 70
5.21 Layered Confirmed Transactions Bell-shape for λ=3 . . . . . . 70
5.22 Layered Confirmed Transactions Bell-shape for λ=4 . . . . . . 71
5.23 Layered Confirmed Transactions Bell-shape for λ=5 . . . . . . 71
5.24 Layered Confirmed Transactions Bell-shape for λ=6 . . . . . . 72
5.25 Layered Confirmed Transactions Bell-shape for λ=7 . . . . . . 72
5.26 Layered Confirmed Transactions Bell-shape for λ=8 . . . . . . 73
5.27 Layered Confirmed Transactions Bell-shape for λ=9 . . . . . . 73
5.28 Layered Confirmed Transactions Bell-shape for λ=10 . . . . . 74
5.29 Simulation Data and Fitted Models for λ=10 . . . . . . . . . . 75
xii
List of Symbols
xiii
Glossary of Terms
Consensus The mechanisms or protocols that make sure all network par-
ticipants (nodes) are synchronized with each other and agree on which
transactions are legitimate, confirmed and can be added to the dis-
tributed ledger. This is the most important concept in distributed
ledger world.
MCMC Markov Chain Monto Carol, is the technique IOTA uses to cal-
culate the probability for randomly walking in the DAG to select two
tips. In this algorithm, each walk step does not depend on the previous
one, but just follows a pre-set rule.
RWT Reattachment waiting time, the time spent for users between two
attachments in IOTA transactions.
xv
sn Refers to all seen confirmed transactions by a full node in the context
of ZeroMQ listening socket
xvi
Chapter 1
Introduction
1.1 Background
1
usage contexts, various types of data including transaction record data (e.g.
Bitcoin), contract and even personal healthcare information can be stored in
a BC system. This emerging technology has drawn increased academic and
industrial attention due to its attractive features including immutability, scal-
ability and decentralization. According to a recent survey [5], there are about
42 industries (e.g. law enforcement, ride hailing and stock trading) that could
be transformed by BC in the future. And this number keeps increasing, es-
pecially at the early stage of BC application innovation. Clearly, for many
researchers and corporate CTOs, BC technology is potentially an effective so-
lution to overcome the challenges in IoT [12].
Although BC has the potential to tackle the IoT problems such as secu-
rity and privacy [12], its applicability to build an IoT architecture remains
difficult. Firstly, the well-known limitations, i.e., scalability and performance,
of standard BC systems make system designers hesitate. In addition, the
application of BC in non-monetary IoT systems is not as straightforward as
in electronic currency system such as Bitcoin [35]. There are many different
types of DTLs, but no standards that would help identify the best one for
IoT so far. For example, as for the participation permission, there are public,
permissioned public/private and consortium networks; for transaction model,
there are tokenized UTXO and non-tokenized account-based transactions [54].
Here, from the perspective of consensus, we list 5 types of main consensus
mechanisms [16]:
2
• PBFT (Practical Byzantine Fault Tolerance), and
1.2 Motivation
1.3 Objectives
From an IoT system designer perspective, it is vital to know about the un-
derlying system capacity in processing generated transactions in the network.
Also, from the users/clients point of view, it is critical to know about the
time that they need to wait before reattaching transactions, if they have not
been confirmed yet. If the waiting time is too short, the premature redundant
transactions cause network congestion; if the waiting time is too long, the
user experience declines as does the system throughput. Either way leads to
decreased system efficiency. In this thesis, we aim to:
4
2. Explore the scalability of the proposed system. Through intensive trans-
action experiments, we aim to find more insights on the factors influenc-
ing scalability of IOTA.
More specifically, we strive to answer two vital questions about the perfor-
mance of the system in a private IOTA network:
1. From the system design perspective, which factors influence the through-
put of an IOTA system? And how, quantitatively, do they impact the
throughput?
2. From the user perspective, what would be the optimal waiting time to
wait for confirmation before reattaching the same original transaction?
1.4 Methodologies
1.5 Contributions
6
per Second (CTPS) and 895 TPS within a small test network con-
sisting of 250 nodes [55].
7
Every network participant only has access to limited computational
resources. And anyone who wants to launch a transaction on the
tangle needs to actively participate in the consensus. This makes
our solution decentralized.
8
tion rate and confirmation distributions, in which we build a layered
model by decomposing the simulations into DAG layers to look for
confirmation distributions in graph layers. Thanks to this model,
the reattachment waiting time of users is relatively accurately esti-
mated.
9
Chapter 2
Related Work
In this part, we will review the related work from three perspectives. First,
we introduce the research work on DL applications including smart homes
communication network, IoT payment system and distributed IoT access con-
trol system. These works discuss a wide field of IoT-DL combination appli-
cations such as system designs, new consensus proposals and new protocol
development. Second, we focus on the performance evaluation of proposed DL
systems, both public and private, general and specific. Specifically, surveys
on system simulation model and analytical model are conducted, respectively.
Third, we review the existing DAG-based DL projects and current research
work on this topic.
A systematic literature review on the BC for the IoT was conducted in [10].
The survey explored whether the BC can be employed to foster a decentral-
ized and private IoT by investigating factors that affect integrity, anonymity
and adaptability of this technology. Similar to this survey, another work [7]
took a deep look into how IoT and BC (especially smart contract) can be
used together. The authors concluded that the combination of BC and IoT is
powerful and can lead to significant changes across several industries, creating
10
opportunities for new business models and novel, decentralized applications [7].
Motivated by the positive conclusion, Novo proposed an IoT architecture for
scalable access management in [38]. The decentralized access control system
stored access control information using BC, which was developed to run as
a single smart contract that defines the policy rules of the management sys-
tem. However, unlike our solution, the previously mentioned systems had the
limitations of transaction fees and processing speed from the inherited BC
technologies [38].
Measuring Benchmarks
Prototypes
Performance
Evaluation
Simulation
Models
Modeling
Analytical
Models
13
Compared to BC systems, DAG-based DL systems are usually more com-
plicated in terms of data structures and consensus achieving, and so more
difficult to understand. Therefore, many modeling studies on DAG-based DL
(especially IOTA) have been performed from different performance perspec-
tives, providing good resources for learning about and designing DAG systems.
For example, to help understand the Tangle, two IOTA Foundation white pa-
pers [3] and [25] built a discrete model and a continuous time model for IOTA,
respectively. The former gave a first glance of IOTA by introducing a discrete
model and discussed the relationship between cumulative weights of transac-
tions and tip numbers over discrete time steps. They found that the cumulative
weight contains two phases of growth, namely the exponential and the linear.
The simulation results also revealed that the numbers of tips L(t) as a func-
tion of time remained stable under random tip selection strategy. In contrast,
for Markov Chain Monte Carlo (MCMC, see Section 3.5 for details) guided
tip selection strategy, it was stable only for small α (0.001) in examined time
intervals.
The later paper [25] provided a continuous time simulation model to val-
k
idate the analytical prediction about the number of tips L(t) = k−1 λh, which
was initially proposed by Popov [40]. The authors also explored the cumula-
tive transaction weights and found that there was a non-negligible probability
of transactions being left behind for larger values of α. For simulator design,
they generalized the tip selection number to be k rather than 2 and chose
3k + 4 particles to ensure k distinct tips selected from random walks. Each
walk starting position was chosen randomly (with uniform distribution) from
transactions issued between 100λ and 200λ transactions before. According
to the simulation results, they empirically concluded that any starting posi-
14
tion placed further than 10λ to 20λ provided the same growth of the number
of tips, and it would not influence the tips number. These empirical results
could provide directions for further study to improve the simulation efficiency.
However, this work did not directly examine or analyze any specific system
performance metrics.
In order to illustrate and visualize the Tangle, Gal [17] developed an IOTA
visualization simulator. Through this simulator, one could intuitively observe
different tangles generated under various tip selection algorithms such as uni-
formed random, weighted and unweighted random walk. In the weighted ran-
dom walk, the simulator could show how the model parameters such as arrival
rate λ and the built-in randomness factor α change the tangle′shape and the
transaction confirmation ratio. However, the total transaction number in this
simulator was limited to 500 and performance metrics were not quantified.
To break out this limitation, Lathif et al. [26] proposed a configurable and
interactive DAG-based DLT simulation framework named CIDDS [26] to en-
able large-scale simulations with thousands-nodes level. Moreover, Bottone et
al. [4] presented and developed an extendable multi-agent simulator, in which
the authors employed NetLogo [37] to provide a 3D visualization of the Tangle.
Similar to the previously mentioned BlockSim [2], Zander et al. [56] pro-
posed and developed a simulator named DAGsim, aiming to simulate the
DAG-based DL systems. Different from the BlockSim, DAGsim turned to
a new type of data structure and focused on simulation of the IOTA [40] pro-
tocol. In their work, the authors presented and implemented an asynchronous,
continuous-time, and multi-agent simulator for DAG-based cryptocurrencies.
By modeling both honest and semi-honest actors [56], the simulations showed
15
that the agents with lower latency and a higher connection degree had a higher
probability of having their transactions accepted in the network. This open-
sourced simulator was an efficient tool for simulating different parameters and
for understanding the IOTA consensus. However, it faced the same difficulties
as other DAG-based DL systems: 1) the starting point for each tip selec-
tion random walk, and 2) the cumulative weights update for each transac-
tion. It was very time-consuming when walking from genesis and updating
weights transaction by transaction, with a run-time complexity of O(n3 ) in
the implementation. Therefore, it was very inefficient and not suitable for
large-scale simulations, for instance, more than 10,000 transactions. Also, this
research work did not go further into directly evaluating performance met-
rics rather than exploring the transaction attachment probabilities from each
node. Our work borrows this simulator and builds into it the Coordinator
confirmation consensus to develop a performance simulation model. Further
more, we leverage the extended simulator to simulate IOTA for conducting
performance study by setting different configurations.
Sukhwani et al. [49] modeled the Practical Byzantine Fault Tolerance (PBFT)
consensus process using Stochastic Reward Nets (SRN). Through this model,
they analytically calculated the mean consensus achieving time for a network of
100 peers. A blockchain network using IBM Bluemix service with production-
grade IoT application was created, from which the collected data was used to
16
parameterize and validate the models. Moreover, a sensitivity analysis over
a variety of system parameter was conducted to examine the performance of
larger networks. With extended empirical analyses on two releases of Hyper-
ledger Fabric, H. Sukhwani concluded in [48], that the presented Stochastic
models could be used to develop Fabric Network management infrastructure.
Motivated by this work, Saulo [44] built a simple M/G/1 queuing model to
study the blockchain delays in the Bitcoin network. Transaction delay was one
of the most important performance metrics, especially for user experience. The
proposed model related the delay of transactions with the time between block
confirmations and could be easily parameterized using real measurements. By
analyzing the delay from the Little′ law and standard M/G/1 queuing model
[34], they found a simple relationship between E(B)-mean time between block
confirmations, E(M)-mean number of active blocks, and E(S)-active time of a
17
block; and a relationship between E(D)-mean delay incurred by a typical user
transaction and E(B), respectively. This way, they could answer the following
two questions: 1) whether a transaction will be confirmed after being seen; and
2) what are the important factors that contribute to the delay of transactions
confirmation.
Different from the standard blockchain, many other distributed ledger systems
chose DAG as the data structure. According to a recent comparative analysis
conducted by H. Pervez et al. [39], there existed at least the following DAG-
based distributed ledgers so far, IOTA, Byteball, Orumesh, Dagcoin, Nano and
XDAG. In all these DLTs, without doubt, IOTA [40] took the most attention
and became the leader in terms of both technology development and market
capability. Established on its core revolutionary DAG-based distributed ledger
18
technology, the Tangle [40], IOTA proposed a fully decentralized peer-to-peer
solution by requiring every participant to approve two previous unapproved
transactions or tips, which were selected by a weighted MCMC random walk
algorithm. This Tangle/DAG structure facilitated high scalability of transac-
tions. The more participants in the Tangle, the quicker transactions could be
confirmed [39].
In the same year, S. Lerner [30] posted his draft (drafted already in 2012)
of a coin based on DAG chain, which he named Dagcoin [30]. But, this never
became a project and remained just a draft, so no actual coin was created
until 2018. Dagcoin was initially built on top of the Byteball network by Y.
Ribero and D. Raissar [43].
Another main player was Nano [29], or called RaiBlocks [28], which utilized
a novel DAG-based architecture called “block-lattice” [29] and achieved its con-
sensus through a balance-weighted vote on conflicting transactions. This type
of ledger recorded balance of an address through four types of transactions,
i.e., open, send, receive and change [29], which were accordingly conducted by
senders or receivers to complete a transaction. In Nano, all participants were
required to do PoW similar to Hashcash before issuing any type of transactions.
Even though the notations “transaction” and “block” were used interchange-
ably for Nano, it was still a block-less txDAG rather than blockDAG DL
according to the definition of its “block” [29]. However, different from IOTA’s
vision of leading “machine-to-machine communication, commerce, data stor-
age” [36] and becoming the premier protocol of IoT devices, Nano focuses on
“reliable, quick peer-to-peer payments and rapid exchange transfers for arbi-
trage” [36].
Compared to the txDAG DL, there are also several block-based DLs, which
are usually called blockDAGs. For example, Y. Sompolinsky et al. presented
SPECTRE [45], PHANTOM and GHOSTDAG [46] by combining block with
DAG data structures. The first one was designed for the consensus core of
cryptocurrencies to achieve high throughput and fast confirmation times while
remaining secure [29]. The other two focused on protocol scalability and lever-
aged PoW as consensus for a permissionless ledger [46]. All these blockDAGs
generalized Nakamoto’s blockchain to a direct acyclic graph of blocks.
PoW consensus was an innovative invention, while with its own drawback
of intensive computation requirement no matter used in blockchain, txDAG or
blockDAG. Recently, to breakout the limitation, Z. Zhang et al. [57] proposed
a new consensus mechanism named Proof of Authentication (PoA) based on
the security and certificate properties of named data networking. Using the
proposed consensus, the authors further introduced an IoT-Friendly private
DL system, DLedger [58], which was based on DAG and motivated by IOTA.
This NDN-DAG combination design provided us a good way to extend DAG
applications and development of new consensus. However, since DLedger was
very new and not examined by enough users, we decided to use IOTA as
our system design protocol. After all, IOTA was usually seen as the most
suitable decentralized protocol for IoT scenarios so far in terms of scalability,
throughput, security and the feeless property, etc.
21
Chapter 3
IOTA [52] is the first DAG-based open-source DL which claims to “power the
future of the Internet of Things with feeless microtransactions and data in-
tegrity for machines”. In this section, we describe IOTA from several technical
perspectives.
According to the access and permission control, networks can be divided into
private and public networks. The public IOTA network is usually considered as
the Mainnet responsible for processing all IOTA cryptocurrency transactions,
with almost half of the nodes located in Germany. There are no access con-
trols for participants to join public Mainnet so that anyone can run a node to
read from and write into the public ledger. The private DL network generally
requires a permission management mechanism such as the membership service
provider (MSP) [48] in HyperLedger Fabric network. By contrast, IOTA foun-
dation encourages people to continuously and stably participate by running
always online nodes. For current IOTA release, a private network relies on an
open-source Coordinator, called Compass [9], to protect it against attacks and
to confirm transactions. As for the permission management, there is no spe-
cific mandatory solution for IOTA so that all existing approaches can become
22
the candidates.
Either in the public or private IOTA networks, there are two main types of
nodes: Full Node and Light Node, see Figure 3.1. The Full Node (also called
IRI node) maintains an entire ledger, and receives and validates transactions by
running an IOTA Reference Implementation (IRI) instance in the background.
Specifically, this IRI instance is in charge of connecting to neighboring nodes,
tip selection, validating, broadcasting and synchronizing transactions with the
Tangle. In contrast, the Light Node sends transactions to Full Node and
requests services, acting as a client. Thereby, in order to participate in the
IOTA Peer-to-Peer network, a Light Node needs to connect to a Full Node.
As for the PoW, it can be performed either on the client-side or on a remote
PoW service provider through an API. It should be noted that all Light, IRI
and Client nodes mentioned here are just different roles in IOTA. In practice,
they can be installed together in any physical or virtual machine with sufficient
resources.
Receive TX1
Trinity Wallet
dcas
bro
adc
broa
ast
Send TX2
Success!
broa
dcas
API Client Receive TX2 t
23
3.2 Data Structure
First, it is worth noting that there is no concept of block in IOTA. Every single
transaction is directly attached to the DAG data structure as a particle in this
graph, see Figure 3.2. This block-less design can theoretically improve trans-
action efficiency by cutting the time of wrapping transactions into a block as in
standard blockchain system and changing write policy from linear attachment
in a chain to parallel way in a graph.
DAG Blockchain
Transaction Block
Second, each transaction particle in the DAG records the complete histor-
ical information about this transaction in a list of data segments, as shown
in Figure 3.3. Compared to standard Binary 1 byte giving 28 = 256 possible
data values, IOTA uses Trinary in which 1 tryte is 3 trits providing 33 = 27
possible data values to store its transaction data. In IOTA, one transaction is
composed of 15 data segments with 2673 trytes in total.
tion and Output transaction. Input transaction withdraws IOTA tokens from
an address of the sender and contains the signature that signs transactions to
prove their ownership [51]. In the case of high security level with a very large
signature, it is fragmented over zero-value output transactions in the bundle.
Output transaction is in charge of depositing IOTA tokens into a recipient’s
address [51]. If the input absolute value is bigger than output, there will be
an extra change transaction with positive value to put the change back into
one of the new addresses of the sender.
25
are called head, body, and tail, respectively. Typically, the tail is Index0, and
the head is the last transaction in the bundle, see Figure 3.4. All transactions,
starting from the tail, are connected by reference to the one with the next in-
dex. These connections allow nodes to reconstruct bundles and validate their
contents.
hash: '9KBKIBO...XOYD999',
Bundle Body
value: -2779530254277755,
currentIndex: 1,
lastIndex: 3,
Bundle Tail
hash: 'PGTNOTZ...VHXU999',
value: 0,
currentIndex: 2,
lastIndex: 3,
hash: 'NBAEQAU...BLXY999',
value: 2
currentIndex: 0,
lastIndex: 3,
branchTransaction:
'UCJXFHV...ID9R999'
hash: 'IDEUQSJ...9YNN999',
value: 2779530254277753,
currentIndex: 3,
lastIndex: 3,
trunkTransaction:
Bundle Head 'NBAEQAU...BLXY999'
1. Generate Bundle Hash: During preparation for the Output and Input
26
Clients IOTA PeertoPeer Network
Neighbor IRI
Nodes
Prepare Output TX
Bundle & Ledger
Prepare Input TXs
Validator
(1)Generate Bundle Hash
(4)Proof of Work
Consensus Mechanism
Generate & add TX Hash
Send TXs (5) Validation
Confirm TX (6)Publishing
(7) Consensus
Process
Confirmation!
Confirmation!
transactions, users can get all transaction validation items including ad-
dress, value, obsolete tag, timestamp, index, and last index in a bundle.
Then, the client uses Kerl hash function with sponge constructor to ab-
sorb transaction validate item one by one to generate the result of bundle
hash.
2. Sign Input Transactions: All hashing in this step uses the Kerl hash
function which converts between trinary and binary, and calls the well
known Keccak hash function. There are two main sub-steps, generating
the private key and signing the transaction [19]. First, a subseed is
generated from the user’s seed by taking the Kerl function to ensure it
27
is independent enough from the original seed. Then, the private key can
be obtained from a key generator by successively hashing this subseed
27 times per security level. Second, one can use signature fragment
generator with a private key and the above-mentioned bundle hash to
get the transaction signature. Remember that there are in total 81 trytes
in a bundle hash. Depending on the predefined security level value (S
= 1, 2 or 3), the client will take the first S × 27 (i.e., 27, 54, or 81)
trytes, respectively, of the bundle hash, combined with the private key to
generate a transaction signature for each transaction. Since the signature
is hashed 27 times per security level, it results in a key length of S×27×81
trytes, i.e., 2187, 4374, or 6561 trytes, respectively. Each 81-tryte hash
generated constitutes a key fragment [19] in a transaction. After this
step, all signatures are filled in the corresponding transactions.
28
algorithm called pearlDiver. According to the pre-set PoW difficulty
level (Minimum Weight Magnitude, MWM), it usually takes from a few
seconds to minutes on a standard PC. Once the PoW is completed,
a condition-satisfied Nonce is generated and filled into the data seg-
ment. All transaction’s generation steps are finished until the transaction
hashes are generated and filled into transactions.
Any DL system needs a consensus as its core playing rule to define what a
confirmed transaction is. In IOTA, this consensus has two versions: the cur-
29
rently running COO and the proposed confirmation confidence based one.
2. Calculate how many tips will directly or indirectly reach the transaction.
• if it is less than 50%, the transaction is not yet validated (not con-
firmed ).
30
Table 3.1: IOTA Consensus Comparisons
Metrics COO COO-less
Fuzzy Logic No Yes
Double-spend Protection Yes Yes
Efficiency Medium (COO is Bot- Low
tleneck)
Domination Attack Protec- Yes Yes (Under Big Net-
tion work)
In IOTA Tangle, the number of tips increases [3] as new transactions keep
adding to the ledger. It becomes crucial how to wisely select two tips from all
the valid tips so that the whole Tangle can grow in a “healthy” way. Before
developing a solution, some basic notation needs to be reviewed.
EntryPoint. There must be a starting position for any walk to start the
31
6 1
11
1 1
1
v6 v9
v3
13 4
1
9
3
v1
3
v7
v4
10
1
1 2
1
v2 1
v8
v5
Subgraph
14 9 4
1 1
1
v6 v9
v3
16 7
1
12 X
3
v1 3
v7 3
v4
3
13
4 v10
1 5
1
v2 1
v8
v5
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
Random
New Node EntryPoint Transaction Reference
Walk Path
random walking. It is easy to think of taking the genesis node as the entry
point. However, this will bring obvious efficiency decrease while traversing a
long path when the graph grows large. In the COO version IOTA Tangle, a
walker takes the latest solid Milestone and recurs a pre-specified n depth (e.g.,
n equals 2 in Figure 3.6) number of Milestones in the past. The DAG start-
ing from this old Milestone is called subgraph. Moreover, this old Milestone
located n depth ago is the entry point. Based on the experimental results
from [25], any entry point placed further than 10λ to 20λ (transaction arrival
rate) provide the same growth of the number of tips. So, one can empirically
conclude that such starting position does not directly influence the tip selec-
tion results. However, we need to balance the security and efficiency for tip
selection.
32
Cumulative Weight. For each transaction in the subgraph, there is a prop-
erty called cumulative weight, defined as the summation of its weight and the
sum of weights of all transactions that directly or indirectly refer to this trans-
action. The weight of a transaction reflects the computation resource that the
sending node puts into this transaction. As a new transaction comes to the
tangle, all previous transactions connected to it in the subgraph updates by
adding the new weight. For example, in the lower part of Figure 3.6, every
transaction connected to X increases its weight by 3 after X is attached. How-
ever, updating the cumulative weight too frequently will decrease the efficiency.
MCMC Weighted Random Walk. Having the entry point and current
Tangle state of cumulative weights for all transactions, the walker walks through
the subgraph twice, for each time from the entryPoint to reach a tip, so as to
get two selected tips. For example, the selected tips in Figure 3.6 are v9 and
v8 , with the random walk paths (v1 , v3 , v6 , v7 , v9 ) and (v1 , v2 , v4 , v5 , v8 ), respec-
tively. Specifically, the walk chooses next approver transaction in a probability
determined by the cumulative weights and a randomness parameter, called α.
The tip selection algorithm never ends inside a bundle even in the case that
the rest of the bundle has not yet arrived at that node. If the selected tip is
not a tail in a bundle, the MCMC will “walk back” to the previously visited
tail transaction.
33
Chapter 4
DAG-based DL Application in
Smart Communities
34
4.1 DAG-based Smart Homes Design
• Security: Can handle all attacks from any entity with less computa-
tional resources than the system itself.
35
Specifically, we achieve decentralization and scalability by using the IOTA con-
sensus, and utilize a decentralized coordinators design with permission man-
agement to meet the security requirement. We describe the proposed solution
in terms of architecture, consensus mechanism, coordinators and permission
management.
4.1.1 Architecture
When this system is used in the case of energy transaction, we assume that
there is a microgrid as the infrastructure behind the home nodes network. The
microgrid connects all photovoltaic systems and other distributed energy re-
sources (DERs) installed at smart homes. Our proposed solution provides
the microgid with a payment system to carry out DERs inter-house transac-
tions in a decentralized, efficient and secure way without any transaction fees
in a local smart community. In fact, the Tangle with DAG data structure
can act as a data management system to transfer, store and even query both
inter-house and intra-house data. For example, it can be used to send, receive
36
Tangle of Inter-houses Transactions(TXs)
Smart Homes
11
5
8
2 14
12
7
0
4 15
10 TCP/IP TCP/IP
1
6
3 13
9
TCP/IP
TCP/IP
Smart Devices in A Home
TCP/IP
TCP/IP
Issue Certificate
Local CA
Partially Confirmed TX New TX Fully Confirmed TX Photovoltaic System Home Node COO Node
and store the command message to remotely control smart devices in a smart
home. However, in this paper, we just focus on the scenario of inter-house
transaction data including sending, receiving and confirmation transactions,
e.g. energy transactions.
37
In Figure 4.1, green boxes are fully confirmed transactions, which indicates
that they are validated by all of current tips, while the white boxes are only
partially confirmed. The blue boxes represent tips without any validation.
In current public IOTA project, the coordinator is an entity controlled by
the IOTA Foundation, which generates a zero-valued transaction, called a
milestone, every minute. Under the coordinator consensus, only transaction
referenced by a milestone can become confirmed, while the others cannot.
4.1.3 Coordinators
As the IOTA Foundation explains, the Tangle network has a small number of
nodes at its infancy stage so that an attacker can easily create a lot of nodes
and thus creating many malicious transactions. According to the MCMC al-
gorithm, there is a relatively large chance that these malicious transactions are
selected to be confirmed. To protect the Tangle in its infancy from 34% attack,
a protection mechanism called the coordinator (COO) is employed. This does
not mean it is centralized because the COO node follows all the consensus
rules just like any other node. The only activity performed by COO node is
continuous generation of trustable transactions which contain zero values, to
help secure the infancy Tangle network.
38
4.1.4 Permission Management
To build the trust for all network participants, a hybrid security solution com-
bining the permission management system and proof of work is employed be-
fore the number of nodes is large enough. Motivated by Membership Service
Providers (MSP) solution in Hyperledger [21], we propose a similar local cer-
tificate authority (CA) using X.509 certificates as the permission management
system. In a local community, each home node needs to get certification issued
by the local CA to join the network, as shown in Figure 4.1. It is worth noting
that the CA is in charge of initial certification and new node’s access control.
When it fails because of some unexpected issues, the existing DL system can
still work under an untrusted environment.
In this section, we will describe our experiments and results, and evaluate our
proposed solution in terms of the transaction speed and scalability. Then, we
conduct a general analysis and discussion based on the results, providing some
important insights about the DAG-based DL network application in IoT.
39
cloud platform 1 . In total, 40 nodes with the flavor of medium size virtual ma-
chines (4GB RAM, 2 VCPU and 40.0GB Disk) are used to build a network.
We choose the medium size rather than high performance nodes because this
is more likely to fit the IoT scenarios with a low hashpower. In fact, more
powerful nodes will improve the performance by reducing the time of proof
of work and thus increasing the transaction speed. In practice, these nodes
represent the home nodes installed in the smart homes.
In order to explore the metrics of transaction speed and scalability, we design
ZeroMQ
...
IRI API
Send Transactions
JS Client
a load testing method that consists of sending and receiving parts. For sending
component, we set each sending node or sender to intensively send transac-
tions in every short time interval such as 1 second or 2 seconds depending on
the difficulty of proof of work called Minimum Weight Magnitude (MWM). All
these transactions will be broadcast to all nodes through TCP/UDP. We con-
trol the transaction sending rate by controlling the number of senders during
a test time window. For receiving component, we leverage zero message queue
1
https://www.savinetwork.ca/
40
(ZMQ) to listen to the specified port on a home node and receive transaction
data by subscribing tx and sn, which indicate all received transactions and
new confirmed transactions, respectively.
We test the transaction speed of both TPS and CTPS under different net-
work node scales (10, 20, 30, 40) with different MWM configurations, as shown
in Figure 4.3, 4.4, 4.5 and 4.6, where TPS refers to the number of received
transactions per second and CTPS refers to the number of confirmed transac-
tions per second in the tangle. Three coordinators are randomly selected and
set to generate milestones every minute.
41
Figure 4.4: Scalability in 20 Nodes Network
In this part, we discuss our proposed solution from the system throughput,
scalability, decentralization and security perspectives by analyzing the exper-
imental results.
Throughput: from the load test results, our solution provides a rela-
tively good efficiency of processing transactions, as shown in Table 4.1. Even
42
Figure 4.5: Scalability in 30 Nodes Network
in the situation of only one sender, the average TPS and CTPS can reach 1
tx/s and 0.83 tx/s, respectively, as shown in Figure 4.6. This is good enough
for the scenario of inter-house energy transaction in a local community.
From Figure 4.7, many flat lines tell that the nodes scale of network has al-
most no influence on the transaction speed. From Figure 4.8, we find that the
CTPS has a peak value at a proper level of COOs number, e.g. CTPS reaches
around 7.5 tx/s under 24 senders and 6 COOs. According to the consensus
of currently implemented IOTA version, a transaction must refer to two tips
43
Figure 4.6: Scalability in 40 Nodes Network
44
Figure 4.7: Scalability in Different Configurations
45
Figure 4.8: Transaction Speed Under Different COOs
4.3 Summary
From all the analyses of experimental results, it is obvious that the pro-
posed private DL system has good scalability and high transaction processing
performance. By analyzing the principles of IOTA protocol and the insights of
experiments, we can summarize that the scalability benefits from the efficient
46
MCMC consensus algorithm and the parallel DAG data structure for attaching
and storing transactions, as well as the well-designed ledger synchronization
mechanism.
47
Chapter 5
Performance Modeling
2. What would be the optimal waiting time to wait for confirmation before
reattaching the same original transaction?
All research described in this contribution has been conducted within the
context of private IOTA network designed for smart communities. Two mod-
els, a simulation model and an analytical layered model, are proposed to an-
swer two different performance questions, i.e., system Throughput and RWT,
respectively. To conduct the simulation, we leverage and extend DAGSim sim-
ulator [56]. The analytical layered model is proposed to explore the confirma-
tion distributions in the Tangle [40]. In addition to the analysis of simulation
results, all results are experimentally validated.
48
5.1 Performance Metrics
5.1.1 Throughput
Throughput is a system level performance metric which defines how many jobs
can be processed per unit time. In our proposed DL system, the throughput
is defined as the confirmed transactions per second (CTPS), which represents
the transactions processing power of the system. As for the definition of con-
firmation, it depends on the consensus used in the system, see Section 3.4 for
details. Particularly, we choose COO as the consensus throughout this study,
because this is the currently running consensus in IOTA.
49
5.2 Formalizing the Problem
This DAG is expanding in a way that the later arriving nodes need to
approve previous nodes. Here, approval is a relationship of direct reference.
For example, in Figure 5.1, node A approves B, which means that A is directly
pointing/referring to B.
B A
All the references in the DAG compose of the directed edges collection E.
Therefore, in a specific moment, this DAG can be defined as,
50
where V = V T ∪ V M = {v1 , v2 , . . . , vn } denotes all nodes with the index
based on time serials.
In order to join the DAG, any new issued node (no matter V T or V M )
needs to approve two previous unapproved nodes, called tips. These two tips
are chosen by following the tip selection algorithm, which is a random selection
mechanism among the section close to tips. Specifically, this algorithm includes
3 steps:
2. Rating Calculation: for each node in the subgraph, calculate the cor-
responding cumulative weight, which is defined as the summation of the
own weight of a particular node plus the sum of weights of all nodes that
directly or indirectly approve this node, as shown in Figure 5.2.
3. Random Walk: walk through the subgraph twice, for each time from
the entryPoint to reach a tip, so as to get two selected tips. For example,
the selected tips in Figure 5.2 are v9 and v8 , with the random walk paths
(v1 , v3 , v6 , v7 , v9 ) and (v1 , v2 , v4 , v5 , v8 ), respectively.
Here, the small number in the lower-right corner of each box denotes own
weight, and the bold number in the upper-left corner denotes the cumulative
weight. According to the implementations of Rating Calculation (cumulative
weight) and Random Walk (WalkerAlpha), the probability to walk towards a
51
Milestone Milestone Milestone
Generated Generated Generated
1 1
λM λM
6 1
11
1 1
1
v6 v9 (vM3 )
v3
13 4
1
9
3
v1 (vM1 )
3
v7
v4
10
1
1 2
1
v2 1
v8
v5 (vM2 )
Subgraph
14 9 4
1 1
1
v6 v9 (vM3 )
v3
16 7
1
12 X
3
v1 (vM1 ) 3
v7 3
v4
3
13
4 v10
1 5
1
v2 1
v8
v5 (vM2 )
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
Random
Milestone New Node EntryPoint Transaction Reference
Walk Path
Figure 5.2: Subgraph with Weight Assignments before and after a Newly
Issued Node
eαH y
P xy = ∑ αH z
(5.2)
z:z⇝x e
52
factor makes the walk purely random; and with an α = ∞, the highest-rated
node will be always chosen as the next step. The sum in the denominator is
a normalization factor, which sets the total transition probabilities sum to one.
Any node getting the reference (approval) directly or indirectly from any
V M (i.e., milestone node) is defined as confirmed, namely there is a path from
a milestone to any confirmed node, while others are unconfirmed.
COO consensus, based on the DAGSim simulator [56], has been developed to
perform the simulations. Since DAGSim only supports COO-less consensus,
no milestones are generated in between normal transactions. We extended this
simulator to support both COO-based and COO-less consensus; we configured
the extended DAGSim to generate and broadcast milestones to the network
every 60 seconds. The generated milestones are acting exactly like normal
transactions, but with the capability to confirm transactions. When we want
to check whether a transaction is confirmed or not, we just simply check if
53
it is directly or indirectly referenced by a milestone. Our extended version of
DAGSim is available publicly1 .
54
Algorithm 1 Indirect References Extraction Algorithm
1: indirect references = empty
2: function find references(tx, direct ref erences)
3: APVD 1 = The 1st transaction approved by tx
4: APVD 2 = The 2nd transaction approved by tx
5: if tx is genesis then
6: End
7: else if tx is in indirect references then
8: Append the new TXs to indirect references
9: End
10: else
11: if APVD 1 is not in indirect references then
12: Append APVD 1 to indirect references
13: find references(APVD 1, direct references)
14: if APVD 2 exists then
15: if APVD 2 is not in indirect references then
16: Append APVD 2 to indirect references
17: find references(APVD 2, direct references)
55
CTPS over Different λ Values
Lower λ
25 Higher λ
20
Confirmation Rate (CTPS)
15
10
0
0 5 10 15 20 25 30
λ Values
with step = 1, see Figure 5.4, Figure 5.5 and Figure 5.6 for details.
56
CTPS over λ with Different Tip Selection Strategies
10 Weighted
Unweighted
URTS
Confirmation Rate (CTPS) 8
1 2 3 4 5 6 7 8 9 10
λ Values
57
CTPS over λ with Different α Values (Weighted)
10 α=0.001
α=0.01
α=0.1
Confirmation Rate (CTPS) 8 α=1
1 2 3 4 5 6 7 8 9 10
λ Values
To better control the transaction arrival rate λ and avoid the impact of
PoW to λ, we bring all PoW to a PC client with configurations shown in Table.
5.1. We run all experiments with the transaction requests in a Poisson process,
i.e., the transaction inter-arrival time follows an exponential distribution, with
the total λ values varying from 1 to 10 with step = 10. In this experiment, the
socket ZeroMQ5 is used to listen and receive transaction data. In total, 39,462
confirmed transactions are collected from the experimental private IOTA net-
work. To simplify the problem, we only send zero-value transactions so that
every Bundle is composed with the transaction itself. Here, we present con-
firmed transactions statistics for all examined transaction arrival rates with
the mean confirmed transactions of 10 milestones, as shown from Figure 5.7
to Figure 5.16.
By comparing the confirmations in experiments and simulations under dif-
5
https://docs.iota.org/docs/iri/0.1/concepts/zero-message-queue
58
CTPS over λ with Different d Values
d=1
d=5
d=10
8
Confirmation Rate (CTPS)
1 2 3 4 5 6 7 8 9 10
λ Values
ferent λ values, we observe that the simulations results are very close to our
experimental data in both mean confirmed transactions and confirmations by
each milestone. Therefore, it is confident to use our extended simulator to
conduct more simulations.
As can be seen in Figure 5.17, the simulation and experimental results are
matched with an accuracy of more than 93%. This shows that our simulation
model is effective in predicting CTPS in low λ situations.
59
Confirmed TXs in Experiments, λ=1, Mean=68.60
80
40
20
0
Confirmed TXs in Simulations, λ=1, Mean=63.21
80
60
40
20
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
In the DAG of IOTA Tangle, we define a layer as all the confirmed transac-
tions with the same depth from a Milestone in a hierarchical architecture, as
shown in Figure 5.18. In the case of two different transactions referencing the
same transaction with different depths, we take the minimum layer index as
the layer depth for this transaction. For example, in Figure 5.18, transaction
5 holds references from both 1 and 4, which are from different layers, Layer1
and Layer2 . In this case, we assume that 5 is located in Layer2 rather than
60
Confirmed TXs in Experiments, λ=2, Mean=125.60
150
50
0
Confirmed TXs in Simulations, λ=2, Mean=119.70
125
100
75
50
25
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
After plotting the confirmed transactions over layer number for each λ, we
observe a lot of bell-shape curves, as shown from Figure 5.19 to Figure 5.28,
which point us to the nonlinear models fitting, e.g. Gaussian Model. There-
fore, after taking the average confirmations of all milestones for each λ, we
strive to fit our simulation data as nonlinear model to characterize the rela-
tionship.
In total, for each λ we use 45 nonlinear models to fit our data in CurveEx-
pert6 . The results show that under all λ values except for λ=1, the Gaussian
6
https://www.curveexpert.net
61
Confirmed TXs in Experiments, λ=3, Mean=180.90
150
100
50
0
Confirmed TXs in Simulations, λ=3, Mean=171.75
150
100
50
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
Model outperforms others and is always listed in top 3 models, as we can see
from the example of λ=10 in Figure 5.29. In our fitting, we use the target
data set under various λ values by taking the mean layered transactions of
milestone 5, 6, 7, 8 and 9, by getting rid of the potential warming up and
cooling down phases. The fitting results of Gaussian Model are listed in Table
5.2.
(x−b)2
f (x) = ae− 2c2 (5.3)
62
Confirmed TXs in Experiments, λ=4, Mean=235.60
all examined Gaussian Model has very similar shape; and the next random
confirmed transaction is expected to be located at a deeper layer in the Tangle
with higher λ values.
Given that
X −b
Z= (5.4)
c
63
Confirmed TXs in Experiments, λ=5, Mean=299.20
200
100
0
Confirmed TXs in Simulations, λ=5, Mean=296.70
300
200
100
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
So, we have
X Upper = Zc + b (5.5)
Then, we translate the Upper Bound layer to the time dimension by analyz-
ing the layered model. As we notice from Figure 5.29, the decreasing happens
just after a specific layer. From Figure 5.18, we know that when the confirma-
tion layers of M ilestonen crosses the arrival time of M ilestonen-1 , there will be
a decrease in the number of transactions confirmed by M ilestonen because of
the overlap. For example, as shown in Figure 5.18, transaction 10 and 11 will
not be counted as confirmations by M ilestonen since they had already been
confirmed by M ilestonen-1 . Therefore, we empirically notice that the peak
CTPS layer in confirmation Gaussian Model refers to the previous M ilestone
arrival time, which is 1/λM seconds ago from the latest one. Thus, the aver-
age waiting time before reattaching for users is estimated to be around 2/λM
seconds.
64
Confirmed TXs in Experiments, λ=6, Mean=342.50
300
200
100
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
To validate the deductive results of our layered model, we use the experimental
data to conduct a statistical analysis. We find that 40,023 transactions in
total are generated and sent to the network. Eventually, 39,462 of them are
confirmed by milestones, within only 2,235 are confirmed after 2 minutes. As
we know that the λM is set to be 1/60, i.e. a milestone is issued every minute,
so 2/λM seconds are right 2 minutes in our experiments. Therefore, we have
5.7% of the transactions confirmed after the time of 2/λM , which is relatively
low and is well matched with the prediction of our layered model.
5.5 Summary
66
Confirmed TXs in Experiments, λ=8, Mean=446.70
400
200
0
Confirmed TXs in Simulations, λ=8, Mean=473.70
500
400
300
200
100
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
800
600
400
200
0
Confirmed TXs in Simulations, λ=9, Mean=527.20
600
400
200
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
67
Confirmed TXs in Experiments, λ=10, Mean=576.30
400
200
0
0 1 2 3 4 5 6 7 8 9
Milestone Index Number
CTPS Validation
10 0.10
Simulation Results Error
Experiment Results
0.08
8
Confirmation Rate (CTPS)
0.06
Absolute Error
0.04
4
0.02
2
0.00
1 2 3 4 5 6 7 8 9 10
λ Values
68
Milestonen−1 Milestonen
Interarrival Time = 1
8
5 1
10
2
11 6
3
7
69
Figure 5.20: Layered Confirmed Transactions Bell-shape for λ=2
74
Figure 5.29: Simulation Data and Fitted Models for λ=10
75
Chapter 6
Discussion
In IOTA protocol, all peers in the network are responsible for transaction
validation and system security to protect attacks such as double-spending
and Sybil attacks. Both can be conducted by attackers through issuing large
amount of transactions in a short time interval. To protect these attacks, on
one hand, user can increase the difficulty of proof of work in large transactions
to increase the difficulty of dominating the network through hashpower; on the
other hand, IOTA employs a powerful Coordinator to continuously generate
milestones which are acting as honest and trusted transactions. This is very
important when IOTA is in its infancy stage. As we know that the number of
assiduous honest transactions must always be found to be in the majority.
In performance analysis, reattachment is used to improve the confirmation
probability and speed. This may raise a question of double-spending if the
two identical transactions are both confirmed and added to the ledger. Will
this situation really happen? Let’s discuss the double-spending problem in
Figure 3.6. For example, if a user firstly issues transaction v5 , and in a very
short time reattaches the same transaction as v7 to another position, these are
two conflicting transactions added by a user in different areas of the tangle.
When transactions v8 and v9 come to the Tangle, they will not see the conflict
76
and validate their chosen tips, i.e., (v5 , v9 ) and (v7 , v9 ), respectively.
As we can see from both experimental and simulation results, the transaction
confirmation rate has a similar linear relationship over examined low arrival
rates. However, it is difficult to explore the confirmation rate under large scale
situations e.g. big arrival rates with enough milestones, due to the experimen-
tal hashpower limitation and simulation efficiency bottleneck. For example, it
took about 3.6 hours to simulate MCMC weighted random walk IOTA protocol
with transactions = 6000, agents = 20, d = 1 and α = 0.001 in our environment;
we ran the simulation on a DELL PC with Windows 10 OS, 8th generation
Intel coreTM i7-8700 12-Core processor and 16GB RAM. As M. Zander et al.
stated, the cumulative weights updating process mainly contributed to the
running time, with a ratio 61.81% [56]. Additionally, we found that the tip
selection random walk always started from the genesis transaction, which re-
quired updating weighted for all transactions. However, our Layered Model
shows that there are almost not any confirmations after the layer reaches to
77
an Upper Bound, e.g. 20. This finding is well matched with the empirical
analyses of B. Kusmierz [3], who concluded that any starting position placed
further than 10λ to 20λ provided the same growth of number of tips, and it
would not influence the tip number. Therefore, we safely state that it is not
necessary to start from the Genesis for each random walk. This can be used
to improve simulator efficiency, by thinking the old transactions as a “Black
hole” which begins with the genesis.
78
Chapter 7
79
posed analytical layered model to explore the confirmation distributions and
found that the confirmations are normally distributed in DAG layers, which
led to characterizing the Gaussian Model. Using this model, we also estimated
the RWT for a private IOTA network which was validated by our experimental
results. In conclusion, our proposed performance models provided important
insight on the performance of IOTA distributed ledger.
As for the future work, one research direction could be to optimize the
designed system by removing COOs and only employing MCMC for consen-
sus to achieve better decentralization. Next, it is significant to explore the
average transaction confirmation time which denotes the transaction time la-
tency. More work on the comparisons with other IoT-oriented DL consensuses
should also be conducted. For performance analysis, on one hand, one possi-
ble direction could be to quantitatively study how other factors influence the
confirmation rate such as network scale, network delay and the value of α. It
is also interesting to research IOTA performance under COO-less consensus in
further study. On the other hand, improving the DAGSim to make it suitable
for running simulation scenarios at large scale would be another direction of
our future research.
80
References
[1] J. Ahmed, “OruMesh White Paper,” Whitepaper, pp. 1–13, 2017. [On-
line]. Available: https://orumesh.com/whitepaper2.0.pdf. 19, 20
[3] B. Kusmierz, “The first glance at the simulation of the Tangle : discrete
model,” IOTA Found. WhitePaper, pp. 1–10, 2017. [Online]. Available:
https://iota.org/simulation%7B%5C_%7Dtangle-preview.pdf. 14, 31, 78
[6] D. Cheatoshin, The Dagger crypto currency: white paper. [Online]. Avail-
able: https://github.com/XDagger/xdag/blob/master/WhitePaper.
md. 20
81
[11] Digiconomist, Bitcoin Energy Consumption Index, 2018. [Online]. Avail-
able: https : / / digiconomist . net / bitcoin - energy - consumption.
3
[19] E. Hop, Exploring the IOTA signing process, 2018. [Online]. Available:
https : / / medium . com / iota - demystified / exploring - the - iota -
signing-process-eb142c839d7f. 27, 28
82
[21] Hyperledger, Membership Service Providers (MSP), 2017. [Online]. Avail-
able: https://hyperledger-fabric.readthedocs.io/en/release-
1.2/msp.html. 7, 39
[30] S. D. Lerner, “DagCoin Draft,” Tech. Rep., 2015, pp. 1–6. [Online].
Available: https://bitslog.files.wordpress.com/2015/09/dagcoin-
v41.pdf. 19
[31] Q. Li, J.-Y. Ma, and Y. Chang, “Blockchain Queue Theory,” arXiv:1808.01795v2,
2018. arXiv: arXiv:1808.01795v2. [Online]. Available: https://arxiv.
org/abs/1808.01795. 17
83
[33] R. Memon, J. Li, and J. Ahmed, “Simulation Model for Blockchain Sys-
tems Using Queuing Theory,” Electronics, vol. 8, no. 2, p. 234, 2019,
issn: 2079-9292. doi: 10.3390/electronics8020234. [Online]. Avail-
able: http://www.mdpi.com/2079-9292/8/2/234. 18
[34] H.-B. Mor, Performance modeling and design of computer systems: queue-
ing theory in action. Cambridge University Press (Feb. 18 2013), 2013.
17
[40] S. Popov, “The Tangle,” New Yorker, 2018, issn: 0028-792X. [Online].
Available: http://www.vanderbilt.edu/viibre/members/documents/
12960-Weiner-NY-2005.pdf. 1, 3, 7, 14, 15, 18, 19, 48
[41] P. B. Pureswaran and V., “Device democracy: Saving the future of the
Internet of Things,” New York, NY, USA, Tech. Rep., 2014, p. 4. [On-
line]. Available: https://www- 01.ibm.com/common/ssi/cgi- bin/
ssialias?subtype=XB%7B%5C&%7Dinfotype=PM%7B%5C&%7Dappname=
GBSE%7B%5C_%7DGB%7B%5C_%7DTI%7B%5C_%7DUSEN%7B%5C&%7Dhtmlfid=
GBE03620USEN%7B%5C&%7Dattachment=GBE03620USEN.PDF. 1
84
[45] Y. Sompolinsky, Y. Lewenberg, and A. Zohar, “Serialization: Serial-
ization of Proof-of-work Events: Confirming Transactions via Recursive
Elections,” White Pap., pp. 1–66, 2017. doi: 10.4135/9781483340333NV-
3. [Online]. Available: https : / / pdfs . semanticscholar . org / a45d /
5b355f5181dcd700ec5e129d8b6e195d0be1 . pdf ? %7B % 5C _ %7Dga = 2 .
249570438.164899734.1525105958-2122034482.1513872018. 21
[52] What is IOTA? [Online]. Available: https : / / www . iota . org / get -
started/what-is-iota. 22
85
[56] M. Zander, T. Waite, and D. Harz, “DAGsim : Simulation of DAG-
based distributed ledger protocols,” ACM SIGMETRICS Perform. Eval.
Rev., vol. 46, no. 3, pp. 118–121, 2018, issn: 01635999. doi: 10.1145/
3308897.3308951. v, 15, 48, 53, 77
86
Appendix A
{hash: ‘NBAEQAUNYTFP9KPLISGCBDEACLAJZXL9NIAGI9BSQBOJ9IZUNB
HSNJH9YWTNZ9BSXMCWCO9XCNBLXY999’,
signatureMessageFragment:
‘RBTC9D9DCDEAFCCDFD9DSCFA999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
87
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999
9999999’,
address: ‘FYBWJLPBZBHVRZIUNXKFCYRPAVHYHHWMH9RETQNLPYLOEE
9RIYTKOYVOACWJPNEDLPBTZUOUQEFUPKXKY’,
value: 2,
obsoleteTag: ‘ZG9999999999999999999999999’,
timestamp: 1545414204,
currentIndex: 0,
lastIndex: 3,
bundle: ‘VHHKWTHEWWJBOSG9CRWINTFJBSGEIQSHIALO9BYTGGPNO99
DXEZ9LSHTAXBELZYKWEZXXKOZYZETYGWVX’,
trunkTransaction: ‘9KBKIBOTIRRJLC9VVHZXTZ9WBDWISIVVKNBBNLZDR
FTNRVGYWM9WLZCOMHQEVLXMIHYRWOFVXFXOYD999’,
branchTransaction: ‘UCJXFHVZRFJU9FKPBKWEKTJORROVWRIKHPVIWZT
88
STBJXKQX9PDMCSNSWZJTQEBAOBVAOVXMEAJID9R999’,
tag: ‘ZG9999999999999999999999999’,
attachmentTimestamp: 1545414240348,
attachmentTimestampLowerBound: 0,
attachmentTimestampUpperBound: 3812798742493,
nonce: ‘LUOMCU9WTCUZBZTOFHNDJURSESW’},
{hash: ‘9KBKIBOTIRRJLC9VVHZXTZ9WBDWISIVVKNBBNLZDRFTNRV
GYWM9WLZCOMHQEVLXMIHYRWOFVXFXOYD999’,
signatureMessageFragment:
‘VHZOLWSSLGCTUZEIC9HRERFHKQEBI9GGHGSNFXEBLQFCSAVDAQFZ
M9KBF9TELOUEMR9TYUTDTIAKG9JMDBOHUIMFYYUJSTLRDMUYLGG
9QLBAHFHBVZRZ9OGX9OCVOTHSRVAJYCVDWEKFIXWJXVSVOTGNMI
CGMUCBEZPEUIYTVBENYGTIUMJGVQCXLBUETBMCZVDPAAJ9BVOSH
99UFHYUOBFFRDYJCJYAMQTRMSMGAYYPUWZSJJCJQFVFVSBROFRJQ
Z9XPL9VG9IIUVVCVJWRLBSKJTRSBGFQXRACNQVDLOZNYAQZPTOSNF
YVFXJGGG9J9GWWHLARIQZMIDAOTT9PKAGH9SSSBNTQDMKEI9BYINE
QFYJAXMCQMSESPLOEEQLAXCWNTP9HAE9ETVJYDRNO9NUFCAPNHII
TDEXAABJYFINLLDDKJUMAMMX9TTINHHITJEYITLUDLQRJCOGDGXR
B9YSYLCKDJZONUODKHWONMBIPOXZVAHLAWDASHR9PXVUFQXQLESY
OAHBXKMTPJIMUMSIXBZARVKYSTTAMZSZVGJELDP9UWH9NPFDVUIPW
JLTVQEOYCVZMPHSFMRZJGHACCLLOSBDQWCZEZY9DUBTRMJMSHXEZUK
JHAOFKZUG9KSJGWGVKOLADDRMG9OVUONKTYZTKKTIUDTXUQNZTXQU9
FECUJUXRWPTTUGNIPMNERXFGDFIOFXAU9LWMWTNINFNTJUUYWQCNID
USOSYONTCJAPQP9OTDAEMVJAPKMKGIGS9CANX99JUINDYLFUFLNOUC
AMAKE9V9OFLMYEB9JYCOQ9GGJNSCNZTHBZEVCDUNPXLSMPTPUTRSEX
QGQXVT9AAWUCMHBJUMHRCSTPX9LVWCXURPXBXD9XC9BRLRLQDUC9HK
PGGZXTWTWUQVPI9CMGDPXZMPMSMQUAHVMNALXRFTGKLUUEMY9ILHZD
89
MY9WXLQWETRUFGAIYLFFSCVHEDWSRGHGQLGOLQBHKRCR9AVCEGLUPY
IKOLMYLJQMSCTCTH9MRLHOAMRSKABKDDNTVJTLBLE9EKATKF9M9OXQ
LDBHDZHCHXYNMVHAOUEPRJTDZMAUSAGAXMVKQOLJ9QZZVTHKPIUFFA
ND9IBLCUZZXC9UXNELVTDCEWXAFMMVOXGP9F9WVKDGCEIFVBNJQSVG
XDJ9GYWYASKVCIQPYQIUQLIDFNKQESHDJRTIYOIXHQJELVFAWQKYCM
WLNSXHPQKWATMCVFTRIABXGDJTYXU9PHFZZAVVZLTOKKL9HHXLQHGF
UTSURCBWQKWHNYMIQESTYBZUGSDKEO9JTEIUPDK9DHSCEOVSYGFBAT
PTIPVZOTZRXYJRVMJGDLBUYTIYEGZKOGPPNZMIJDELAIDIJZWNW9RD
XIYYICABIFOIZROXUJKGNAEJZEAQBCYVKGRVTFX9PFFZMHCHKM9P9O
IAINHQZYSPLOJMMSXGVMN9OSKYWGGNVNM9TJQMNWTOVDZGMQBVRVKD
AAQAWYX9ATVEDZLVWSVSIALPHVKUCUED9EKBDOAXQHIL9YUTX9DI9U
SJRXDSFERDLFM9KV9XFTWFMXHWSIHJSLGVRKOSMMOQIOIWWXJLMLUK
WOVKMPQMJQE9NAIACMZDGZZEHDQZFTQVGAHZEJGEG9GUVVJOTIYXANT
VYLGLV9OVPI9FSVQRHPYFSPJT9QUHZWXWSSVROKHIGD9BUQZLBUGPW
TYRWVHSQUBJTWGNKSVEOUCRLIC99RPNSIEBVZPYBCR9FGZWPJUIUKH
TD9EPVRHTFTKAAESRCRWDZKWWJPM99KRO9PMZXFPKPJBTMYJNEKVIK
XVKZP9WOUFGGXVICNXMPEKKPLSBVHKJGKBXWIPJIPRURCWOAYSQJYU
HYLIZHR9TDVHBAKSDNTUHOZLJSWSOTRGCANMFTYXJKTPKNJQEMURQB
FUFEDPBZFNSCWBXNCDXWXQDFFTPMZDMWRFGNRDSHLKZIKHZLQMHQRV
AAEXHN9ROJ9DALMKPAO9PWAYXUMMMUJDYOCQUNBDFWPXTTYZLNBXEM
SJSVXAJZLWZLMTOCAGFQLZYNOLBDBRBDZLMZIRNPDQCLEUNC9UHTKY
MAQCSCKAEUEWIGECSHXJXGQMJVJACEAA9DNNPEBAIFCCZZALIUAHHG
SUYIYFRBGTILXEZHDTMKRZ9SWLGTRRSUAJLPZXVEYDPEOLVZ’,
address: ’VNW9PEERAGDECXTIIPHNPBSCUEEIWGPSQJDBPCYARFQJWXYS
LCRZXYHFRUYCDBKKBPUWAGUKHGADECNCY’,
value: -2779530254277755,
obsoleteTag: ’999999999999999999999999999’,
timestamp: 1545414228,
90
currentIndex: 1,
lastIndex: 3,
bundle: ’VHHKWTHEWWJBOSG9CRWINTFJBSGEIQSHIALO9BYTGGPNO99D
XEZ9LSHTAXBELZYKWEZXXKOZYZETYGWVX’,
trunkTransaction: ’PGTNOTZQFVODZGKRGIRONH9GROAGJPCGGSY9KG
9ZLPRMEQZ9GCY9N9TN9SCULJOWNVXCCFQBRMVHXU999’,
branchTransaction: ’UCJXFHVZRFJU9FKPBKWEKTJORROVWRIKHPVIW
ZTSTBJXKQX9PDMCSNSWZJTQEBAOBVAOVXMEAJID9R999’,
tag: ’999999999999999999999999999’,
attachmentTimestamp: 1545414240328,
attachmentTimestampLowerBound: 0,
attachmentTimestampUpperBound: 3812798742493,
nonce: ’WUXQRSOE9UREZJZNODXGQPGVUSH’},
hash: ’PGTNOTZQFVODZGKRGIRONH9GROAGJPCGGSY9KG9ZLPRMEQ
Z9GCY9N9TN9SCULJOWNVXCCFQBRMVHXU999’,
signatureMessageFragment:
’GMKUKVLDLEFBH9TVYXWYGTBREOUBOLYEPH9IVZKXELOIHMLVRBF
CENJCBMJAEMFBBVGFCOHYPIZYOIJBCGPGRHSHTVNOQGTSWKRCU
OCQVYQXUPXFAJZLICWKORPEJHOVAW9CYW9PJHBSIIPQBGNTIPG
KIAZTKMSYVDWBZGCUFEGTYUOVVEILAPWEJEVVSNZTOEYQJ9EZR
GPQAE9LETBXLXVXXYVJQWRTMMEHMOERCASORRNNPMXSSPJHWS
ULRWONPM9VNBRRFNRYTXBTYYKUMVZMACKVDH9PBJK9XXDDSN
HNP9DWLGKPEIHRHWXPSFOLTXFCGRNBIAJI9PKIDZAEMILFKCG
WQMZVOCEOBIPYIWFEJFTWCYUGMKMLTFKFQEXTCSGBMPQQFPLO
CLWBDHE9AAXBMSJQR9YHYFBWSDOWCNKOICMHB9ZYXOJKELVEM
KEH9WLOTHWHXKCUVNAJJYYOX9TCF9ESFZGZURNKVWDQYJCVVC
9YZYWNVXRREXSVURCPAEVGUGDXS9PCPPPNLXBMJLBMHSGAJLN
91
FIVJVZAIVROEGUNNUCHCUDIXDEYQBO9VISSFDERIGHSFJAUCE
FGYAKVI9TGXUXLVXEOVEKSCEOJFVPAKARISUYSECLHVSDPRHW
EDAMDSDX9YOKD9XFXKTC9ILTQOQLOZSUUBENGDJCPTNE9ZMYE
L9AHEKIXFWTHTXHUNPQGUWNQIADHZOYZFPKKNDBWXYMNXOO9Q
UTAULKXQGCFKWJWAHTBKLDZUEWFFFHJQDV9BHOSMZUYYPTAKZ
JZGGFADGKKXNSGATMHGNJXONUVMMBJ9NZKSAZQZERRLDYOPHB
LAQQPNFINJHNMZAYU9WFMZYNDKRCXIMTAXOIEXDYGDJZNXFLC
RUPEXLYHKBTPNJRQWILEVGJUMWIPXUHVSMVLJLZZXHKHPSEDL
NTMDY9UGPBDDYCOEYGPRPGJNOMLKPDHX9SGNBTOWBMFPCKJNT
GYTTFLYNJFCIXJKXQHIIBULLLNOSOGWJCISFMQMZKNGFRHOVG
FPVXAWG9TUBIPGPPED9WUZUAQRWCERHWAJPSVPKJBERPFXQCH
GKJRQECIYRMPFGJJQWNMSZBJCQWUENQSTQGVZKFIEYZNPINGH
WNALDRJSKUUUAUOBWJNTU9AO9F9SSIUYPRTFGIFVROQVUJAEN
MFTWPFXAWBOWGWCLHBRFLJBJ9BZPNKTEYY9NMNDCSLQDDSQNO
AEFSYDSJOBTNRQLXHP9I9SDIMAAAPFIPJZLRNHTXMTPGKYVAH
KRERZGJJFVBEKOBCOYT9AJMFXXFVNKZXCAOLJQQXRND99LXTX
XGLKDHGXRHZZJBUQAOKVO9EN9WUHDFEILAHULPQUIXRQSRALN
BFHYWNKWWNYEMSFD9XDLGKFEQLZGGQIYUVRTASME9YNPUJKLD
EEDEFONHXIEJTMSYEWQTWKCDNEKTFIZPWVKTWKUQFPDLPEAFX
OXXFQCFYBWGYTICKCBYNZWHTNXGMAQDN9AWMCFPIXJGRXCI9J
GDWTUM9FDUXBKEQDEOFPUUUBJIMFQHDLGJPZEAZZTEICFABZK
XKKUVFTCCWWSPDMHSBAFIQCNRNPFWJAIWBJBMGLACT99GVBCV
U9XWFOMFXM9SLJJEMPOVYYTWSOTZRF9XAEURODGRHWRJ9LXA
ZDFJYBCEG9AVOT9ZQIPVOLJGXZFGKFJCPZIUFZWBTSIVIWUE
IVFSIMS9SBCJ9BYHSTOSHXTJCVCMBKQMIPUVWMADERXNE9U
PAEFXPGSRFTY9FOHWXHNDKCCOIMXCSRSEPVTGEORJJASCEE
IVHZVOFKDZYWUQHXMHKOTOTVPURMQ9RCPDGKQDIPR9XUHWU
POFQCWHDHNYZCZVDRNTPYEHLDJVTXQHWHJUAHHAVWPROEME
92
RYRRZQKFBZUWEYOSOCHPSQBXBGDZDGSKSBGEXCXOOHLJEKV
BFSGWSSLYZLJWGXD9REFGOESJMONNNIBRRJYKTRXFAUEWKG
LMOC9NRJKRVJVRVROJPJBVFEQDWJMHCLIPXNNVDVSNNEXZT
GSHKGJFVZNGBGCGRKWPSBMBZHNJDSZJGNKA9ABIDNXGBBFV
GSLGZNFPDSC9AIOCORYGRBLODSYTNSWVWQWDXQQLXHKMGNL
CBTSHNTFYJJQDSWVOCPVHUUPCBVVECTFOTAOH9KMPEWFYDB’,
address: ‘VNW9PEERAGDECXTIIPHNPBSCUEEIWGPSQJDBPCYARFQJW
XYSLCRZXYHFRUYCDBKKBPUWAGUKHGADECNCY’,
value: 0,
obsoleteTag: ‘999999999999999999999999999’,
timestamp: 1545414228,
currentIndex: 2,
lastIndex: 3,
bundle: ‘VHHKWTHEWWJBOSG9CRWINTFJBSGEIQSHIALO9BYTGGPNO99
DXEZ9LSHTAXBELZYKWEZXXKOZYZETYGWVX’,
trunkTransaction: ‘IDEUQSJK9NZCVI9MSSGIFGRPCHDKMVMYCONIWWCDO
PFEH9ANHBRLKPQKEANJRKZSLJEDQUYYDC9YNN999’,
branchTransaction: ‘UCJXFHVZRFJU9FKPBKWEKTJORROVWRIKHPVIWZTS
TBJXKQX9PDMCSNSWZJTQEBAOBVAOVXMEAJID9R999’,
tag: ‘999999999999999999999999999’,
attachmentTimestamp: 1545414240233,
attachmentTimestampLowerBound: 0,
attachmentTimestampUpperBound: 3812798742493,
nonce: ‘QLXPXKFHQI9UYMRC9CGLJBJTBZR’,
{hash: ‘IDEUQSJK9NZCVI9MSSGIFGRPCHDKMVMYCONIWWCDOPFEH9
ANHBRLKPQKEANJRKZSLJEDQUYYDC9YNN999’,
signatureMessageFragment:
93
’9999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999
94
99999999999999999999999999999999999999999999999999999999999999999999999999
999999999999999999999999999999999999999999’,
address: ‘XWTJZJXANWCGAWB9QMGZSTHPFZTZXHQJKLYVTGFBGVSXW
XENNBWNCZMYRVNKZIPZDGAWN9KTRU9ACXTMW’,
value: 2779530254277753,
obsoleteTag: ‘999999999999999999999999999’,
timestamp: 1545414237,
currentIndex: 3,
lastIndex: 3,
bundle: ‘VHHKWTHEWWJBOSG9CRWINTFJBSGEIQSHIALO9BYTGGPNO99
DXEZ9LSHTAXBELZYKWEZXXKOZYZETYGWVX’,
trunkTransaction: ‘NBAEQAUNYTFP9KPLISGCBDEACLAJZXL9NIAGI9BSQB
OJ9IZUNBHSNJH9YWTNZ9BSXMCWCO9XCNBLXY999’,
branchTransaction: ‘UCJXFHVZRFJU9FKPBKWEKTJORROVWRIKHPVIWZT
STBJXKQX9PDMCSNSWZJTQEBAOBVAOVXMEAJID9R999’,
tag: ‘999999999999999999999999999’,
attachmentTimestamp: 1545414240194,
attachmentTimestampLowerBound: 0,
attachmentTimestampUpperBound: 3812798742493,
nonce: ‘NIHCJNERVUGSQQXZWEPXQDHUGDS’}
95
Appendix B
λ=1
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 7.597946914609123E+00
b = 7.943828433039338E+00
c = 4.245743460176508E+00
Standard Error : 8.637908580008021E-01
Correlation Coefficient : 9.339533235969112E-01
Run time : 0.0023 seconds
λ=2
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 1.656140886252584E+01
b = 8.359843020670617E+00
96
c = 3.516505769978269E+00
Standard Error : 9.088597026680623E-01
Correlation Coefficient : 9.883460773974604E-01
Run time : 0.0044 seconds
λ=3
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 2.243901434563289E+01
b = 8.975977898915819E+00
c = 3.741940152771595E+00
Standard Error : 1.274139081478851E+00
Correlation Coefficient : 9.871259635278757E-01
λ=4
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 3.208734901892893E+01
b = 9.171769644309206E+00
c = 3.655720068037237E+00
Standard Error : 2.271282575567261E+00
Correlation Coefficient : 9.822652693089272E-01
Run time : 0.0104 seconds
97
λ=5
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 4.023210001443740E+01
b = 9.726190073776058E+00
c = 3.296228210549058E+00
Standard Error : 1.911441733256013E+00
Correlation Coefficient : 9.921784070452034E-01
Run time : 0.0049 seconds
λ=6
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 4.937829985016278E+01
b = 9.389546386444806E+00
c = 3.298030861201210E+00
Standard Error : 1.475601805220076E+00
Correlation Coefficient : 9.967759824414489E-01
Run time : 0.0045 seconds
λ=7
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
98
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 5.180392255621111E+01
b = 1.016873068538634E+01
c = 3.859224020937584E+00
Standard Error : 3.469219121565799E+00
Correlation Coefficient : 9.838821707162396E-01
Run time : 0.0025 seconds
λ=8
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 6.669069181229767E+01
b = 9.745413916316956E+00
c = 3.295814455829923E+00
Standard Error : 2.241793292643348E+00
Correlation Coefficient : 9.961342385661439E-01
Run time : 0.0031 seconds
λ=9
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 7.102122246097127E+01
b = 1.029821570822472E+01
c = 3.536297704461834E+00
99
Standard Error : 3.733086867023691E+00
Correlation Coefficient : 9.903385254893218E-01
Run time : 0.0057 seconds
λ = 10
Autoscaling graph Top Results...
Distributing the calculation over 4 cores...
Final Result [Miscellaneous/Gaussian Model]:
Equation : a*exp(-(x-b)ˆ2/(2*cˆ2))
a = 8.100872758386177E+01
b = 9.721720331324763E+00
c = 3.282548517071222E+00
Standard Error : 4.146295601169974E+00
Correlation Coefficient : 9.909119046119099E-01
Run time : 0.0034 seconds
100
Appendix C
101
load config
–testnet \
–remote \
–remote-limit-api removeNeighbors \
–mwm $mwm \
–milestone-start $milestoneStart \
–milestone-keys $depth \
–snapshot /snapshot.txt \
–config /iri.ini \
–max-depth 1000 $@
102
ubuntu@tangle-iri-node20: /compass/docs/private tangle$ cat iri.ini
[IRI]
API HOST = 10.12.7.43
TCP RECEIVER PORT = 15600
UDP RECEIVER PORT = 14600
NEIGHBORS = udp://10.12.XX.XX:14600 ... udp://10.12.XX.XX:14600
ZMQ ENABLED = true
ZMQ PORT = 5555
REMOTE LIMIT API = “removeNeighbors”
103