NEO and Qtum. Yes, that’s it.
tl;dr: This post covers the only two viable and live alternatives to Ethereum as a distributed application platform (NEO and Qtum) and explains my confidence in Ethereum’s dominance.
I just devoured Ed Posnak’s ongoing series, On The Origin of Smart Contract Platforms. It’s a well-argued collection of essays on several high-profile smart contract platforms — at the time of this writing, he’s covered Tezos, DFINITY, NEO, EOS, Cardano, Lisk, Qtum, and Waves.
As it turns out, there aren’t currently many alternatives to Ethereum when it comes to supporting arbitrarily complex distributed applications. The space holds a lot of promise, and I’m excited to see how projects like EOS and Cardano fare, but most of these aren’t nowhere near production.
In this short post, we’ll quickly look into the only two alternatives to Ethereum with a live mainnet: NEO, and Qtum.
Note: My focus lies mostly with public utility networks. It’s not that I don’t see value of permissioned networks (I do), but the allure of the impact of properly designed public blockchains is very hard to resist.
Consensus nodes use Byzantine Fault Tolerance Algorithm to reach consensus and ensure the finality of transactions. It also ensures that the system keeps its finality and availability as long as Byzantine fault occurs on less than 1/3 of the nodes.
This allows them to boast some pretty healthy numbers, like 1,000 transactions per second, confirmed within 20 seconds. From their whitepaper:
In the NEO dBFT consensus mechanism, taking about 15 to 20 seconds to generate a block, the transaction throughput is measured up to about 1,000TPS, which is excellent performance among the public chains. Through appropriate optimization, there is potential to reach 10,000TPS, allowing it to support large-scale commercial applications.
There’s no free lunch, however. This comes at a cost of centralization in validator nodes, since BFT can only function at up to ⅓ of dishonest actors, and sees its performance heavily degraded the closer you get to that number. In practice, this means that NEO keeps a very close eye on who gets to run a validator node on their network. From their whitepaper:
the bookkeepers can be a real name of the individual or institution. Thus, it is possible to freeze, revoke, inherit, retrieve, and ownership transfer due to judicial decisons on them. […] The NEO network plans to support such operations when necessary.
NEO is not decentralized enough as of today, and that is fully intentional. […] NEO Council is still holding 50% of the tokens […] the NEO Council want to ensure that all consensus nodes have honest, non-malicious intentions.
While there might be great arguments for doing so, I believe this is anathema to the principle of decentralization.
If you think NEO is a great choice for you, you might be happy to know that smart contract development can currently and conveniently be done in C#, VB.Net, F#, Java, and Kotlin. From their docs:
From the language point of view, the difference between NEO Smart Contract 2.0 and Ethereum is more intuitive: unlike the original Solidity language in Ethereum, the NEO smart contract can be used directly by almost any high-level programming language. The first supported languages are C#, VB.Net, F#, Java, and Kotlin.
However, before getting too excited, note that the price of deploying a smart contract is set at 500 gas (well, 490, since the first 10 are free). At current mart prices ($19.15 at the time of writing), that’s $9,383.5.
Qtum promises 60–70 transactions per second, as per this Cointelegraph interview with Jordan Earls, Qtum’s Co-Founder. That’s an order of magnitude higher than Ethereum in its current incarnation, and is achieved through the use of a faster proof of stake mechanism which generates a block every 16 seconds.
Qtum claims further transaction throughput is to be achieved through «a layered network or off-chain channels.» Since Qtum infrastructure is very close to Bitcoin and its UTXO model, this likely hints at their intention to make use of the Lightning Network for scalability improvements.
Some well-known projects such as DataWallet and Luna chose to deploy on Qtum, which lends some additional credibility to the network. This choice might have been informed by Qtum’s SPV (Simple Payment Verification) support, which makes interacting with the network lighter and thus more appropriate for mobile devices. While Ethereum’s development of a light client protocol is underway, it’s not considered production-ready at the moment.
It’s also interesting (and promising) to note that Qtum claims to have 6000+ nodes, which is already half the number for Ethereum even though Qtum’s mainnet hasn’t been live for even a year.
As per their whitepaper, Qtum implements the Ethereum virtual machine for smart contract execution, which means Solidity is currently the only language available for deployment. This should make it easy for Ethereum developers to give Qtum’s network a spin.
What about Ethereum Classic?
Ethereum Classic resulted from the DAO fork, where the community split over the decision to revert the DAO hack. Their team is still hard at work implementing new facilities, and the platform seems to still see significant interest.
There’s an argument to be made for using Ethereum Classic as a backup to Ethereum, should the latter become plagued by DDoS attacks, be forked out of existence, or otherwise face any other existential risk.
Inevitable Ethereum maximalism
Ethereum is currently the go-to smart contract platform. Contender claims abound, but most purported alternatives aren’t even close to being live.
Additionally, Ethereum’s hard at work addressing some of the issues these contenders see with its current version. If Ethereum — which is well-funded and has a thriving developer community — finds its way to scalability and better smart contract security before alternatives become popular, I believe it will remain the platform of choice.
The Ethereum community is exploring several solutions which would bring about massive improvements to the platform.
- The adoption of proof of stake (Casper) should dramatically reduce energy consumption and allow for a higher throughput by decreasing the block time.
- Sharding should bring about an initial 100x improvement to transition throughput.
- Layer-2 solutions (meaning they’re not core to Ethereum, but implemented on top of it) such as Plasma, Raiden, Liquidity Network and TrueBit will compound the core scalability improvements by securely moving a lot of the heavy lifting off-chain.
- Smart contract security is progressively increasing as the community doubles down on safer languages (like Bamboo, Vyper and AxLang) and formal verification tools (like Manticore, Mythril, Oyente, Solgraph and SmartCheck).
Additionally, Ethereum’s community is incredibly vibrant, and I believe that ultimately the winning platforms will be the ones which garner the most developer support. This is not only because of the higher speed at which a platform with a lot of contributors evolves, but also because of the applications and use cases built on top of it.
Given Ethereum’s relative maturity, the strength of its community, and the amount of research committed to improve it, I don’t see a compelling reason to choose any other platform as of today.
Planning an ICO? At Fractal, we offer a hassle-free, user-friendly launchpad solution combined with a comprehensive customer identification service (KYC/AML) to successfully deploy your token launch with ease.