Keyspace

Live · 30/s

The icon

The same 256 bits, enlarged so they can be counted. Top left is 2255. Bottom right is 20, and it flips every count.

I was staring at the static.

A wood-cabinet analog television on a table, its screen filled with black-and-white static
A new picture, thirty times a second.

I was staring at the static of an analog TV one day. Every pixel was flipping black or white at random, and it occurred to me that a pixel can only be one or the other. There is a finite set of states for each pixel, and so a finite set of images that screen can show.

If I watched the randomness long enough, I would see every possible literary work. The cure for cancer would pop up. The meaning of life. Tomorrow’s lottery numbers.

So I calculated how many combinations that would be, and how long it would take. The screen can draw a new picture every thirtieth of a second. Even then, the heat death of the universe would arrive before I got 1% of the way through.

I thought about a smaller screen. Even 16 by 16 pixels — an icon the size of a mouse cursor — takes more than a few lifetimes of the universe.

Working through that made the security of a random Bitcoin key much easier to grasp. Every key is a number from zero up to 2256. That is also the number of pictures a 16 by 16 black-and-white icon can show. Every key can be drawn as one of these icons.

Thirty a second, since genesis.

A counter started at zero on 3 January 2009, 18:15:05 UTC — the timestamp inside Bitcoin’s genesis block — and adds one, thirty times a second, on the way to 2256. A private key is one of those numbers. The icon is the count: 16×16 pixels, one bit each. Black is 1. White is 0.

Top left · 225520 · bottom right
  • 1
  • 0

Hover, or focus and use arrows

Bit 0 · bottom-right corner · the ones place. It flips on every count, thirty times a second.

Away from now

Ten frames of history on the left, ten of the future on the right. Each step away from the live icon is a larger jump: a minute, an hour, 24 hours, a week, a month, a year, then 10, 100, 1,000, and 10,000 years.

10,000 yrago
1,000 yrago
100 yrago
10 yrago
1 yrago
1 moago
1 wkago
24 hrago
1 hrago
1 minago
Nowlive
1 minahead
1 hrahead
24 hrahead
1 wkahead
1 moahead
1 yrahead
10 yrahead
100 yrahead
1,000 yrahead
10,000 yrahead
GenesisLast count
now

The track is logarithmic. The live count sits near the left. Almost the entire slider is still ahead, out to the last 256-bit number.

The number

—

—

—

Running
—
Black now
—
Never used
—
Share of 2^256
—

Pace is fixed: 30 a second, 1,800 a minute, 2,592,000 a day, 946,728,000 a Julian year. The low bits churn. The rest of the icon does not.

The white does not fill.

These three are not the live count. Waiting a thousand years, or counting a billion times faster, still leaves almost every pixel at zero.

Year 3000

938,180,204,850

Still 30 a second, read on 1 Jan 3000. About 2^39.77. 216 pixels have never been black. A millennium only fattens the corner.

A billion a second

—

Same start, but 1,000,000,000 numbers a second. Snapshot loading.

Every pixel black

2256 − 1

At 30 a second, 1.22 × 1068 years from genesis. About 8.86 × 1057 ages of the universe, taking the universe as 13,800,000,000 years.