Theo's Site

Writing about technology, self-hosting, and things I find interesting.

Posts

Thoughts on Cryptocurrency and Web 3.0

Published on

Old post (4 years old) - may be outdated

I'm going to provide some thoughts on cryptocurrencies, NFTs, and the concept of a "web 3.0". I'm not particularly enthusiastic about a lot of the things under that umbrella, I think the technology as exists today either has fundamental flaws in many cases or is a solution in search of a problem.

Fundamentally, these technologies are basically ways to replace centralized intermediaries. Let's say you take a check to a bank, the bank will validate that the writer of the check has enough money in their balance, and will validate that the check was made on the correct authority, and will keep track of all the balances of the bank accounts under the bank's management. The role of the bank in this transaction is to basically act as a trusted intermediary, the bank is a third-party that all account holders, both you and the person writing the check, have some trust with.

How block chains and other decentralized web technologies replace these intermediaries is to have a very large number of people do this transaction validation and then aggregate the consensus of all these people. The point of the block chain is that there is a record of every transaction that's publicly available, and that the number of people validating each transaction is so large that it's impossible for a single individual to get control of every validator.

The fundamental technical problem here, even in use cases where this makes sense like money, is that these decentralized protocols will inherently be extremely inefficient compared to centralized alternatives. Things like the resource usage that comes with cryptocurrency mining are symptoms of this problem. Not only is there that massive inefficiency of having literally hundreds of thousands of nodes on the network to validate transactions. There also must be a lot of magic behind the scenes in order to validate that each person claiming to be a node on the network has real computational power, instead of being a fake bot.

This computational overhead, as I said earlier, means that the decentralized protocols will be vastly inefficient compared to highly centralized protocols. It's much easier from a technical perspective to just bake trust into an intermediary. This means that the use case of these technologies will be naturally limited to cases where it's worse to trust an intermediary.

This will be things like transactions that are illegal, or discouraged by mainstream banks. Particularly with the latter, I do think this is almost a benefit of the technology. There are many cases where banks have fallen to political pressure or just their internal will and interrupted legitimate transactions, or cases where governments have been way too hasty to close down transactions. I do think there is a false critique of a lot of cryptocurrencies that just assumes that any transaction that normal banks don't like or that governments don't like is an illegitimate transaction, and that there is no value to anything that would enable these transactions.

But the system of mass surveillance and mass social control that the fully digitized modern banking system is creating is really a net negative for society in many ways. I do think it would be wonderful to have some way to do financial transactions on the Internet that has a lot of the features of cash. There is something to be said for the fact that cash transactions can't be easily surveilled, or that there is no central authority that can stop you from doing a cash transaction (at least without going to a lot of trouble to engage in litigation or similar). However, the great inefficiency of crypto currencies means there will be a massive case of adverse selection here. This technology fundamentally won't replace transactions in the banking system as we know them.

Additionally, there are fairly plausible systems for digital cash that ultimately involve normal intermediaries like banks to actually issue the digital cash. (footnote 1))

While it would probably require substantial regulatory change to enable these systems, this technology feels fundamentally better. You can get a lot of the good benefits of decentralization, including making it hard for centralized authorities to track or disrupt transactions, without the massive inefficiencies.

I noticed a similar thing with IPFS..

For those who don't know, IPFS is a BitTorrent like decentralized protocol for file sharing. It has files addressable by a unique identifier for that file. Multiple nodes can store each file, when the user wants to download a file there is a networkwide search for the nodes that hold those files. There is also a connection between IPFS and a few blockchain based systems for encouraging people to host files, but it feels like the block chain stuff is tacked on here as a marketing gimmick rather than actually being a useful part of the protocol. However, IPFS does seem to be marketed as part of the whole decentralized web/web 3.0 thing. So, I think it's fair to include IPFS broadly in this discussion.

The thing is, IPFS is vastly slower than HTTP. The overhead for searching for files is huge. It's truly difficult to in a fully decentralized way find which nodes host a file. Therefore, downloading a file that isn't super popular is an extremely time intensive process. This holds especially true for files that are not very popular. This overhead is particularly crippling when it comes to downloading lots of small files, like a website. A while ago, I did some experimentation to see if it would be possible to host my personal websites on top of IPFS using a bridge like the one provided by Cloudflare to connect the IPFS files to the mainstream Internet. My experimentation came to the conclusion that the performance is so abysmal that its nowhere near possible to do this reliably. And I think this is fairly intrinsic to the decentralized nature of this protocol.

I think because of this IPFS will be relegated to the same role as old-school filesharing systems like BitTorrent or Napster or Kaza or eMule. That is, illegal or socially condemned use cases like copyright infringement or adult content. There is fundamentally a good reason why these classic filesharing services became known primarily as pirate havens. The inefficiency is so crippling that when there is a viable alternative to using them, people will take that alternative. I strongly doubt that any decentralized service will come close enough to the performance of DNS and HTTP.

The way that a lot of enthusiasts get around this issue is to chuck decentralization out the window, use a standard centralized web hosting service to actually distribute content to the vast majority of users, and wear the skin of the decentralized technology as a marketing gimmick. I would put services like Fleek in this category.

Art NFTs as far as I can tell, are basically useless. It's pure artificial scarcity and speculation. You could not make a better parody of the conspicuous consumption part of the art world if you tried. I haven't seen any indication that these things actually do anything useful.

Another fundamental issue of a lot of crypto projects is that the creators of these projects seem to fundamentally forget that at some point the digital assets will need to interact with the real world.

Despite the fact I think the technology feels like fundamentally a dead end, I feel somewhat sympathetic when I see a lot of critics this coming from the perspective of authoritarianism. A lot of people seem to fundamentally have no idea why people would be disappointed with the current world and try to look for alternatives.- – – – – -1 See chapter 6.4 of Bruce Schneier's book Applied Cryptography: Protocols, Algorithms and Source Code in C for a somewhat dated, but good overview of digital cash with centralized intermediaries. (relevant part starting on page 139 in the 2015 edition)