What Is a Block in Blockchain?

Learn what a blockchain block is, why it exists, how block headers and commitments work, and how blocks differ across Bitcoin, Ethereum, and more.

Sara ToshiMar 21, 2026
Summarize this blog post with:
What Is a Block in Blockchain? hero image

Introduction

Block is the basic unit of record in a blockchain, but calling it a “container of transactions” misses the main point. A block exists because a distributed system needs a way to say not just what happened, but in what order, under which rules, and with what cryptographic commitment to the result. Without that unit, there is no stable history for nodes to replicate, verify, or build on.

The puzzle is that a block is both modest and powerful. Modest, because at a high level it is only a bundle of data plus some metadata. Powerful, because once many nodes agree on a sequence of blocks, that sequence becomes the ledger’s shared past. The crucial idea is this: a block is the unit that turns many separate actions into one agreed state transition and one hash-linked step in history.

That idea shows up across very different systems. In Bitcoin, a block timestamps and chains transactions through proof-of-work, with the header committing to all included transactions through a Merkle root. In Ethereum, a block also commits to the ordered transactions, but it additionally commits to the resulting world state through stateRoot, with consensus now handled by the Beacon Chain. In Tendermint-style systems, blocks are records of what a supermajority agreed on. In Hyperledger Fabric, a block is part of an immutable transaction log that sits alongside a separate world state database. The details differ, but the role is the same: a block is the network’s reusable answer to the question, “What exactly are we agreeing happened next?”

Why do blockchains use blocks to order and commit transactions?

If a blockchain only stored individual transactions as they arrived, the network would have a hard problem. Different nodes hear transactions at different times, in different orders, and sometimes not at all. A distributed ledger cannot rely on arrival order at the network edge, because network propagation is messy. So the system needs a stronger object: a packet of ordered actions that can be validated as a unit and then linked to a prior accepted history.

That is what a block solves. It batches transactions or messages, fixes their order, and ties them to a specific parent. Once the block is accepted, nodes do not just agree that certain transactions exist; they agree that these transactions were processed after the parent block and before whatever comes next. In state-machine terms, the incoming state plus the block’s ordered contents deterministically produces an outgoing state. The block is therefore not merely storage. It is the unit of coordinated state transition.

This is why blocks matter even in systems that are not organized exactly like Bitcoin. Ethereum’s execution layer defines a block-level transition by applying the transaction transition function sequentially across all transactions in the block, then finalizing additional effects such as withdrawals. Filecoin describes each block as carrying messages and a checkpoint of global state after those messages apply. Fabric separates current state from historical log, but its blockchain side still uses blocks as the immutable, ordered record of transactions. The underlying need is the same in each case: the network needs a common chunk size for agreement.

How does a block separate its payload from the cryptographic commitment?

PartContentsTypical sizePrimary purposeWho verifies
BodyOrdered transactions and metadataLarge (KB–MB)Execution inputs and dataFull nodes (re-execute)
Figure 4.1: Block header vs block body

To understand blocks mechanically, it helps to separate what the block contains from what the block proves. The payload is the data a node wants others to process: transactions, messages, withdrawals, metadata, and sometimes signatures or evidence. The commitment is the compact cryptographic summary that lets other nodes verify that this exact payload, in this exact position in history, is what the proposer claimed.

That is why most blockchain designs distinguish between the block body and the block header. The body is usually the heavier part: the ordered list of transactions or messages and any accompanying data. The header is the compact metadata about the block itself. A typical header includes a reference to the previous block, a hash or root that commits to the block’s contents, and whatever consensus-specific fields the protocol needs, such as a timestamp, slot number, nonce, proposer identity, or fee-related values.

The NIST glossary definition of a block header is broad and useful here: it is the portion of a block containing information about the block itself, typically including a timestamp, a hash representation of block data, the previous header’s hash, and a nonce if needed. That “if needed” matters. A nonce is fundamental in proof-of-work systems like Bitcoin, where miners vary header values until the hash meets a target. It is not fundamental to the concept of a block itself. In proof-of-stake systems, different fields serve the consensus role.

So the durable structure is not “every block has a nonce.” The durable structure is: every block gives nodes a compact thing to hash, verify, compare, and chain. Which fields appear in that thing depends on the protocol’s execution model and consensus mechanism.

How does linking a block to its parent create a shared ledger history?

A single valid block is not yet a blockchain. What turns blocks into a ledger is the parent reference. Each block points to its predecessor, usually by including the predecessor’s header hash. That means the identity of the current block depends on the previous one, and therefore on the previous one’s previous block, and so on. History becomes cumulative.

Bitcoin’s whitepaper presents this as a timestamp chain. A timestamp server publishes the hash of a block of items, and each timestamp includes the previous timestamp in its hash. The effect is simple but profound: changing an older record changes its hash, which breaks the link from the next block, which then forces a recomputation of the next block, and so on forward. In proof-of-work, that recomputation must also redo the expensive work. In other systems, the cost of rewriting history comes from different consensus and signature assumptions, but the hash-linking logic remains.

This parent link gives a block two properties that are easy to conflate but should be kept distinct. First, it gives integrity: if someone alters a past block, the chain of hashes no longer matches. Second, combined with the chain-selection rules of the protocol, it gives historical order: nodes can identify one block as the parent of another and therefore one state transition as preceding another. Integrity comes from cryptography. Canonical history comes from consensus. A hash chain alone does not tell everyone which competing tip to treat as the ledger’s current head.

That distinction explains why block structure and consensus are neighboring but different topics. A block is the object over which consensus operates. Consensus decides which valid block sequence becomes canonical.

Why do block headers contain roots (Merkle/state roots) instead of full transaction lists?

Commitment methodHeader sizeVerification costSPV proof possibleStorage pruning
Merkle rootVery smallLow for header-only checksYesSupported (prune branches)
Multiple roots (Ethereum)Small (several roots)Medium; some rechecks neededPartial (txs yes, state no)Conditional (need trie nodes)
Full listingLarge (includes contents)High; hash whole bodyNoNot feasible
Figure 4.2: Why headers use roots (vs listing contents)

A block may contain many transactions, but the network does not want the identity of the block to require hashing an arbitrarily large object every time it needs a quick check. So blockchain designs usually put a commitment to the contents in the header rather than the entire contents themselves.

In Bitcoin, transactions are hashed into a Merkle tree and only the Merkle root appears in the header. That root commits to the full set of transactions: if any transaction changes, the root changes. The benefit is compactness. Nodes can pass around small headers while retaining a cryptographic anchor to much larger bodies. The whitepaper also points out a practical storage consequence: once a block is old enough, parts of the transaction tree can be pruned while the header remains as the compact historical commitment.

The same idea appears in richer forms elsewhere. Ethereum headers contain transactionsRoot, receiptsRoot, stateRoot, and, since Shanghai, withdrawalsRoot. These are not all doing the same job. transactionsRoot commits to what went in. receiptsRoot commits to execution results such as logs and status information. stateRoot commits to what came out: the post-block world state after executing the block. This is the major conceptual difference from simpler payment-chain models. In Ethereum, a block is not only a record of included transactions but also a cryptographic commitment to the resulting state transition.

That explains why an Ethereum validator can re-execute the block and check whether the resulting state matches the header’s stateRoot. The protocol is not asking validators to trust the proposer’s claim about the new state. It is asking them to compute the transition themselves and verify that the advertised commitment matches the computed result.

How is a block produced and verified? A step‑by‑step example

Imagine a network where Alice sends funds to Bob, Bob calls a smart contract, and Carol submits another transaction that depends on Bob’s contract call having already happened. These transactions are gossiping around the network, and different nodes may receive them in different orders. At this point there is no globally fixed answer to what “the next state” is.

Now a block producer assembles a candidate block. The producer chooses a parent block first, because every new block is proposing not just data but a continuation of a specific prior history. Then the producer orders the candidate transactions. That ordering matters: if Carol’s transaction depends on Bob’s contract call, switching the order may make Carol’s transaction fail or produce a different outcome. The producer executes or simulates the ordered transactions according to the chain’s rules, discarding any that are invalid under those rules or, in some systems, marking them invalid while still recording them.

From that ordered payload, the producer computes the block’s commitments. In a Bitcoin-like design, this means at least a root over the included transactions and a header that also points to the parent. In Ethereum, it means computing the trie roots that summarize transactions, receipts, withdrawals where applicable, and the final account state after execution. The producer then fills in consensus-related header fields: perhaps a proof-of-work nonce, perhaps a slot number and proposer data, perhaps signatures or commit information from validators.

Other nodes do not merely check that the block is well-formed. They reconstruct the mechanism. They verify that the parent exists and is acceptable under their current fork-choice view. They verify the header fields and the consensus proof appropriate to the chain. They check that the transactions are valid under protocol rules. If the chain is stateful, they re-execute the transactions in order and confirm that the claimed post-block state commitment matches the result they computed. Only then do they treat the block as a valid candidate extension of history.

Notice what the block has accomplished. It turned many floating, unordered requests into a single claim: given this parent and this ordering, the ledger moves to this next state. That is the reason blocks are central.

What determines block validity on Bitcoin, Ethereum, and permissioned chains?

Chain typeKey validity checksConsensus proofState checkFinality
Bitcoin (PoW)UTXO availability, tx signaturesProof-of-work (hashing)UTXO-set consistency checksProbabilistic (depth)
Ethereum (PoS + exec)Tx validity, gas & fee rulesBeacon Chain attestations/signaturesFull re-execution to match stateRootCheckpoint-based finality
Permissioned (Fabric)Endorsements, RW-set version checksOrdering service signaturesWorld state DB consistencyImmediate/deterministic
Tendermint-style BFTTx syntactic & semantic checks2/3 validator signaturesDeterministic application of txsImmediate (final)
Figure 4.3: How block validity differs by chain

A common misunderstanding is that a valid block is just one whose hash looks right or whose signature checks out. That is only a small part of block validity. A block is valid only if it satisfies the full rule set of its protocol.

Bitcoin’s whitepaper gives the classic outline. When a node receives a newly found block, it accepts it only if all transactions are valid and not already spent, and if the proof-of-work is correct. The network then expresses acceptance by building the next block on top of it. In Bitcoin, then, block validity combines transaction validity, UTXO-consistency, proper chaining, and proof-of-work.

Ethereum adds a different set of checks because the chain models a global state machine. A block is valid only if sequentially applying its transactions and finalization logic to the parent state yields the post-state committed by stateRoot, while also satisfying gas accounting, fee rules such as EIP-1559 base fee mechanics, and consensus-provided inputs from the Beacon Chain. The block structure cannot be understood apart from that execution model.

Permissioned systems reveal that some parts of “block validity” are not universal blockchain laws but design choices. In Hyperledger Fabric, for example, a block sits in an immutable chain, but the current world state is maintained separately in a database for efficient reads. Fabric also appends validity indicators for transactions after block creation, and those indicators are not included in the original block hash. That would be a strange design in Bitcoin, but it makes sense in Fabric’s enterprise setting because the ledger architecture separates different responsibilities differently.

So the invariant is not “all chains validate blocks the same way.” The invariant is that every chain needs deterministic block acceptance rules so independent nodes can converge on the same answer.

How do different consensus designs (PoW, PoS, Tendermint) affect blocks and chain selection?

It is tempting to explain a block by starting with mining or staking. But that can blur a deeper point. Consensus does not replace blocks; it selects among candidate blocks and gives finality or probabilistic confidence to a sequence of them.

Bitcoin makes the interaction very explicit. Miners search for a nonce so that the block header hash falls below a target, effectively requiring a certain number of leading zero bits in the hash. The longest proof-of-work chain is treated as the correct one because it represents the largest cumulative investment of CPU power. Here the block header is designed to be cheap to verify and expensive to forge at scale.

Ethereum after the Paris transition separates the roles more clearly. The execution layer defines block contents and state-transition semantics, while the Beacon Chain consensus layer determines canonical history and provides consensus-derived inputs used in the execution payload. So when people say “Ethereum block,” they are often referring to an execution payload nested within a beacon block context. The important lesson is that a block may be the execution unit while another layer is the final authority on chain selection.

Tendermint-style systems make yet another tradeoff. There, the key idea is not accumulated proof-of-work but recording agreements by a supermajority of validators. A block becomes part of replicated history because a threshold of participants signs off through the protocol’s commit process. The role of the block is familiar (it packages the next step in history) but the reason others trust its place in history comes from validator agreement rather than computational expenditure.

What practical functions do blocks serve in live blockchains?

Blocks are often introduced as if they were just accounting pages. In practice they do more.

They are the pacing mechanism of the chain. Ethereum’s documentation emphasizes that blocks are produced in 12-second slots, and that some slots may be empty if the selected validator is offline. That tells you something important: block cadence is how the network trades off latency against coordination. If blocks came arbitrarily fast, slower nodes would fall behind. If they came too slowly, confirmation latency would be poor.

They are also the resource-allocation mechanism. Ethereum’s gas limit caps how much computation fits into a block because unconstrained blocks would price out less capable nodes and push the system toward centralization. The cap is not cosmetic; it is the protocol’s way of controlling how much work the network must process per step of shared history.

Blocks are also a retrieval and verification interface. Bitcoin’s simplified payment verification works by keeping only block headers and Merkle branches rather than full blocks. This is powerful because it lets lightweight clients verify inclusion without storing or validating the entire chain. But the whitepaper is careful about the tradeoff: SPV clients cannot fully validate transactions on their own and are less secure if an attacker overpowers the network.

In systems with richer execution, blocks serve as state checkpoints. Filecoin describes blocks as carrying messages and a checkpoint of global state after applying them. Ethereum’s stateRoot serves a similar checkpointing role for account state. Hyperledger Fabric uses blocks as the immutable trail from which world state can in principle be reconstructed. Across designs, the practical use is not just “remember transactions.” It is “fix the next agreed state and leave evidence that others can verify.”

What are the risks and failure modes for blocks and blockchain history?

The word immutable is often used too casually around blocks. Blocks do not become magically unchangeable. They become hard to replace under the security assumptions of the system.

Bitcoin’s whitepaper is explicit: if an attacker controls a majority of CPU power, the attacker can outpace the honest chain. So the security of a Bitcoin block is conditional on honest majority assumptions and on the cost of redoing proof-of-work. The chain’s depth matters because each additional block layered on top increases the amount of work an attacker would need to replace that history.

Proof-of-stake systems shift the assumptions rather than removing them. You depend on honest-majority-by-stake assumptions, correct fork-choice behavior, slashing incentives, network liveness, and the proper interaction between execution and consensus layers. The block remains the unit of history, but the reason history is hard to revise is now economic and protocol-theoretic rather than purely computational.

There is also a more subtle fragility: a block can be structurally valid in theory but rejected in practice if implementations disagree. The March 2013 Bitcoin chain fork is a good illustration. A block with an unusually large number of transaction inputs was accepted by Bitcoin 0.8 nodes using LevelDB but rejected by some older nodes using Berkeley DB because lock limits had effectively become an inconsistent, implicit consensus rule. That incident teaches a sobering lesson: block validity is not only about the spec on paper, but about whether different implementations actually compute the same answer.

Operational stress can also make block production fail even without a bug in the abstract rules. Solana’s April 2022 outage report describes consensus stalling and block production stopping after overwhelming inbound transaction load led validators to run out of memory while too many forks accumulated. The lesson is not that blocks were the problem. It is that block production sits at the intersection of networking, resource limits, fork choice, and execution pressure. A block format alone does not guarantee a resilient chain.

Which parts of a block are essential versus protocol-specific conventions?

Some elements of blocks are so common that they can look universal. They are not all equally fundamental.

What is fundamental is that a block provides a deterministic next-step claim over a specific parent history, together with compact commitments that let other nodes verify the claim. If a system lacks that role, it may still be a distributed log, but it is no longer using blocks in the usual blockchain sense.

What is conventional depends on architecture. A proof-of-work nonce is conventional to PoW chains, not to blockchains in general. A Merkle root over transactions is common and extremely useful, but some systems use different authenticated data structures or additional roots. A single chain of one block at a time is common, but Filecoin’s use of tipsets shows that some designs allow multiple blocks at the same height to be grouped into a higher-level chain unit. A separate world state database, as in Fabric, is an architectural choice rather than an essence of blocks.

Even the meaning of “what a block commits to” varies. Bitcoin blocks primarily commit to ordered transactions and their placement in a proof-of-work history. Ethereum blocks commit both to ordered execution inputs and to the resulting state and receipts. Cardano specifications bring in additional cryptographic machinery such as KES and VRFs at the blockchain layer, shaping how block headers prove authority and randomness. These differences matter because they reflect different answers to the same question: what must everyone be able to verify from a block alone?

Conclusion

A block is the network’s unit of agreed history: an ordered batch of actions, tied to a parent, with cryptographic commitments that let everyone verify both the contents and their place in the ledger. That is why blocks exist. They turn messy, asynchronous activity into discrete, checkable steps that many machines can replicate.

The memorable version is simple: transactions are requests; a block is the network’s claim about what happened next.

Everything else is how different blockchains make that claim precise, verifiable, and hard to rewrite.

  • headers
  • roots
  • nonces
  • signatures
  • gas limits
  • slots
  • validator commits

What should you check about blocks and finality before trading or depositing?

Before depositing, trading, or withdrawing, understand how the chain you plan to use treats blocks and finality; that determines how long you should wait for confirmations and what risk remains. On Cube Exchange you can fund your account and trade once the on-chain confirmations meet your chosen safety threshold; use Cube’s deposit guidance for network-specific requirements.

  1. Look up the chain’s finality model and recommended confirmation count (e.g., Bitcoin: commonly 6 confirmations; many PoS chains: wait for finality checkpoint) on the chain’s docs or Cube’s deposit notes.
  2. Verify the exact asset + network pair you will use (example: USDC on Ethereum mainnet vs Polygon) and select the matching deposit rail in Cube before sending funds.
  3. Deposit the asset to your Cube account using the chosen network and wait until the on-chain confirmation threshold you identified is reached and Cube shows the deposit as credited.
  4. Place your trade on Cube. For exposed or illiquid tokens, use a limit order (or post-only) to control slippage and avoid execution during reorg windows; review estimated fees and submit.

Frequently Asked Questions

Why do block headers contain roots (like a Merkle root or stateRoot) instead of the full list of transactions?
+
Because hashing an entire (potentially large) block body every time is inefficient, headers contain compact cryptographic commitments (e.g., a Merkle root) that uniquely commit to the full payload while staying small; this lets nodes exchange and verify headers cheaply while still anchoring the larger body to the header. This is described in the article and exemplified by Bitcoin’s Merkle-root-in-header design and Ethereum’s transactionsRoot/receiptsRoot/stateRoot fields.
How does linking a block to its parent turn separate blocks into a shared history?
+
The parent link makes each block’s identity depend on its predecessor, so changing an old block breaks the hashes of all later headers; cryptography gives integrity while the chain-selection (consensus) rules determine which competing chain is canonical. The article contrasts integrity (hash-linking) with canonical history (consensus).
Are blocks truly immutable once they are published?
+
No - blocks become hard to change only under a chain’s security assumptions (for Bitcoin, an honest-majority-of-CPU-power assumption; for proof-of-stake, honest-majority-by-stake, correct fork-choice and slashing incentives). The article warns that immutability is conditional and depends on those assumptions.
What exactly makes a block “valid”?
+
A block is valid only if it satisfies the protocol’s full deterministic acceptance rules for that chain - not just a correct header hash or signature - which typically includes transaction validity, correct parent linking, and whatever consensus proofs the protocol requires; different systems (Bitcoin, Ethereum, Fabric) check different things. The article stresses that validity depends on the chain’s rule set and deterministic acceptance.
How do blocks relate to consensus - does consensus create blocks or just pick among them?
+
Blocks are the object that consensus selects; consensus does not define the block’s internal structure but decides which candidate block sequence becomes canonical. Bitcoin’s PoW, Ethereum’s separation of execution and Beacon Chain consensus, and Tendermint’s signed supermajority all illustrate different ways consensus gives finality to blocks. The article explains that blocks are shaped by but distinct from consensus.
Why do block time and block size/gas limits matter for a blockchain’s performance and decentralization?
+
Blocks set the chain’s pace and resource limits: production cadence (e.g., Ethereum’s ~12-second slots) trades latency for synchronization, and gas/block-size limits cap per-block work to prevent centralization by keeping resource requirements bounded. The article and Ethereum docs cite block cadence and gas limits as mechanisms for latency and decentralization trade-offs.
How can lightweight (SPV) clients verify transactions using blocks, and what are the limits?
+
Light clients use block headers plus Merkle branches (SPV) to verify transaction inclusion without storing full blocks, but they cannot fully validate execution and are vulnerable if an attacker can overpower the network; the article and Bitcoin whitepaper note SPV’s compactness and its security trade-offs.
Do all blockchains use the same block structure and the same fields in a header?
+
Block formats vary by design choice: some chains (Bitcoin) primarily commit to ordered transactions, Ethereum also commits to post-execution state via stateRoot, Fabric stores world state separately and appends validity flags after block creation, and Filecoin groups blocks into tipsets - the article highlights these architectural differences and that many header fields are conventional rather than essential.
What happens if different client implementations disagree about block-validation rules?
+
When implementations diverge in how they enforce or implicitly rely on environment or storage behavior, nodes can disagree about block validity and cause forks; the article cites the March 2013 Bitcoin incident where differences in Berkeley DB/LevelDB behavior led to a temporary chain split as an example of this risk.
Can blocks stop being produced or cause outages even when the protocol is correct?
+
Blocks can fail to be produced or accepted under real-world stress even if the format is correct; e.g., Solana’s April 2022 outage arose from extreme inbound transaction load that led validators to exhaust memory and stall block production, illustrating that block production depends on networking, resource limits, fork choice, and execution load, not just the block format.

Related reading

Keep exploring

Your Trades, Your Crypto