This Monday I presented the following article. It discusses blockchains shortcomings. Even if it has been written in 2018, it is still very up-to-date… What follows here is a very opinionated piece. As such it reflects the journey I did in blockchains over the past 6 years. And I’m sure I missed out a lot 😉
The article Why Blockchain Is Not Yet Working goes over six points – for most of these points, research papers exist. For some of them test networks exist. Only one or two are solved in active main networks. Lets look at the points:
- Scalability Issues
Ah, the famous scalability. The most often cited number is VISA level transaction. This number is growing each year. In 2015, articles tried to reach 6000 transactions per second (tps). In 2021 it should be 24’000 tps. Counting China, this should probably be 100’000 tps.
There is no production blockchain that reaches this number. And by blockchain I mean public, decentralized, openly governed blockchains. So I don’t consider HyperLedger/Fabric and others which are more like databases with some hashing.
The fastest production blockchain that I consider a blockchain is Avalanche. They claim something like 5’000-10’000tps. Even if the current network chugs along at 0.33tps.
On the research side, OmniLeger claims up to 100ktps if there are not too many adversaries (5%) and enough nodes (500). AT2 also has around 50ktps, but with much more adversaries (33%), but a little less nodes (100).Also, my idea of a blockchain doesn’t stop at asset transfers. Ideally, a blockchain would give rise to the Web 3.0. But for this you need more than asset transfers. You need smart contracts (like Ethereum), secret management (like Calypso), storage (like FileCoin), Ecosystem (like Cosmos / Polkadot), and probably a lot more.
Which will put the required tps into the millions, if not billions. The current most used proposition is to use level 2 protocols. This refers to a protocol above blockchains. Like the lightning network for Bitcoin. But the ones I saw created more problems than they solved. - Lack Of Intuitive Private Key Management
Well, this is an issue. But as the article states, the key management is only one thing. You can use a password manager, and you’re done.
What is harder is key recovery. I think this is the missing issue.
One solution is to use DARCs, which lately got extended with a threshold signature component. So you can define a set of accounts which are allowed to recover your key. But only if 2/3 of them agree.
Our solution is working in our testnet. I recover keys for people once or twice a month. I logged in to wordpress using this system. It is of course possible to implement this in smart contracts. There must be some wallets out there supporting this.
But there should to be a standard. The current DID from the W3C has some recovery options. But not flexible enough, I think. - Contract Security
I think this is one of the main reasons people are afraid of blockchains. Somebody described it as launching a rocket into space. After ignition, everybody in the world has full access to all systems. They can send any command they want. But the rocket should go to space anyway… That describes very well the state of smart contracts on public blockchains.
Of course you can use formal verification, better languages, but it will still fail.
Should there be some kind of rollback system? More easy than doing a hard fork? More research needed here 😉 - Consensus Algorithms Are Wack
Yes, PoW is bad, with bitcoin consuming as much power as all other data-centers in the world. Proof-of-Stake seems to be the way to go for the moment. But it doesn’t solve the problem for easy engaging in the blockchain. To do anything useful, you need to buy tokens.
There are other proposals, like using Proof-of-personhood to protect the consensus algorithm against sybil attacks. But they barely exist as research subjects. Even though the idea does gain momentum. - Privacy
Also, still unsolved. “Bitcoin is like Twitter for your bank account” is a nice quote. ZCash and Monero do a bit better for private transactions. For storing data, Calypso has a solution that is decentralized. Private smart contracts exist in centralized blockchains like HyperLedger/Fabric. But ZCash’s implementation is still not usable by the big public. - Price Volatility
Well, unsolved, but is it really a problem? I would more say that participating in the blockchain is still too expensive, besides the volatility. Be it Bitcoin (100$ for a transaction), Ethereum (50$ for a transaction), even Avalanche, which is very cheap (some cents for a transaction) – you still need to cash out money.
Currently I know of no system that allows the user to just join a blockchain in an easy manner, mint some coins, and launch some smart contracts. And using a test network doesn’t count. I mean on a main network.
So, out of the 6 points, none is really solved in a main network. The fast, cheap, easy-to-join, usable by everybody, web-3.0 blockchain is still in the future. Advanced research exists for about half of the points. But no implementations yet.
One of the consequences I see a lot are projects that try to use blockchains. But after some time they see that they have one or more of the above problems. And then they use a blockchain for timestamping their internal, private, centralized database. Which defeats the goal of the blockchain as bringing the web 3.0 to the people…
Let’s see how it will look in 2022 😉