Fees, Throughput & Blockspace
We built up Bitcoin’s fee market from first principles: blockspace is a scarce good, users bid a rate for it, and an open auction rations it. Every blockchain faces the same underlying problem — a shared resource that strangers want to spam — but they price and meter it very differently. This page lines up Bitcoin, Ethereum, and Solana side by side and asks the question the marketing rarely answers: when fees are near zero, who pays the bill instead?
Every chain is selling the same scarce thing
Section titled “Every chain is selling the same scarce thing”A block is a bounded amount of work the whole network must download, verify, and store forever. That boundedness is not an accident — it’s the cost ceiling that lets a modest machine keep up and keep the system honest. So every chain has to do two things:
- Meter each transaction — measure how much of the bounded budget it consumes.
- Price that consumption — charge enough to ration the space and deter spam.
The three chains differ in what unit they meter in and how aggressively they price. Those two choices ripple out into everything: cost per transaction, throughput, and ultimately how decentralized the network can stay.
Chain Meters in… Prices via… Block/slot cadence ───── ────────── ─────────── ────────────────── Bitcoin virtual bytes (vB) open sat/vB fee auction ~10 minutes Ethereum gas units EIP-1559 base fee + tip ~12 seconds (post-Merge) Solana compute units + tiny base fee + priority fee ~400 milliseconds signatures (local fee markets)Bitcoin: vbytes and a pure auction
Section titled “Bitcoin: vbytes and a pure auction”Bitcoin meters in weight units / virtual bytes and prices in satoshis per virtual byte (sat/vB). There is no protocol-set price at all — miners simply sort the mempool by fee rate and fill the ~4,000,000-weight-unit block with the highest bids. The clearing rate floats freely with demand: near-zero when blocks aren’t full, sharply higher during surges. The full mechanics live on the fee market; the one idea to carry forward is that Bitcoin’s price is discovered by an auction, not computed by the protocol.
Ethereum: gas and the EIP-1559 base fee
Section titled “Ethereum: gas and the EIP-1559 base fee”Ethereum can’t meter in bytes, because a transaction isn’t just data — it’s computation. Running a contract loop, writing to storage, and hashing all cost different amounts of work. So Ethereum meters in gas: every operation has a fixed gas cost, and a transaction’s gas usage is the sum of what it executes. A plain ETH transfer is fixed at 21,000 gas; a complex DeFi swap can cost hundreds of thousands.
Since the London upgrade (August 2021), pricing follows EIP-1559, which splits the fee in two:
- Base fee — a protocol-computed price per gas that every transaction in the block pays. It is burned (destroyed), not paid to the validator.
- Priority fee (tip) — an optional bid per gas that does go to the validator, used to jump the queue.
The base fee is the clever part: it’s not auctioned, it’s targeted. Each block aims to be half full, and the protocol nudges the base fee up or down to steer toward that target (see Under the hood). The burn means that during heavy usage Ethereum can destroy more ETH than it issues — the origin of the “ultrasound money” meme — making fees a monetary lever, not just a congestion knob.
Solana: near-zero fees and local fee markets
Section titled “Solana: near-zero fees and local fee markets”Solana takes the opposite stance: make fees so small that users barely notice them. There are two parts:
- A base fee of 5,000 lamports per signature (1 SOL = 1,000,000,000 lamports), so a typical one-signature transaction’s base fee is 0.000005 SOL — a small fraction of a US cent at most plausible SOL prices. Half of the base fee is burned.
- An optional prioritization fee: you set a price per compute unit (in micro-lamports) to bid for ordering when a particular slot is contested.
The crucial design choice is local fee markets. On Ethereum, one wildly popular contract can raise the base fee for everyone in the block, because there’s a single global price. Solana instead prices contention per account / per piece of state: if one hot NFT mint is jammed, only transactions that touch that account pay elevated priority fees, while unrelated transfers stay cheap. The block is metered by compute units (with per-account write limits), and ~400-millisecond slots aim for very high throughput.
The throughput-vs-decentralization tradeoff
Section titled “The throughput-vs-decentralization tradeoff”Here is where “cheap” reveals its cost. Throughput, low fees, and broad decentralization pull against each other — the blockchain trilemma in concrete form.
Want MORE throughput on the base layer │ ├─ bigger / faster blocks │ │ │ └─ more data to download, verify, and store per second │ │ │ └─ heavier hardware + bandwidth to keep up │ │ │ └─ fewer people can run a full validator │ │ │ └─ MORE centralization, MORE fragility- Bitcoin prices blockspace dearly during surges precisely so that a Raspberry-Pi-class node can still validate the whole chain. The cost is throughput: a handful of on-chain transactions per second, with the rest pushed to layers like Lightning.
- Solana pushes throughput hard and keeps fees tiny, but the bill shows up as validator hardware requirements (lots of RAM, fast NVMe, high bandwidth) and a history of network halts — the system occasionally stops producing blocks under load. Cheap transactions are subsidized by demanding more of the people running the network.
- Ethereum sits in between, deliberately keeping base-layer fees high enough to stay light, and exporting cheap throughput to rollups instead of growing the L1.
The thread
Section titled “The thread”How does metered blockspace help untrusting strangers agree on one ledger? Pricing is the spam filter that makes a permissionless ledger possible at all. If transactions were free, anyone could bury the network in junk and no one could afford to verify it — so fees aren’t merely a toll, they’re what keeps the shared ledger cheap to check and hard to flood. The three chains just disagree on how much to charge and who ultimately pays: Bitcoin charges users at the margin to keep verification universal; Solana charges validators (in hardware) to keep users’ fees near zero; Ethereum splits the difference and burns the base fee so the cost is shared by every holder. There is no free blockspace — only different bills.
The architect’s lens
Section titled “The architect’s lens”Metering and pricing blockspace is a deliberate design every chain must make — interrogate the choices:
- Why does it exist? Because a block is a bounded amount of work every node must download, verify, and store forever — so every chain must meter each transaction’s consumption and price it to ration the scarce space and deter spam.
- What problem does it solve? Spam and allocation on a permissionless ledger: free transactions would let anyone bury the network in junk. Bitcoin meters in vB with an open sat/vB auction; Ethereum meters in gas with EIP-1559 (a targeted, burned base fee + tip); Solana keeps fees near-zero with local fee markets that price contention per-account.
- What are the trade-offs? The pricing choice ripples into the throughput-vs-decentralization tradeoff — push throughput up and nodes need heavier hardware, so fewer can verify. “Cheap” isn’t free: Solana shifts the bill to validator hardware (and a history of halts); Ethereum burns the base fee so holders share the cost.
- When should I avoid it? Optimizing fees to near-zero is the wrong target where universal verifiability is sacred — Bitcoin deliberately prices blockspace dearly during surges precisely so a Raspberry-Pi-class node can keep up.
- What breaks if I remove it? With no price, fixed blockspace has no spam filter and no rationing rule — the ledger becomes floodable and too costly to verify — and once Bitcoin’s subsidy fades, fees are the only thing left to fund the security budget.
Check your understanding
Section titled “Check your understanding”- Why does Bitcoin meter in vbytes while Ethereum meters in gas? What does gas capture that bytes cannot?
- In EIP-1559, what is the difference between the base fee and the priority fee, and what happens to each?
- Explain Solana’s “local fee markets.” How do they differ from Ethereum’s single global base fee?
- Walk through why raising base-layer throughput tends to reduce decentralization.
- “Solana fees are near zero, so it’s strictly better.” What does this claim leave out?
Show answers
- Bitcoin transactions are essentially data, so virtual bytes measure their footprint well. Ethereum transactions are computation — loops, storage writes, hashing — which vary in work regardless of byte size, so gas meters execution cost. Bytes can’t capture how expensive a contract is to run.
- The base fee is a protocol-computed price per gas that every transaction pays and is burned (destroyed). The priority fee (tip) is an optional per-gas bid that goes to the validator to jump the queue. So usage destroys ETH via the base fee while validators are paid via tips (plus issuance).
- Local fee markets price contention per account / per piece of state: only transactions touching a congested account pay elevated priority fees, leaving unrelated transactions cheap. Ethereum has a single global base fee, so one hot contract raises the price for everyone in the block.
- More throughput means bigger/faster blocks → more data to download, verify, and store per second → heavier hardware and bandwidth to keep up → fewer people can run a full validating node → more centralization and fragility. The verification budget is the binding constraint.
- It ignores who pays instead: near-zero user fees are subsidized by high validator hardware requirements (a decentralization cost) and have coincided with network halts under load. “Cheap” shifts the bill from users to the people and machines securing the network — it doesn’t erase it.