Gm to my fellow blockchain enthusiasts!
Recently there has been some chatter circling the release of IOTA’s staging network Shimmer. It’s my guess that many of you are unfamiliar with the Shimmer network; some of you might even be wondering, “what the heck is IOTA?” If you fall into one or both of these categories, you’re in luck! This series will cover all the relevant information regarding IOTA, the Shimmer launch, and what makes these networks unique.
Before we can understand Shimmer, we need to be familiar with IOTA. Part 1 will cover the basics of IOTA technology, and some long-awaited network developments that have only recently begun to materialize.
What is IOTA?
IOTA is a distributed ledger technology (DLT) founded in 2014 and later introduced to the world around mid-2016. Like other DLTs, IOTA maintains a ledger – a record of transactions agreed upon by many independent nodes.
The most recent upgrade to the IOTA mainnet saw IOTA change completely, to an Unspent Transaction Output (UTXO) model. An unspent output is what remains after the execution of a transaction. As opposed to the account model used by Ethereum and most other networks, the UTXO model does not use accounts or balances. In this model, transactions specify the outputs of previous transactions as inputs that are consumed to generate new outputs. The ledger state consists of balances that are associated with transactions, rather than addresses that contain balances. Whenever a value transaction is confirmed, all outputs it spent are deleted from the database and the newly created ones are added.
Other notable networks that use the UTXO model are Bitcoin and Cardano. Click here if you want to dig deeper into how a UTXO model works.
While almost every DLT runs on a blockchain, IOTA does not, rather it operates using a ‘Directed Acyclic Graph’ (DAG), called the Tangle.
A blockchain is an ever growing database that continuously stores records of past transactions inside nodes called ‘blocks’, which are ordered and linked using cryptography.
Blockchains are secured by miners (Proof of Work) or validators (Proof of Stake). These actors are responsible for validating transactions within the network, collectively reaching network consensus and ensuring the network state, and accuracy of a blockchain’s record.
In a blockchain, new transactions can only be attached to a single point (a new block) that follows and is connected to the previous block. Picture a train, with multiple train cars each hooked up in single file on the track.
Each block of a blockchain contains a set of transactions, along with some metadata and other information regarding the miner or validator.
IOTA’s DAG, the Tangle, is a consensus mechanism not bound by the ordering structure of a blockchain. It allows for validation of multiple nodes in parallel, while eliminating the need for miners or validators to achieve network consensus.
In contrast to a blockchain, each individual transaction forms its own node (Tangle nodes are also referred to as sites). Each transaction/node of IOTA’s Tangle has an edge, which connects to two previous transactions. This effectively turns each user that submits a transaction into a miner/validator of their own, eliminating the need for external participants to mine or validate transactions. Without the need for miners or validators, IOTA’s Tangle can operate without any fees or transaction costs, as there is no extra work required and therefore no one to pay for it in exchange.
In order for transactions to validated and confirmed, two things must occur:
- A transaction is only validated once it has approved two previous transactions.
- Each transaction must be, either directly or indirectly, referenced by a ‘milestone’, issued by the Coordinator.
Every transaction approves a preceding transaction by solving a cryptographic puzzle, at which point the validation is successful. Several validations can occur at once, allowing for multiple transactions to be validated in parallel, eliminating the bottleneck caused by the blockchain’s single-file validation process. Unconfirmed transactions are called ‘tips’.
The Coordinator is a trusted client run (currently) by the IOTA foundation. It recurrently issues normal signed messages called milestones, which are used by sites to confirm their messages/transactions as valid. Transactions must be referenced by a milestone in order to be confirmed.
Milestones issued by the Coordinator are currently the backbone of IOTA’s consensus mechanism. A valid message must have consistent history with the rest of the network, and the Coordinator is the deciding factor on which messages are included in the ledger. But the Coordinator has always been a temporary solution in place of a truly decentralized consensus mechanism by which IOTA can securely thrive and scale upon.
In June of 2021 IOTA announced the launch of IOTA 2.0, the answer to the question of “wen decentralization”.
IOTA 2.0 DevNet: Coordicide
The IOTA foundation has been touting the idea of “coordicide” since late 2018, an expression that symbolizes a Coordinator-free IOTA network. After years of hard work, they released IOTA 2.0 Development Network (DevNet): a test network that maintains feeless and secure transactions not dependent on a centrally-run overseeing client.
Developing a truly decentralized procedure for node consensus is not as easy as simply removing the Coordinator. Network nodes must have a system in place for agreeing on what messages to include to the Tangle. The new consensus mechanism involves a voting procedure whereby each node requests the opinion of other nodes in order to reach a conclusion.
The mechanism is quite complicated, and there are a number of variables at play that make it somewhat confusing to the average reader; I will do my best to abstract the system without losing too many important details.
DevNet Consensus Mechanism: GoShimmer
Suppose a situation arises where the network must decide between two or more conflicting events. Without a decision-making coordinator, the network must make a collective and correct directional decision. When conflicts arise, the Tangle divides the separate possible outcomes into “branches” (possible paths to take). The network decision of which path to take involves multiple factors that work together in a cycle, eventually arriving at a decision. The decision factors are as follows, in chronological fashion:
Mana serves two functions: protection against Sybil attacks and congestion control. It is a kind of reputation system alternative to Sybil protection used by Proof of Work (energy) and Proof of Stake (staked tokens).
When a value transaction is processed, the user will pledge a quantity of mana to a specific node ID. The amount of mana pledged is directly related to the amount of IOTA tokens used in the transaction. Mana can be thought of as “Delegated Proof of Token Ownership”, as the only way to gain mana is to convince a token holder to pledge it to you. Pledges require tokens and any attacker is limited to the amount of tokens they hold. Node IDs need mana to interact with the network.
For the user, this process will be seamless. A user’s wallet will delegate mana to a specific node I.D automatically. Users will also be able to lease their mana for those who require it.
- Fast Probabilistic Consensus (FPC)
FPC is the voting protocol by which all the nodes reach an agreement. Consider two conflicting transactions submitted to the ledger. Initially, nodes will choose between one of the two, generally depending on which arrived first. Each node will then vote by asking other nodes which transaction they favor; if a certain (arbitrary) number of nodes favor one of the transactions, the asking node will also favor it. This process is repeated until the opinion is unanimous. Once node consensus has been reached, the network has chosen which path to take via the FPC.
Mana also plays a role in FPC voting. The more consensus mana a node has, the more its opinion will be asked from other nodes. Even if an attacker has a considerable amount of consensus mana, mathematical analysis and simulations done by the foundation have shown FPC effectiveness in concluding (“terminating”) correctly with all honest nodes.
- Tip Selection
Once all nodes have reached an agreement, a node will randomly select a tip to attach a new message to.
- Approval Weight
Each path, or branch, holds a certain amount of mana held by the nodes that comprise the path. This amount of mana is the path’s approval weight. When a new, honest transaction is introduced, it will attach itself to a non-rejected path via the FPC, which increases the weight of the chosen path. New nodes joining the network can judge the results of foregone FPC votes by observing the approval weight of each branch, enabling the distinction of rejected paths from non-rejected ones.
The FPC voting mechanism facilitates agreement among all network nodes, and does so very quickly. The speed at which this consensus is reached leaves a small window of opportunity for malevolent actors to change a node’s opinion – to “reverse” it. The finality module measures the non-reversibility of an opinion by checking the proportion of the honest part of the network that trusts such a message to be valid. This final step ensures that the majority of the network is on the same page before validating a transaction.
IOTA Smart Contracts (ISC)
IOTA’s DevNet is clearly an impressive piece of technology, but what a waste it would be without any applications to make use of it! With IOTA smart contracts (ISC), The IOTA Foundation presented new solutions to challenges that all networks face: fees, interoperability, composability, and scalability.
The first and most distinctive characteristic of ISC is that the smart contracts themselves aren’t directly executed on the IOTA L1. In fact, developers create their own blockchains, hosted by IOTA tech, to execute smart contracts on top of. Theoretically, the IOTA L1 could host hundreds of different chains (also referred to as “utility chains”), each using just a fraction of the IOTA base-layer’s capacity. These blockchains would run parallel to one another, each with their own capacity to support a large network of users. Furthermore, the IOTA substructure enables complete interoperability between each of these utility chains, all without the need for bridges.
As discussed earlier, the L1 does not incur any fees when executing transactions. While moving to another utility chain will not cost you anything, the creator of each chain is free to design their chain however they see fit. Whether to add fees of their own will be their decision entirely, but seeing as there will likely be multiple chains competing for market share, a “race to zero fees” is a very real possibility. The flexibility offered to developers can be summarized here:
IOTA 2.0 is EVM-compatible; supporting Solidity, TinyGo, and Rust-based chains with their respective smart contracts.
A feeless and fully decentralized implementation of the IOTA network is a massive undertaking for the foundation. The future of the network depends highly on a successful transition to a coordinator-free IOTA, it is not something to be rushed. The first stage of this process is the recently launched Shimmer Network, check out part two to learn all about it!