Million users DAPP
The first viral DApp on Ethereum (although its decentralization is questionable as analyzed and described in our previous articles) was enough to bring the network to its knees.
The number of pending transactions reached all time highs and transaction fees also reached absurd amounts, with one user also (mistakenly) paying $11.000 in transaction fees.
The need for scaling solutions is becoming more urgent every day, as transaction fees and the transaction backlog increase.
Devcon3 highlighted some potential scaling solutions that would be able to solve most, if not all of today’s scaling issues. However, these solutions (other than uRaiden) are in a research stage and are not mature enough for the main network yet. Others have proposed raising block gas limit (a change analogous to increasing block size in Bitcoin), but that has its own disadvantages.
Meawhile, there is a clear demand for scaling solutions that work today, in order to handle the needs of real-world decentralized applications without completely overwhelming the Ethereum network. If something as trivial as CryptoKitties can make Ethereum unusable, how will it handle something on the scale of StarCraft with millions of users?”
“You could run StarCraft on the blockchain. Those kinds of things are possible. High level of security and scalability allows all these various other things to be built on top. Ethereum is a secure base layer that doesn’t have too many features.” — Vitalik Buterin
This article’s goal will be to describe how scaling on Ethereum can be achieved through application-specific sidechains, which can have a more customizable “rule-set”, while at the same time maintaining the security of the Ethereum mainchain.
Scaling through Sidechains
What is a Sidechain?
The term “sidechains” was first described in the paper “Enabling Blockchain Innovations with Pegged Sidechains”, circa 2014 by Adam Back et al. The paper describes “two-way pegged sidechains”, a mechanism where by proving that you had “locked” some coins that were previously in your posession, you were allowed to move some other coins within a sidechain.
A misconsception here should be clarified.
Sidechains can increase scale but do not imply scalability. Sidechains are no better at providing scalability than increasing block size. What sidechains bring is the ability to experiment. To be able to build networks that run on different — and possibly better-scaling — technology.¹
They enable innovation.
A sidechain is defined by a custom “rule-set” and can be used to offload computations from another chain. Individual sidechains can follow different sets of rules from the mainchain, which means they can optimize for applications that require extremely high speeds or heavy computation, while still relying on the mainchain for issues requiring the highest levels of security.
Application-Specific Sidechains
The rules that define a sidechain can imply adding privacy features, or even trading security & decentralization for more throughput. There is a lot of room for experimenting here and what trade-offs should produce the optimal performance, based on the needs of the individual application.
Also, in the case of data-driven applications, incentives differ from financial applications. It may be worth it for an attacker to spend hundreds of millions of dollars to 51% attack a financial blockchain and reverse a payment, but it probably doesn’t make sense for them to do so to reverse a tweet on a microblogging platform. Because of this, applications need to be able to choose more flexible threat modeling and optimize for performance.
There is a huge need for unstoppable applications that are censorship-resistant, transparent, and provide high performance.
With that in mind, in a Twitter-style Decentralized Application running on a blockchain, adjustable security can enable higher throughput while submitting “checkpoints” to the main-chain in order to declare the finality of the data so far.
Now that we have described a way to scale DApps, what would happen if an entity gathered too much power, due to a potentially relaxed security model, and was able to control a sidechain?
Achieving independence through hard-forks
In centralized communities such as a subreddit, sometimes a toxic moderator gets into place, starts censoring messages according to his agenda, and eventually tears that community apart.
In multiplayer games such as World of Warcraft, sometimes a massive change is implemented against community consensus, leaving no option for users to protest — they’re forced to either accept it or quit the game. Even Vitalik Buterin was horrified by these events!
“I happily played World of Warcraft during 2007–2010, but one day Blizzard removed the damage component from my beloved warlock’s Siphon Life spell. I cried myself to sleep, and on that day I realized what horrors centralized services can bring. I soon decided to quit.”
Coordinated communities need to be able to pave away from situations they believe are not fair and move on alternatives that they all agree on.
They key to achieving that is sidechain hard forks.
Being as laconic as possible, a fork is a protocol upgrade mechanism. A high-quality comparison between forks can be found on Vitalik’s blog.
How do you achieve independence that way?
In the occurence of an event that was against community consensus, the community is able to fork away, taking the state of the sidechain until before the dispute with it.
There are many questions that would arise in this case such as, in a game for example:
What if the majority of the leading “malicious” devs decide to stay in the old chain?
Will the new chain become stagnant of development, or will the developers compromise and adapt?
We do not have all the answers, but we believe the free market will figure these things out and best practices will emerge as more of these types of self-governing applications are created.
At least in this case, the community has a choice.
TPI Network is aiming to be a platform on which communities can run their software on sidechains, where they all have a vested interest in the platform being provably fair and transparent, while being able to adjust their security restrictions on demand.
Communities will be able to run on a blockchain where users can spin up their own nodes and secure the network. These could be communities like steemit, subreddits, forums, facebook groups, stackoverflow-type Q&A sites — places where people talk about a common interest — as well as MMO games where everyone has an interest in the game remaining fair. The moment there is a divergence from the community consensus, the users must be able to fork away.
When developers are finally able to create these types of platforms just as easily as they build today’s modern Web 2.0 applications, that time will be when the blockchain revolution will truly have begun.