Blockchain Astrology

The experience of the past 13 years has proved that cryptocurrencies have no beneficial utility for society. They are basically only two things: a tool for money laundering, that enabled the ransomware epidemic (more than 5 billion USD extorted per year, and growing), drugs-by-mail (tens of thousands of excess overdose deaths), tax evasion, corruption, and other crimes and frauds; and @{the biggest Ponzi investment scam of all time}{ponzi1,ponzi2} (more than 20 billion USD swindled from millions of "investors"). This post looks at two of the hundreds of fraud modalities that "cryptos" have created: the "decentralized finance" scams and the "blockchain technology" projects and companies. Both rely on the false claim that blockchains and crypto networks -- especially those that can execute general programs, like Ethereum -- are new powerful computing technology with massive utility for all sorts of real-world applications. This post is meant to be only a handy summary. There are many excellent critical sources that provide deeper and more detailed rebuttals of that fallacy, such as @{David Gerard's book}{gerard}, @{David Rosenthal's lecture}, @{Nicholas Weaver's articles}{nweaver1,nweaver2}, and more.

Blockchains have nothing new to offer

Blockchains are claimed to be revolutionary data structures that let computer software do things that they could not do before. But that claimed "new functionality" boils down to just one thing: a public secure append-only log -- a file to which data can be added only by appending at the end, and never changed. That is true even for the programmable blockchains like Etehreum (improperly said to be "Turing-complete"); the data in this case including programs (improperly called "smart contracts") and states of the execution of those programs. However, append-only logs are hardly a new technology. Any critical computer service, such as a bank, must keep at least one such log that sequentially records the main operations that it executed, for any of several purposes: usage statistics, auditing, attack investigation, accident analyis and recovery, database sharing, migration to new hardware, etc. Indeed, the word "ledger" properly means such an append-only log; and the ultimate database of any bank or company accounting is such a ledger. Making an append-only log public, if so desired, is trivial. For instance, any bank traditionally provides to each client a view of its ledger, restricted to entries that refer to the client's account. Making a ledger resilient to failure and tampering through cryptographic signatures and distributed storage is also well-known technology, almost half a century old. On the other hand, an append-only log cannot be the primary database used in the operation of a large service, because its sequential and incremental nature makes access to the data inefficient. For efficient operation, banks and other large services use other "mutable" databases, that keep only the currently relevant information (such as account balances) rather than the full history, and are organized in ways that make search and update of that information much faster than what can be acheived with a linear list. In fact, a linear append-only log is so inefficient that most sofware developers would not even call it a "database". Bitcoin miners themselves will use two such databases (the "UTXO set" and the "mempool") to check the validity of user transactions and to select the transactions to be included in the next block. They use the blockchain only for traditional purposes of append-only logs -- namely distribution, recovery, and validation of those databases, if and when necessary.

Decentralization is no advantage

The term "blockchain" is often used to mean specifically "decentralized" or "permissionless" blockchain, whose distribution and updating network consists of an open set of anonymous nodes, without any central entity that vets them or regulates their work. We will discuss those, specifically, from now on; because "centralized" ("permissioned") blockchains, as explained above, have nothing to contribute to software development practice. It is claimed that decentralization makes networks more resitant to failure, tampering, or denial of service attacks than networks with a central management. However, that is not true. A centrally managed network can use distributed processing and storage to achieve failure resistance, to any desired level (with enhanced accessibility and peroformance as side effects). And indeed large critical services -- such as banks, software and media repositories, and internet search engines -- have been using those techniques for decades. Moreover, the operators of a distributed but centrally managed network are normally bound by legally enforceable contracts and terms-of-service to the central entity and to the users of the network, which are effective deterrents to "insider" tamepring and sabotage. And even if the network data becomes corrupted by accident or external attack, the central authority will have the means to restore it to a valid state.

Blockchains are not decentralized

In fact the "permissionless" blockchains that exist are not actually decentralized, and cannot be. To reward its operators, such a blockchain must connected to a cryptocurrency; and the economics of a cryptocurrency operation is such that it inevitably become concentrated in a handful of pools, which effectively decide which transactiong go into the blockchain and which blocks get added to it. At the time of this writing, ?? of the mining power of the BTC currency is controlled by ?? pools, which are not anonymous. Those pools could easily collude to act as a single entity to damage the network, as explained below. Moreover, every crytpocurrency needs periodic updates to its protocol, because of unforeseen needs or risks. Like any open source project, each cryptocurrency must have a "chief developer" who decides which changes go into each new release of the protocol. The latter is usually defined implicitly by some "reference implememtation" in some specific open software repository, rather than a rigorous formal specification. Therfore, the "chief developer" is whoever has the key that allows changes to that implementation. (The refernence implementatio of BTC, for example, is currently the package bitcoind on GitHub. Its chief developer was originally Satoshi Nakamoto, then Gavin Andresen for a while, and presently Wladimir Van Der Laan.) The chief developer effectively determines who is a developer of the protocol. In theory, the miners are not obliged to accept any decision of any "chief developer". In practice, however, most miners (even the anonymous ones) will accept his decisions by default. Thus the chief developer has in fact considerable power over the protocol.

Blockchains are not tamper proof

Contrary to the claims of their promoters, decentralized blockchains not "tamper proof". They are vulnerable to "51% attacks" -- when a majority of the network operators collude to tamper already published data. This weakness was acknowledged by Satoshi himself on @{the Bitcoin whitepaper}{bitcoinpdf}. And, indeed, the Bitcoin network itself suffered two such "51% attacks", in 2010 and 2013. In each case, at least one transaction that had received dozens of confirmations was permanently reversed; and in the second case that was a fraudulent payment reversal worth about 10'000 USD. Because of the anonymity of the operators, any users who suffer damages by such an attack will have no legal recourse.

Blockchains are terriby inefficient

Blockchains are also extremely inefficient to update. To begin with, they require agreement of a majority of the miners/validators. This task could be performed efficiently assuming that the majority of the mining is effectively concentrated in a few known pools, because then these pools can set up a fast protocol for that purpose.

Smart contracts are useless

I’ve yet to do a full “myth busting” article regarding blockchain technology, so I decided to create a single article which covers a number of false narratives, and which can act as a starting point for those who wish to learn more about what blockchain and cryptoassets really are. Most of these narratives come directly from discussions I’ve had with antis. Claim: “Smart contracts” cannot take any input info from the real world, and cannot have any effect on it. This statement is patently false. While a smart contract is deterministic, oracles take real world data and push them onto the chain, allowing smart contracts to interact with real world data. Follow-up claim: If a smart contract needs external entities to collect information and act on the real world, what is the point of having a smart contract? This belief largely comes from rhetoric pushed by decentralization maxis. But it also comes from a misunderstanding of what benefit decentralization brings, and when it is useful or not. All software that interacts with a user needs to access the outside world. There is nothing new there. The reason that blockchain is useful is twofold. Because of the distributed and decentralized nature of blockchain, and its reliance on cryptographic verification, once placed on chain, the data cannot be edited. In other words, it is impossible to pretend that the data placed on chain is different from what it actually was. The distributed and decentralized nature of blockchains make it resistant to failure and attack, including DDoS attacks. That’s it. If an application benefits from these two conditions, blockchain is useful. If these two features are not needed, then we do not need blockchain data. Real world data is inherently messy. It is impossible and unnecessary to maintain the two features, when accessing real world data. However, once the oracle has placed the data on chain, we know that this data cannot be altered. We know exactly what data was used by the smart contract for a given computation, and the result of that computation. It cannot be altered. Following up this point, the level of security necessary depends on the application. Some applications require some level of security, but not absolute security. The creation and maintenance of a currency system, as a whole, demands a lot of trust. However, individual transactions, especially small transactions, do not need as much trust. Day to day transactions can exist on a secondary layer (layer 2) and then batched together at the institutional level. Claim: Blockchain technology hasn’t provided a single useful service. “Useful” is fairly subjective. Something can be useful if it provides economic value. It can also be useful if it provides subjective satisfaction. Blockchain technology has provided plenty of useful services in both regards. In terms of economic value, it’s supported an entire new sector of assets, including financial assets and collectables. Some of these assets are also game assets, and multiple games have been built on top of blockchain technology, including TCG style games. Yes, it’s also been used to create a lot of gambling style games, but TCGs are skill based, rather than luck based, and so they are not examples of gambling. Follow up claim: There are only disadvantages to putting these types of assets on chain. Even with game assets, there are benefits to putting them on chain, in some cases. Not every asset needs to be on chain. Minor assets are fine in a centralized database, but TCGs can have high value items where you want a certain sense of ownership and control. So long as these assets are only stored on a centralized platform, we do not have that kind of ownership and control. But the real power of blockchain based game assets rests in third party support. Claim: Blockchains are destroying the environment. This one comes up a lot, and basically is the result of the energy intensive proof of work consensus model that many blockchains rely upon. Bitcoin is proof of work. Ethereum is also proof of work, but many other blockchains rely on proof of stake and other models which demand far less electricity to maintain. Ethereum is also in the process of switching to proof of stake as well. Moreover, a lot of the actual computation is being performed on what are called “layer 2s” or L2s. An L2 takes the computation element off chain, and uses the foundation layer to verify that the computation was done correctly. This approach allows for thousands of transactions to be batched together, reducing the amount of resources needed. However, it is important to recognize that all human activities impact the environment. The goal cannot be to remove all impact from the environment, unless we are able to eliminate humanity’s connection to it. Since that’s not possible, we must instead focus on getting the most benefit out of the resources that we consume, which brings us to the next claim. Claim: Blockchains are profit generating machines for the wealthy. On the contrary, blockchain technology allows for digital assets to be used in a number of ways, including as a resource in a governance model, as a destination for airdrops, and more. Any company where the product is digital, and even some where the product isn’t digital, can leverage cryptoassets to return profits to the consumer, while also giving increased control to them. In this way, the consumer becomes an investor as well. A business is ethically, and legally, beholden to the shareholder. Normally this feature creates a conflict of interest where the business must keep its customers but ensure that the shareholders are treated as the highest priority. But with the rise of the investor-consumer, the end user now wields double the bargaining power and the business model centers around the end user, rather than around venture capitalists who are almost exclusively interested in profits. Going back to the issue of energy demands, we now see that while blockchains are resource intensive, the technology provides significant benefits in that it has the power to completely change the power dynamic between investors, businesses, and the end user. For this reason alone, the technology warrants consideration, rather than blanket opposition based on false narratives.