Blockchain architecture needs to evolve with the times. Whether people are coordinating in DAOs, executing complex contracts in DeFi, or investing through gaming with GameFi, the demand placed on today’s monolithic blockchains is increasing exponentially.
The challenge is scalability.
Monolithic chains are feeling the symptoms of their success: blockspace is coveted and expensive, and it’s hard to participate in the chain without a powerful machine, which reduces decentralization and security. This is what’s called the scalability trilemma.
Fortunately, there’s an approach to tackle this problem: modularity. A modular blockchain architecture distributes the key functionality of blockchains into separate layers that work together to improve scalability while preserving decentralization and security.
That’s why Avail has been building a modular suite of scaling solutions to empower chains and apps of any size. And today, we’re sharing our vision for Avail, a new data availability blockchain that offers major advantages in scalability and improves the Web3 experience for users, app creators, and blockchain creators alike. This is the first post in a series covering the vision, architecture, and use of Avail - let’s dive in:
Avail: A data availability focused blockchain
At its core, Avail is a blockchain that records blockchain transactions and proves that the data is available. It’s laser-focused on data availability and ordering and represents a key component of Avail’s vision for modular chain design.
For a little background, blockchains perform several key functions including ensuring that transactions are valid (e.g., not fraudulent & represent a correct state transition), and reaching agreement on the set of transactions and their ordering to include in each block. Monolithic blockchains tightly couple these functions, leading to a limit in how much they can scale.
Avail proposes a novel architecture that provides a base consensus layer that only creates agreement on what the transaction data is and how it’s ordered, completely decoupling it from the question of validity. This ensures Avail is blazing fast, scalable, and flexible enough to allow any kind of chain with any execution environment to be built on top.
As an analogy, think about older media formats, where the media and its use were closely linked. Vinyl record players, for example, play music encoded into each record, while VHS tape players play video encoded into each tape. Each ecosystem was built with assumptions about the data being encoded in each medium.
In contrast, hard drives encode data as abstract 1s and 0s with no meaning inherently attached—software can read that data to apply it for a variety of uses. This decoupling of the data layer from the application allows for massive scalability and flexibility:
In the same way, Avail has evolved to scale blockchain applications, but it isn’t a storage solution for files — it’s a layer to record blockchain transactions and prove that their data is available, thereby allowing for multiple execution environments to be built on top.
Avail’s modular approach gives us a way to tackle the scalability trilemma: a blockchain can increase scalability without having to reduce security or decentralization by increasing node computational requirements.
What are the benefits of Avail?
Avail’s radical approach to data availability produces three key benefits:
First, we can make this data availability consensus layer massively more scalable. Avail guarantees that the data is available via validity proofs that use erasure coding and KZG polynomial commitments, and without the need for fraud proofs. This means that availability can be determined by only downloading a very small random sample of the total data, effectively solving the data availability problem.
Second, we enable light clients to operate with a comparable level of security as full nodes, because light clients are able to determine data availability without having to trust an honest majority.
Lastly, since the data consensus layer is agnostic as to what the transactions represent, it can represent any transactions together in the same layer. We can multiplex the Avail chain, making it flexible enough to hold transactions from multiple independent, sovereign chains that only share Avail’s consensus and data availability functions. Each chain can implement and fully own its execution environment.
The three major advantages of Avail
For a much deeper technical dive into the inner workings of Avail works including the application of erasure codes and KZG commitments, see our Introducing Avail blog post.
Who will benefit from Avail?
With Avail, anyone building a new blockchain can outsource their consensus layer while still retaining full control over their chain: they can fork, upgrade, or change their chain at will.
The more clients use Avail, the more data it can hold and keep available, and the more secure the system is. Users running light clients benefit from the same level of security as running a full node, paving the way for true decentralization. Go ahead, launch the next must-have game or app! Avail can securely grow with you.
What about teams looking to experiment with novel execution environments? Each chain built on Avail can implement its own execution environment—EVM, WASM, or even new environments that don’t yet exist. And they can get started without having to bootstrap an independent consensus layer and bring a new validator set online. Amazing!
But Avail doesn’t only benefit new chains. It can also be used to drastically improve the performance of existing rollups, by helping them implement validium solutions to reduce data posted to Ethereum. This in turn will lead to better (cheaper!) and more stable transaction prices. More on this in a future post!
Where does this lead?
Avail is a step towards one of the earliest dreams for Web3 (and an early tagline of Polygon): An Internet of blockchains.
Imagine a future where it’s easy for teams to build custom chains at the click of a button, and yet inherit the security of a vast network from day one.
A future where applications can implement custom runtimes that execute entirely on the clients it is intended for without wasting resources halfway around the world. Where chains can easily build bridges between one another without having to trust an honest majority of nodes. Where blockchain applications can run on a smartphone without using intermediaries, and with the security equivalent of running a full node. Avail will make it possible.
Avail is a crucial step towards a modular future where even the hierarchies of Layer 1 and Layer 2 dissolve, and chains work together to solve crucial problems, all in the name of decentralized execution in applications from gaming, to governance, to Defi, and beyond.
When is Avail launching?
We’re excited to share the vision of Avail and to announce that Avail testnet is coming in Q2, 2022. We’ll be sharing more education, content, and tech deep-dives over the course of the coming weeks, and look forward to you giving it a shot in testnet. And for a final teaser: We’re working closely with the Hermez team on something cool. Stay tuned.
If you want to learn more about how to use Avail to optimize your rollup or application, or just want to ask us a question directly, we would love to hear from you. Check out our repository, join our Discord server.