in order to achieve our goal the following list of significant issues must be addressed:
A few of these issues are comparatively minor, but most are quite serious, and some are potentially catastrophic.
Nor are we alone in making these kinds of constructive critiques of blockchain tech. From these observations we can draw a couple of general conclusions. First, it is effectively impossible that any existing cryptocurrency could ever replace most national fiat currencies, regardless of the tacit permission, or even active endorsement, of governments or central banks. This is not to say that various “GovCoins,” such as the Russian CryptoRuble, will not attempt to do exactly this. They will doubtless learn the same hard lessons about latency, complexity, and scalability.
(A good survey of development projects under way in support of Bitcoin scaling can be read here.)
Second, it is now obvious that even a scalable cryptocurrency does not constitute an entire ecosystem by itself. Blockchain is a shiny new tool in the toolbox for building a better, more equitable economic structure for the future. But it is not, by itself, the entire system architecture, nor is it the solution to every extant problem in software or economics. Blockchain cryptocurrency needs to be utilized in an appropriate manner, to achieve appropriate objectives, as part of a larger crypto-economic ecosystem design.
HOME
- Lack of scalability. Decentralized networks and blockchain databases are inherently slow and low-capacity, compared with existing centralized clearing and storage solutions.
- Lack of privacy. Recording all transactions on a distributed public ledger is inherently antiprivacy. At least one third of all “anonymous” bitcoin addresses have been de-anonymized, and this is enough to permit highly effective tracing of money flows through the network.
- Lack of final decision-makers. Because no one owns or controls Bitcoin, all proposals for meaningful changes to the protocol are potentially contentious, resulting in ongoing civil wars, consensus failures, and ultimately hard forks of the blockchain. These events generate confusion and retard progress.
- Unacceptably long settlement times. Bitcoin transactions can take anywhere from a few minutes to many days to clear, depending on a variety of prevailing conditions, most of which cannot be controlled by the average user. In the 21st century, this is absurd.
- A requirement to run full nodes in order to enjoy benefits fully. It is often argued that only users running “full nodes” (i.e. nodes that download and verify the entire blockchain) can provide true decentralization and censorship-resistance to the network. Full nodes also allow users to generate and control their own private keys, and to specify transaction nodes have an enormous footprint, imposing non-trivial hardware and bandwidth requirements.
- The need to see all transactions, not just one's own. Related to points #2 and #5, users who are not mining blocks should have no need to concern themselves with transactions belonging to other parties. (And for reasons of privacy, should not see others' transactions.)
- De facto centralization of mining, development, and exchange functions (among others). As the network grows in value and participation, the result is that important aspects of the surrounding ecosystem become increasingly centralized into fewer hands.
- Inability to control access level on a public blockchain. By definition, on a “public” blockchain anyone running the necessary software can read, write, or validate (mine blocks) on the network. The result of this has been ongoing problems with dust spammers (DDoS), bogus spends submitted in order to push up transaction fees, mining nearly empty blocks, and a number of other antisocial behaviors.
- Inherently deflationary currency. Many would construe this as a virtue (especially speculators), but a currency with a permanently fixed supply favors creditors, just as an inherently inflationary fiat currency favors debtors. Neither is a good long term solution for economic growth and stability.
- Minting and transaction clearing functions are conflated. In most blockchain systems, especially those like Bitcoin which are built around a Proof-of-Work (PoW) mining method, the party who mines a given block collects both the new coins in the block reward, and the transaction fees for all the transactions contained in the block. This is akin to letting a mint clear checks, or letting a payment processor like PayPal print physical cash currency. The mint and the clearinghouse are, or should be, two logically and legally distinct entities.
- Inability to push out server software updates. Because nodes on a blockchain violate the logical separation between server and client side functions, every client is also potentially a server. This makes it extremely difficult to ensure that software updates are installed by all of the nodes functioning as servers in the network. Consequently servers running non-conforming stale revisions present an ongoing problem. The following additional issues apply to cryptocurrencies such as Ethereum, Ethereum Classic , EOS, and EOS Gold, which facilitate the deployment of “smart contracts” (i.e. distributed software applications) onto a “Turing-complete” network:
- Smart contracts cannot be very smart. Due both to execution cost and the need for provable correctness before deployment, smart contract programs must necessarily be of limited scope and complexity. (A few hundred bytes is typical.) Execution cost (i.e. “gas”) also creates a perverse disincentive against sanity-checking code.
- Turing completeness is neither necessary nor desirable. The ability to run any arbitrary code on the blockchain is also a liability, because it assumes distributed scalability, ignores problems with running untrusted code, and relies on installing complexity inside the network itself, where it does not belong. Blockchains with more limited scripting languages (such as Bitcoin) do not flout such basic laws of computer science. Providing a complete virtual machine is fraught with inherent dangers.
- No vetting of smart contracts before publication. In the context of a public blockchain, there is simply no way to vet, verify, or prevent code from being published and run on the network, whether it adds 2+2 or implements a whole new cryptocurrency via the ERC20 protocol.
- Computing power on the network doesn't increase with more nodes. No matter how many nodes are added to a Turing-complete network, it does not run any faster, because every node executes exactly the same software code when invoked. The overall effect is a globally distributed computer with the approximate processing capacity of a late 1990s cell phone.
A few of these issues are comparatively minor, but most are quite serious, and some are potentially catastrophic.
Nor are we alone in making these kinds of constructive critiques of blockchain tech. From these observations we can draw a couple of general conclusions. First, it is effectively impossible that any existing cryptocurrency could ever replace most national fiat currencies, regardless of the tacit permission, or even active endorsement, of governments or central banks. This is not to say that various “GovCoins,” such as the Russian CryptoRuble, will not attempt to do exactly this. They will doubtless learn the same hard lessons about latency, complexity, and scalability.
(A good survey of development projects under way in support of Bitcoin scaling can be read here.)
Second, it is now obvious that even a scalable cryptocurrency does not constitute an entire ecosystem by itself. Blockchain is a shiny new tool in the toolbox for building a better, more equitable economic structure for the future. But it is not, by itself, the entire system architecture, nor is it the solution to every extant problem in software or economics. Blockchain cryptocurrency needs to be utilized in an appropriate manner, to achieve appropriate objectives, as part of a larger crypto-economic ecosystem design.
HOME