Sunday, August 27, 2017

Cryptocurrency Notes

Let's start with the eight fallacies of distributed computing:

  • The Network is Reliable
  • Latency is Zero
  • Bandwidth is Infinite
  • The Network is Secure
  • Topology Doesn’t Change
  • There is One Administrator
  • Transport Cost is Zero
  • The Network is Homogeneous

Let's add another bullet to this list:

  • Storage is free

The Bitcoin network has escaped some of these fallacies, but not all of them. What is so remarkable about Bitcoin is that it has solved one problem that was previously thought unsolvable - Bitcoin solves "The Network is Secure" fallacy. Bitcoin's blockchain is not only fault-tolerant, it is security-fault tolerant. What I mean by "security fault" is any local security breach that allows an unauthorized user to access private information that he or she should not have been allowed to access. Bitcoin has no single point of failure, that is, it has no central, trusted agent. In fact, it is not even vulnerable to many-point security failures. To a first order of approximation, Bitcoin is secure up to 50% of CPUs on the network being hacked, simultaneously. This is a remarkable property when you do the math on the difficulty of orchestrating a many-point security breach. Even if you were so good at hacking that you could break into any given computer with 90% probability, the probability of orchestrating a simultaneous break-in of 100 independently controlled computers is 0.9100 = 0.00265%. There are vastly more than 100 independently controlled computers (even if you aggregate them per operator) on the Bitcoin network.

The most important fallacies that Bitcoin has fallen prey to are:

  • Latency is Zero
  • Bandwidth is Infinite
  • Storage is free

Each of these fallacies is showing up in the Bitcoin network today. Transactions can take hours to be fully confirmed (latency is not zero), global throughput of the network is throttled to a handful of transactions per second (bandwidth is not infinite) and the blockchain is exploding in size at an astounding rate.

Other fallacies that indirectly affect Bitcoin:

  • Topology Doesn’t Change
  • Transport Cost is Zero
  • The Network is Homogeneous

The core of the blockchain protocol is based on utilizing proof-of-work chains to decide which copy of the blockchain is the correct copy. This method of maintaining a secure, distributed copy of a ledger is simple and it is foolproof but it utilizes an immense amount of computation to decide a simple problem - which copy of the latest transactions is the true copy (sufficiently old transactions never come into question). The amount of computation utilized is a consequence of assuming too little about the topology of the network at any given time. In short, Bitcoin goes overboard with the "Topology Doesn't Change" fallacy. By tracking its own topology and parceling work out to subnets, the amount of computation could be massively reduced from that required by the Bitcoin protocol. This does not require assuming that the network topology does not change; it only requires to assume that the network is not completely changing, moment to moment. SegWit is one attempt to address this problem.

Non-zero transport costs are affecting the Bitcoin network in the form of the wildly fluctuating transaction fees that are being charged of Bitcoin users. While transport costs are not zero, they are not an arbitrary function of the whims of a node. In short, Bitcoin has no systematic way for transport costs to be arbitraged across the network so that users can find out a general market price for transactions.

Non-homogeneity of the network affects Bitcoin because the blockchain assumes that nodes can store huge volumes of data at almost no cost. Some Bitcoin apologists argue that "running a partial node" or "using a third-party Bitcoin service" are solutions to this problem but they really are not. There is no good reason that a wristwatch with a CPU inside of it should not be able to securely transact on a distributed, digital network.

Ethereum is the #2 cryptocurrency behind Bitcoin. Ethereum is quite complex. Where Bitcoin does one thing well (securely trade reusable proofs-of-work), Ethereum tries to implement general-purpose computation in its core protocol specifically in order to enable "smart contracts". It charges users for each unit of calculation that is performed by the network using a quantity referred to as "gas" (by analogy to petroleum). While smart-contracts are only going to become more important in the future, Ethereum's design seems to me to be overly centralized and ungainly.

Everything that every cryptocurrency does today can be done using an abstraction called a distributed, secure timestamp service. Bitcoin trivially implements a secure timestamp service - just transact on the Bitcoin network, and use the transaction ID as your timestamp. The Bitcoin network records the time of the transaction in the blockchain and you cannot alter or delete the blockchain. Thus, it is a secure timestamp. Many other secure, distributed services can be built on top of this one building block.

Unfortunately, Bitcoin's design is inevitably driving up transaction fees. This means that micro-transactions are going to become increasingly infeasible on the Bitcoin network. Litecoin was built because it was foreseen that this would inevitably be a problem with Bitcoin. At the moment, Litecoin is a more feasible candidate for a timestamp service, but it suffers from the same distributed computing fallacies as Bitcoin.

It is possible to build a secure, distributed timestamp service that utilizes a proof-of-work mechanism similar to that employed by Bitcoin but which avoids the latency, bandwidth and storage fallacies that plague Bitcoin. In this arrangement, the timestamps themselves act as the "core" and other services - such as secure, digital currency (distributed ledger) - can be easily built on this core. Secure, distributed data-storage; secure, distributed computation (for smart-contracts); secure peer-to-peer messaging and many other services can be built using this architecture.

Stay tuned...

No comments:

Post a Comment

Wave-Particle Duality Because Why?

We know from experimental observation that particles and waves are fundamentally interchangeable and that the most basic building-blocks of ...