Create Publication

We are looking for publications that demonstrate building dApps or smart contracts!
See the full list of Gitcoin bounties that are eligible for rewards.

Article Thumbnail

Reaching new transaction speeds on Algorand

Tl;dr

In the rapidly evolving world of blockchain technology, Algorand remains dedicated to pushing boundaries and innovating for our users. Our latest protocol update, go-algorand 3.16, decreases average round time to 3.3 seconds.

Deciphering the Magic Behind a Great User Experience

Our Chief Product Officer, Paul Riegle, often encapsulates our ambition by saying we want to make our technology feel “like magic.” Where is the magic in Algorand’s protocol?

The magic is woven into the fundamental properties of our protocol - its high capacity, low latency, and immediate finality. However, these technical aspects need to transcend the realm of technology and translate into a seamless experience for the end user. Our goal is to ensure that Algorand’s blockchain technology acts as a frictionless facilitator for any application built on top of it and subsequently any user interacting with it.

Transaction Finality: The Key to User Experience

We believe that maintaining low transaction finality is key to a good user experience, i.e. Transaction Finality = Block Latency + Block Finality.

Here, we refer to block latency as the time it takes for a transaction to be included in a block, and block finality as the time until that block becomes final. In other words, the cumulative wait time a user experiences after submitting a transaction before confirmation.

Imagine a blockchain that creates blocks every second. Initially, this seems impressive – your transaction is included in a block almost instantly. However, if it then takes an additional 15 seconds for the block to achieve finality, the user is left waiting for a total of 16 seconds.

Although a total of 16 seconds might seem reasonable, in our fast-paced digital world, such delays can dampen the user experience. For comparison, when was the last time you waited 16 seconds for an online purchase to complete? Delays of this magnitude are completely unacceptable to modern users accustomed to Web2 experiences.

The Algorand Advantage

Algorand distinguishes itself from other blockchains with a unique feature: as soon as a transaction makes it into a block, it is final. With the go-algorand 3.16 upgrade, the average wait time for a transaction to complete on Algorand will be 3.3 seconds. This is achieved by reducing block latency to 3.3 seconds and maintaining instant block finality.

This enhancement allows applications built on Algorand to deliver a user experience on par with that of traditional Web2 applications, while also benefiting from the security and decentralization inherent in blockchain technology.

In our quest to reduce round times to improve the user experience, we have introduced several enhancements to our networking protocol. These include the introduction of opportunistic compression to our proposal messages, which has decreased the average proposal message size by 30%. We have also implemented the Elastic Rate Limiter and congestion manager to effectively handle network congestion caused by noisy peers, and a networking identity challenge to prevent duplicate peer connections on our relays.

We have further fine-tuned our system to decrease computation times for the processes that assemble and validate our blocks. Key improvements include optimizing disk I/O, and CPU usage through enhancements to account caching, serialization of the agreement state machine, and transaction signature batch verifications. We have also optimized node memory usage by early detection of duplicate transactions and a fivefold performance improvement in the pre-processing of our logic signatures. For more detailed insights onto these enhancements, Algorand invites you to review the related linked pull requests.

We Value Your Feedback

We are committed to keeping our protocol on par with the constant demands of our users. If you find these developments interesting or have any thoughts or suggestions, do not hesitate to share them with us on Github or our Algorand Discord Server. We always appreciate your feedback and look forward to making Algorand even better with your help.