# EIP-4844 meta-spec
## TLDR
EIP-4844 introduces a "blobs" transaction type:
- Persisted in beacon-node, not in execution engine (e.g. prysm, not in geth)
- Blobs are `4096` field-elements of `32 bytes each`, max `16` per block. Max `4096 * 32 * 16 = 2 MiB` per block, targeted at `1 MiB`.
- Blobs are pruned after 1 month. Available long enough for all actors of a L2 to retrieve it, short enough to keep disk use manageable.
- Blobs are *not required* for EVM execution. I.e. sync is independent, pruning is trivial.
- Blobs are committed to with [KZG](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html): efficient vector commitment, fixed-size proof data, forward-compatible with data-availability-sampling.
- The EVM verifies blob data statelessly with new precompiles: regular calldata is used to present inputs and proofs.
- The EVM can run a ZK proof at the same time as posting the blob (does not require all blob data to go through EVM, just some commitment data)
- The execution-layer changes are forward compatible with the full dank-sharding design for even more data-availability.
## Links
- [EIP-4844 execution-layer, EIP](https://eips.ethereum.org/EIPS/eip-4844)
- [EIP-4844 consensus-layer, specs](https://github.com/ethereum/consensus-specs/tree/dev/specs/eip4844)
- [EIP-4844 Eth Magicians, forum post](https://ethereum-magicians.org/t/eip-4844-shard-blob-transactions/8430)
- [EIP-4844 Execution APIs, Engine API spec extension](https://github.com/ethereum/execution-apis/pull/197)
- [EIP-4844 Go-ethereum prototype, tracking PR](https://github.com/protolambda/go-ethereum/pull/1)
`git clone -b datablobs git@github.com:protolambda/go-ethereum.git`)
- [EIP-4844 Prysm prototype, feature branch](https://github.com/prysmaticlabs/prysm/compare/kiln...blobs)
`git clone -b blobs git@github.com:prysmaticlabs/prysm.git`)
- [Discord Eth R&D server `sharded-data` discussion](https://discord.gg/7cCZVXRedE)
- [How do trusted setups work? blog post by Vitalik](https://vitalik.ca/general/2022/03/14/trustedsetup.html)
- [EIP-4844 implementer notes by Proto](https://hackmd.io/@protolambda/eip-4844-implementer-notes) (including KZG benchmarks)
- [EIP-4844 Blobs tx lifetime and L2 usage](https://hackmd.io/@protolambda/blobs_l2_tx_usage) (devconnect workshop)
- [EIP-4844 implementation diagrams](https://hackmd.io/@protolambda/eip4844-implementation) (devconnect workshop)
Work in progress resources:
- KZG trusted-setup ceremony
- Blob fee market design and integrated EIP-1559