Proto-Danksharding
Shard Blob Transactions
Last updated
Shard Blob Transactions
Last updated
Introducing a novel transaction format designated for 'blob-carrying transactions.' These transactions house substantial data quantities that remain inaccessible to EVM execution, yet their commitments remain accessible. This format is meticulously designed to seamlessly align with the anticipated structure employed in comprehensive sharding.
Instead of incorporating rollup block data within transaction calldata, rollups would shift the responsibility to rollup block submitters to encapsulate the data within 'blobs.' This approach ensures data availability, a prerequisite for rollups, while being significantly more cost-effective than calldata. The central requirement for rollups is that data should be accessible temporarily to enable honest actors to construct the rollup state, without necessitating indefinite retention.
In the context of optimistic rollups, actual provision of underlying data becomes mandatory only during the submission of fraud proofs. These proofs scrutinize the transition through incremental steps, loading a limited number of blob values at a time via calldata. For each value, a KZG proof is furnished, and the point evaluation precompile is leveraged to validate the value against the versioned hash submitted earlier. Subsequently, the fraud proof verification is conducted on this data as per the existing practices.
For ZK rollups, two commitments are provided for their transaction or state delta data: the blob commitment (validated by the protocol to link to available data) and the ZK rollup's native commitment using its internal proof system. A proof of equivalence protocol, employing the point evaluation precompile, substantiates that the two commitments pertain to identical data.
Lifetime of a blob transaction: