Bitcoin Runs On Altruism

It has become a commonly repeated mantra, among extreme libertarian Bitcoin cultists, that "if Bitcoin relies on altruism, then it has already failed." This makes sense to them because altruism doesn't fit the extreme libertarian ideology of charging everybody for everything. And my last post debunking Charlie Lee's transaction fee model brought the mantra-chanting cultists out in droves.

Bitcoin's Dirty Secret Listen up. There is a dirty secret in the Bitcoin world. All the core devs know it, all the academics know it, and it is commonly discussed among the people who actually understand the protocol, so it's time the cult followers are clued in as well. Namely: Bitcoin relies heavily on altruism. The system as we know it today would just not work were it not for the kindness of strangers.

Denial This, I've found out, is a deeply unnerving thought for the extreme libertarian cult followers, for the cultists hate any observation related to Bitcoin that is not in line with their political ideology, no matter how objectively and scientifically true, no matter how many "I Effing Love Science" stories they may have previously shared on social media. In particular, they cannot handle any observation that (a) Bitcoin is not perfect, (b) Bitcoin is not in full agreement with their extreme libertarian vision of "hypermonetization," i.e. everyone nickling and diming each other for every little microoperation, and that (c) Bitcoin nodes engage in practices, especially charitable ones, for which they have not formed a joinder. If you do not know what a joinder is, consider yourself lucky -- you're probably a normal person interested in cryptocurrencies; this post is written for you, and I hope you never encounter a cultist who thinks that his body and his legal entity are two separate things, that the gold fringe on a flag in a courtroom indicates that Admiralty law is in effect but the captain has left the ship so anything goes, that somehow they exist outside the social contract even though they benefit from it, and that laws do not apply, except, of course, property rights, which are inviolable.

Anger Now, as for the lunatic fringe who hate altruism. I know they are already upset, the knee jerk reaction has kicked in, and they're reaching for their open carry long rifles. Luckily, most of them are so heavily invested in cryptocurrencies that the best they could afford was a Mosin Nagant, a measly relic, Soviet war surplus direct from Stalingrad. There's great irony in the fact that the preferred weapon of the extreme libertarian hordes was manufactured by communists, packed in cosmoline in 1945, sealing in blood, grime, sacrifice, and a piece of ideology that goes "from each according to their ability, to each according to their need." I want to return to this topic at the end, because this post is indeed about when it makes sense for people to give up resources for the common good, and what better example than, say, Stalingrad.

Bargaining In the meantime, I have a precious few moments while the lunatics are setting up their iron sights, and will need to gauge how far away I am to calculate bullet drop. And because of the way these museum piece Mosin Nagant sights are marked, they have to do this not in yards, or feet, or even Eurotrash meters, but commie arshins. Which buys me some time. So let me use my last few precious moments on this earth to say: altruism is actually good for Bitcoin. Yes, Bitcoin doesn't live up to your extreme libertarian dream of everyone nickling and diming each other and ChangeTipping fractions of a penny for every packet and chuckle on the Internet, but it's doubtful that that dream can be realized, or that it would be desirable to do so. Bitcoin works. Your investment is safe. The fact that there is a network of people who are donating resources to make it work is fantastic, something that many other systems aspire to do, and something of which you should be very proud. So put away the Mosin for now, and let's go through why Bitcoin relies on altruism. The caustic commie ammo, packed into a tuna can by someone working for a centrally-planned state that owns all the means of production, would probably jam anyway.

Altruism in Bitcoin In this post, I want to catalog some of the ways in which Bitcoin engages in behaviors that are altruistic. When I say "altruistic," I am reusing Charlie Lee's definition, by which he means any action that extracts a cost and is not immediately compensated by the party that initiated that action. Many people in the Bitcoin space implicitly consider such behaviors irrational, and apparently, many believe the system to have failed if it relies on such behaviors. Yet such behaviors are surprisingly common in Bitcoin. Here's a partial list of altruism in and around the protocol: Bitcoin creates an overlay network, maintained by a gossip algorithm where a node asks other nodes for their neighbors, and thus builds its own connections to the overlay. When a node contacts you and asks you for neighbors, there is absolutely no payment and no incentive for you to respond. Every honest node who responds is responding out of altruism. When someone issues a transaction, the full nodes ferry these transactions all the way to miners, who then incorporate them into blocks. These intermediary nodes do this forwarding out of the kindness of their hearts at the moment, a topic analyzed by my colleagues, formerly at Microsoft Research, in their Red Balloons paper. Lightweight Bitcoin wallets called SPV wallets, of the kind that most people actually use on their phones, contact full nodes to ask about the disposition of certain accounts. Full nodes respond with blocks and transactions of interest to the SPV nodes. All of this happens out of the kindness of the participants. Full nodes could record and release or sell the IP addresses of their SPV clients, in a large breach of privacy. That they do not do this is incredibly nice of them. Many people issue transactions with zero fees. Miners incorporate these transactions into blocks, out of pure kindness. On three occasions in its history, a Bitcoin miner exceeded the 51% boundary where they could have controlled the new additions to the ledger, selectively censored transactions, and held accounts up for ransom. They did not misuse their power, once again, out of the kindness of their hearts. When miners exceed 34%, they could launch 34% attacks. They have not done this against Bitcoin as far as we can tell, though it has certainly happened in some altcoins. There is a block distribution network, operated by Matt Corallo, that connects the big miners and quickly ferries blocks around to help reduce orphan rates. Corallo operates this network out of the kindness of his heart. Every non-mining full node that forwards a block in which it has no transactions is doing so out of the kindness of its heart. Everyone who operates a seed node to help fresh nodes get connected to the overlay is doing so out of kindness. This used to be just two people. Not sure what the number is these days, but I think you can count it on two hands. When a new node starts up from scratch, it requests old blocks starting with the Genesis block. Every node that responds does so out of pure kindness. Miners did not implement or turn on replace-by-fee (RBF) functionality until recently, in a display of kindness to the merchants who take 0-confirmation transactions. In a fascinating discovery, made by Ittay Eyal, mining pools could infiltrate each other and engage in block discarding attacks, and, paradoxically, make more money than they would if they were to use the infiltration hashpower in their own pool. We have evidence that they occasionally do this, but it's not widespread. This is nice of them, and it's nice for the system because it increases the effective total hashpower (though if they did engage in this behavior, it would limit the size of the large pools, which would also be good). People freely contribute fixes and patches to the Bitcoin protocol and code. There is a substantial group of core devs who work on the core client, open source developers who work on wallet software, and even some academics who work to better the protocol. None of these activities are directly compensated. I can easily go on, but I'm afraid even the heaviest Mosin Nagants with the giant bayonets are trained on me by now. So let's wrap up.

Big Picture A distributed system like Bitcoin requires at least three kinds of properties: safety properties, which pertain to inviolable invariants, liveness properties, which dictate that the system make progress, confidentiality properties, which dictate that certain information remain private. Safety properties dictate things like "only the owner of a bitcoin can spend it, and spend it at most once." Bitcoin does very well on this front, not relying on people's kind hearts for its correctness, for the most part. For liveness and confidentiality, however, it is dependent on a large fraction of the network being nice. And people are nice. This is a great thing. There is absolutely no Byzantine Fault Tolerance algorithm that can make a liveness guarantee when the fraction of misbehaving nodes is unbounded, and Bitcoin is no exception. If the system adversary is as powerful as God, and not just any God but the one from the Old Testament right after Uzzah touched the ark, there is no hope of using protocol mechanisms to make progress guarantees. Things get worse when confidentiality is concerned, because just a small number of bad nodes can mess it up for everyone. Now, someone whose Mosin got jammed will probably shoot back with "heh, your altruism definition is wrong!!!!1! Someone who invests in Bitcoin, reads the forums or listens to a few dozen Andreas videos would do anything to pump up the price, it'd be in their rational self-interest (TM)." First off, I'm not introducing my definition of altruism -- I'm using Charlie's. Charlie's model says that if someone has a cost X, then a payment must be made to cover that cost, in the amount of X or more, or else the system is broken. He's wrong, and it is my point that his definition and accounting is broken. I made that point earlier. So if someone is saying this, then they are in vehement agreement with me that the naive definition is broken. Second, the "rational self-interest" argument is also broken. It has made armchair game theorists in the Bitcoin world the laughingstock of critics, because, basically, nobody knows anything about anyone else's rational self-interest but their own. These arguments boil down to a bunch of conjecture about someone else's income stream. People who push this argument typically make a huge implicit assumption that other people are as vested in Bitcoin's long-term future as they are. This is bound to be wrong, and to illustrate, keep in mind that a miner whose rigs are no longer productive has it in his best interest to extract all value from the system, and to sell his last Bitcoin for slightly more than $0. The Bitcoin world could crash and burn at that point and he would not care. Third, even if one were to build a new model that accounts for all the externalities and second-order effects from raising the price of Bitcoin, that model would still face two difficult to explain points of fact: (a) we do not see a tragedy of the commons, in fact, we see remarkably few misbehaviors, (b) there are many people who hold meager amounts of coin yet contribute large amounts of resources. True, some of this may stem from people's, especially miners' and node operators', inability to change the client to engage in more strategic behavior, and from lack of capable devs and know-how. Nevertheless, we get the nice outcome that we want -- the system works as we'd hope in the good case, not as the worst case (we still have to design for the worst case, but life would be very painful if we constantly lived through the worst case scenario). And from my rough eyeballing, the amount of resources freely provided by the current participants seem to far exceed their credible personal returns through Bitcoin appreciation. That is, people subsidize Bitcoin. I know I do, and I know many dozens of others who do the same. This is good. Actually, this is awesome, even though it's not quite in line with extreme libertarian ideology.

It's a Good World After All Indeed, there are people out there who freely provide their time and resources to the good of the whole. This includes, first and foremost, the core devs, the app devs, the volunteers, and the academics who work on Bitcoin, as well as the many people who run full nodes just for the heck of it. As a thought experiment, imagine what would happen if the Bitcoin network stopped right now, and every full node demanded payment for every action it performed. The system would go into a recursive loop, triggering transactions to carry out transactions, making the system unable to bootstrap. It is a tenet of good system design to build on these altruistic contributions. Much of the blocksize debate has been centered around how to preserve the current delicate balance of contributed resources. Further, it is a tenet of good community stewardship to steer the community towards more altruism and positivity. Even though I poked fun at the cultists, who are at the extreme end of the Bitcoin forum crowd, the actual Bitcoin community has managed to keep a multi-billion network humming and alive. We should all be proud that Bitcoin, like the proud defenders wielding Mosin Nagants at Stalingrad, have so many resources donated by altruists. Instead of demanding the impossible from distributed systems, we should set our sights on proper community guidance. Which requires a united front and a more cohesive message, despite fractious issues like the blocksize debate. I hope that the hypermonetization meme, so prevalent among certain Bitcoin extremists, does not taint the huge amount of good, selfless work being done in the community.

Related Here's the BAR paper from my colleagues Lorenzo Alvisi, Mike Dahlin and their students that explored altruism in distributed systems.

Share on Twitter Share on Twitter

Share on Facebook Share on Facebook

Share on Linkedin Share on Linkedin

Share on Reddit Share on Reddit

Share on E-Mail Share on E-Mail

Please enable JavaScript to view the comments powered by Disqus.

Disqus