In 2018, Ethereum faced enormous challenges that will have to be overcome before it can establish itself as a mainstream platform for distributed computing and other token economies (cryptocurrency ecosystems). These challenges include those associated with its underlying technology, economic/business model, its potential status as a security and its enablement of weak business models via ICO’s. These will be outlined below. It is worth noting that because this nascent technology is so exceedingly complex and nuanced, that the information and knowledge asymmetry as well as the hype around it and other cryptocurrencies is rampant. The cryptocurrency market is exceptionally irrational at the moment, and will remain so for some time to come. To comprehensively understand these cryptocurrencies and it’s impact on the world, one requires a deep understanding of technology, business, economics, regulation, and monetary policies, to name but a few.
One of the most easily-digestible challenges that is bandied about today, primarily because it does not require any real depth of understanding, is the fact that Ethereum does not scale easily. While this is true, the technological problems run much deeper, all the way to the core fundamentals of the platform.
For all intents and purposes, Ethereum came into being by attempting to improve on Bitcoin’s capabilities. Simply read the white paper, and it becomes clear that the point of departure was to take Bitcoin’s technology and tweak it for an alternative purpose. For example, Ethereum wanted to enable faster transaction processing times and extend the smart contract functionality available in Bitcoin Script. It also attempted to become the general purpose blockchain upon which other blockchain-type solutions could be built.
Vitalik very eloquently describes Ethereum
Unfortunately, this also created challenges for Ethereum. Extending Bitcoin Script functionality and creating a Turing-complete programming language increased Ethereum’s attack surface and made it more vulnerable to attacks, as was seen in the DAO Hack. Ethereum also had to go through a number of unplanned hard forks, including the ‘EIP-150 Hard Fork’ and the ‘Spurious Dragon’ hard fork to reduce the denial of service attacks that took place in September and October 2016.
Executing thousands of smart contracts’ code on each validating node is also processor-intensive. At peak capacity, the network is perceived to take severe strain in that pending transactions (backlog) increase and the performance of ‘low fee’ DApps, degrade. There are well-known examples such as the Bancor ICO and the Cryptokitties popularity surge which caused massive congestion issues for the Ethereum network and saw frustrated users demanding that the block gas limits be raised.
It appears that most of those involved in Ethereum recognize the need for the platform to be re-architected. But attempting to re-architect a live, multi-billion dollar network that is running many live DApps is risky. The proposed changes are themselves untested. Transitioning to Proof-of-Stake and sharding may not be sufficient. The development community is hard at work to address these base layer scalability issues, while others are working on various Layer 2 scaling solutions such as state channels, Plasma and Truebit. This is very commendable, but as at the time of writing this publication, Ethereum’s technical challenges are very concerning.
Let’s delve into some details.
It is a platform for executing decentralised smart contracts
One of the fundamental reasons for Ethereum’s existence is its ability to facilitate the processing of smart contracts on a decentralized network of computers (nodes). This enables peer-to-peer (no middleman) transactions and the exchange of value beyond just currencies. This means that each and every node (or fully-validating node to be exact) on the network is required to execute and validate the code on everyone’s smart contract before a block can be validated and added to the chain. As more smart contracts are loaded onto the platform, the more processing power is required from nodes. The number of fully-validating nodes are therefore decreasing (the computing power available cannot cope with the increased demand), weakening the decentralization objective of the platform.
The estimated number of nodes on the Ethereum Mainnet has reduced from roughly 30,000 in January to around 14,000 today. The most reliable website that attempts to estimate the number is https://ethernodes.org/network/1. However, it does not differentiate between different types of nodes. This makes the proper assessment of the situation very difficult.
An important point to take note of is that when the total node count of the Ethereum network is being quoted on a website or report, that the different types of nodes be clearly indicated. This is because the overall node count may well be increasing, but the important metric is the number of fully-validating nodes, which needs to be increasing as well for the system to remain decentralized.
Furthermore, the cost of the parallel-processing of all these smart contracts also becomes excessive (transaction fees are discussed further below). Smart contracts on Ethereum also have a larger attack surface, and Ethereum has been subject to a number of denial-of-service attacks to date. Having said that, a reasonable repository of known attack vectors and preventative techniques is maintained on Github. Smart contract developers are also becoming smarter by moving more computational complexity off-chain.
The Ethereum state is growing rapidly
Ethereum nodes (full-archiving nodes to be more specific) need to maintain the entire state database from the beginning of Ethereum (starting with the genesis block), in addition to the blockchain itself. As a result, the total space requirements for a node to maintain this data increases rapidly with time, and the total space requirement has now exceeded 1TB. This makes the syncing of new nodes with the network very difficult. It is common knowledge now that if you try to sync a full-archiving node on a machine with spinning disk drives, it will not catch up to the tip of the blockchain. You need to have a solid-state device to run such a node, along with excellent bandwidth. Many users have reported not being able to ‘catch up’ with the blockchain, because while they are syncing, more blocks are being created.
…the total space requirement has now exceeded 1TB
Solutions to the disc space issue include pruning and checkpoints. However, if (or when?) block gas limits (see below) are increased, it will put still more processing strain on validating nodes. Anecdotally it appears that more Ethereum nodes are ‘downgrading’ to what are called light nodes, as light nodes do not need to hold state data. This has several unintended consequences:
- The trend towards fewer fully-validating nodes and full-archiving nodes on the network reduces the degree of decentralization. Interestingly, it was on the basis of Ethereum being decentralized that William Hinman from the SEC did not view it as a security. Contrary to common belief, it is decentralization that gives the blockchain its immutability, not the cryptographic linking/chaining of the blocks. With reduced decentralization, the immutability of the Ethereum blockchain is weakened.
- Light nodes do not participate in the real-time validation of blocks being added to the blockchain. Since it is entirely possible to create valid block headers even if transactions inside the block are invalid, light nodes would not be able to detect this. Only fully-validating nodes will. Fewer validating nodes reduces the security and trustless nature of the platform.
Consider this though: The Bitcoin blockchain has been in operation since January 2009. Ethereum only went live in 2015, and already its space requirements are significantly higher.
The block gas limit and incentive mechanism at the protocol level creates conflict
Miners of transactions on the Ethereum network can choose which transactions they mine, based on the amount of profit it will generate for them. The cost of processing or running computations is measured in a unit called ‘gas’. Users that require a smart contract to be executed or a payment to be processed, will specify a maximum amount of gas (a gas limit) as well as the transaction fees (gas fees) that they are willing to pay the miner for executing the transaction and adding it to the blockchain. The gas fees will determine which transactions the miners prioritize. The more a user is willing to pay, the faster it is likely to be processed. Visit https://ethgasstation.info/index.php for more details.
Unlike Bitcoin for example, where the block-size limit is specified in bytes, Ethereum’s block-size ‘limit’ is specified in units of gas. This size is dictated by the miners, primarily based on the economic incentives, but other factors as well. In the case of Bitcoin, with a set block size that does not increase, it becomes easier to run a node as technology improves. The total node count is therefore unlikely to go down over time compared to Ethereum. Having no hard cap on the block size at the protocol level and allowing it to increase over time has the potential to separate nodes into ‘power groups’, where the advantage is skewed towards the more powerful mining nodes. The powerful miners will have the processing power and bandwidth to dominate the rest by force, by making their mining income more sporadic. If the total blockchain (datadir) size increases at a faster pace than what technology improves, this challenge is exacerbated, further weakening the decentralization of the network.
Miners have the ability to vote on what the ‘block-size limits’ are. Fully-validating nodes that do not mine do not participate and have no say in this process. They are dependent on the miners and therefore their processing requirements are at the mercy of the miners.
Anecdotally, Ethereum users are still experiencing peer connection issues, because the fully-validating node count keeps dropping, and “good” peers that serve (seed) sufficient amounts of data are less available. Furthermore, if the block gas limit keeps increasing over time because there is no enforced hard cap at the base layer, it will place even more strain on these limited nodes and further reduce the number that do exist.
Ethereum therefore has the following potential conundrum:
- If the blocksize gas limit is not increased, there will not be enough ‘gas room’ in each block for all the additional contracts and transactions (assuming more DApps are built on Ethereum), and a bidding war will begin that will drive up fees. In other words, users that need contracts to be executed and validated quickly will have to pay more for this. If fees increase too much, basic contracts start becoming too expensive to execute timeously, and DApps that pay low fees slow down to a halt. This has happened before and Ethereum miners were forced to raise the limit.
- If the gas limit is raised, then the already reduced validating node count goes down even more (as discussed above). Furthermore, propagating larger blocks through the network results in more uncle (orphan) blocks being created. This in turn negatively impacts the block rewards that miners receive as the other miners of these uncles receive a block reward as well. Not only would the network start dropping in validator count, but the miners could begin to connect directly to each other to avoid high uncle rates. Inevitably, this will marginalize the smaller miners, further centralizing the network because they are unable to handle the income volatility.
The following charts shows how the average block size and block gas limits has increased over time:
The Oracle Problem
One of the unique features of Bitcoin is that its underlying cryptocurrency or token is native to and an essential part of the system. Without the token, the entire solution collapses. With Ethereum and its DApps however, the assets being traded between parties are external to the network, and not native to the system.
…this undermines the entire trustless intent of the network.
If for example, peers are exchanging a property for cryptocurrency, the property is not native to the system. All legally-recognized records (ownership, erf size, etc.) of the property are recorded outside of the Ethereum platform. The only thing that Ethereum, or the DApp enabling this exchange can provide is some form of digital representation (token) of the property. It is not the property itself though. Providing the parameters or inputs for the execution of the contract therefore requires an external ‘oracle’ that can gather information about the real world outside of the network for input into the contract. This means you now require some degree of trust on an external validation mechanism, and this undermines the entire trustless intent of the network.
Until such time as the entire ecosystem, the value chain and all the assets (property ownership, identity, etc.) are all on the Ethereum platform, and the ownership of these assets is recorded solely on these networks, such that digital ownership means actual ownership in the real world, one will always have to exit to the external world for the verification of the conditions that drive the contract execution. Putting an entire ecosystem onto this decentralised blockchain platform will simply exacerbate the scalability issues outlined above. So therefore, one may as well perform whatever contractual execution is needed external to this network in the first place. Especially as it will be more cost-effective, as discussed below.
In the case of a physical asset such as a property, the ownership of the property needs to be tightly linked to, or be the same as the ownership as reflected in the deeds registry! Buyers of the property need to trust that the digital representation or the token actually represents the property, and that when he/she takes ownership of the token, the property legally belongs to him/her. Without this, the digital world of Ethereum will always need to know, via an oracle, what the legal status in the physical world is.
But assuming you can get past this challenge, additional challenges then subsequently emerge. For example, what happens when a token is stolen? Does the property now belong to the new token-holder? Or more strangely, what happens if the token is lost? Who would the property then belong to? These problems can be solved, but it would require the intervention of lawyers who use contract law that governs ownership in the physical world. These decentralized, Ethereum based-businesses will always have to leave their digital world for some reason, which should leave the investor questioning why the solution was not built outside of Ethereum in the first place, especially if the smart contract does not need to be decentralized.
An ‘ecosystem’ of companies/counterparties that are commercially transacting with each other would not want to subject themselves to the open rules of a public network. They would expose themselves to the decision-making of others on that network. They would always perceive it to be in their best interest as a business to use a tightly-controlled private network. And commercial activity between counterparties is not continuous. You would only need to hold Ether for those times when you are actually transacting. It would not be in any business’s interest to sit on an asset such as Ether, waiting until a transaction with a counterparty is required. The company would be exposing itself to price volatility risk, and would have to have some kind of hedges in place to manage this risk. Again, this is too much complexity for virtually no advantage (if any).
Net result is…
…that we have a platform for processing smart contracts on a decentralised basis, which practically do not need to be decentralised in the first place. As a result, it requires much more processing power and disc space for a node to be a fully-validating or full-archiving node. Without more of these types of nodes, the decentralised nature of the Ethereum network is increasingly compromised. The mining incentive model and block gas limit concensus protocol further puts the entire platform in a very precarious position. If block gas limits are not increased, then Ethereum will not be able to scale and accommodate additional users and DApps. If it is increased, it results in other unintended consequences that can further weaken the decentralised nature of the platform. Therefore, Ethereum’s fundamental technical architecture is problematic enough to validate the extreme concerns about the platform, especially because it is the platform upon which so many other cryptocurrencies are based.
Ethereum enables unsound business models and cryptocurrencies
Ethereum’s primary value proposition is its ability to execute smart contracts on a decentralized basis, and to enable the creation and maintenance of DApps. As discussed previously, the real-world demand and business case for decentralized smart contracts and DApps remains extremely questionable. To date, it appears that the developers are more excited about DApps than what the general consumer is.
The reality is that smart contracts do not need to be decentralized. Running it on a decentralized basis is so resource-intensive, that the cost benefit associated with decentralized business models remain questionable. More importantly, centralized or intermediated business models have many advantages! Middlemen or intermediaries such as Airbnb, Uber, Visa and Amazon can do arbitration between buyers and sellers, manage customer complaints, provide fraud protection benefits, include additional value-add services by partnering with other 3rd parties, provide bulk discounts to buyers, provide customer service enhancements based on user-feedback, offload non-performing service providers, interface with insurers for cover or claims management, provide tax-related services/documents where relevant, etc. What kind of technological complexity would be required to build a digital ecosystem that operates autonomously with these kinds of benefits? How will decentralized businesses running DApps be able to compete with these real-world business models? The sustainability of these DApps therefore remains extremely questionable.
…you have drastically increased complexity with the intent of creating a trustless network for the exchange of value, but not achieving because you still having to trust someone or something external to the system.
So, by attempting to achieve disintermediation through machine-only execution, what you actually get is the unnecessary complexity of having to encode all possible scenarios with the subjectivity and nuances that can only be navigated after many years of legal training. Furthermore, you have drastically increased complexity with the intent of creating a trustless network for the exchange of value, but not achieving it because you still having to trust someone or something external to the system. To add to this, these complex contracts (that will probably be bug-ridden because of the complexity) are processed on a decentralized basis by thousands of nodes? How can all this complexity be worth it?
Ethereum’s role in creating potential security tokens
The business models built on top of Ethereum effectively go through something similar to an IPO in order to raise funds. Given the nature of the fund-raising process, Ethereum and all the businesses enabled by it will very likely be labelled as unregistered securities and become regulated as such. To further support this view, consider that these ICO start-ups have CEO’s, marketing departments and all the same power structures as traditional companies.
If this materializes, all players in the cryptocurrency value chain will have to comply with securities regulations. Creating the compliance functions in these startups/businesses will add cost and operational overhead. Cryptocurrency exchanges will be subject to exchange-related regulation. ICO advisors could become subject to advice-related regulation. Custodians and asset managers managing crypto portfolios will be similarly impacted. The regulation will impact everyone. For this additional burden and overhead, all the players in the value chain will demand even more value from these tokens.
ICO’s are essentially a way for startups to raise money from unqualified or uninformed investors. These startups could well be, and have been, scams. To date, there is no intrinsic mechanism within Ethereum to prevent scams. In the extreme then, it could be argued that Ethereum is a system that is actively promoting scams. This is an unintended consequence, but it is actively deluding people who in turn are deluding others, profiting off of the ignorance of others. The fundamentals and characteristics of the Ethereum platform unfortunately enables those who are selfish enough to profit from it (well, also entrepreneurs who don’t know better).