[Back to all posts](/blog)

![Blockchain: Nobody Votes, Nobody Digs](/_next/image?url=https%3A%2F%2Fik.imagekit.io%2Fgrbmndlassts%2Fblogs%2Fblockchain-nobody-votes-nobody-digs%2Fcover.jpg&w=3840&q=75)

# Blockchain: Nobody Votes, Nobody Digs

November 1, 2026

·

12 min read

blockchainbitcoinethereumproof-of-workproof-of-stakeconsensus

Wallets hold nothing, mining isn't digging, the 10-minute block is a probability, and consensus isn't a vote. Blockchain mechanics, minus the hype

---

# Blockchain: Nobody Votes, Nobody Digs

Blockchain is tech. Web3 is an idea. Crypto is an asset running on a blockchain. Smart contracts are programs on certain blockchains, and different blockchains mean different smart contract languages.

That sorts out most of the vocabulary. The rest is just three layers stacked on each other:

1. The network: consensus + ledger + nodes. Proof of Work or Proof of Stake, the blocks, the P2P nodes.
2. The runtime: EVM, Solana VM, Bitcoin Script.
3. The applications: crypto, smart contracts, DApps, tokens, NFTs, voting, games, whatever else people build on top.

Underneath it, a blockchain is a network of blocks with some network-specific predefined rules. It's good at tamper-proof records, proof of ownership, auditability and money without banks. It's slower than a normal database, storage on it is expensive, PoW burns a lot of energy, and it attracts dumb hype projects.

## Wallets hold nothing

Crypto wallets don't hold currency.⁠‌‍‌ ‌‍ ‌​ ‍‍‌‍​‍‌‍ ​‌‍ ‌‍​ ‌‍‍ ‌‍​ ‌‍‍​‌‍​‌‌‍‍‌‌‍ ‍​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌ ‌‍‌‍ ‌ ‌​‌‍‌‌‌ ​ ​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌‍‌​‌‍‍‌‌‍‌ ‌ ​ ​ ‍‍​ ​‌​ ‌ ​ ‍‌​ ​ ​ ‌‌​ ‌​​ ‌‌​ ​‌​ ​ ​ ‌ ​ ‍‍​ ‌​‌‍‌​​ ​ ‌‍‌​​ ‌‍​ ‌ ​ ‌‌​ ​‍‌‍​‌​ ​ ​ ‌‌​ ​ ​ ‌ ‌‍​ ‌‍​‍​ ‍‌⁠ They hold your identity on a blockchain network, meaning your keys. The coins stay in the ledger.

The values in the ledger are the currency. A transfer, a miner's reward, a miner's fee: all of them are just ledger entries. A reward is a special transaction from the network itself to the miner.

Each transaction is signed only by the sender, not by both parties. Every block's transactions are checked against those digital signatures.

Some networks have a base currency, like ETH on Ethereum. Lots of other currencies don't build their own chain and just ride on a common one. SHIB, UNI and LINK are built on Ethereum, and USDT has an Ethereum version too. That's the whole difference between a coin and a token: tokens are cryptos that are not the network's native currency.

The catch is gas. Whatever token you're buying or moving, the fee is always paid in the network's base currency, the layer 1 coin.

And going from crypto to actual money and back still goes through exchanges, which are trusted institutions.

## What a block actually is

A block is a list of verified transactions, plus a special "coinbase" transaction that pays the miner, plus a Merkle root.

The Merkle root is one hash summarizing every transaction in the block. Transactions get hashed, then pairs of hashes get hashed together, and so on up the tree until a single hash is left. Changing any transaction changes the root. It also lets a light client check that a transaction is in a block without downloading the whole block (SPV).

The block header carries:

- previous block hash
- Merkle root
- nonce
- difficulty
- timestamp
- version

There is no fixed number of transactions a block has to collect. Blocks get produced on a steady rhythm no matter how much traffic the network has. What blocks do have is a size limit. Bitcoin's was a 1 MB hard cap (SegWit later turned that into 4 million weight units).

## Blocks vs global state

Inside a blockchain network, data lives in two logical structures. They aren't two physical places.

Blocks are the history. An append-only, time-ordered log of transactions. Nobody edits a block in place. The only way to change history is to replace blocks with a competing chain, and that's the PoW vs PoS question further down.

The global state is the current picture: account balances, token balances, contract bytecode, contract storage, variables and mappings. It's derived by processing the blocks, but it isn't stored inside them. On Ethereum each block header does commit to it through a `stateRoot` hash, so the state is pinned to every block without living in it.

Checking a balance needs some account-to-balance mapping, direct or not. Bitcoin stores spendable pieces called UTXOs, like the individual bills in your pocket. Ethereum stores a direct balance per account. Both keep a live current state, so nobody rescans the full history to find out what you own.

Smart contracts follow the same split.⁠‌‍‌ ‌‍ ‌​ ‍‍‌‍​‍‌‍ ​‌‍ ‌‍​ ‌‍‍ ‌‍​ ‌‍‍​‌‍​‌‌‍‍‌‌‍ ‍​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌ ‌‍‌‍ ‌ ‌​‌‍‌‌‌ ​ ​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌‍‌​‌‍‍‌‌‍‌ ‌ ​ ​ ‍‍​ ​‌​ ‌ ​ ‍‌​ ​ ​ ‌‌​ ‌​​ ‌‌​ ​‌​ ​ ​ ‌ ​ ‍‍​ ‌​‌‍‌​​ ​ ‌‍‌​​ ‌‍​ ‌ ​ ‌‌​ ​‍‌‍​‌​ ​ ​ ‌‌​ ​ ​ ‌ ‌‍​ ‌‍​‍​ ‍‌⁠ Blocks don't hold contracts, they hold transactions that move currency or call contracts. The contract itself (bytecode, state variables, metadata) lives in the global state, replicated across the network. Every node executes the contract code in the VM (the EVM on Ethereum), and every node ends up with the same updated state.

## Mining is not finding coins

Miners verify the ledger, get to build new blocks, and get paid crypto and fees for it. There's no gold mining happening.

The actual work is brute force. The miner builds the block header, then keeps changing the nonce and computing `hash(block_header)` until the result is less than the network's target. That's the difficulty rule. First valid hash wins, the miner broadcasts the block, every other node verifies it, and the chain extends.

Rendering diagram...

flowchart LR
    A["Build header"] --> B["Change nonce"]
    B --> C["hash(header)"]
    C --> D{"hash < target?"}
    D -- no --> B
    D -- yes --> E["Broadcast block"]
    E --> F["Nodes verify, chain extends"]

Mining is a business now. Individual miners are rare. It's mostly pools and mining companies.

## The 10 minutes is a probability

Bitcoin targets one block every \~10 minutes. The network does not enforce "only one block every 10 minutes", and it does not make anyone wait 10 minutes before mining. Miners hash continuously, every millisecond.

Blocks still average 10 minutes because the network sets the difficulty so that the probability of any miner finding a valid hash works out to about once every 10 minutes. It doesn't matter if there's 1 miner or 1 million. More miners means more hash power, so the puzzle gets harder. Fewer miners and it gets easier. Bitcoin readjusts every 2016 blocks, which is roughly 2 weeks.

There's no clock, no window and no enforced wait. Miners race against randomness, weighted by compute power.

The difficulty rule and how it's tuned vary between networks. The reward schedule is mostly a Bitcoin thing:

- Every \~4 years the block reward halves. It started at 50 BTC per block and is 3.125 BTC now. Next comes 1.5625, then 0.78125, and so on until \~2140.
- Total supply is capped at 21 million BTC. New supply gradually approaches zero.

After the reward runs out, miners survive on fees. If miners disappear, the network stops working, because nobody is creating new blocks.

## Nodes verify, some build, nobody votes

Calling blockchain consensus a democracy is completely wrong. In PoW there's zero voting. PoS does have validators voting (attestations on the chain head and on finality), but those are stake-weighted signatures checked by fixed rules, not a show of hands. It's cryptoeconomics.

Every node is a watchdog. Nodes always verify, and mining is optional. A full node checks:

- signatures
- UTXOs or balances
- the block header (nonce, difficulty, timestamp)
- the Merkle root
- the previous block hash
- that nothing breaks protocol rules, like coins appearing from nowhere

Block producers need a node (in a pool, the operator runs it, not every hasher).⁠‌‍‌ ‌‍ ‌​ ‍‍‌‍​‍‌‍ ​‌‍ ‌‍​ ‌‍‍ ‌‍​ ‌‍‍​‌‍​‌‌‍‍‌‌‍ ‍​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌ ‌‍‌‍ ‌ ‌​‌‍‌‌‌ ​ ​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌‍‌​‌‍‍‌‌‍‌ ‌ ​ ​ ‍‍​ ​‌​ ‌ ​ ‍‌​ ​ ​ ‌‌​ ‌​​ ‌‌​ ​‌​ ​ ​ ‌ ​ ‍‍​ ‌​‌‍‌​​ ​ ‌‍‌​​ ‌‍​ ‌ ​ ‌‌​ ​‍‌‍​‌​ ​ ​ ‌‌​ ​ ​ ‌ ‌‍​ ‌‍​‍​ ‍‌⁠ Normal users only need a wallet to talk to the network. All full nodes verify the rules, and only some of them build blocks.

Consensus means following the chain with the most weight. In PoW, weight is cumulative work, which usually means the longest chain. In PoS, weight is stake, and length doesn't matter. Either way the heaviest chain only wins if every block in it follows the rules. A cheater's invalid block gets rejected automatically by every node, without anyone voting on it.

A new full node checks the whole chain from the genesis block once, while syncing. After that it only verifies new blocks and trusts the past through the hashes linking them.

## Mempool, orphans and forks

The mempool is a decentralized waiting room for unconfirmed transactions. Miners and validators pick what goes into their block, and they pick for profit, so the highest fees go first.

A fork is when the chain's history diverges. It happens by accident when two valid blocks are found at the same time, or on purpose when the network changes its rules.

Rendering diagram...

flowchart LR
    B100["Block 100"] --> A["Block 101a"]
    B100 --> B["Block 101b"]
    B --> C["Block 102"]
    A -.-> X["Orphan: dropped"]

The accidental kind fixes itself within a block or two, as soon as one branch gets heavier. The losing block is the orphan (Bitcoin Core calls it a stale block). It's a valid block, it just lost. Its transactions that aren't already in the winning block go back to the mempool, and its miner gets no reward and no fees, because that chain no longer counts. Old orphans are effectively auto-removed. These forks are just wasted work.

The intentional kind, soft and hard forks, is permanent. It adds features, fixes bugs or changes core rules. It's the only way to upgrade the protocol.

---

## PoW vs PoS: who gets to rewrite history

PoW and PoS are two of many consensus strategies. Both enforce the same block validity rules. The difference is what happens to history that's already valid.

PoW competes with compute and energy for the right to make the next block. Luck plus hash power decides who wins. It's slower because the hashing takes time. Security is the cost of electricity and hardware. You earn by spending energy. Bitcoin is the example.

PoS has you stake coins, and the network randomly picks a validator to make the next block, weighted by how much they staked. Blocks come faster because there's no hashing race (12 seconds on Ethereum), though finality takes about 12.8 minutes. Security is the money you lose if you cheat (slashing). You earn by risking your own coins. Ethereum is the example. The risk is that rich validators can dominate if stake gets concentrated.

In PoW, history can be replaced if you outwork everyone. An attacker redoes the work from the block they want to change onward, then has to outpace the honest chain, which in practice means more than 50% of that network's hash power. If the attacker's chain ends up with the most cumulative work, nodes accept it, altered or not, because the recomputed blocks are valid. Rules come first, then work decides history. Consensus > Immutability.

PoS has protocol-level finality. Once a block is finalized it's immutable. No rewriting 50 blocks, no billionaire erasing history. Show up with unlimited stake and a chain 1000 blocks longer, and synced nodes still won't switch to it, because finality explicitly forbids rewriting history. Breaking finality at all means at least a third of all staked ETH gets slashed, and recovering from that happens outside the protocol, through a social hard fork. Finality protects the past, not the future: a stake majority can still censor or control the blocks that aren't finalized yet. Immutability > Consensus.

> PoW's immutability is economic: hard to rewrite, but possible in theory. PoS's immutability is protocol-level: rewriting finalized history is impossible.

Low compute doesn't mean anyone can run a PoS validator either.⁠‌‍‌ ‌‍ ‌​ ‍‍‌‍​‍‌‍ ​‌‍ ‌‍​ ‌‍‍ ‌‍​ ‌‍‍​‌‍​‌‌‍‍‌‌‍ ‍​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌ ‌‍‌‍ ‌ ‌​‌‍‌‌‌ ​ ​‍ ‌‌‍ ‍‌‍ ‌‍​‍‌‍ ‌‍‌​‌ ‍‌​‍ ‌‌‍‌​‌‍‍‌‌‍‌ ‌ ​ ​ ‍‍​ ​‌​ ‌ ​ ‍‌​ ​ ​ ‌‌​ ‌​​ ‌‌​ ​‌​ ​ ​ ‌ ​ ‍‍​ ‌​‌‍‌​​ ​ ‌‍‌​​ ‌‍​ ‌ ​ ‌‌​ ​‍‌‍​‌​ ​ ​ ‌‌​ ​ ​ ‌ ‌‍​ ‌‍​‍​ ‍‌⁠ Validators need full uptime and flawless work, and failing at that gets your stake slashed too. You still need reliable, dedicated hardware.

## Who actually writes blockchain code

Not every chain has its own language, but the big ones are split:

- Ethereum: Solidity, with Vyper as the Python-like alternative.
- Solana: Rust in practice. Solidity only through the Solang compiler.
- Bitcoin: Bitcoin Script, which is very limited and not meant for big applications.

Real blockchain devs mostly aren't building blockchains. There are four kinds:

1. Protocol engineers. Bitcoin Core, Geth, Nethermind, consensus clients, networking, mempools, fork-choice rules. Hardcore systems and cryptography work, and rare.
2. Smart contract engineers. Solidity and Vyper, DeFi, NFTs, DAOs, token economics, security audits. This is what people mean by "blockchain dev" online, and it's the center of gravity today.
3. Infra and tooling engineers. RPC providers, indexers (The Graph, custom ETL), MEV bots, block explorers, wallet infra, off-chain services tied to on-chain state. Underrated, and very real programming.
4. App devs using blockchain as a backend. They don't touch the protocol and barely touch contracts. They use Ethereum like a weird distributed database. This is where JS devs usually land.

The whole stack still rests on the assumption that a cryptographic hash can't be reversed and a signature can't be forged.
