Some technology gurus believe ecosystems can be ruled by mathematics. Ecosystem governance decisions can be translated into consensus rules that have been proven correct by mathematical game theory. There is no need to trust government, lawyers or other people, investor Ben Horowitz said in an interview. You can use a blockchain to manage assets and transactions in an ecosystem, and trust the math underlying the blockchain. No need to trust anything else.
This is a grave mistake. It is a mistake for two reasons. First, blockchains are software, not math, and we cannot trust software to the same extent as we trust math. Second, math and software of necessity make abstractions and therefore never cover all complexities of the real world. To ignore this is to ignore the role of human responsibility, which is why the mistake is grave.
Both reasons explain why ecosystem governance cannot be done by software alone.
Let me explain this in more detail.
Software has bugs
The number of bugs in a software system is hard to count (if they were known, they would have been removed) and varies depending on the programming language, type of application, size of the application, experience of the programmers, and budget for testing. A count of bug fixes in open source software found 0.3 severe bugs per 100 000 lines of code in Python and 6 severe bugs per 100 000 lines of code in Chrome, where a severe bug is defined as one with a vulnerability score over 7.
Mathematical proofs can have bugs too. But these proofs are reviewed and debugged over and over again, a process that may last decades.[i] At the end, the proof is bug-free beyond unreasonable doubt.
Software does not have the luxury of waiting for decades until unreasonably critical reviewers agree that there is no more bug. We cannot wait for decades to publish the next software version.
Cryptocurrency platforms may be several 100 000 lines of open software code, so I expect about a dozen severe bugs in the software and an unknown number of less severe bugs. The Bitcoin protocol has experienced failures that were the result of bugs, such as the overflow incident in 2010 and the DoS vulnerability patched in 2018. The bug in the DAO, a smart contract for Ethereum, is legendary.
Let me not spend more words on it: Math, especially when reviewed critically by some of the brightest minds on the planet, can be trusted to be free of bugs. Blockchains cannot. Automated ecosystem governance, even by blockchain, will have bugs too.
Math abstracts from the real world
But there is a more fundamental reason why trust in people cannot be replaced by trust in a blockchain or in its underlying mathematics. Mathematical structures are abstractions. That is what makes them useful.[ii] They allow you to abstract aspects from the real world and prove properties of abstract structures that must be true in all possible worlds. The empirical problem is then to decide whether an abstract structure is applicable to a concrete case and to what extent the predictions of mathematical structures can be expected to agree with real-world events.
There is always a difference between a mathematical model and the real world. Judging if this difference is important and dealing with it is a human responsibility.[iii]
Software abstracts from the real world
Software deals with abstractions too. We create a conceptual model of the functionality and subject domain of the software and then create a program that lives in the world defined by that model. There are infinitely many aspects of the real world not dealt with by the conceptual model, because these are not relevant for the functionality of the software. More accurately, the software designer did not think they were relevant, or never thought about them.
For example, the Bitcoin protocol defines a conceptual model of the blockchain data structure its synchronization algorithm across Bitcoin nodes but ignores governance of the Bitcoin ecosystem.[iv] Governance in Bitcoin is underdefined, to say the least, and leads to endless quarrels on Reddit.
In the face of these abstractions, people take responsibility
The DAO disaster was dealt with by rolling back the Ethereum blockchain to undo the damage done by the disaster. It led to a hard fork in which Ethereum Classic remained faithful to the idea that code is law and the forked Ethereum followed the idea that the DAO as implemented was not the intention of its designers. In both branches of the fork, people took responsibility for a decision.
The Libra protocol takes care of the synchronization of Libra validator nodes but not of Libra governance. Libra governance is done by the Libra Association and there is a promise that this may be automated in Libra’s Move language (The Libra Blockchain, page 24). The troubles that the Libra initiative has run into are partly caused by lack of trust in the organizations running the validator nodes, such as lack of privacy or lack of accountability. Software is not enough to gain that trust.
Governance of the Bitcoin, Ethereum and Libra
ecosystems is complex and important, and it cannot be moved to the algorithms
that validate transactions and synchronize the nodes of these ecosystems. It
remains a human responsibility.
[i] Imre Lakatos. Proofs and Refutations. Cambridge University Press, 1976. Reissued 2015.
[ii] Ernan McMullin. “Galilean Idealization.” Studies in the History and Philosophy of Science, Volume 16, Number 3. Pages 247-273.
[iv] Andreas M. Antonopoulos. Mastering Bitcoin. Programming the Open Blockchain. O’Reilly, 2017.