Things Like Coldcard Will Happen

There was a disaster recently for bitcoiners. The Coldcard device had a bug. The bug made it relatively easy for computers to guess the users’ private keys.1 It was the equivalent of finding a note by your flatmate saying:

Snapchat password = Nap*****i*m*i**l

The Coldcard was the coolest of bitcoin devices; deemed the best. I even thought about getting one. Anyways, if you’re interested in the nitty-gritty, read Bitcoin Katie's article.

It’s easy to get bummed out. We need to take a higher view. We’re still early, as they say.

A man in a hoodie and jeans looks under a pot plant, thus finding a note, beside a suburban front door.

The Attack Vector

This attack on Coldcard only worked because in some ways bitcoin (BTC) is strict and in some ways it is lax. Bitcoin is strict because, for example, it needs an exact format for its addresses. Every node— some thirty thousand— will veto the slightest variance.2 It’s lax because it lets the user make these addresses him- or herself. Nobody checks the code that the user is using to make them. We just care about the outcome. There’s a very good reason why.

Why nobody checks the way you make crypto addresses

Let’s compare cryptocurrency with Visa, Mastercard, and American Express.

Normally, you get a card in the mail from your bank. You have been granted a number, a ‘PAN’, i.e. a ‘Primary Account Number’, and it looks like this:

A close-up of a credit card, but called 'Geeza'.

That number (i.e. 4716 6864 7566 4093) I made myself at www.creditcardvalidator.org/generator. This website makes valid Visa PANs. In theory it works, because it’s valid, but in practice it doesn’t, because I didn’t go through the right channels. Visa, Mastercard, and American Express card numbers are top-down.

If Visa, Mastercard, etc. worked like bitcoin, I could use this address.

Let me put it like this: You can literally make your own debit card at home, even in the most totalitarian societies. It’s made out of paper, but it works, more or less, like any plastic debit card. Try it for yourself here on my website.3 So long as you have one unmonitored room in your house, you can do the math, make a crypto address, smuggle it out in your pants, and get money that way.

The price of freedom

Given that nobody checks the way you make your crypto addresses, there are bound to be times when folk use shoddy means. Things like Coldcard will happen. That’s the price of freedom.

Sympathy

Things like Coldcard will happen.

Am I not being cruel to the good folk who lost their money? Let me state clearly that I think that the people who coded Coldcard so carelessly should pay a dear price.

New tech is messy. Adapting to it is hard. Mistakes can be fatal even. On the first intercity rail journey, September 15th 1830, a passenger panicked when he was late to get onboard, fell under, and lost his life. Folk threw stones at the train.4 Nowadays, railways are safe.

We should honor the good folk who got wrecked by striving to do better. Here are some ideas:

ISO Standards

I think there should be an ISO standard for making random numbers. In fact, there already is one.

I want to see more ISO labels on both crypto hardware and software.

At very least, there should a cypherpunk copy.

I know that AI can check code these days, but it’s still too haphazard. We need a standard and a check-list. We need a seen-at-a-glance label.

Insurance

The most important lesson to learn from this disaster is that crypto-users need the option of insurance.

I pay a few dollars a month extra for my storage unit. It insures against earthquakes, floods, and fire. The likelihood of these is very, very low, but I think it’s worth it for a few dollars.

When you make a new bitcoin address, you should have the option of linking it with another private key held by a dedicated company. The jargon for this is a ‘2 of 2 multisig’.5 I know there are big-time companies doing this kind of thing, but my idea is a straightforward, simplified user-experience in the app. In return for a few dollars per month, the company would insure the bitcoin up to $10,000. For bigger amounts, you would pay more. Because that company would have the incentive of not losing the bitcoin, they would have state-of-the-art security.

Insurance is the balance between a brutal free-for-all on the Right, and a bureaucratic nanny-state on the Left.

Not accepting failure

I think cryptopians are too forgiving of failure. For sure, failure is an essential part of winning. That should not mean that we welcome back them who harm the whole movement with their failure to do the basics right. We need to foredeem a ‘boring but reliable’ mindset. Cryptopians listen too much to lightweights touting their latest shiny thing.


  1. The hackers would have needed months to pull this off. Each bitcoin address would need to be checked for use. This takes a second, not a millisecond. It adds up. (Return)
  2. Some say this number is much higher, but they are counting ‘dumb’ mining nodes. These nodes do not check transactions and are bastardized versions of Satoshi’s vision for bitcoin. (Return)
  3. Please only use it for small amounts, say, under $100. (Return)
  4. Read the full story here. (Return)
  5. This means that you only have half of the private key. To spend some bitcoin (or other similar cryptos, like litecoin (LTC) or bitcoin cash (BCH)), you need to link up with the entity who has the other half of the private key. Think of it like a storage unit with two independent padlocks. (Return)

Back to the index of blog posts

Tags