The main innovation behind IOTA is the Tangle. It’s a novel new distributed ledger architecture that is based on a DAG (Directed Acyclic Graph). One might refer to it as a “Blockchain without Blocks and the Chain” (semantically, it’s not really a Blockchain).
Read our Whitepaper: https://iota.org/IOTA_Whitepaper.pdf
At its core, the Tangle still has the same underlying principles as a Blockchain: it’s still a distributed database, it’s still a P2P Network and it still relies on a consensus and validation mechanism.
But, if we are to summarize the main differences between the Tangle and the Blockchain, the two most apparent ones are how the Tangle is structured (a DAG), and how we achieve consensus.
In IOTA there are no “blocks” in the classical sense. Instead, a single transaction references two past transactions. This referencing of transactions is seen as an attestation: with your transaction you attest directly that two transactions, and indirectly that a subsection of the Tangle are valid and conform to the protocols rules.
Instead of a smaller subset of the network being responsible for the overall consensus (miners / stakers), the entire network of active participants (i.e. devices making transactions), are directly involved in the approval of transactions. As such, consensus in IOTA is no longer decoupled from the transaction making process: it’s an intrinsic part of it, and it’s what enables IOTA to scale without any transaction fees.
The transaction making process in IOTA is a simple, 3 step process:
- Signing: You sign the transaction inputs with your private keys
- Tip Selection: MCMC (Markov chain Monte Carlo) is used to randomly select two tips (i.e. unconfirmed transactions), which will be referenced by your transaction (branchTransaction and trunkTransaction)
- Proof of Work: In order to have your transaction accepted by the network, you need to do some Proof of Work — similar to Hashcash (spam and sybil-resistance)
Once you’ve done that, your transaction will be broadcast to the network. Someone else will come along, choose your transaction in the tip selection process and validate it. And just like that, your transaction is confirmed.
Consensus in IOTA
As with any Distributed Ledger the question is: how does the network agree on the current state? With that question, we directly also tap on the “double-spending problem” (which probably confuses most people with IOTA)
Colored Tangle picture from the IOTA Consensus Masterclass: https://forum.iota.org/t/iota-consensus-masterclass/1193
Lets take a look at the colored Tangle picture above. Green blocks: transactions on which consensus was achieved (i.e. transaction finality with some security guarantees); red blocks: transactions where we are still uncertain on their full acceptance; grey blocks: tips (unconfirmed transactions).
Goal of any transaction is it to be green — you want it to be confirmed and accepted by the entire network. The question is, how do you go from grey, to red, to green? Without going into discussion on the CAP Theorem and the concept of eventual consistency, let me explain.
When we look at the picture, the main difference of the green and the red blocks, is that the green blocks are indirectly referenced by all the grey blocks. This means that for every confirmed transaction, there is a direct path leading to it from a tip. As such, it is quite easy to determine the confirmation level of your transaction: we execute the MCMC algorithm N times, the probability of your transaction being accepted is therefore M of N (M being the number of times you land on a tip that has a direct path to your transaction).
As a merchant, in IOTA you have complete freedom to decide with what probability you will start accepting transactions. If you are happy with 51% probability, you execute MCMC 100 times, and if 51 times or more there is a path, you accept the transaction and exchange goods. For high value transaction you can increase this threshold to 99 or even 100.
Once you have understood this concept of transaction finality in IOTA, you will start appreciating the simplicity and beauty of this system. It’s completely self-regulating and ensures both scalability and security.
Lets dive into some of the main features of IOTA, so you better understand why IOTA is so awesome.