Why data availability sampling matters for blockchain scaling
Data availability sampling uses polynomials to prove that transactions are accurate
Sergey Nivens/Shutterstock modified by Blockworks
On-chain data availability has become an increasingly common topic as Ethereum continues to scale.
Today, Ethereum developers are looking at where and how data should be stored on blockchain networks as they work towards resolving the so-called blockchain trilemma, referring to the tradeoffs between security, scalability and decentralization.
In crypto, data availability refers to the concept that data that is stored on a network is accessible and retrievable by all network participants.
On Ethereum layer-1, the network’s nodes download all the data in each block, making it difficult for invalid transactions to be executed.
Although this can guarantee security, this process can be relatively inefficient — asking a network node to verify and store all data in a block can drastically reduce throughput and hinder blockchain scalability.
Ethereum layer-2 scaling solutions are designed to resolve this problem.
Most rollups today only have one single sequencer, meaning there is a centralization risk, Anurag Arjun, co-founder of modular blockchain Avail, told Blockworks.
This is not a major problem at present, as rollup solutions must put the raw transaction data on Ethereum using something called calldata — the cheapest form of storage on Ethereum today, as Arjun notes.
Once a calldata is submitted to Ethereum mainnet, anyone can challenge whether or not it is accurate within a set period of time, according to Neel Somani, the founder of blockchain scaling solution Eclipse.
If no one challenges the validity of the rollup, it will be accepted on Ethereum once the period of time is up.
The problem, Somani notes, is how someone can then prove that a transaction was executed inaccurately if they don’t have the data.
“If I don’t tell you what I executed, there’s no way for you to possibly prove that it is wrong, so you need to know exactly what I executed in order to fix that,” Somani said. “So all blockchains must prove data availability in some way, shape or form.”
Data availability sampling
As all blockchains must prove data availability, it can be inefficient to download a full block onto a network, which again invokes the initial data availability problem.
“So as someone who doesn’t want to download the full block, I still want the confidence that the information on the block is not being withheld,” Somani said.
The solution, according to Somani, is the use of data availability sampling to gain confidence that the block is actually there.
Data availability sampling involves sampling random parts of the block to obtain arbitrarily high confidence that the block is there, Somani explains.
This technology utilizes polynomials — a mathematical expression comprising variables, coefficients and exponentiation — to model relationships between variables in a block.
A common misinterpretation of data availability sampling is that if you sample half the block, you only gain 50% confidence that the information in the block is accurate, Somani said. This isn’t true, he explains, because as with data availability sampling, users must make sure that they have enough points to recover the original polynomial.
Projects like Celestia and Avail are currently building out data availability sampling solutions.
“What we sincerely believe is that every base layer is going to be a data availability layer,” Arjun told Blockworks. “The main directional fight that we are having is wanting to scale data availability at the base layer, and have execution and roll up on the second layer.”
Don’t miss the next big story – join our free daily newsletter.