diff --git a/EIPS/eip-7916.md b/EIPS/eip-7916.md index 68b570935f8925..8c6869b3b516f8 100644 --- a/EIPS/eip-7916.md +++ b/EIPS/eip-7916.md @@ -42,22 +42,22 @@ The [SSZ Merkleization specification](https://github.com/ethereum/consensus-spec - The merkleization depends on the number of input chunks and is defined recursively: - If `len(chunks) == 0`: the root is a zero value, `Bytes32()`. - Otherwise: compute the root using `hash(a, b)` - - `a`: Recursively merkleize chunks beyond `num_leaves` using `merkleize_progressive(chunks[num_leaves:], num_leaves * 4)`. - - `b`: Merkleize the first up to `num_leaves` chunks as a binary tree using `merkleize(chunks[:num_leaves], num_leaves)`. + - `a`: Merkleize the first up to `num_leaves` chunks as a binary tree using `merkleize(chunks[:num_leaves], num_leaves)`. + - `b`: Recursively merkleize chunks beyond `num_leaves` using `merkleize_progressive(chunks[num_leaves:], num_leaves * 4)`. This results in a 0-terminated sequence of binary subtrees with increasing leaf count. The deepest subtree is padded with zeroed chunks (virtually for memory efficiency). ``` - root - /\ - / \ - /\ 1: chunks[0 ..< 1] - / \ - /\ 4: chunks[1 ..< 5] - / \ - /\ 16: chunks[5 ..< 21] - / \ - 0 64: chunks[21 ..< 85] + root + /\ + / \ + 1: chunks[0 ..< 1] /\ + / \ + 4: chunks[1 ..< 5] /\ + / \ + 16: chunks[5 ..< 21] /\ + / \ + 64: chunks[21 ..< 85] 0 ``` | Depth | Added chunks | Total chunks | Total capacity (bytes) |