BLOCKCHAIN SCALABILITY BY BLOCKCHAIN CLUSTERING8 Nov 2017.
Blockchains do not scale. But cluster of blockchains will. Lets use cluster of blockchains with Ethereum.
Since its invention, blockchain technology was submitted to numerous tests, and finally became adopted.
But with the adoption, in Bitcoin, Ethereum and other high demand currencies a new problem was discovered,
the problem of congestion. When everybody started to use cryptocurrencies in their daily life and build businesses on top of them, transaction fees during peak hours skyrocketed .
For instance, an investor in the BAT ICO included a $2,220 transaction fee in order to secure his investment in a project.
It is a very serious problem. If we don't find the solution to blockchain scaling, cryptocurrencies won't going to replace fiat money.
In Ethereum , solving the scalability problem has been proposed by many different ways:
- Increase gas limit
- Proof of Stake
- Plasma, etc...
But all these proposals are either a delay of the inevitable congestion, or work in progress. By the time these proposals are going to attempt to solve the problem our businesses (based entirely on cryptocurrencies) are going to be contained by the transaction limit of current Ethereum's network. And we obviously don't want this.
Here we are going to explain how Ethereum can be scaled truly to infinity without much effort. But, lets explain first why blockchains do not scale, and that ideas to scale them are not going to be so successful as the idea of the blockchain itself. You will then understand, that the only way to go (at least for now) is the method we propose.
How does the blockchain work?
We have the ledger which is called blockchain, and in this ledger each page is a block. We also have a lot of people (nodes), who are trying to get permission to write transactions on the current page of the ledger. According to some rules, one person from these people (miners) is (randomly) elected. This person gets permission to feed transactions to the blockhain, blockchain executes them and gives this person some coins as a reward. This is how it works.
So, what is the problem with this process, and why can't it be scaled? The problem is , that the algorithm to create the chain of blocks requires that only one page of the ledger (block) is written at a time. It doesn't matter how many nodes does network the network contains, 1 million or 10, only one can write.
Imagine a person (Mr. Blockchain) sitting at the desk, and writing transactions. And then, imagine a line of a million people, who want to make a transaction. This is how Ethereum's scalability problem looks like, in layman terms. Now, this person, Mr. Blockchain, is the only one who can write transactions, and distribute the money between accounts. His position is permanent and he cannot be fired. If you dismiss Mr. Blockchain (i.e replace it with another technology), you are at risk to lose your money because the guy who is going to take his place is not yet know as reliable.
Even if those millions of people make private agreements on how they are going to distribute their money between them (i.e. Lightning network, Raiden or Plasma), they will have to join to the other people standing in line, to be attended by the Mr. Blokchain at some point in time. So, no, you can't escape from Mr Blockchain's monopoly, he is the only one who can touch our money, and he is always working alone. You can improve Mr Blochain's strength, give him superabilities to write more transactions per second, and you can accelerate his work by fine tuning the process, but this won't be enough to scale infinitely. Mr Blockchain is already working at the speed of light, but even this is not enough to attend everyone's request. If you could put many Mr. Blockhchains to write ledger pages, then you would have scaled blockchain technology infinitely, but since every next page depends on the previous one, there is no way to speed it up.
The process of creating the blockchain is serial by design, and it can't be parallelized without destroying the integrity of the system. This is why blockchains can't be scaled. Anyone who is saying that he is going to create a scalable blockchain algorithm is going to be severely judged if he doesn't deliver. Anyone who is saying that he is going to scale blockchain by off-chain transfers, is taking on a big responsibility for experimenting with user's money on an unknown and yet untested technology which, by the way, can not call itself blockchain anymore.
In this article we are not going to enter the debate about proposed solutions to scale Ethereum. We just wanted to point out, that scaling blockchains is a huge problem, and it is not as easy as it appears to be. If you want to review how is this debate developing, check the References section at the bottom of this article. Some of the authors even posted a mathematical proof, of why scaling transactions with off-chain network won't work as a peer to peer network, but this subject is out of the scope of this article.
So, now that we know that blockchain's scalability is limited by the algorithm itself, how are we going to solve this problem? The same way it was solved back in the 90s when desktop computers started spreading around the world. Those computers were 16, 32, 100 Mhz in speed, and they were very slow, pretty much like Ethereum's Virtual Machine right now. So, how did people at that time increase computing capacity? They invented computer clustering!
The first cluster was built by some employees of NASA, and it was called the Beowulf Cluster. They connected commodity-grade computers to a network, and provided software to execute tasks in parallel. This idea evolved into something, that today we call HPC (High Performance Computing) and now it's being used to create supercomputers , systems composed of many commercial grade computers connected together and executing different tasks, usually for scientific research.
So, how exactly will AfterEther solve blockchain scalability problem by clustering?
This is how:
We are going to run many networks of Ethereum.
And we are going to call this method Blockchain Clustering, or Currency Clustering as an alternative non-technical term.
A peer to peer network working with a single blockchain will be called currency-node in our cluster.
Right now the instance #1 of our currency has been already set up, it is called AfterEther (or AfterEther currency-node #1). As the network is not yet congested, no action is required. The execution of transactions is fast. But as soon as users will complain about transaction fees, we are going to launch a totally new blockchain, and it is going to be the currency-node AfterEther #2.
Why do we have to put end of life on the blockchain? Because blockchains become larger and larger over time and
thus, difficult for new peers to join. We will be discontinuing AfterEther #1
and archiving it. Now AfterEther #2 will be the current version of the currency, and it will be actively used to execute transactions.
To those who don't know how future contracts operate, we will explain. A crop of wheat is going to be produced in 2020, so the farmer goes to the Exchange and creates a contract to deliver 5,000 bushels of wheat. This contract is priced lower because the delivery is going to happen far into the future and nobody needs this wheat right now, low demand - low price. As the delivery date approaches the contract increases in price.
Something similar is going to happen with our blockchains. The current blockchain will be priced the most, future blockchains will have a lower value because simply there is not enough volume to drive the price higher. So, to migrate from one blockchain to another, you just sell the currency of the current blockchain and buy the currency of the next blockchain. You don't even have to create a wallet, because the addresses are going to be the same. And if you do this with anticipation, you would even profit from the rise of the currency before it becomes the active blockchain.
This mechanics is called contract rotation , it is very well known and used at the trading exchanges, so, we are not inventing anything new. Blockchains will work perfectly, handling them in a manner of a futures contract. And voila, we have just solved the problem of blockchain scalability without writing a single line of code!
Now , if one blockchain every certain period of time wouldn't be enough to cover user demand, we can launch multiple blockchains in one cycle, so there would be 2,3,4... N networks running in parallel, If each network delivers 6 transactions per second, 2 networks are going to deliver 12 transactions per second and so on. To manage Visa volume of transactions , which is around 56,000 transactions per second at peak hours (2,000 on average), we would need to set up 9,333 networks of Ethereum. Yes, it looks scary, but in supercomping, cluster with such amount of nodes is normal. Such cluster can be created simply by putting online two Ethereum's networks every day during the next 13 years. It would be our maximum, and it looks realistic.
As a DApp developer, you would install your smart contract on the currency-node that has the lowest transaction rate. If the transaction capacity reaches its limit on that node, you would just migrate to another node. Each node will have different price, so you would only have to adjust the value of your token and that's it. If your DApp needs large amount of transactions you just use many clusters, and tell users to pick one of them to make the payment. Think of AfterEther as a server hosting company, where each currency network would be your "server" to run DApps. Picking the network with the lowest load average will be possible with a dashboard software, like the ones used for monitoring.
And if you don't like the idea of having different prices per blockchain, we can create a single index for all the blockchains by averaging the price, something similar to US Dollar Index where it is measured in function of another 5 pairs. But it is too early to be talking about it right now.
At first, our solution appears to be not good enough. Having one currency for everybody seems to be the ideal way. But note that clustering is a common technology in computing and it is now widely used. There is simply no hardware capable of writing 56,000 transactions per second on a single node. When the problem can't be solved on a single computer (and Ethereum is a computer, but virtual), it has to be distributed between many computers. Dividing has known as a successful strategy for ages, and it is not going to fail us.
In our opinion inventing a scalable solution for a single blockchain is as impossible, as inventing a perpetual motion machine in the 17 century, which was confirmed by physicists later as indeed impossible. It seems that blockchain technology is in a similar situation right now. You will be trying one algorithm after another, but after conducting experiments, you will discover that it doesn't work. The road to blockchain scalability by scaling a single blockchain is closed. Multiple parallel blockchains is the way to go. It is simple, it is reliable, it is easy to implement, it is just the pill that we have to take right now.
Then, why our solution wasn't implemented earlier if it is so easy to do? Because of inflation. By splitting Ethereum, say, into 2 networks you will lose the value on the first blockchian, and its currency would depreciate. On the other (new) blockchain it would start appreciating. It is like you would instantly apply a 100% inflation. People would sell Ethers of the first network, and buy Ethers of the second network expecting to make profits on the rise in price. Nobody wants to lose money, so this solution is a no-no for a currency that already has high valuation. But for us, it is not an issue. We are (yet) unknown project that was born two weeks ago, and we have nothing to lose. Instead, we have a lot to win when Ethereum's users start seeking cheaper transaction fees. This is why neither Bitcoin nor Ethereum are going to use this strategy to scale their chains. But you should not see our project as a threat to Ethereum's price trend. Because it has already limited itself by the scalability problem. How can the price go higher if there is no room to grow? You would probably see a price increase (if any) on the linear scale, but not on the logarithmical.
Now, just to clear things out. We are not saying that we are going to create copies of Ethereum one after another, and flood the market with cheap copies of Ether-like currency. We have a commitment right now, to grow our first network until it is widely accepted and reaches considerable transaction level. if no transaction bottleneck exists, neither we are interested in devaluing our network #1 by creating network #2. But eventually network #1 will become congested, and we will have to create a network for the cycle 2. Whether you like it or not, there is no other way to scale right now.
Another important point, about speculative money, which can flow into our nodes of networks of Ethereum copies. The presence of speculators is not a bad sign for currency, but a good one. It shows that the currency is valuable and that it has potential for appreciation. The speculators also add liquidity to financial instruments. Thanks to speculators you can sell or buy the instrument at any time and you don't have to pay large spreads. The speculators also add stability to the price, by reducing volatility. When the price of the instrument drops they buy dips, when the price rises, they sell and the price falls. So the speculators sort of smooth the curve of fluctuation of the currency in times of low or high demand. Speculative money is healthy for any financial instrument, and it is always welcomed in financial markets.
This is why we believe that speculative money is not going to do harm to our network-nodes, on the contrary it is a big help. This money will prepare the blockchain at the beginning, make it computationally stronger , rise the price and this way make the network ready to be used by the users.
This is basically all about our strategy to scale Ethereum in the future. While all the proposals to do this are only promises on paper, our solution is real , it has been already implemented and can be used right now!
Thank you for taking the time to read , and have a nice day!