With the scalability debate now over in any meaningful sense, coders are getting down to work. Leaving words behind and letting code do the talk.
The aim is as good as unlimited scalability, with two leading projects – Bitcoin and Ethereum – both of which have a highly competent development team, engaged in a race of sorts.
While Bitcoin Cash might be a contender too in some ways, but their approach is similar to eth’s, yet lacks its extensive coding talent at this stage.
A talent pool which has increased with the addition of Joseph Poon from bitcoin’s Lightning Network, who publicly fell apart with some Bitcoin Core developers and went on to join Ethereum by leading the coding team of OmiseGo.
That project aims to create a decentralized exchange, as we’ve previously detailed. But to handle real volumes, they need considerable scalability, which isn’t yet quite available for on-chain transactions.
Just to illustrate, Bithumb, Ethereum’s biggest exchange, handled nearly $1 billion in trading volumes during a 24 hour period yesterday. That’s millions or more of transactions, while ethereum’s blockchain can handle only around 2 million or so in its current state.
There are two main ways of scaling blockchains, with both approaches similar in concept. Instead of all nodes processing the same exact information, we can bundle many transactions into one main-chain transaction or we can chop each transaction (data) so that parts of nodes handle parts of it.
The solution is probably both approaches, but the later one is very hard and may take years, while the former one might be ready by next year. Not least because at least one project, OmiseGo, depends on it.
They are clearly making some progress with Plasma, detailed in a technical paper written by Poon and Vitalik Buterin.
Through a very complex ethereum smart contract, a new blockchain of sorts is created that operates fairly independently, but relies on the ethereum blockchain for ultimate verification in case of misbehavior.
It’s similar, in many ways, to the Lightning Network as far as the concept is concerned, but it requires no modifications of ethereum’s blockchain, you don’t have to be online to receive a transaction and it works not just for simple transactions but for smart contracts too.
If we can create one blockchain within a blockchain, then we can create a second one too, all the way down. You, or anyone else, can then verify the part or parts of the blockchain or blockchains you care about, with everything assumed to be working fine unless someone complains.
If someone does complain, we have a system of metaphorical lower courts and higher courts. That is, you can complain to the first or second level blockchain, which has its own verification, or to the ultimate “Supreme Court,” the Ethereum blockchain, which is the final decider of whether there has been any misbehavior, and if there has been, then it punishes the malicious actor.
The “complain” is made by submitting some code called fraud proof, which provides indisputable evidence that someone has breached the rules.
As such, there isn’t any advocacy for one side or claimant and defendant lawyers. The code knows what is valid and what isn’t, so if your proof shows invalid actions were undertaking, then it’s all automatic through complex if:then.
As with anything human created, the protocol isn’t perfect and has drawbacks, which can be mitigated. Vitalik Buterin publicly says:
“Attackers can delay withdrawals by two weeks at medium cost, and can potentially steal funds in a mass withdrawal attack (basically, make lots of fraudulent withdrawals at once, and there literally is not enough block space to challenge all of them within the withdrawal window).
The scalability of the system is limited by the fact that if the system’s load gets too high, the “systemic risk” of mass withdrawal attacks gets too high (though there are a bunch of ways to mitigate this in ethereum).”
The scalability of the protocol, therefore, depends in many ways on the scalability of the root chain. It can greatly increase capacity, but still does so “only” to an extent. At some point, on-chain capacity needs to increase too.
Something which ethereum plans to do in the coming months and years, so employing all approaches available in their aims to create a system that can handle as good as an unlimited number of transactions.