IOTA Tangle Graph from http://www.tangleblog.com
Hello blockchainer! Today’s topic is an enhanced mutation of blockchain — The Tangle of IOTA.
This post serves as a very beginner-level overview of the crypto with 9th largest market cap , IOTA. All the graphs and contents are fully credit to IOTA’s white paper.
A speech with topic of IOTA Tangle and Cryptographic Vulnerabilities, delivered by two friends of mine (Alan Yip and Martin Shin) and me, is ready on Youtube: IOTA Tangle and Cryptographic Vulnerabilities
Due to the rapid growth of IoT (Internet of Things), the demand for micropayment inevitably lifted off. As you might recall, Bitcoin was devised toward the goal of solving the needs of micropayment, but it turned out to be infeasible in two reasons:
Whereas, IOTA Tangle puts forward a better solution.
It replaces Blockchain with a DAG (directed acyclic graph), called Tangle. Figure 1 shows a typical DAG.
Figure 1: Directed Acyclic Graph (from http://ericsink.com/)
Tangle is made of sites and nodes:
Sites are a part of the Tangle graph, containing one or some transactions that relate together. Nodes are the users of IOTA who are eligible to issue transactions.
Key Rule: A newly issued transaction is obligated to approve TWO old transactions. Yes, two.
The responsibility of approving the new transactions belongs to everyone, specifically, the transaction issuers. It removes the special role of miners and brings equality back to all users. NO MORE MINERs!
There are two ways that transaction A can be approved by transaction B. One way is that transaction A is directly approved by transaction B.
Figure 2: Direct Approval of Transaction
Second way allows some transactions (e.g. X, Y) to be placed in between, linking up the indirect relationship of A and B as followed:
Figure 3: Indirect Approval of Transaction
Genesis transaction is the first transaction in Tangle:
In the early stage, there is NO such rule for choosing transactions to approve. Nodes are assumed to follow some reference rules since they are usually local devices that belong to the same regions.
Tip is a newly issued transaction that has not received any approval. An algorithm called tip selection algorithm is used to solve conflicts. It runs many times to check which transaction, of the two conflict transactions, is more likely to be approved by a selected tip.
Tangle can tolerate conflicting transactions that popped up asynchronously. It believes that any incorrect transaction would be automatically orphaned, or erased, as Tangle keeps on growing.
A node will be dropped by its neighbor, when it shows laziness toward propagating transactions. The incentive keeps all nodes working, though they don’t issue transactions that frequent.
All the following terms are defined as essential attributes of a transaction. Let’s call it transaction A.
Weight (Own weight): The weight of transaction A is proportional to the effort put in by its issuer, which can be assumed to be 3^n.
Cumulative weight: Transaction A’s own weight + the sum of own weights of all the followed transactions that directly/indirectly approve transaction A. (E.g. In figure 4, transaction D has own weight as 1, and cumulative weight as 6 = D’s own weight + A’s own weight + B’ own weight + C’s own weight = 1 + 1 + 3 + 1.)
Figure 4: Weights (from IOTA white paper). Own weights at right-bottom. Cumulative weights at left-top, as bold.
Score: Transaction A’s own weight + the sum of own weights of all previous transactions approved by transaction A. (E.g. In figure 5, transaction A has score as 9 = A’s own weight + B’s own weight + D’s own weight + F’s own weight + G’s own weight = 1 + 3 + 1 + 3 + 1.)
Figure 5: Score (from IOTA white paper). Score at left-top, in the circle.
Height: The length of the longest oriented path to the genesis.
Depth: The length of the longest reverse-oriented path to certain tips.
For instance, in figure 5, the height of D is 3 (D → F → G → genesis), and the depth of D is 2 (D ← B ← A).
Let’s assume the average time of issuing a transaction is time H.
Cutset is a group of tips alive at timespan between time t and time t + time H, with the following definition:
The load of Tangle determines its efficiency, feasibility, and security.
Low load:
High load:
Figure 6: Low Load and High Load (from IOTA white paper).
In high load, an unapproved transaction can be missed out, and no longer have the chance to be approved.
The speed of growth of the cumulative weight of a given transaction can be examined in two different load contexts:
Figure 7: Growth speed of cumulative weight for a transaction in high load environment (From IOTA white paper).
Stay tuned! This section is to be discussed in the next post soon. :)
From the white paper, it can be seen that IOTA Tangle deviates from blockchain and creates its own way of selecting and approving transactions. There is no more miners, and no more blocks. As a DAG implementation, lots of interesting statistics can be computed by nodes to have more insights of its neighbors and the network itself.
Aside from the benefits and drawbacks of IOTA, there are far more to be discussed about the potential threats that might overthrow the rosy prospect, and the possible countermeasures that could save it from ruins. Nevertheless, the invention of IOTA still proves its worth.
To delve into the details and mathematics, IOTA white paper is here to help!
Thanks for your time! Please leave some applauses if you like the post. ;p
Feel free to correct me if I got anything wrong. Leave your comments~