# Entangled relationship with 
 Tangle Technology

# The Tangle

The IOTA is a cryptocurrency that was created with
a focus on the Internet of Things to solve the problems
of scalability, control centralization and post-quantum
security that characterizes other cryptocurrencies em-
ploying the blockchain technology. The Tangle is its
key contribution and builds on the concept of Directed
Acyclic Graphs (DAGs) to substitute to blockchains.
In the Tangle each node is a transaction. For a trans-
action to be added to the Tangle it must approve two
other transactions by doing a small amount of “proof-
of-work”. All transactions which have not been yet
approved are called tips. A Markov Chain Monte Carlo
algorithm is used to chose the tips that will be submitted
for approval in the Tangle . Starting from a random
transaction A the algorithm selects another transaction
which approves A with a bias towards the ones with
larger cumulative weight. The algorithm keeps running
until it reaches a tip. Running through transactions with
larger cumulative weight ensures that the most worthy  tips (i.e. the tips with a larger PoW) are chosen to be
approved.
Currently, the Tangle is small in size. Hence, enti-
ties with malicious intents and sufficient computational
power when compared to other users can carry out
attacks such as double-spending transactions. In this
type of attack, the attacker creates two different out-
going transactions in the same timeframe in a effort to
spend his total wallet balance two times, effectively be-
coming negative. Using sufficient computational power the attacker could create a considerable amount of
transactions that would directly and indirectly approve the double-spending ones thus rendering them reputable and accepted by the Tangle network. Due to the current
small size of the Tangle anyone with sufficient com-
putational power can carry out attacks such as these.
Therefore, due to this Tangle “Beta” status, the exact
rules of tip selection are not publicly available currently.
A central node called Coordinator is given the role of electing the tips to approve while the Tangle scale is not large enough to guarantee its independent operation.
A transaction approved by the Coordinator is said to
be “Confirmed”. The process of electing tips to approve
occurs with a period of one minute and the result is
a transaction called “Milestone”. This transaction is
similar to any other transaction, i.e., it approves two other transactions, but contains the Coordinator’s signature. A particular transaction is deemed “Confirmed” if the latest Milestone enforces its approval, directly or indirectly (there exists an approval path leading to the
latest Milestone).
Every transaction can carry a message. This allows
for two parties to communicate between each other. The
drawback is, since anyone can see every transaction
in the Tangle this type of communication is not really
feasible when the content must be kept confidential. De-
veloped by the IOTA Foundation, a messaging protocol
was introduced called Masked Authenticated Messaging
(MAM). This protocol uses the Tangle network as one
normally does, communicating by adding transactions,
but with an extra layer of encryption. Messages are
encrypted before adding the transactions on to the
Tangle. In this case only the target party (or parties)
can decode the encrypted message of the appended
transaction.
The next section describes the setup used to conduct
an evaluation of several Tangle key performance param-
eters and documents the obtained results and discussion

## The Setup

 In order to evaluate the transaction writing times in
the Tangle a basic test setup encompassing two nodes
was used: a public node at https://wallet2.iota.town:443
(Node A), hosted in Norway, and a private node (node
B) hosted in a Virtual Private Server (VPS) in Germany.
The latter was connected to the Tangle network using
the CarrIOTA Nelson project.
Regarding the hardware, the private node employs a
4 core Xeon CPU E5-2620 v3 running at 2.40GHz, with
a 12 GB RAM memory and a 300 GB SSD disk for
storage. The hardware specification of the public node
was not available at the time of writing of this paper.
Using the IOTA’s Python API, PyOTA, transactions
with payloads of different lengths were added in order
to assess their influence on the transaction writing time.
An IOTA transaction is characterized by a payload
length of 2187 trytes. If the content to be stored into the
transaction is larger than 2187 trytes, it is segmented in
two transactions added to the Tangle. In our case two
message lengths were considered: u with 1093 trytes
and m with 2405 trytes.
Three different scenarios have been considered re-
garding the Tangle performance: appending transactions
and appending Masked Authenticated Messages. Their
specific testing conditions are detailed bellow:
1) Append transactions to the Tangle: The tests were
conducted in two phases. In the first, a set of 100
trials was conducted and the overal delay of adding
these transactions to the tangle was measured. In the
second phase, also for a set of 100 trials, in order to
better understand the delays experienced at each stage
of the transaction creation, the delay measurement was
segmented in terms of its “tip selection”, “attach to
tangle” and “broadcast” operations.
2) Append MAMs to the Tangle: The tests were con-
ducted for a set of 100 trials by measuring the overall
delay of appending a Masked Authenticated Message
to the Tangle segmented in terms of its “encoding”,
“tip selection”, “attach to tangle”,“broadcast” and “get
message” operations.
