I had the chance to chat with Gabriel Alfour
, lead developer of Marigold. We discussed some of Kathmandu’s features and a few things to expect moving forward.
Can you explain how Tezos is moving towards pipelined block validation?
The basic idea with pipelining is that right now, block producers send blocks in their entirety. Then, when consensus nodes receive these blocks, these nodes execute the blocks in their entirety. The reason behind this is that right now, nodes have to agree on the state of Tezos literally after processing each block, and so you need to execute the blocks to know the resulting state hash.
The problem with that is it slows consensus a lot. There is no reason to wait for the block to be executed before performing consensus operations (spreading blocks, voting on a block, etc.). You can and should be able to do both in parallel. So, that’s the main idea of pipelining. The goal is to have block verification done in parallel with consensus. In the best case, this can result in blocks that are 2 times faster.
In the real world, I’m not sure how much this will help but it will reduce the loads of the nodes on the network. Basically, it’s a free gain. It’s an optimization for Layer-1 and it doesn’t sacrifice anything.
This work will continue into protocol L as well, where we’ll see most of the benefits from the speedups.
Can you explain Smart Contract Optimistic Rollups (SCORUs) in ELI-5 terms?
In blockchains typically we batch together sending operations and processing operations. With SCORUs, we split those responsibilities. So, there are two kinds of nodes in SCORUs. On one hand, there are consensus nodes that just send operations and build consensus on which operations are part of the chain. On the other hand, there are rollup nodes which actually process the operations.
An important thing to keep in mind is that you need consensus nodes to be able to run on a Raspberry Pi, so that you can have as many participants as possible. If your consensus nodes requirements are too high, then you will have fewer participants and more centralization.
But a key realization of SCORUs is that you actually need very few nodes to process blockchain operations. Basically, only one honest node for this to work. Whereas, for consensus you’ll need 2/3 or ½ out of many.
This in turn means that the requirements on the nodes that process the operations (rollup nodes) can be much higher than the requirements for the typical blockchain nodes (consensus nodes). So, that’s what we’re doing with SCORUs. We’re essentially splitting the current nodes into these two essentially, and benefitting from the performance boost this implies.
What are some of the things in Protocol Kathmandu and Protocol L that excite you the most?
There are a lot of things there!
There is TORUs which have already been done, showing that it can work even if it’s not used in practice. We also have SCORUs and web assembly for SCORUs. That will basically bring WASM support to Tezos. There’s a lot of work that’s been done on zk rollups as well.
So, that’s quite cool. An even crazier thing is sharding, there’s a whole lot of work being done there. Essentially, when sharding and rollups will be completed, we’ll see crazy high TPS (transactions per second). It’s the kind of stuff that could possibly 10x or 100x our current TPS even before optimizations. So, I’d say sharding and rollups are the two things I’m most hyped about.
This is how we get most of the scaling on Layer 1. Even SCORUs and TORUs, they are called Layer 2 but they are not really Layer 2 at this point because they are enshrined into the protocol. With sharding and rollups, we’re making very few compromises. We’re still very close to peak blockchain security.
As Tezos continues to evolve and grow, the race towards mass scalability in 2022 keeps pushing along further. Protocol Kathmandu and Protocol L will introduce further Layer-2 optimizations to continue pushing that train forward. 2022 is shaping up to be a massive year in terms of development for the Tezos ecosystem.