Busy being born.

Mental Model: Gas

A blockchain is a distributed database run by n nodes. Running a node involves storing a full copy of the database locally, executing the state update instructions of each individual transaction of each block, and staying in sync with the blockchain's current state after each block. This costs concrete, physical resources like electricity, and that costs real money.

Since the blockchain has constant block times, we can understand the work done in running a node at a per-block level.

Each transaction in a block can have varying computational complexity. A transaction encoding many database state changes is more expensive to process than one encoding fewer, since database state changes (and any associated calculations of the values to change or store) correspond to real, physical operations in real machines.

Transactions encode desired blockchain database updates as a series of individual computer instructions. The blockchain only recognizes a published, fixed set of computer instructions, where each instruction is assigned a fixed cost denominated in "gas" units.

For its own internal accounting, a blockchain measures the real, physical cost of a node processing a block in terms of gas units. To prevent unconstrained operational costs, blockchains place a capacity limit on the maximum gas units of work in a single block ("block gas limit").

This block gas limit, divided by block time, gives us "throughput": the maximum gas units of work the blockchain can process per second.

The throughput-decentralization tradeoff

A blockchain's properties of permissionlessness, trustlessness and immutability hold to the degree that no single node has the ability to selectively include, exclude, or roll back transactions. The more independent nodes a blockchain has, the greater the number of nodes required to agree (e.g. 2/3 of all nodes) on the state and operation of the blockchain, and the harder it is for any single node or collusion of several nodes to selectively include or exclude one set of database updates over another.

Higher throughput means more gas units of work per block. More work per block means each node must perform more computation per block time. This raises the physical cost of running a node, which raises the barrier of entry to participating in the network, which means fewer independent nodes, which makes it easier for a small group of nodes to control which transactions get included.

Lower throughput means the opposite: cheaper nodes, more participants, stronger guarantees. But a blockchain with low throughput is worse as a record of critical data that incurs a high volume of updates.

A blockchain that achieves high throughput at a low operational cost per node would allow many independent nodes to participate — strengthening its properties of permissionlessness, trustlessness and immutability — while also being able to process a high volume of database updates. This is the goal, and it is a hard problem.