Why did the internet run out of IPv4 addresses, and how are they traded now?
Because the address space was fixed at 32 bits — about 4.3 billion addresses — in 1981, when the internet was a research network and nobody expected every household to hold dozens of connected devices. The pool of unallocated addresses was exhausted over the 2010s, and what exists now is a secondary market in addresses already allocated.
Why 4.3 billion was never really 4.3 billion. Large blocks were handed to early adopters — universities, corporations, government agencies — in sizes far beyond their needs, under a classful allocation scheme with very coarse granularity. Substantial ranges are also reserved and unusable. The effective supply was always materially smaller than the theoretical one.
What delayed exhaustion:
CIDR, replacing rigid class boundaries with arbitrary prefix lengths, so allocations could match actual need.
NAT, letting an entire network share one public address — the single biggest factor, and the reason exhaustion took decades rather than years.
Reclamation of unused legacy blocks.
What happened when the registries ran dry. Each RIR reached its final allocation phase and moved to strict rationing, typically a single small block per new member. A transfer market then formed: addresses are bought and sold, with the registry recording the change, and prices per address rose from a few dollars into the tens.
This has real consequences. Address space became a balance-sheet asset; large holders monetised legacy allocations; and new entrants face a cost incumbents never paid, which is a genuine barrier to competition.
The knock-on effects you experience:
CGNAT, where an ISP shares one public address among many subscribers, breaking inbound connections and confusing geolocation and abuse attribution.
Reputation contamination, where one bad actor on a shared address affects everyone on it.
IPv6 is the actual solution and deployment continues to climb, but dual-stack operation means IPv4 retains value for as long as any significant destination remains v4-only.