Blockchain has been compared to TCP/IP in terms of how it enables new distributed finance solutions in the same way that TCP/IP enabled internet services. It certainly looks like distributed finance solutions will disrupt the whole finance industry, but it is not guaranteed that “Bitcoin type” blockchain will be the primary long-term solution to enable it. It has many fundamental issues, and there are other candidates to create distributed ledgers and distributed finance solutions.
Blockchain is like a religion to some people. They believe in it, even if they don’t understand it. Sometimes there are moments when – and people with whom – I feel it’s forbidden to talk about blockchain problems. When you do, you get comments like, “So, you want to protect centralized solutions.”
No, I want distributed solutions that work, are reliable and can really scale up.
The basic idea of distributed ledgers is to store data (or data blocks) in a distributed network in a reliable way. Those data blocks then can include some information, e.g. how many tokens (e.g. Bitcoins) you have, ownership of a certain asset (token as a certificate e.g. based on smart contracts), or your credit score (e.g. a distributed credit rating systems). The order of the transactions is fundamental for these systems – it means, for example, that you cannot use the same token twice or sell the same asset twice.
Traditionally that order has been easy to maintain because a centralized system authorized the transaction and then updated your information. If you buy a flight ticket with your debit card, your bank (or its processor) has the system to check that you have enough money to pay for the ticket, then it handles the transaction, deducts money from your account and sends information to the airline that they will get their money and they can issue you a ticket. Then their system confirms your place on a flight, issues the ticket and sends it to you.
With distributed ledgers, we must imagine solutions where there is no single centralized party to check your bank account, confirm the payment, or keep track of available seats on a flight. Basically, everyone has a wallet where he or she can hold money (or monetary tokens) and flight seats (tokens with the right for a seat). And there is no central party or upper hierarchical party that would approve transactions and keep track of them. This means we need algorithms to guarantee transactions are recorded and maintained in the right order.
For example, when I buy a flight ticket from a flight dealer, the system must guarantee that I don’t use money elsewhere until my ticket is paid, and that the dealer doesn’t sell the seat to someone else until I have got my ticket. When we tokenize money and assets this way, it then creates many other opportunities to make use and trading of them easier and more flexible than with traditional ownership documents.
Know your distributed finance systems
There are several models to guarantee or at least estimate this in a distributed system:
- Proof-of-work (POW): This is the model that blockchain uses. Basically the way to guarantee the order is to slow down the system and make it hard to add a new block, i.e. it takes time and computing capacity (that means it takes a lot of electricity too). If two blocks are added simultaneously, then it is basically a competition to see who can perform the calculation tasks faster and add more to the chain, because the longer fork wins. The reward for adding a block is to receive some tokens (e.g. Bitcoins).
- Leader-based system: The requires someone (or several people, either in a hierarchy or taking turns) is the leader and all transactions are sent to them for their approval. One could say this is not really a distributed model (de-centralized, perhaps), and its one technical weakness is that the leader is the weak link in an attack situation such as DDoS.
- Proof-of-stake (POS): We can say it is a kind of gambling system. Each party basically votes with their own money (tokens) which would be the consensus of the transaction. If you are on the winner’s side you win money, otherwise you lose. In this way the system motivates everyone to follow the consensus chain.
- Voting-based system: There are several ways to create voting models – for example, you could have equal voting rights or allow a leader to have more votes. Many of these solutions have fundamental problems with potential attacks and how things like botnets could influence the voting results. Proof-of-stake and voting solutions also overlap (voting with money), and there are hybrid solutions, too.
- Hashgraph: This is quite a new solution – it’s a modified voting model, but the voting is based on information stored in the network. In this system, each node must know all transactions. When I create a transaction, my node sends it to some randomly selected nodes that again send it randomly to some others (a gossip model), so the number of nodes that receive it grows exponentially. This doesn’t yet guarantee a consensus about the order of the transactions. But each message also includes the ID in a coded format (hash) of the last message the node sent and received, so it is possible to build a graph where all transactions are in the right order. Hashgraph can handle hundreds of thousands of transactions a second. Hashgraph looks very promising for many high capacity needs, but it is not yet proven in practice.
The descriptions above are simplified summaries to present the main ideas of different models, and there are probably other ways to categorize them. We could also separate categories for consensus methods and data models. But they give a rough idea of the kinds of different models out there that are based on very different processes and algorithms, and have different pros and cons.
For example, POW blockchain makes a lot of sense with Bitcoin because the mining model supports the ecosystem. But there big question marks as to whether POW blockchain makes sense for all distributed finance models. It is slow – capable of just a few transactions a second – and it is not easy to find a solution to this. A distributed model proposing to replace card payment solutions must be able to support thousands of transactions a second. To replace something like Alipay requires over 100,000 transactions a second.
And, as mentioned earlier, POW blockchain is very power-hungry – it would take a huge amount of energy just to make payments. POW blockchain is already in a situation where those who have most of computing capacity and cheapest electricity dominate the system (especially as much of the mining activity has been concentrated in China). In principle, it is also possible to collapse the system by building those short forks that otherwise would disappear. This means someone with a lot of computing power and electricity could destroy the system.
One size does not fit all
For some systems, it makes sense to link the community, token mining and transaction processing to each other. But when we think about things like distributed database solutions, it is not necessary optimal. Each solution also raises questions, such as how the network of nodes is created and motivated. Blockchain’s value is that it has the existing Bitcoin community. But maybe the solution can be different – for example, have service-specific nodes in clouds.
We are approaching a phase that we can no longer talk simply about distributed versus centralized systems – we now have to discuss what kinds of distributed systems work for each purpose. Blockchain and Bitcoin have dominated both the market and discussion, but now we see a lot of cryptocurrencies and tokens. Only some of them are based on mining, but many still utilize the Bitcoin and blockchain principles.
When we start to really replace the existing finance infrastructure with distributed models, we must take a much broader view, looking at which solutions really work for different needs. It is also good to remember that many distributed systems can be taken over by someone who has enough power in the network, so we must determine if the system has protection against those situations.
In short, we need to move from the blockchain religion to practical implementations of distributed ecosystems.