DAppChains: Scaling Ethereum DApps Through Sidechains
In our previous article about sidechains we mentioned how we are aiming to be the blockchain platform for building and running large-scale online games and social apps.
We envision a future where communites are run on a blockchain and sites such as Twitter, Reddit, Facebook, StackOverflow and even MMORPG’s are totally community-driven and impossible to censor.
Can’t Ethereum do that?
Today’s DApps have bottlenecks which do not allow them to scale:
- They’re competing with all other DApps and financial transactions for resources (i.e. users pay more for gas to get a transaction confirmed faster, which creates a non-scalable fee market)
- Their transactions are treated with the same level of security as transfers of millions of dollars of wealth.
- Unless there is a central entity controlling them, they are not updatable.
We noticed that not every action on these DApps requires the same highest level of security. An attacker has much less incentive to exploit small transfers of value in a game or posts on a social app compared to censoring or double-spending Ether transactions which are worth millions of dollars.
Essentially, Ethereum’s users are paying a premium to run functions on DApps when that level of maximum security is not necessary.
What is a DAppChain?
Loom Network allows developers to build large-scale games and social apps by using DAppChains — DApps running as their own sidechains.
More specifically, a DAppChain is an Application Specific Sidechain, that runs parallel to a mainchain, Ethereum in this case. Its ruleset is customized based on the use-case, and its security is maintained by the mainchain’s consensus algorithm.
1 DApp = 1 DAppChain.
DApps running on Loom DAppChains are democratic.
Users who want to support the DApp and have voting rights in its development can run their own nodes on the DAppChain. This means if the developers release an update that the users do not agree with, they can configure their nodes to reject the update and fork away.
Users are able to vote and express their opinions, compared to traditional games and web services where developers can issue a change that the community does not agree with.
DApps running on Loom DAppChains are scalable.
Since all transactions happening on a DAppChain are specific to its DApp, it can run a consensus algorithm that optimizes for those particular types of transactions.
For example, in the case of a game, we can use a consensus algorithm like Delegated Proof of Stake that’s extremely fast and cheap to run.
This is analogous to how ASICs are used in order to achieve very high performance for specific use-cases.
Each DAppChain is tailored and optimized for its DApp.
The data of DApps running on Loom DAppChains is public and shareable.
With a traditional game or web service, if the developers decide to launch an update that users do not agree with or ban/censor an account, nothing can be done about it (except for filing a support ticket). Any data such as game progress up to that point in the game is impossible to access again.
With a DAppChain, on the other hand, running a node gives its users a full copy of all the data since the DAppChain’s Genesis Block.
This shareable and public data also allows for further innovation and the surfacing of entirely new concepts, such as two games sharing the same state.
You could have a World of Warcraft-type game, where the world is created by players in a Minecraft-type game. The actions of the players in each world would affect the world of the other game.
Developers could release a new game that uses character data from another game world stored on a DAppChain. That way, new users of the game could immediately jump into a new world with their existing characters and assets (essentially airdropping your old game’s data to the new game).
DApps running on Loom DAppChains are secure.
As discussed before, algorithms that sacrifice decentralization for scalability are not ideal, as they increase the attack surface from powerful adversaries. This applies to Loom DAppChains as well, with one major difference, incentives.
An attacker needs to spend enormous amounts of resources in order to attack a blockchain. In a general-purpose blockchain like Ethereum, there are huge incentives to do so, since there are large amounts of value being transferred and there is a high reward for double-spending or censoring a number of transactions.
In a DAppChain which represents a community, the following apply:
- There is much less to gain from censoring a tweet compared to censoring a financial transaction. This disincentivizes malicious behavior, unless there is political gain, which we do not take into account.
- If an attacker is successful in attacking the community despite the low reward, the community is able to freely fork at an earlier point in time and take their own path, similarly to how Ethereum split to Ethereum and Ethereum Classic after the DAO hack.
The end result is a way to have DApps that can achieve a balance between scalability and decentralization.
Building Loom DAppChains is developer-friendly.
Developers will be able to use Loom’s Software Development Kit (SDK) to generate the foundation for a DAppChain.
Then, they can focus on writing the application logic while all the blockchain logic is handled for them.
The first release of our SDK will be in March.
We enable the creation of more than just a DApp — It’s a real blockchain.
This post describes our vision for the scalable, yet decentralized future of DApps on Ethereum.
Note that Ethereum’s scaling solutions such as Raiden, Plasma, Sharding, Casper or Truebit are still very much necessary.
Loom Network contributes to scaling by offloading the mainchain’s computations to DAppChains, while still allowing the existence of DApps that run on a secure blockchain.
Summarizing, Loom’s DAppChains enable the following:
- A user-friendly way for developers to spin up their own blockchain-based apps without having to know anything about implementing the actual blockchain logic, allowing them to focus on the core app logic.
- Building full-scale apps such as MMORPGs and social media which are not limited by the high costs of gas on Ethereum and slow speeds.
- Running the entire DApp on a decentralized blockchain, contrary to popular DApps which partly run on Ethereum, and the rest on a centralized web server
- DAppChains make DApps updatable, forkable, and have publicly shared data, allowing further experimenting and innovation.
Loom Network is launching SOON.
Want more info? Join the conversation in our Telegram community.