Details of the Vasil Hard Fork Combinator (HFC): What You Should Know
When IOHK began working on Cardano in 2015, their overarching objective was to launch a superior blockchain platform that was scalable, sustainable, and capable of hosting high-demand decentralized applications (dApps). A lot of progress has been made over the past few years. Currently, IOHK is optimizing the network, enhancing scalability for real-world trustless dApps to function seamlessly in a high-performance environment.
In June 2022, Cardano will upgrade the network via the Vasil Hard Fork Combinator (HFC) event. The goal will be to increase performance by dramatically enhancing throughput and reducing latency in block transmission.
Ahead of this highly anticipated enhancement, Charles Hoskinson has revealed that over 500 projects are in the wings, ready to deploy. In the meantime, ADA is one of the top-performing digital assets, concluding Q1 2022 firmly.
The question is: Why is the Vasil HFC event drawing attention, and what’s in for network users?
The Basho Era
To begin with, the Vasil HFC is part of a series of upgrades and network optimizations expected in the current development phase — Basho. Cardano will be a high-performance, resilient, and flexible blockchain at the end of the Basho stage.
The mission at this phase, unlike during Shelley (decentralization) and Byron (functionality), is to drastically improve the underlying performance of Cardano so that the network can readily support demanding dApps that typically draw huge volumes, which would otherwise potentially cause congestion — leading to delays, damaging user experience.
Scaling Ouroboros
The Vasil HFC is part of the eleven planned scaling proposals to be implemented in 2022. The primary focus during Vasil will be on increasing the network’s throughput and increasing block propagation times without compromising security.
Already, considering the high network demand after the launch of SundaeSwap, IOHK developers have increased block size (and thus weight) to 80kb. The block size is a conditioning factor and can determine transaction processing speeds. In the coming months, there could be further block increments subject to how well the network responds to changes assuming the current block production rates remain unchanged.
On-chain changes that could compromise security and performance must be thoroughly assessed before activation, considering the vastness of Cardano and the number of dApps already planning to rely on the network, supporting billions of dollars.
Extra cautionary measures must be taken to achieve the high throughput goals while keeping the ecosystem balanced and secure. All this is rooted in how Cardano’s Ouroboros ledger functions and the designers’ focus on persistence and liveliness. In Cardano, persistence relates to validation and influences security — and thus the stability of the core. At the same time, liveliness measures the propagation time of a block to all nodes. The conjunction between persistence and liveliness provides a robust transaction ledger where validated transactions become immutable once confirmed on the mainnet.
Persistence and Liveness
Cardano developers will look at implementing proposals related to transaction and block validation and subsequent block propagation time during the Vasil HFC. The recommendations that might be included in this HFC event revolve around combining blockchain validation and propagation, reducing “dead time” — that is, the block propagation overhead — resulting in faster block propagation time.
Based on the above, it is clear that the number of transactions that can be loaded in a block is determined by block validation and transmission/propagation rates which have a linear correlation. Ideally, Cardano blocks should be propagated to 95 percent of all node operators within five seconds before generating the next block. At a block size of 2MB, it would take roughly 5 seconds for a block to be transmitted and confirmed by all node operators.
Changes To be Made During the Vasil HFC in June 2022
At present, Vasil is said to be feature complete and being simulated and tested before the HFC event in June. Ahead of this highly anticipated upgrade, the community expect the following enhancements to be made:
Diffusion Pipelining
Evidently, block propagation time is crucial and tweaks can lead to higher throughput. As such, Cardano developers will look at implementing diffusion pipelining for higher throughput by allowing blocks to be transmitted without full validation and initiating changes to the consensus layer for faster block propagation across nodes.
The only requirement that must be guaranteed in the propagation path is header correctness — that is, the block correctly references the predecessor — and block completeness — the received and not fully validated block body is referenced by the header’s body hash making the network resistant to DDoS attacks. Diffusion Pipelining will support increased block sizes, leading to high network throughput, without initiating code changes in the mainnet.
Still, according to Genius Yield CSO, Marvin Bertin, Pipelining isn’t a “silver bullet”. Instead, pipelining will be a combination of many network improvements that will eventually significantly increase the speed of Cardano, specifically addressing the block propagation bottleneck leading to faster transaction processing and validation.
Other enhancements include:
Upgrade on Plutus
The following changes will be made:
- Addition of Reference Inputs — as proposed under CIP31
A reference input is a transaction input linked to a specific transaction output as normal. However, rather than spending the output, it only references it.
The proposal encourages using UXTOs to transmit information by adding a way to refer to outputs and not spending them making them output resources and information containers.
Following the activation of this proposal, developers will be free to refer to an input from a script without spending it, improving concurrency and, therefore, throughput.
- Inline Datums as proposed under CIP32
Theoretically, Datums are pieces of information attached to outputs. However, presently in Cardano, what’s attached are hashes of Datums with further demands that the transaction provides the actual datum, inconveniencing users.
Once this proposal is implemented, developers will be able to create scripts that refer to simple inputs directly, eliminating the need for hashes.
- Addition of On-chain Reference Scripts from CIP33
The HFC event will implement an improvement proposal to see reference scripts attached to outputs. The same scripts will also be referred to during transaction validation rather than requiring the spending transaction to do so.
Changes will be made to make this possible, introducing reference inputs and modified outputs that carry reference scripts satisfying the witnessing requirement. Plutus reference scripts will subsequently make applying transactions smaller and cheaper to validate. With activation, developers can refer to on-chain pre-recorded scripts from other transactions.
The Cardano development team will also include Redeemers in the transaction information. This improvement allows developers to create more complex and interoperable scripts.
Cryptographic Primitives Optimization
Vasil will also see enhancement of Cardano’s Cryptographic Primitives. Specifically, the Ouroboros’ Verifiable Random Function (VRF) will be optimized. A VRF processes cryptographic inputs — slot IDs, nonce, and VRF signing key — and produces random outputs. In Cardano, the VRF determines which SPO mints the next block.
After the Vasil HFC, block propagation times will be reduced. Furthermore, storage requirements will be drastically slashed since each block header will become smaller by having one VRF run leading to faster node sync times. Subsequently, users will have reduced wait times without compromising security while the network remains as deterministic as before.
Script Collateral Adjustment
Proposals under CIP 40, Script Collateral adjustment, will also be implemented under Vasil. Typically, there is a two-phase validation process when executing Plutus scripts. In the first phase, the script is executed offline — checking whether it will succeed. If the first stage is successful, it moves to the second stage. The script is executed on-chain with the collateral indicated in the input. The Script Collateral adjustment will allow users to spend the exact collateral so that the user doesn’t risk more than they should, giving script users more confidence and certainty. Additionally, following this change, users can use non-ADA tokens as collateral.
Asynchronous Validation
Another scalability consideration is the idea of asynchronous validation. This proposal takes Diffusion Pipelining a step further.
Instead of ensuring a block is validated within 5 seconds, asynchronous validation extends confirmation time beyond the required timeframe. implementing this proposal is aggressive and will demand a change of consensus rules. Specific changes include ensuring honest Cardano nodes always contribute to security of consensus, where, while a block might carry invalid transactions, these would be discarded during validation.
To leverage maximum benefits from AV, IOHK plans to combine it with input endorsers, which allows for transactions to be separated into pre-constructed blocks. This combination enables consistency in block propagation times and higher transaction processing rates.
A Delicate Balance of Performance and Security
IOHK has revealed that AV with Input Endorsers is under development. Therefore, the Vasil HFC event may see the implementation of Diffusion Pipelining to complement block size increment for better throughput. Still, it should be noted that on-chain scaling is a delicate balance between security and performance. Therefore, after thorough assessments, changes can be incrementally made lest the network’s security is compromised.