Payload sampling, checking a block by receiving only pieces

Strawmap J* (2028~29) · payload sampling

Instead of every node downloading the whole execution payload, the bundle of transactions in a block, the payload is split into pieces, and receiving just a sampled subset is enough to check that the whole payload was published.

Why it is needed

Today every node downloads all the transactions in a block, executes them itself, and verifies them. So when blocks get larger, the data a node must download grows in step, and the internet speed of people running nodes at home becomes the limit. With execution proofs (zkEVM), nodes can check only the proof without executing transactions, but they still need to confirm that the transaction data itself was properly published. This is because if a block whose data is hidden enters the chain, others cannot reconstruct or verify the state. Payload sampling applies to transaction data the same method as data availability sampling (DAS) used for blobs. The payload is split into recoverable pieces and spread across the network, and each node randomly receives just a few pieces and confirms with high probability that the whole was published. This opens a path to growing block size without being bound by a single node's download capacity. In Strawmap it is placed in the J* fork slot, after execution proofs and state reduction are in place, but that is only an expected position, not a fixed schedule.

How it works

  1. Split into pieces The block producer extends the transaction data with erasure coding into many pieces. Even if some pieces are missing, the rest can reconstruct the original.
  2. Spread across the network The pieces are distributed across the network. Each node only needs to store the pieces it is responsible for, so no single node has to hold the whole.
  3. Randomly sample and check Each node randomly picks a few pieces and fetches them. If every requested piece arrives, it can believe with high probability that the entire data is published.
  4. Reconstruct if needed A node or prover that needs the whole set of transactions collects enough pieces and restores the original. It can reconstruct even if some pieces disappear.

← Roadmap