As of today dApps are equal to smart contracts. Since they get executed in the blockchain Virtual Machine (VM) and require consensus, then everybody can trust them. However, this design has some major flaws:

(1) Blockchains which run a lot of different smart contracts get congested easily.

(2) Blockchains are not designed to run apps, they are way too slow for this. You can think of a blockchain as a distributed computer which requires consensus for every operation and this makes it very slow. On top of this, everyone is using the same computer which only amplifies this problem.

(3) You also need a way to interact with the blockchain, which is mostly done with web apps currently. This is an enormous security threat because of Man in the Middle (MIM) and Denial of Service (DDoS) attacks, malware and traffic monitoring.

Elastos tackles all of these problems:

(1) The congestion problem is solved by using a main chain/sidechain structure. Every dApp can have their own sidechain with what ever consensus mechanism they seem fit. If they need the highest security available in the industry they can make use of Elastos‘ Proof of Work (PoW) which is merge mined with Bitcoin (starting December 2018). If more Transactions Per Second (TPS) is required dApps can go for Elastos‘ Delegated Proof of Stake (DPoS) and if they need finality of blocks they can make their own sidechain with a dBFT consensus or use Neo once the NeoVM has been ported to Elastos

(2) dApps on Elastos don’t run on the Blockchain itself but in a VM on your device called Elastos RunTime, and every dApp runs in its own VM. The only thing that gets executed on the blockchain are smart contracts which are part of the dApp, for example to make micro transactions in the dApp. However we can trust these dApps as much as we trust the Elastos blockchain since every dApp has a unique ID which is saved on the blockchain and before the dApp gets executed, this ID is checked against the blockchain by the Elastos Runtime. The Runtime also verifies that the dApp hasn’t been tampered.

(3) The third problem is solved by using a truly decentralized Peer to Peer (P2P) network (Elastos Carrier) with Decentralized ID‘s (DID‘s) stored on the blockchain. No dApp running on Elastos has direct access to the network. All the network traffic is handled by the Elastos Carrier. All connections are blacklisted by default and only whitelisted connections will be allowed by the Runtime.

So if you’re running an Elastos chat dApp and someone sent you malware which now tries to steal data from you and wants to send it to the attacker, it can’t establish a network connection and is therefore useless. And if you close the dApp, the VM gets destroyed and the malware too. Elastos can also prevent a lot of DDoS attacks since you can easily set access to a service to only whitelisted DID‘s. Meanwhile MIM attacks are removed since there are no central servers and its impossible to predict how the traffic will get routed.

All of this combined will provide a truly scalable, decentralized, trustable and secure ecosystem for dApps, no matter if they use Ethereum, Neo, EOS or Elastos sidechains for their smart contracts. If Ethereum with Casper turns out to be the best blockchain for smart contracts then thats great, since Elastos has the solution for many of the other problems blockchains are facing today.

Credits: Nicola Zimmermann