Z-net: IOTA opens up a testnet with no coordinator
The testnet shows how much easier everything is with centralised systems.
Today IOTA announced the public opening of Zero-net, an IOTA testnet with no coordinator.
IOTA overview and what this means
In brief, IOTA is a cryptocurrency that aims for near-instant transactions with zero fees, infinite scalability and offline functionality.
It's obviously a tall order and is regarded in some quarters as being physically impossible. These ambitions have necessitated an off-the-wall solution known as "the Tangle" rather than a more traditional blockchain.
In relatively simple terms, the way the Tangle is envisioned as working is through the creation of countless extremely lightweight nodes in everyday Internet of Things (IoT) devices. These devices perform proof of work to create transactions, and the transactions are then tossed into the Tangle for validation by other IoT nodes.
The reason transactions can be "free" is because the costs of performing that proof of work on each device are so small as to be imperceptible. Offline functionality of a sort comes from the ability of devices to locally connect and create transactions by networking with each other and for those transactions to be immutably joined with the Tangle later on when connectivity is restored.
Validation on the main Tangle occurs in a gossipy-style, semi-random manner where the proof of work involved in creating a transaction is also involved in validating two other transactions. In this way, transactions can theoretically be propagated around the network quickly, securely and without any perceptible cost.
Among other issues, the main problems are
- Proving the security and functional viability of this kind of system is super complicated.
- You need a huge number of nodes to ensure network speed and security.
While work continues on the former, and in the absence of the latter, IOTA installed a network coordinator. The coordinator is a centralised and closed-source piece of software whose job is to checkpoint and manage the nascent network and to make sure it doesn't all burn down.
The presence of the coordinator is one of the most-criticised elements of IOTA, and as long as it exists, IOTA's lofty ambitions remain more theoretical than demonstrable. This is why the announcement of a coordinator-free testnet is such a big deal.
Zero-net has been live for a few weeks now, but it was only just opened to the public to start running nodes. Its name refers to zero value because the main purpose of Z-net is just to begin to understand what happens when you remove the coordinator.
A good first step then is to understand what exactly the coordinator does, so you can see what happens if you remove it.
Here's a lightly-annotated visualisation of the Tangle, showing all the transactions coming into the IOTA network and how they get validated by other transactions.
What the coordinator does
The coordinator is a checkpoint transaction that pops out every couple of minutes. It's controlled by the IOTA Foundation and automatically validates the transactions as they come in.
The yellow dots are the transactions being shepherded by the coordinator checkpoint. The purple thread that connects that coordinator checkpoint to the rest of that purple blob shows the link between that particular coordinator checkpoint and the previous one about two minutes prior.
The black dots confirmed by random walk refers to transactions validated through the usual process (as well as by the coordinator) by which an IOTA transaction selects, and is selected by, other transactions for validation.
The idea is that your transaction goes through when it's been validated by enough other transactions to say, with a high degree of certainty, that it's good.
The empty white dots, such as the ones found in the new transactions and in a small handful of the black section, are transactions that have not yet been validated.
Part of the coordinator's job is to sweep up all those dots and validate them. Without the coordinator, some transactions would simply fail to go through due to a combination of small network size and sheer randomness. The coordinator keeps it together
Another part of the coordinator's job is to prevent double spend attacks. Without it, an attacker who creates a lot of nodes of their own could feasibly validate their own bad transaction enough times to reach the required certainty threshold and trick the rest of the Tangle into thinking it's good. The coordinator validates transactions as they come in and has the final say on whether it's good.
Life after coordinator
A visualisation of Z-net comes out looking a lot like something you could hang on the wall.
Note the multiple loose ends. These are cases where new transactions started validating each other before connecting to the mainnet, and then subsequent transactions were validated by those too, and so on until a separate Tangle is formed.
Typically the coordinator would have prevented this by serving as a constant, connected backbone for the Tangle.
This might be down to difficulties in the "tip selection" algorithms being used on Z-net, which describe how new transactions ("tips") should connect with and validate each other.
"With no milestones to guide us, we need an alternative method for deciding where to start the random walk. We have come up with a rather rough heuristic algorithm, which works by backtracking from a recent tip until it reaches a point with enough cumulative weight," Alon Gal explains. "This part of tip selection is proving quite tricky to get right, and more review would be welcome."
In addition to that, you have coordinator checkpoints as a constant source of truth on the Tangle. You can look at whether another node is out of synch by checking its timing next to the coordinator and generally use the coordinator as your rock.
And then there's scaling. The proof of work required by transactions to validate other transactions needs to be efficient, which is a lot easier to wrangle when you only need to look at that narrow window of time between coordinator checkpoints.
Z-net is one of the clearest first steps to getting rid of the coordinator, but it's still a very early and largely exploratory step that highlights how difficult it could be to shed it entirely.
But as long as something is technically possible, you'll eventually get there as long as you keep moving.
Disclosure: The author holds ETH and XLM at the time of writing.