IOTA does not work according to the traditional blockchain technology, but works with the innovative concept of a “Tangle”. The Tangle is the distributed ledger in IOTA. It contains the current transaction history. The Tangle is the single source of truth. Any client around the world can send valid transactions to a Node. This transaction is replicated throughout the network to form this single version of the truth.
IOTA architecture includes the following basic components:
- Clients: Users of an IOTA network (wallets, apps, etc.) that send transactions to nodes to attach to the Tangle.
- Nodes: Connected devices responsible for ensuring the integrity of the Tangle. These devices form an IOTA network.
- Tangle: An attached data structure (public ledger, main ledger), which is replicated on all nodes in an IOTA network. All data in the Tangle is stored in objects called transactions. When a transaction is attached to the Tangle, it cannot be changed and is immutable.
In mathematical terms, the Tangle is a Directed Acyclic Graph – DAG.
A set of transactions is connected by paths, this is a graph
Each of these paths has a unique direction, so it is a directed graph
If a path can never be found that returns to its starting point, the graph is acyclic (circular paths would be cyclic)
In the image above, we can see what the Tangle looks like. In this representation of the graph, the transactions are represented as squares and the arrows (called Edges) between the transactions are references. On the left side of the graph are the older transactions, while on the right side of the graph there are the newly attached transactions.
Transactions validate up to eight previous transactions. They can be in one of three different states:
- Confirmed (green): Transactions are considered confirmed if they have been directly or indirectly referenced by all tips (gray). There is consensus on these transactions.
- Pending / unconfirmed (white): These are transactions waiting to be confirmed.
- Tip (gray): Tips are newly attached transactions that have not yet been referenced by other transactions.
In a highly simplified manner, the transaction process proceeds in five steps:
- Create transaction: With recipient address, sender, value and optionally with a message.
- Sign: By means of the private key (seed) the transaction is signed. This confirms that one is the owner of the entries made.
- Tip selection: A node selects up to eight randomly unconfirmed transactions (tips) to be referenced in the new transaction.
- Proof of Work: This is only needed for spam protection and not for consensus. Anyway, some work has to be done now and a small arithmetic problem (nonce) has to be solved. In addition, the tips assigned to you are checked to see if the account is sufficiently covered or if there are conflicting transactions.
- Execution: The finished transaction is finally sent to a node, which then distributes it in the network to all its neighbors (other nodes). Someone else will now come and in turn get your transaction assigned in the “tip selection”, check it and thus confirm your transaction.
Blockchain Data Structure
The blockchain data structure consists of a chain of sequential blocks, with each block containing a limited number of transactions. Consequently, new transactions can only be appended at one point: A block at the end of the chain. Because of this limitation, blockchain networks often experience slow confirmation times. This limitation is referred to as the blockchain bottleneck.
Tangle Data Structure
The Tangle data structure is a directed acyclic graph (DAG) where each transaction is attached to up to eight previous transactions. Instead of being limited to a single place to append new transactions, you can append transactions anywhere in the Tangle, resulting in a chaotic order in which all transactions run in parallel. This way of working will allow for scaling upwards in an open-ended way, as the number of transactions increases, so do the confirmation rates, rather than going exactly in the opposite direction, as is currently the case with classic blockchains.
Tangle Data Flow
Each component can be viewed as a black box, and interaction between them occurs via events. More specifically, the data flow starts with either the GossipMessages or the MessageFactory. Then the parser takes care of validating the structure of the messages. The storage component stores the messages and their metadata in the DB and creates the tangle structure. The solidifier makes sure that all missing messages are requested and ensures that the tangle grows monotonically with respect to the timestamps of the messages.
The scheduler plans messages, which then go into the booker and are posted. When a message contains a transaction as a payload, the Booker performs a series of checks (e.g., signature validity, balance validity, duplicate issues) and posts the transaction to the appropriate reality. The OpinionFormer determines the message and payload opinion with FCoB and performs reconciliation on FPC (statements) if necessary. Finally, depending on the result of the message opinion and the past-related status of the message, liked (liked) messages are added to the weak or strong Tip Set.
Last Updated on 13. April 2021