Ouroboros, Casper and other computer science masturbation. It may feel good, but you don’t actually get anything DONE.
If you are old enough in the field of software engineering you probably recognise something familiar in the title. It references the words of the creator of Linux in regard to micro-kernel architectures, networked distributed computers and message passing as a core OS functionality. To exactly quote Linus:
“message passing as the fundamental operation of the OS is just an excercise in computer science masturbation. It may feel good, but you don’t actually get anything DONE.” — Linus Torvalds
This goes a long way back to the time Linus was debating the so-hot-back-then microkernel design in operating systems extending to dummy machines on the network passing messages around like there is no tomorrow. The elderly will probably remember the epic flame war with Tanenbaum (professor specialising in operating systems and creator of the Minix operating system). To me that has always been the absolute representation of the clash of engineering and academia.
Lately, I see the same pattern emerging in the new “linux” of the era: The blockchain. Only at a much amplified level. And if you don’t recognise it, allow me to point it out.
I was introduced to bitcoin in 2011 when I dismissed it as something that doesn’t scale. Yes, I was much younger back then and really wanted amazing pure solutions to everything. Boy, I should have known better! I got back into studying cryptos and the technology in 2013 and since then I have been really excited about the possibilities.
So now, in 2018, the whole world is into this. Everyday you see new projects trying to tackle every aspect of the problem. Latency, throughput, security, anonymity, etc. And again we got to the point where software projects started claiming their supremacy to the peer-reviewed academic process, while trying to belittle all other pragmatic issues. This is what Tanenbaum was summoning to support his arguments that Linux is not secure, not portable, and that doing a monolithic kernel in 1991 is like going back to the seventies.
The peer-reviewed process of course is the tool that makes science science and got us here. I am not debating that. What I am really debating here is whether pretending with arrogance that being peer-reviewed always conveys true value or it is more of a marketing trick.
Let me tell you this: most of published work today is useless to plain false and this claim was actually peer-reviewed! The actual usefulness and application of research is definitely not provided by the peer-review process. In our field of software engineering -and any other engineering field- good science is driven by engineers themselves. Science coming from engineers is always more pragmatic and useful, and I believe that this is the kind of science we need in the blockchain. Elon Musk seems to agree with me on this.
Take for example Cardano and EOS. Cardano comes with all bells and whistles that this is the new thing. It’s not like the others, it’s peer-reviewed. Cardano uses a consensus algorithm called Ouroboros. Ouroboros, is a consensus algorithm based on the Delegated Proof of Stake algorithm (DPoS) invented by Dan Larimer (of EOS). You can clearly see that is carries enough extra baggage to serve publications and not the actual cause. Sadly, Ouroboros doesn’t even refer to Dan Larimer, probably because he is an engineer and not an academic. Like microkernels and distributed operating systems, Cardano, serves well the pure theoretical science part of the story, but they don’t get any work done. Who will debate that Linux is not portable and not secure today because it’s monolithic? Who will debate that DPoS which is for years securing billions of dollars in BitShares and Steemit is not secure enough because it is not formally peer reviewed. Trust me has been “peer-reviewed” by hackers 24/7 for years. Why should I accept bringing block time down to 20 seconds, on the theoretical -yet peer reviewed- promise of more security. When I have never seen it work in practice, and there are angles to it that probably make it even less secure.
Take as another example Casper for Ethereum. I have been hearing about Casper being just around the corner for years now. Where is it? It seems they got stuck with the nothing at stake problem and they are not seeing real, pragmatic solutions to problems. If nothing is good enough for you, focus on the fact that nothing is good enough and solve that problem instead.
Make it so you can have an adaptive system that can evolve, and don’t get stuck to the past until the perfect solution is found. Sometimes it feels that if Ethereum was designing a password file they would store passwords plain text because MD5 is not proven secure. How about using it but also making it easy to switch to bcrypt when MD5 gets cracked? That is what engineering does.
The hype around the industry also attracted all sorts of “experts”. Personally when I see a project in the blockchain technology that provides nothing new in the cryptography area, advertising advisors with cryptography background, I smell scam. Those that fall for it are pure ignorants. I hate to break it to you but most of cryptography used in cryptos today is decades old. So as someone doing operating system implementations doesn’t necessarily require quantum physics advisors because of quantum tunnelling accruing at modern processors, building blockchains today doesn’t need cryptography researchers. Elliptic-curve cryptography and zero knowledge proofs are known since forever in computer science time scales. Unless you are implementing a new cryptography algorithm you don’t really need a crypto expert (It will work as marketing though). Not to mention that if you actually do implement new cryptography, allow me to stay away from it for a couple of years and then we talk.
Something being peer-reviewed doesn’t mean anything on its own. In blockchain technology we need to be pragmatic and not fall into the pithole of pure academia for academia. Even worse lets not make it a marketing tool. It is not what we do, and it is actually causing damage to the field as a whole. The practicality of a solution is top priority in any software engineering endeavour. We shouldn’t claim to have designed the safest airplane in the world by making it only taxi around and never fly. Playing the peer-reviewed card is sometimes exactly like what all those tokens with no real value do to attract non tech savvy users to invest. It is just in a more elegant packaging that actually works for better educated investors.
Let’s not do that.
[ Edit: Following Charles’ tweet (of Cardano) about the FUD and lies of this opinion piece, regarding DPoS, Dan Larimer and Ouroboros, I have posted a reply in an effort to explain some things: https://medium.com/@harkal/is-ouroboros-a-dan-larimers-dpos-ripoff-e77bab21ea7e ]