Rational selfishness and bitcoin vulnerabilities

Rational selfishness is the philosophical principle that an action is rational if and only if it maximises one’s self-interest. This can get your brain in knots faster than you can say “but is selflessness even possible?”. Digging deep, can we really say that we give money to charity for selfless reasons? Don’t we really do it because we feel good in doing so? Sure, we’re helping others. But we’re also helping ourselves. When you give the last bite of the chocolate bar to your partner, you feel kind and loving. When you give money to the beggar on the street, you feel altruistic. When you pay into your pension fund, you feel sensible. But are any of these “maximising” your self-interest? Being kind and practical and unselfish feels good. Which makes it, inherently, selfish. But not particularly rational.

by a-shuhani for Unsplash - bitcoin vulnerabilities
by a-shuhani for Unsplash

What has that got to do with bitcoin? Glad you asked. Bitcoin is, as you probably know, a decentralized autonomous platform for transferring value. It’s run by all the participants, and maintained by volunteers, for the benefit of everyone. There’s no central organization profiting from this. The design will have been proven a success if bitcoin manages to establish itself as a reliable alternative to fiat money. It’s totally decentralized, so it’s fair. And we collectively want it to work, so it’s resilient.

Or is it? Is there room for selfishness in bitcoin?

Of course there is. We want bitcoin to work because it will be a step towards a more independent financial system. If we profit from our trading or make money on our mining operation, so much the better. And many of us do focus on those potentially lucrative activities. But for most of us, the benefit is not directly economic. At least not just yet.

Which is one of the reasons why the concept of “selfish mining” is so fascinating. Mining is selfish in that the block validators rightfully expect to at least be able to cover their costs. So how is “selfish mining” different from normal mining?

(Note: if you need a reminder of what bitcoin mining and block production is, check this out.)

Selfish mining is based on the desire to influence the production of blocks, and effectively control the blockchain. Bitcoin is based on the resilience and fairness of decentralization. Selfish mining is a tactic, allowed in the current bitcoin protocol, that completely undermines those concepts.

First labelled and quantified by Emin Gün Sirer and Ittal Eyal of Cornell University (although the possibility had been previously mentioned in bitcoin forums), it is based on some miners not informing the network of processed blocks. In other words, by not “playing fair”.

How it works: a “selfish miner”, let’s call him S, processes a block. It’s linked to the previous block on the chain, but S doesn’t tell the network about it. Now, one of two things will happen. Either the next block will also be processed by S (how probable that is depends on how much computing power S has), in which case he now has a blockchain that is two blocks longer than the one that the rest of the network is looking at. Or, the “good guys”, let’s call them G, process a block and add it on to the blockbefore S’s first block. They think that’s the latest block, because S never told them about his. On seeing this, S “announces” the first block he processed. There are now confusingly two different public blockchains of the same length, one ending in S’s block and one ending in G’s block.

If that happens, which one will the next processed block be added on to? It depends who processes it. If it’s S, he’ll obviously add it on to the one ending in his block. If it’s G, it could be either one. Either way, the chances are greater that it will be the one ending in S’s. Why? Because you have to add the probability that S processes the block, to the probability that G processes it and adds it to S’s block (G has no idea that S does not have honourable intentions). That sum will almost always be greater than the probability that G processes the next block and adds it to the other chain.

So, while it may take a while, S’s “success” will increase. S will eventually end up with more processed blocks on the chain. If S is a mining pool, more miners will want to join him because of that success. S’s share of the computing power will increase, as will the probability that they can pull off selfish mining, which will increase their computing power some more, which will increase the probability that they can selfishly mine, etc. And soon we will end up with a group that has an uncomfortable consolidation of power in a platform designed to be decentralized and fair.

Selfish mining could also be used to facilitate double-spending attacks, which undermine reliability. If S has processed a few blocks in a row, and has not told the network about any of them, he can be pretty sure that he can “replace” the public blockchain with his. So, he could purchase something with bitcoins, and let G process that transaction. G would add that block on to the latest block that it is aware of. S would continue to try to mine blocks to add on to its private chain, the one that it is keeping secret. But G would add subsequent blocks on to the last one that it processed, because that is now the longest public chain. When G’s public chain is almost at the same length as S’s private one, S would publish its longer chain, thus invalidating all the transactions in G’s recent blocks. Including the one in which S purchased something with bitcoin. They would be invalid because they are no longer part of the longest chain. S has the goods it purchased. But the payment for those goods is now invalid.

There has been disagreement in the community over the realistically possible consequences of selfish mining. Vitalik Buterin, the founder of Ethereum, believes that it’s not that worrying, since in reality it is very unlikely and the potential profitability is doubtful. But the authors of the original selfish mining paper insist that “bitcoin is broken”. I believe that both are right. At this point in time, it’s not that worrying. There’s no evidence that this kind of attack has happened (and we should be able to detect from the confirmation records), and the economic cost to the system should it happen won’t be that high. Miners will “waste” work, but that’s about it. However, as the authors have repeatedly pointed out, the likelihood that this scenario, if enacted, will lead to concentration of power is very, very serious. It’s the potential destruction of the underlying concepts that is the most damaging. Will the desire to see the system work, for both economic and ideological reasons, trump the desire to benefit from enhanced mining rewards? We don’t know.

Rational selfishness reduced to its simplest form can be programmed into a computer, or a self-regulating protocol like bitcoin. Such-and-such is a good thing to do if it improves my value or the balance on my ledger. And rational selfishness no doubt forms an integral part of Artificial Intelligence research. But, as we all know, it’s not really part of our way of life. At least not the “rational” part. Humans are generally not very rational, let’s face it. We let emotions cloud even basic investment decisions. We allow unspoken biases or loosely held convictions to affect our reasoning. And we are very bad at predicting what will make us happy. Wanting to participate in interesting projects, wanting to be part of something important, wanting to help change what needs changing – these are also selfish aims. They will make us feel good, they will give our lives meaning. But the results don’t go into any quantifiable ledger anywhere.

This lack of rationality spills over into the world of bitcoin. Most of those who insisted back at the beginning (many still do) that it can never work, were letting their fear of fundamental change convince them that clinging on to old systems is the most intelligent option. Most of those who jumped at the chance to try bitcoin did so because of an irrational hope that we had finally found an alternative to centralized finance. That irrationality, strangely enough, is one of bitcoin’s enduring strengths. We collectively really want it to work, and not just for economic gain. If miners were purely rational, yes, they would join a selfish mining pool. But that reasoning overlooks the fact that miners, too, want bitcoin to succeed. They want to make money, yes. And we’re happy for them to make money, since it keeps the system going. But it’s unlikely that that’s their only objective. The opportunities to profit from bitcoin’s weaknesses are there. And they have not yet been taken advantage of. Absence of proof is not proof of absence, I know. But I don’t believe that the fact that it hasn’t happened is because the miners don’t know how. It’s because selfishness is not always rational.

(This post was originally published on LinkedIn.)

Leave a Reply

Your email address will not be published. Required fields are marked *