Metamorphic IOTA

07/08/2019 ∙ by Gewu Bu, et al. ∙ 0

IOTA opened recently a new line of research in distributed ledgers area by targeting algorithms that ensure a high throughput for the transactions generated in IoT systems. Transactions are continuously appended to an acyclic structure called tangle and each new transaction selects as parents two existing transactions (called tips) that it approves. G-IOTA, a very recent improvement of IOTA, targets to protect tips left behind offering hence a good confidence level. However, this improvement had a cost: the use of an additional tip selection mechanism which may be critical in IoT systems since it needs additional energy consumption. In this paper we propose a new metamorphic algorithm for tip selection that offers the best guaranties of both IOTA and G-IOTA. Our contribution is two fold. First, we propose a parameterized algorithm, E-IOTA, for tip selection which targets to reduce the number of random walks executed in previous versions (IOTA and G-IOTA) while maintaining the same security guaranties as IOTA and the same confidence level and fairness with respect to tips selection as G-IOTA. Then we propose a formal analysis of the security guaranties offered by E-IOTA against various attacks mentioned in the original IOTA proposal (e.g. large weight attack, parasite chain attack and splitting attack). Interestingly, to the best of our knowledge this is the first formal analysis of the security guaranties of IOTA and its derivatives.



There are no comments yet.


page 1

page 2

page 3

page 4

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Introduction

Bitcoin blockchain technology created a new design philosophy for executing and storing transactions in a decentralized and secure fashion [1]. A blockchain is a distributed ledger that mimics the functioning of a classical traditional ledger (i.e. transparency and falsification-proof of documentation) in an untrusted environment where the computation is distributed. The set of participants to the system are not known and it varies during the execution. Moreover, each participant follows his own rules to maximize its welfare. Blockchain systems maintain a continuously-growing list of ordered blocks that include one or more transactions that have been verified by the members of the system, called miners. Blocks are linked using cryptography and the order of blocks in the blockchain is the result of a form of agreement among the system participants. Participants strongly agree only on a prefix of the blockchain, the suffix of the blockchain may be different from one participant to another.

Bitcoin technology and similar proposals (e.g Ethereum) came with several drawbacks that prevent them from being used as standard for IoT industry. In the field of IoT the main attributes that are concerned are the speed, scalability, and energy costs; all of which Bitcoin suffers from as limitations. Hence the introduction of IOTA [2] designed specifically for the IoT industry. IOTA is a DAG (Directed Acyclic Graph) based distributed ledger, also known as the tangle, aimed to overcome limitations of Bitcoin when used in IoT environment while preserving equivalent security levels. IOTA uses tip selection algorithms for new transactions to approve two previous transactions. IOTA suffers from certain limitations in terms of security and fairness with respect to approved transactions. Therefore G-IOTA [3] was proposed as a new tips selection mechanism that combines a confidence fairness aware tips selection algorithm and a mutual supervision mechanism.

In this paper we introduce a new approach, E-IOTA, that aims at maximizing the fairness level in tip selection by approving left behind tips, and improving confidence within the main tangle. E-IOTA randomizes tip selection to reduce computational costs, as well as reduces left behind tips, and increases the security level of the tangle by avoiding a deterministic (predictable) tips selection algorithm (TSA). This makes the TSA and the tangle unpredictable for attackers. The algorithm creates a metamorphic main-chain that is as resistant to splitting attacks as IOTA and G-IOTA while reducing the costs of tip selection and hence preserving the energy of the nodes maintaining the tangle.

The organization of this paper is as follows. Section II introduces IOTA and G-IOTA and identifies their drawbacks. Section III proposes E-IOTA that is designed to overcome the drawbacks of both IOTA and G-IOTA tangles. Section IV focuses on the security analysis of E-IOTA. Section V discusses the process of evaluation and testing of E-IOTA and provides the performance analysis and the comparison between the IOTA, G-IOTA and E-IOTA tangles. Section VI concludes the paper and discusses future research directions.

Ii Background on IOTA and G-IOTA

In this section we present the design details of the IOTA system. Furthermore we focus its drawbacks and describe the improvement G-IOTA and its drawbacks respectively.

Figure 1: tangle example

Ii-a Tangle

IOTA is a tangle-based distributed ledger. Unlike a standard blockchain it is a DAG where transactions are appended once verified. The genesis is the first and single transaction of the tangle. In the beginning of the tangle, there is an address with a balance that contained all of the tokens, in other words the genesis contains all the tokens that would be later on distributed to the network. The genesis transaction sent these tokens to several other founder addresses, addresses that are owned by the original investors of the IOTA project.

The transaction of the label G in Figure 1 is the genesis transaction of the tangle. The white boxes are approved transactions and the gray boxes are the unapproved transactions or tips. The tangle is characterized by its height (the length of the longest oriented path to the genesis) and its depth (the length of the longest reverse-oriented path to some tip). Each square on the DAG in Figure 1 represents a transaction on the tangle numbered from 1 to 14. When a transaction is generated in the network, two previous transactions must be approved. This approval is represented by arrows in Figure 1. To illustrate, transaction 6 approves previous transaction(1) and transaction(3), so that it can be considered to be a valid transaction. Transactions can either directly or indirectly approve other transactions. A direct arrow between two transactions, for example transaction(6) and transaction(3), would be classed as a direct approval. If there is no direct arrow, but there is a path of lenght at least 2, as represented between transaction(9) and transaction(3) for example, then transaction(9) would be considered as an indirect approval of transaction(3). Newly issued transactions with no approvals are called tips. In order to best determine which two transactions to verify, IOTA uses what is called a tip selection algorithm (TSA) which will be further discussed in Section II-B.

Ii-B Tsa

The tip selection algorithm in IOTA tangle works on the basis that every incoming transaction has to approve two old transactions. In order to achieve that a walker is generated to traverse the tangle in a direction opposite of the path vectors based on a transition function until it reaches a tip. In the IOTA white paper

[2] it is stated that an number of walkers are generated with every incoming transaction and race towards the tip, the first walker to reach a tip is the one to confirm it. In this paper for simplicity the N number of walkers is fixed to , where there is no race between walkers, but rather one walker gets to traverse the path reaching a tip and confirming it. Taking into account that two old transactions need to be confirmed, therefore two walkers are generated asynchronously to reach these two tips using tip selection algorithms. IOTA’s tip selections are categorized as follows:

[font= ]

Uniform Random TSA

The uniform random tip selection algorithm is the simplest to implement since it chooses the two tips uniformly at random. The walker chooses paths with equal probabilities until it reaches a tip.

Logarithmic Markov Chain Monte Carlo TSA

With this algorithm, the number of children is more important than their weight [4].i.e. the TSA prioritizes the chain with a higher number of children, rather than that with a higher weight.

Weighted Markov Chain Monte Carlo TSA

This represents the main focus and being the most secure approach [5]. The details of this selections mechanism are provided below.

The weight of a transaction is directly correlated with the amount of work put in by a node in issuing it, for simplicity it is assumed that the weight of the transaction in this paper is fixed to 1. Transactions can also have what is known as a cumulative weight. Cumulative weight is the weight of a particular transaction plus the sum of the weights of other transactions that directly or indirectly approve it, for example in Figure 1 transaction(8) would be considered to have a cumulative weight of itself plus the weights of transaction(13), transaction(11), and transaction(12); hence the cumulative weight of transaction(8) would be equal to 4.

The Weighted TSA starts by initially putting a fixed number of walkers on the local DAG. Each walker performs a random walk towards the tips of the DAG with a probabilistic transition function that depends on the cumulative weight of the site it is located to and its children. The more cumulative weight a next transaction has, the higher probability the random walker will go to it. Weighted Walk has a configurable parameter to control the effectiveness of the cumulative weight [2], it is a parameter that determines the level of randomness the walker undergoes while choosing paths between chains. With a high , even if the cumulative weights of two transactions have a small difference, the transaction with a bigger cumulative weight will have a higher probability to be chosen by the random walk. On the other hand, if is small, even if the cumulative weights of two transactions have a big difference, they have almost the same probability to be chosen by the random walk.

Ii-C Confidence

As a transaction receives additional approvals, its cumulative weight respectively grows making it more eligible to be chosen, hence within the tangle it is considered to have a high level of confidence. This helps in providing a more secure tangle by making it more difficult for the system to accept a splitting attack. In a splitting attack, the attacker generates two conflicting transactions attached to previous transactions.

It was stated in [2] that no rules are imposed for choosing which transactions a transaction will approve. In order to issue a transaction, a node that wants to insert a new transactions does the following:

  • the node chooses two other transactions to approve according to a tip selection algorithm. In general, these two transactions may coincide.

  • The node checks if the two transactions are not conflicting, and does not approve conflicting transactions.

  • For a node to issue a valid transaction, the node must solve a cryptographic puzzle similar to those in the Bitcoin blockchain, in IOTA it is known as a proof-of-work approach where each node has to contribute to a small amount of work in the network by solving a light cryptographic puzzle. This allows them to issue transactions and add to the weight of the chain which increases security to the network.

A conflicting transaction is when a node manages to pass the same transaction twice in the chain, similar to a ”buy one get one free” scenario where a client only pays for one item but gets two in return. The tangle then splits the chain to discard one of the conflicting transactions. Once the chain is split this gives the attacker the chance to flood both chains with other transactions keeping the weight of both chains balanced. This creates two validation paths where each transaction resides, and with this both transactions would be considered valid and non-conflicting.

The main rule that the transactions use for deciding between two conflicting transactions is the following: a node runs the tip selection algorithm many times, and sees which of the two transactions is more likely to be indirectly approved by the selected tip. For example, if a transaction was selected 97 times during 100 runs of the tip selection algorithm, we say that it is confirmed with 97% confidence [2].

Ii-D Drawbacks

Ii-D1 Iota

IOTA suffers from a trade-off problem of having a high that leaves too many tips that do not receive confirmation in the tangle, or a low that makes the tangle susceptible to attacks. As for left behind tips incoming transactions might disregard older transactions and approve newer ones, this taking into account lazy transactions that would approve closer transactions to avoid getting involved in heavy computations. This leaves many potential honest transactions forgotten and unapproved in the tangle that would later on get truncated. The best approach to reach all the tips in the tangle is by applying a uniform random walk since each point in the tangle has the same probability of being approved. This gets to question security, since a splitting attack would be easier to execute at that point, hence the need for the weighted MCMC walk. That approach would execute on certain paths with higher weights, and disregard other paths that might contain honest tips which would end up getting truncated. IOTA in order to achieve equilibria has to both be able to approve the majority of the tips while maintaining the security of the tangle [5]. With a high value of , we acquire more left behind tips, and with a low value of we acquire a more vulnerable tangle to splitting attacks.
In terms of energy conservation and efficiency, a tangle of which its TSA performs weighted walks of a high value of requires computation of the weights of each path in the chain; this would require higher energy in the tangle that would deem the tangle not too suitable for IoT transactions. This interferes with the concept of speed and energy efficiency on the scale of thousands of micro-transactions per second.
In terms of security the types of mitigation that IOTA implements to delude any types of malicious transactions entering the network require transactions being able to follow the path of the longest weighting chain. The more honest transactions the chain contains the higher the probability that they would approve other honest transactions. In order to achieve that the tip selection algorithm has to maintain a high that would be able to distinguish between the weights of chains and pick the chain with the higher weight since it represents a higher confidence. An attacker in order to achieve a splitting attack would require splitting the chain at a certain time instant and maintaining the balance between the two chains with the probabilistic Uniform Random walk, since a transaction has the same probability on traversing on either side of the chain. In the studies of Bramas [4], an IOTA tangle is susceptible to a splitting attack regardless of its TSA with the argument that later on a TSA would become deterministic, which refutes the reliability of the weighted tip selection algorithm.

Ii-D2 G-Iota

G-IOTA allows honest transactions in a tangle to increase their confidences evenly and quickly to meet the requirement of high confidence fairness [3]. Implicitly, this way, no honest tips and transactions will be left behind during the growth of the tangle. Transactions with low confidence for a relatively long time can be considered as fake transactions.

G-IOTA is based on the weighted MCMC TSA. In addition, a Left-behind Tips Protection mechanism is integrated that allows tips that have been left behind regain the opportunity to be approved by incoming tips, which further decreases the transactions left behind. The new tips selection algorithm chooses not only two tips as the classical IOTA but may choose an additional tip, which is a left-behind tip in the tangle. That allows increasing the fairness in terms of transaction confidence for all honest transactions in tangle and guarantees the first approval for all honest tips.
Although the approach of G-IOTA tackles the issue of left behind tips that IOTA faces, the implementation of a third tip selection algorithm makes a transaction take more time and require more computation to reach approval in the tangle. This approach deviates from the purpose of an IoT based crypto-currency since it defies speed and energy efficiency more than that of the original IOTA.

Iii E-IOTA detailed description

This paper proposes E-IOTA a new approach for tackling left behind tips and maintaining high confidence levels in the tangle, see Algorithm 1. E-IOTA has as input three tip selection algorithms. Only one of these tip selection algorithms gets chosen randomly by a node with a certain probability each time it has to issue a transaction and a walker is generated. This would maintain balance in keeping a low for tip confirmation, and high in phases to contribute to the longest main chain which mitigates attacks. Tip selection algorithms input of E-IOTA are as follows:

  1. Weighted walks a relatively high , with probability , making it very probable for the walk to go in the path of the weighted chain.
    Pros: limits the probability of an attacker being able to accomplish a successful splitting attack.

  2. Weighted walks of a median , with probability to lower the probability of going through a more highly weighted chain but rather give chance to confirm tips on other chains.
    Pros: Changes the main chain direction to deviate from a deterministic path and eliminate an attacker’s predictability of the tangle.

  3. Uniform random walks () with probability to roam to all sub-tangles and approve any left behind tips.
    Pros: Requires low computation where paths are probabilistically equal, this approach reduces computation demand in the tangle. It also maintains a high confirmation rate in the tangle by being able to explore all unapproved transactions.

where .

%Two specific parameters for the algorithm are and , such that ; is a natural number.
%Each time when a node needs to chose a tip from the local tangle as the parent of its new transaction, it draws a random number .
if  then
       generates uniform unweighted random walkers as TSA.
else if  then
       generates weighted random walkers as TSA with a low value.
else if  then
       generates weighted random walkers as TSA with a high value.
Algorithm 1 E-IOTA executed by a node

E-IOTA reduces the need for the third walk proposed by G-IOTA, tackles the problem of left behind tips in IOTA, and reduces energy and computational power in the tangle making it more efficient. Section V describe the numerical results while running E-IOTA with specific values for and .

Iv E-IOTA Security Analysis

In this section we give a formal security analysis of E-IOTA. We look into all three mentioned attacks in the white paper of IOTA [2]: Large Weight Attack, Parasite Chain Attack and Splitting Attack. We prove that our fairness and effectiveness aware E-IOTA resists all of mentioned attacks.

Iv-a E-IOTA modelling

According to the description of E-IOTA in section III, we define a model. We assume that the total average honest transaction rate is , that means that in a given time interval between , transactions sent by honest users in the system will be in the tangle. For all transactions that entered during , approvals are added into the tangle and approve old transactions already in the tangle. Among all these approvals, we can distinguish them into three classes:

1) percentage of them are chosen by Uniform Random Walks , where i.e. all possible next hops have equal probabilities to be chosen by random walkers. To simplify, we assume that all the tips will be chosen as parents by new coming tips with equal probability.

2) percentage of them are chosen by Weighted Random Walks with a relatively low random , denoted by . With , random walkers will more likely to go to the next hop having higher cumulative weight, but others hops with less cumulative weight still have chance to be chosen.

3) percentage of them are chosen by Weighted Random Walks with a high , denoted by . With , random walkers go the next hops with the highest cumulative weight, with high probability.

Following the above classes, we consider that the in E-IOTA is a combination of these three s. The quantity of incoming approvals during a period of time, , therefore consists of three types of approvals: , approvals comming from tips chosen by unweighted random walks; , computed from weighted walks with , and computed from weighted walks with . We assume that approvals sent come to the network during time interval , will appear into the tangle in the time interval due to the network delay. Approvals come during the therefore will not affect each other, because they are not yet in the tangle. Each type of approval comes into the tangle therefore independently and only depends on the tangle in time . According to the percentages of three s, the can be defined as:


By defining we proceed to analyse the three attacks.

Iv-B Large Weight Attack

Description and Aim A large weight attack, shown in Figure 2, occurs when an attacker tries to generate a ”heavy” transaction, , which conflicts with that of a previous transaction , taking into account transaction has already been approved by several transactions and is considered as confirmed. That means money in is spent successfully. These two conflicting transactions do not belong to the same verification path. In this way an honest new coming transaction would not be able to approve both of them simultaneously. The attacker hopes that among new coming , more approvals will approve than in the future, so the users will consider that is the correct transaction rather than , so that the attacker can reuse the same money one more time, known as double spending.

Figure 2: Large Weight Attack

Assumption In this case, we assume that has more approvals than at the beginning of the attack, as the transaction is just published onto the tangle and has not received any approval yet. Also we assume that has at least more than one tips approving it, because was already in the tangle for a while and received several approvals. Implicitly, has higher cumulative weigh than .

We also take the assumption from the white paper of IOTA [2] by limiting the maximal weight for any transaction. So that all transactions will have the same ”heaviness”. That means the attacker can only publish his transaction with the maximal allowing weight as same as others instead of sending a super ”heavy” priority transaction.

Proof For the , they will more likely approve rather than , as has more tips approving it than and each tips has equal probability to be chosen. Also as has higher cumulative weight than , most of and will therefore approve rather than . Therefore, in this case, all of the three types of , will more likely to approve and to continue increasing the cumulative weight of . That means, as time passes attacker’s transaction has no chance to have more approvals than .

Hence the large weight attack will not work in E-IOTA.

Iv-C Parasite Chain Attack

Description and Aim Parasite chain attack scenario is shown in Figure 3. An attacker generates a sub-tangle (also called parasite chain) offline secretly. We indicate a transaction at the very beginning of this sub-tangle. approves transactions on the main tangle. After a time , the attacker publishes a transaction into the main tangle conflicting with the transaction in the sub-tangle. The attacker continues working on the sub-tangle offline for a while making sure that the sub-tangle has as many as possible available tips to be chosen by random walkers. At the same time, may get several approvals in the main tangle and is confirmed (money spent). Then the attacker publishes his secret chain online and hopes that the more approvals in will approve than in the future to launch the double spending.

Figure 3: Parasite Chain Attack

Assumption In this case, we assume that the computational power of the attacker is smaller than that of the honest users spent for publishing transactions. We also assume that the transactions approving in the sub-tangle are far more than that for as to show the worst case scenario present in [4]. Because although the computational power of honest users is higher than that of the attacker, it does not imply that all approvals from honest users will approve , whereas on the other hand, all the computational power of the attacker will be used to generate approvals for .

And also, we assume that all the transactions have the same weight.

Proof As has more available tips, will more likely approve than . In the worst case, we assume that does not receive any approval from with high probability. Hence most part of will approve . However, as the computational power of the attacker is smaller than that of all honest users, the cumulative weight of sub-tangle published into the main tangle can not be higher than that of the main tangle after the time . All the will therefore approve the main tangle, rather than the sub-tangle with a high probability. This implies that will not approve . As long as the main tangle maintains a higher cumulative weight after the attacker attaches the sub-tangle, the new approvals from and will continue to contribute to the main tangle rather than the sub-tangle. Therefore, as long as , which means the percentage of weighted walkers is higher than that of the unweighted random walkers, we can make sure that the majority of approvals contribute to the main tangle. will always receive more approve than .

Hence the parasite chain attack will not work in E-IOTA as long as .

Iv-D Splitting Attack

Description and Aim In the splitting attack, shown in Figure 4, an attacker will try to keep the balance of cumulative weights between conflicting branches. The conflicting branches can be generated by publishing two conflicting transactions, so that incoming transactions can only approve one of them. An attacker tries to maintain balance between the conflicting branches by publishing transactions to both branches while keeping them of almost similar weight. In this case the attacker will be able spend the same money in both conflicting branches.

Figure 4: Splitting Attack

Assumption We assume that the computational power of the attacker is of the total power of all the honest users spent for publishing transactions. And for this scenario, we assume that a splitting attack succeeds if the attacker has at least the same computational power as that of the computational power difference between honest users approving these two branches. Hence the attacker has to maintain the balance between the branches, in order to do so the attacker publishes his transactions to the branch that most of honest users won’t approve, and hope that he can generate more approvals to keep the balance of cumulative weight between these two branches.

And also, we assume that all the transactions have the same weight.

Proof The key problem represents itself in what is the maximal allowed % an attacker can have, so that E-IOTA can still mitigate the splitting attack. We know that among the , of them will go to the branch with higher cumulative weight with high probability. We can therefore say that if then, no matter how hard the attacker tries, he can not generate more transactions for the branch with the lower cumulative weight, than the transactions generated by honest users towards the branch with the higher cumulative weight. This creates a significant difference between the weights of the branches with the weight of the branch that retains to the honest users remaining greater than that generated by the attacker. Hence, even approvals from are most likely to approve the heavier branch. The attacker therefore can not keep the balance between these two blanches.

The splitting attack therefore can not succeed as long as the .

Note that to resist the lazy or cheating user mentioned in white paper [2], a Mutual Supervision mechanism proposed in G-IOTA [3], can be added to E-IOTA to solve the problem.

V Performance evaluation

V-a Performance Evaluation Settings

The main focus of this study is the comparison and analysis of IOTA, G-IOTA, and E-IOTA respectively. In the following we consider the same parameters as proposed for the evaluation of IOTA in [6]:

[font= ]

IOTA running on a weighted MCMC TSA with

G-IOTA running on a weighted MCMC TSA of

VISA transaction network can process 2000tps [7]; Therefore the three tangles were modeled to generate 2000tps reaching 8000 transactions.

For the E-IOTA algorithm described in Section III the tips selections run with the following values for the parameters (these parameters show the best results for E-IOTA):

  1. Weighted walks with at probability , making it very probable for the walk to go in the path of the weighted chain. We recall that this limits the probability of an attacker being able to accomplish a successful splitting attack.

  2. Weighted walks of a median of random value between 0.1 and 2 to lower the probability of going through a more highly weighted chain but rather give chance to confirm tips on other chains. This eliminates the eventuality for an attacker to predict the tangle.

  3. Uniform random walks of with probability to roam to all sub-tangles and approve any left behind tips.

The three tangles (IOTA, G-IOTA and E-IOTA) are evaluated using the following metrics:

[font= ]

Number of approved transactions

Number of tips

Confidence levels above 95%

Number of Walks needed to reach the number of approved transactions

Simulation Speed

In our experiments clients run node.js v10.15.3 on Fedora 29 (x86-64) to generate the tangles IOTA, G-IOTA, E-IOTA respectively. We ran the experiments on three identical physical machines each using a different tangle, each machine equipped with:

[font= ]

Quad Core model: Intel Core i7-2600 processors running at 3.40 GHZ

Intel corporation 2nd generation Core processor Family integrated Graphics Controller


The approach of having three identical machines is to be as unbiased as possible with the experimentation. This would assure that the three tangles are equally given the same computational power, and speed without giving the advantage to any. Calculating confidence between conflicting transactions would suggest running the random walk several times to determine the higher confidence between these transactions, and each transaction weight is given a fixed value of 1.


Figure 5: Number of approved transactions

V-B Performance Evaluation Results

The simulations for IOTA, G-IOTA, and E-IOTA were run 5 times respectively and the averaged results were taken.


Figure 6: Number of tips


Figure 7: Number of transactions with Confidence higher than 95%


Figure 8: Number of walks in the tangle


Figure 9: Number of walks that require computation


Figure 10: Time elapsed for experiment

In the following we analyze the results of the experiment on the tangles of IOTA, G-IOTA, and E-IOTA. The high number of tips is to be taken into account that with a speed of 2,000tps reaching 8,000 transactions the last 2,000 transactions are most likely to be regarded as not approved yet in all three tangles. Therefore are considered as tips that managed to enter the network last. The analysis manages to differentiate between IOTA, G-IOTA, and E-IOTA respectively based on the number of approved transactions, the number of left behind tips, the needed walks to reach theses approved transactions, the needed computation, and the time elapsed for each tangle to reach these results.

V-B1 Number of approved transactions

In this section we compare the number of approved transactions for each tangle. Figure 5 presents the number of approved transactions for the three tangles. The number of approved transactions for E-IOTA presents the highest value of 4,177 approved transactions whereas IOTA has only 1,865. The main reason as to why IOTA has a low approval value is due to the value of 5. That would require walkers in the tangle to almost certainly go through the same paths disregarding other paths that contain transactions that have not been confirmed yet. In E-IOTA the option of exploring other paths exists which shows with the high number of approved transactions.

V-B2 Number of tips

The number of tips as shown in Figure 6 represents the lowest number of left behind retaining to E-IOTA 3,823 whereas the highest to IOTA of value 6,135. This is similar to the previous section as to due to the value of 5 in IOTA a lot of transactions are not explored and end up becoming left behind. The probabilistic tip selection algorithm in E-IOTA with or even the values between 0.1 and 2, gets to reduce this problem by traversing different paths and confirming the tips resulting in a low value of tips with E-IOTA.

V-B3 High confidence levels

With respect to confidence levels higher than 95% the values in Figure 7 show almost equal confidence levels for all three tangles. This represents a positive outlook on the aspect of security for maintaining high values of to be able to mitigate splitting attacks. E-IOTA produces an at a probability of 0.35, which helps it remain to preserve equal confidence levels in the tangle as compared to IOTA and G-IOTA.

V-B4 Number of Walks needed to reach the number of approved transactions

The number of walks in the experiment represents the needed number of walks it took to reach the number of confirmed tips in IOTA, G-IOTA, and E-IOTA respectively.

Figure 8 represents the number of walks of each of the tangles. The three tangles get to produce an equal number of walks of value 15,998. Comparing with figure 5, IOTA managed to get 1,865 approvals ,G-IOTA managed to get 3,836 approvals, and E-IOTA managed to get 4,1177 approvals with these 15,998 walks. Figure 9 represents the number of walks that required computation of the weight of the tangle to reach these results of transaction approval. G-IOTA due to the fact that it manages to choose the third tip randomly, resulted in having equal values as that of IOTA at 15,998 instances the weight of the tangle was computed respectively with the number of walkers deployed. E-IOTA on the other hand only required 14,399 computations on the weight of the tangle due to the fact that some walkers are generated to follow the Uniform tip selection algorithm, which requires no need for the computation of the weight of the tangle. This represents a less need for walks to approve tips in the tangle and less computation for E-IOTA.

V-B5 Simulation Speed

The speed of the experiment plays an important role in IoT micro transactions, the faster the ability to reach a certain point in time, (8,000 transactions in this experiment) is a necessary measurement in this experiment to remain on the context of an IoT based DAG. Figure 10 shows that the least time needed to reach 8,000 transactions was that of E-IOTA with a time of 87 minutes, whereas IOTA came later with 92 minutes, and G-IOTA at 130 minutes. The fact is that IOTA requires a computation of the weight of the tangle each time a walker is deployed consume time. G-IOTA similarly has to do the same but with the added third tip selection which lead to it being the slowest. E-IOTA manages to do so with occasional computation which explains as to why the simulation time for E-IOTA was smaller than that of IOTA, and G-IOTA.

Vi Conclusion and Future Research Directions

In this paper we proposed E-IOTA which acts as a metamorphic tip selection algorithm that takes the advantages of each tip selection algorithm designed previously for IOTA or G-IOTA and runs them probabilistically in the tangle to overcome the drawbacks of both IOTA and G-IOTA. E-IOTA brings into attention the advantages of metamorphic, self-adjusting tangles with respect to previous mono-strategy approaches. Our simulation results show that E-IOTA maintains a significant edge over IOTA and G-IOTA with respect to its performances, while maintaining equal level of confidence and security. E-IOTA manages to tackle the problem of left behind tips that IOTA faces, it also manages to reduce computational energy, and approve more transactions. It manages to maintain the same security levels of that of IOTA and G-IOTA by using probabilistic tip selection mechanisms.

Future research focuses on incorporating game theory, and establishing a self-aware tangle capable of punishing and rewarding nodes based on performance and contribution to the tangle growth. The incorporation of game theory would bring more room to adding functionalities within the TSA. As long as the tangle is self-aware, it would adjust its structure based on its own detection of rising malicious activity in the tangle. Mechanism design techniques can be used in order to punish attackers that would behave maliciously. A malicious transaction would have to play fair or get truncated. Another direction to be explored is to run machine learning algorithms within the tangle in order to make it more self-aware.