Bitcoin’s Technical Flaw

Right around the time Bitcoin was invented, I was knee deep in dealing with distributed computing systems as a software engineer at Amazon AWS. My first cursory study of Bitcoin was in 2010. At its core, Bitcoin (and blockchains in general) uses distributed digital ledgers to achieve consensus. To function as a currency, it must be consistent (otherwise you can double spend) and available (otherwise you can’t transact). But wait, did Bitcoin just assume the network won’t be partitioned? Otherwise it would violate the CAP theorem. If anyone claims that they can design a distributed system that is consistent, available and partition tolerant, it would be the equivalent of someone in physics claiming that they have discovered something that can travel faster than light. So I dismissed Bitcoin right out of hand because I thought it committed the first sin of fallacies of distributed computing in assuming that the network is reliable.

As Bitcoin soared, I was awed by the lack of attention to its fundamental assumption about the underlying network. Shouldn’t people worry about that network partitioning? I am not talking about the undersea cable being severed (although sharks may do that), but the possibility of human-forced partitioning of the Bitcoin network. Bitcoin is built on the notion that, once the collective mining power grows, it becomes exceedingly difficult for a small group of people to dictate what to include or exclude in the blockchain. What I don’t see in the discussion is the fact that the physical layer of the Internet is highly centralized and controlled by a very small group of people in governments and carriers. There are a lot of countries where net neutrality is not legally protected. In many countries, the government has direct control or even ownership of the carriers. Gateway routers of a country can intercept or interfere with a specific type of Internet traffic easily with today’s network gears. As a co-founder of Talkray, I fought directly against this force of network control. Talkray grew to be the #1 communication app in a dozen countries on Android and iOS. With the good attention also came the bad attention. One day, in a country where Talkray was installed in 60% of smartphones, the call volume fell off a cliff. In response to a flood of complaint emails from users in that country, we attempted to recover the service. We suspected the country’s carrier blocked Talkray’s packets by detecting the signature. Luckily, the Talkray protocol was proprietary (i.e. completely within our control). We changed the protocol to make packets somewhat different on the wire. Upon releasing the new version, to our delight, the call volume in that country zoomed right back to the level before. Alas, a few weeks later, the call volume dropped to the floor again. We immediately tweaked the protocol. The new change restored the call volume once more. This game of blocking and unblocking went on for months. Unfortunately, the blocking came faster and faster after each unblocking. Eventually it got to the point where a new protocol version got blocked within hours of its release. Our user base in the country bled to zero.

In comparison, Talkray’s packets are encrypted whereas Bitcoin’s aren’t; Talkray’s protocol is proprietary whereas Bitcoin’s is open source. If a carrier or a government wants to block Bitcoin’s packets on their network, it is only easier.

Considering the geopolitical reality of the world, I don’t expect the Internet’s physical layer to become decentralized any time soon. Let’s conduct a thought experiment here. Given that Talkray packets were blocked by a country not known for its technology prowess, I am confident that China’s Great Firewall is easily capable of blocking Bitcoin packets. China also banned non-state sanctioned virtual private networks (VPNs) in 2018. Anyone circumventing the Great Firewall via VPNs could face prosecution by the Chinese authority. It is also well established that over half of the mining power is in China. If the Great Firewall blocks Bitcoin packets, the Bitcoin network would be partitioned and thus fork. Upon unblocking, the shorter Bitcoin chain would be wiped out. Ignoring complicated attacks, just imagine that the Great Firewall blocks Bitcoin packets for a week, creating a Chinese fork and non-Chinese fork. Then it unblocks. All of a sudden, the non-Chinese fork would disappear. The Bitcoins that went into your wallet six days ago would vanish. This attack does not require amassing 51% mining power. A small group of people controlling the Great Firewall can make it happen with no mining power whatsoever. Let’s call this a partitioning attack. It doesn’t need to happen over and over to deal a fatal blow to the trust in Bitcoin. As soon as people come to the realization that a small group of people can cripple Bitcoin, the trust in it could vaporize overnight.

So would the people controlling the Great Firewall do it? First, if this is a legitimate question, it already indicates the failure of Bitcoin’s promise of being “decentralized”. Second, given that the Chinese government already banned Bitcoin trading, there is a legal pretext as well as a financial incentive for the “insiders” to profit by shorting it before a partitioning attack.

In summary, building a decentralized blockchain on today’s centralized physical network layer of the Internet, to me, is building a house on sand. The beach view may be nice, until the sand gives way, and it all crumbles. Don’t get me wrong. I believe blockchain is an amazing innovation. But unless the physical network layer can resist partitioning attacks (legally or technically by geo-restriction for instance), I would not put mission-critical applications on it.