Josh's blog

Rusty gutters

I was thinking about the guttering on our house. For as long as we’ve owned it, the guttering out the front and some up the back has leaked a little bit. But it is getting to the point where the gutters are quite literally falling apart from rusting. So I have finally taken to try to fix them. It wasn’t a priority before, when they still (barely) worked and carried most of the rainwater to the downpipe. Hang on, there’s a quote about this. Ah, that’s right:

“Broken gets fixed, but shitty lasts forever.” - @littleidea

The original context of the quote above was likely something tech-related. It could easily be invoked in a conversation on memory-unsafe languages or various internet protocols. These things will be with us for a long time in spite of flaws, because they’re flawed in acceptable ways, and they are highly entrenched, which incentivises quickly developing patches and workarounds whenever things reach a breaking point.

Which brings me to cryptocurrencies and NFTs.

I won’t be re-litigating all the ways in which cryptocurrencies and NFTs are shitty in this post. If you think they are good, you can stop reading until you educate yourself. If you won’t do that, you’re not welcome here - kindly fuck off. Note that I’m not defending traditional financial systems. Of course these are far from perfect. But it is fair to say the world is straight-up worse for having cryptocurrencies and NFTs in it.

The bad outcomes of cryptocurrencies and NFTs are deemed acceptable by many people participating in them. At best, some participants may concede that some outcomes (like the exorbitant energy consumption or e-waste production associated with Bitcoin) are shitty, but not broken enough to do something about. In fact, they are usually financially motivated to keep their shitty thing running in the same shitty way - for example, Bitcoin miners would vote to keep using double-SHA256-based proof-of-work, as that maximises their future income relative to their “investments” in specialised future e-waste. Coin HODLers are motiviated to keep the network nodes and markets running, NFT owners are motivated to keep the NFT markets running, and so on.

Sometimes a new group splinters off to make a successor system with a marginal improvement (e.g. Proof-of-Stake v.s. Proof-of-Work, or Ethereum’s ethash vs. Bitcoin’s hashcash). Sometimes, some intrinsic shitty thing gets attention because it upsets the users (e.g. the Lightning Network as a fix for Bitcoin’s glacial transaction rate). However, whatever marginal improvement is made, either the rest of the system and its shitty ways of doing things become further entrenched, or the legacy system (still running) benefits by association with the new system (e.g. by trading between them on an exchange).

“The purpose of a system is what it does.” - Stafford Beer

And what the system does is: consume vast amounts of energy, produce piles of e-waste, worsen inequality, jack up the price of graphics cards and worsen the chip shortage, and provide support for scams, tax evasion, ransomware, DDoS rackets, and money laundering. Among other things.

Those of us who aren’t blinded by our own involvement, that can see the whole thing as broken, have little recourse. It’s not as though we can reach our arms through the internet to unplug the mining rigs - a good thing, or they would be able to do the same to us, after all.

Breaking Bitcoin

So what can we do?

If I had a lot of money, I could help stop Bitcoin by using my money in a variety of ways:

We can’t hold out hope for the hyper-wealthy to actually help, because they are likely to own cryptoassets themselves (some openly admit it), and helping would go against their self-interest. Some of the options above are unethical (this is the domain of the hyper-wealthy). Some scenarios would also have easy workarounds - for instance, the Bitcoin clients could be made to reject blocks with less than a few transactions in them.

We also can’t hold out hope for a cryptanalytic attack on SHA256 powerful enough to render current Bitcoin mining hardware worthless (but this will hardly stop me thinking about it).

Satoshi N. didn’t design true democracy into Bitcoin, no matter what lofty rhetoric about a decentralised libertarian utopia he wrote, or what Bitcoin acolytes claim. Our given options are:

The second option isn’t a vote against Bitcoin. In democratic terms, it is abstention. Unanimous support again? Glory to the party!

Maybe we can build a true democracy. Here is a thought experiement that shows a sufficiently large group of motivated, internet-connected people could put a dent into cryptocurrency and NFT systems as they exist currently, without spending lots of money, creating a large environmental burden, manipulating markets, or resorting to t3h cyb3r-cr1mes.

I suppose we can all vote in real democracies for policies that ban cryptocurrencies and NFTs. Because cryptocurrencies and NFTs are shitty, but don’t properly break the real economy, it would be a low priority for major political parties. Anything else?

The large group of motivated people (People Against Bitcoin, or something) agree on the following beliefs:

  1. Bitcoins are worthless.
  2. Therefore, relaying Bitcoin transactions would be a waste of energy.
  3. Therefore, we won’t relay any Bitcoin transactions.

We can encode this policy into a piece of software that connects to the peer-to-peer Bitcoin network. To the existing nodes, this new software would look like any other Bitcoin node. However, no transactions would ever be received from the node (as it relays none) and any transactions sent to it would be silently dropped (again, it relays none). With only a few such non-relaying nodes connected, there would be no impact on the Bitcoin network. But with enough people running it, Bitcoin transactions would grind to a halt as the nodes with transactions become increasingly fragmented from one another.

Would this work? I see Bitcoin as having three possible reactions. The first would most likely be to find ways to fingerprint the People Against Bitcoin client and deny it connecting, leading to an arms race between the new software (that must evade detection) and the Bitcoin authors developing new detection methods. This raises the cost of continuing to develop and run the Bitcoin software, which is a step in the right direction. The second reaction would be to run more instances of the relaying Bitcoin clients, which again raises the cost. The third reaction would be to centralise a list of either “good” or “bad” nodes, which would violate one of Bitcoin’s core principles (no centralisation). Providing a list of “good” nodes also paints a target on them for the less scrupulous to instigate DoS attacks.

Is this approach itself a DDoS? That’s a bit of a philosophical question. As a question of intention, yes, the aim is to deny the usual service of Bitcoin, which is notionally to process transactions (incredibly slowly). Unlike a typical DDoS orchestrated with a botnet, the People Against Bitcoin would all individually consciously choose to run a non-relaying client. The software is also not trying to disrupt service by overwhelming network links or processing power of the relaying nodes - if anything, by refusing to relay any transactions, they would be reducing the network and processing load, minimising collateral damage on the internet. Finally, the target is not one single person or company but the Bitcoin system as a whole, and no Bitcoins are ever lost in the process. Bitcoins could still be transacted in exchanges, or outside the network. So what is the damage?