Some months ago, I was asked what I thought would be #Cardano "next big thing".
At the time, we only had a vague idea of what Leios was. The recent CIP from Duncan & al has shed some more light on it.
Ouroboros Leios is definitely the most promising L1 upgrade to come
👇
The idea behind Leios is (surprisingly) simple. So let's try to make sense of it.
Cardano is a distributed system, where nodes reach consensus by sharing blocks according to a schedule for which they're elected. The more stake they own, the higher the chances of being elected.
Blocks are produced about every 20s, and are propagated to the rest of the network as fast as possible.
If we zoom in a bit on a node and analyze what a node does, we see that most of the time, a node isn't doing much. It is actually idle for a large part of these 20s.
This is partly due to how networking work. Sending data across the planet takes time, and while the data is being sent from a point to another, both ends aren't actually doing anything but waiting. Serializing and deserializing from and to the wire only account for a small time.
Similarly, while a node is serializing data and sending out data to its peers, it is usually not actively validating blocks, because the block throughput isn't usually sufficiently high to keep the node busy at all time. The CPU usage only increases in short spikes.
If you were at the #CardanoSummit2022, you might have seen the pool setup by @C1cADA_Markus on the 3rd floor and observed that the node would only have short spikes of activity every 20s or so.
Said differently, resources are currently under utilized in the node.
Fundamentally, this is because the Cardano blockchain is constructed and validated sequentially (like a chain!)
The idea behind Leios is about utilizing those idle resources, and making the construction of the chain more parallel.
It is about harnessing the true power of UTxO.
Leios proposes to separate the construction of the chain into three new types of blocks, produced at different rates and with different purposes:
Ranking blocks are similar to current consensus blocks. They are produced sequentially and serve as 'checkpoints' allowing everyone to regularly agree on some global state.
Yet instead of containing plain transactions, they would only contain references to endorsement blocks.
Endorsement blocks are ways for the chain to reach an agreement, with a relatively high degree of confidence. With them, Leios proposes to introduce endorsement certificates which inform nodes about how many peers (or even, stake) are approving certain events.
For a block producer, it means that at a given point in time, they can now how much of the network stake has approved (or, endorsed) some given transactions without actually having to download them.
This allows nodes to optimistically make consensus decisions at low cost.
Finally, Input blocks are bundle of transactions. They are the actual data payload containing information. They are meant to be produced at a fast rate and validated concurrently. When spread over multiple machines, it means validation happen with some degree of parallelism.
This approach works because of one key assumption/observation: most transactions are actually 'concurrent'.
Or put simply, most transactions deal with different, non conflicting, parts of the ledger (a.k.a. UTxO entries).
A UTxO model makes it relatively easy to assess the concurrent nature of two transactions; for there's no side effect.
It suffices to look at transactions' respective inputs and outputs to know whether they are conflicting with one another. There's no hidden consequences.
This makes Ouroboros Leios a fundamentally *optimistic* consensus algorithm. And because this hypothesis is so important to the system, Leios also includes in its design a way to degrade into a more sequential (pessimistic) mode, which operates very much like Ouroboros Praos.
There are other details which are related to security and usability considerations, as well as still open questions about rewards and incentives in this new scheme.
More, to manage a bit expectations, keep in mind that Leios is undoubtedly far away from now.
This is a massive chunk of work and probably the most ambitious upgrade Cardano has ever attempted (feels like we say this every 6 month?)
Meanwhile, L2 is also booming 😏
Finally, I'd like to point another thread from @zygomeb who's going into some more details about how the VRF leader election is going to work on Leios and gives another perspective on this proposal. A good read as well!
Today was CIP editors meeting #54. We selected a few CIPs related to wallets and dApps integration, and we'll try to keep doing similar themed meetings moving forward.
Here's a summary of what we covered 👇
An addition to CIP-0030 (github.com/cardano-founda…) − the wallets ↔ DApps connector, to introduce a new endpoint allowing DApps to retrieve a chain identifier from the wallet. This allows distinguishing between multiple test networks (e.g. preprod vs preview).
CIP-0053? (github.com/cardano-founda…) proposes to standardize wallet backend interfaces across the Cardano network, in a similar fashion to what exists with web3.js on Ethereum. However deemed redundant / not needed in front of existing solutions like, e.g., Koios. Likely rejected
The Hard-Fork Combinator (a.k.a HFC): the good, the bad & the ugly.
A tale of software engineering 👇
With the upcoming Vasil hard-fork, it is time to upgrade existing software to live through it. As many already know, Cardano's secret sauce for such upgrades hides behind something called "The Hard-Fork Combinator".
But, what exactly is that thing?
The HFC is an approach that makes Cardano behave not as one protocol, but a sequence of sub-protocols.
We typically call each sub-protocol an 'era'. Each era has its own configuration, its own rules and its own data-structures and formats.
Situations like this always make me reflect on what I do as a software engineer. I've been working in the FinTech & Blockchain industries for a while now and it's so easy to get something wrong that would then have massive consequences.
Some thoughts...
2/5
Even fully tested and formally verified software might experience issues. More testing and formalism reduces the risk but it's never zero. Plus it often depends on hypotheses you make and hypotheses are hard to formulate when they are intrinsically linked to social behaviors
3/5
At this stage, what I expect from @InputOutputHK and @COTInetwork is a (public) postmortem analysis of UST, as a case study to validate or reformulate hypotheses made for Djed. Being fully algorithmic means that, you can't get it wrong.
Let's talk about transaction finality on Cardano today, because I keep seeing all sort of (wrong) claims on social medias, discord and al. (1/n)
👇
Firstly, we need to distinguish two things:
Finality vs Latency;
or as some call it, 'chain confirmation' vs 'transaction confirmation' though I really dislike the term 'confirmation' in this context (there's really no one actively 'confirming' anything).
Latency is the time it takes for a transaction to appear on the blockchain, in a block. Finality is the time it takes for a transaction to become immutable.
Why is that different?
Because the system is decentralized! And that means the information is only *eventually* true.
It seems like many people in the #Cardano community, builders or not, still don't know about the #CIP!
So let me explain a bit, and quickly dive into some of them👇👇
1/n
CIP stands for 'Cardano Improvement Proposal' and refers to both a process and a collection of technical solutions to common problems of the Cardano ecosystem.
Proposals take the form of written specification files, hosted in a public code repository:
The CIP is geared towards the community and everyone is welcome to participate in the discussions.
There are different types of CIP for different purpose, some are informational (i.e. explaining how something work) and some are standards to facilitate interoperability.