The Polkadot ecosystem took a significant leap in scalability by deploying asynchronous backing. But how can it help blockchains on Polkadot achieve higher throughput and enhance scalability and efficiency?
Async backing allows Polkadot-based blockchains to achieve 10x throughput through Polkadot’s parachain consensus protocol in combination with proof-of-validity reclaim.
What Is Async Backing?
First, let’s understand the backing process on Polkadot. Parachain blocks on Polkadot are generated by collators and sent to validators on Polkadot’s Relay Chain for backing. Backing is an initial verification step before inclusion when the parachain block is registered as the final block of the parachain and added to the Relay Chain. Initially, the backing process was synchronous, allowing parachain blocks to be built only on the latest Relay Chain block.
Async Backing decouples the dependency, allowing collators to build parablocks on older Relay Chain blocks and create multiple pending parablocks. This significantly enhances throughput and efficiency. Async backing brings a significant performance boost to Polkadot. Theoretically, async backing by itself can increase throughput by 8x. However, coupled with PoV Reclaim, performance is boosted by 10x.
Async backing allows parachains to produce blocks twice as fast and increases execution time from 0.5 seconds to 2 seconds. This enables the production of bigger blocks, up to 4x bigger. While async backing facilitates larger and more frequent time windows to author blocks, PoV reclaim allows you to account for a transaction’s real-proof size instead of a worst-case estimate. Combining both will enable users to author a more extended block period while the proof within the Relay Chain-defined constraints can be estimated more accurately.
Understanding The Workings Of Async Backing
Let’s understand how async backing facilitates a 10x throughput increase. Remember, it is not a single feature that makes 10x throughput possible, but a combination of async backing and Proof-of-Validity (PoV) reclaim.
Each transaction has a weight. The weight used within the Polkadot SDK is two-dimensional. The first dimension is the amount of computation expressed as the execution time, while the second is the PoV size. The computational weight generally depends on the hardware, with each type requiring different times to execute the same code. As such, these weights are benchmarked in advance. However, the weights are worst-case scenarios, and the transaction may take different execution paths. When doing benchmarks in advance, we cannot tell what execution path a transaction takes; hence, the heaviest one is used.
Blocks can accommodate a fixed amount of weight. When authoring a block, one of three limits can be hit: computational weight limit, block size limit, and authoring duration limit. Synchronous backing allows 1094 transactions in each block. As a result, the block size limit is hit with plenty of computational weight unused. The introduction of async backing doubles throughput, producing blocks twice as fast.
But async backing promised 10x throughput. This is where PoV reclaim comes into the picture,. PoV reclaim allows us to fit more transactions into the block. However, at this point, the computational resource limit must be considered. Here, async backing comes into play with its two-second authoring duration. Combining async backing and PoV reclaim allows us to fit 3,764 transactions into the block, a 3.5x increase. Along with the halving of block times, we get a 7x increase in throughput.
A few minor tweaks and adjustments are required to push the limit and hit 10x throughput. The validator’s backing timeout is set at two seconds on all networks. However, the authoring duration must be lower. As a result, the authoring duration is initially set at 1.5 seconds. However, we can increase the backing timeout to 2.5 seconds and use the full two seconds for authoring. Secondly, we initially did not know the exact proof sizes. However, PoV reclaim allows us to determine some proof sizes, freeing up more block size. These tweaks will enable us to hit a 10x increase in throughput.
Disclaimer: This article is provided for informational purposes only. It is not offered or intended to be used as legal, tax, investment, financial, or other advice.