We know many examples of decentralized consensus: Bitcoin, Ethereum, LiteCoin, ZCash, Monero, etc. They rely on a data structure called the blockchain.
But if we may get rid of the Proof of Work, could we get rid of the blockchain? Is there a way to design a decentralized system that does not rely on the blockchain? What would they look like?
In the following, we dig into a blockchain alternative: the Tangle. It’s a technology that I first learned about in a whitepaper from IOTA.
I’m interested in this for two reasons:
- Understanding alternatives to the blockchain give us a better appreciation of its properties. What do we need from it? What are implicit features?
- These alternatives have different properties. And different constraints. It’s easier to sense the limits and possibilities of the Blockchain technology by looking at the fringe.
This article is an introduction to the Tangle. You can always refer back to the IOTA’s whitepaper to get the details. I should also insist on the fact that I’m studying the technological proposition of these systems. I’m not into speculation.
As usual, we find the 3 pillars:
- P2P protocols, so that members can exchange data in an organic network,
- A data storage structure that ensure reliability. Here we replace the blockchain by the tangle,
- A mechanism to push the consensus forward. Here we talk about Markov Chain Monte Carlo and Tip Selection rather than Proof Of X.
Why is the Tangle relevant?
The Bitcoin and Ethereum platforms consume a lot of energy to find THE next block. The Tangle consensus relies on a different approach. This is a system that would work on lightweight devices (IOT).
In Practice, how does it works?
The set of all transactions on the ledger is a graph. Each transaction is a node and has 2 “parents.” We forbid cycles: a node cannot be their ancestors.
In Computer Science this is a
- Directed: each link has a direction
- Acyclic: no way to go backward
- Graph: network
To add a new transaction into the ledger, I pick two tips in the graph. I check that their parents are valid. Then I send this new block to the network.
Data Structure: Where’s the Consensus in Tangle?
Remember, we want Decentralized Consensus: If I access ONE member of the network, I should be able to know what is TRUE (consensus) to what is NOT CERTAIN or FALSE.
- “Has the customer sent me their payment?”
- “Was my click on like registered?”
In the blockchain we look at a SINGLE block: I know that all of its ancestors are also part of the consensus. To be safe we usually look six blocks back, in case a fork destroys the most recent blocks.
In the Tangle, forks are the default: Every concurrent transaction produces concurrent blocks. Two members can initiate a transaction around the same time. They will introduce two mini forks to the graph. These are the tips.
To find the consensus, we start from each tip and go back up the tangle. We will reach a set of ancestors that is common to every tip. This set is the consensus (in black below):
In IOTA’s paper, the “adaptation phase” is when a node is not in the consensus yet.
Tangle allows for concurrent operations! Two devices may add two blocks at the same time which makes the tangle more flexible for every member.
Making the consensus move forward: Tip Selection?
Now that we can represent the consensus, we need a way to make it progress!
With the Tangle, when a member adds a new node, they validate both parents. If a hostile member tries a “Double Spending” such as:
- Transaction A: “Bob sends all their IOTA to Alice.”
- Transaction A’: “Bob sends all their IOTA to Chuck.”
Other members of the network won’t create a block that links to both transactions. One of these transactions will never make it into the consensus part. The double spending will be forgotten.
The difficult part is now to encourage participants to pick the “right tips”. We want the consensus to progress efficiently despite hostile members.
At the moment, the approach described in IOTA seems fragile: they rely on a listing of weakness - solution. The global solution is complex compared to something like a Proof Of Work.
I won’t dig into the details now, but instead, I’d like you to sense the core difference with “classical blockchain”: IOTA targets a vast network of devices. Each device has a relatively small computing power.
Their solutions do not rely on heavy and strong blocks. It’s not about computing millions of hash to find a single, ultimate block. The tangle relies on “swarmming” methods: each member produce light and fragile blocks, but they are woven into a strong fabric.
A blockchain structure is not the only way to build a decentralized consensus platform! We saw that relaxing a constraint unlocks new features and new properties for our system. The Tangle would be asynchronous and cheaper but implies other trade-offs.
That’s why we are digging into the Blockchain fundamentals every week! There’s a lot of value in understanding the basic principles rather than one or two trending implementations! You may look into new projects and assess their actual trade-offs rather than look for the hype!
Photo par Julian Mora.
I wrote software for large distributed systems, web applications, and even robots.
I love the technical challenges, but I worry about privacy-invading ecosystems.
Now I care about decentralization, overly-engineered software, and frugal innovation.
I help companies around the world build products through SingularGarden.