At Coinaccord's first Whitepaper Book Club, we decided to analyze the Ethereum project in order to better understand the purpose and technology behind the platform. With over 1,500 decentralized applications utilizing the Ethereum blockchain, we figured that before we inevitably break down future dApps, it would be a good idea to look into the popular platform used by so many development teams.
In order to examine whitepapers, we separate our analysis into the following five categories:
It's important to note that this is our template for the book club, not every project will fit nicely into this mold. For example, not every project has a cryptocurrency and some, like Ethereum, do not list their team members in the whitepaper. We tried to keep our analysis confined to the whitepaper for the purpose of our book club, but from time to time we do draw upon exterior sources.
When we look at the idea behind a project, we want to explore the purpose for it's development and how the team looks to fulfill the proposed need. We start by asking the following questions:
Ethereum's mission is to create a decentralized platform which runs Smart Contracts without the possibility of downtime, interference, censorship, or fraud. dApps and Smart Contracts run exactly as programmed and operate on the globally shared blockchain infrastructure. These contracts are able to represent the ownership and value of goods, as well as their transfer to other parties. Ethereum creates an open source platform where developers are free to create new projects using an existing infrastructure.
As Vitalik Buterin, the founder of Ethereum, was working on a Bitcoin project, he noticed several flaws in the system that would not be easily fixed on the existing blockchain. For this reason, he decided to create his own blockchain platform which would have the potential to solve existing problems with slow development time, interoperability, and security.
Ethereum operates using a Turing-complete programming language, which is one that can be programmed to solve any computational problem. With such a system, however, comes a byproduct known as the halting problem. At a high level, because a Turing-complete system can solve any problem, in some cases the solution may take an infinite amount of time and computing power to be reached. This can put a lot of strain on a network. In order to solve this problem, Buterin created the breakthrough concept of "gas". For Smart Contracts to initiate and operate on the blockchain, they need to be funded by Ether, the cryptocurrency of Ethereum. Ether works as the gas that fuels the Smart Contracts and solves the halting problem. If a contract is not funded with enough gas to solve a problem, computation stops and unnecessary strain is removed from the system.
Ethereum contracts also improve upon Bitcoin's UTXO issues. In Bitcoin, UTXO can be either spent or unspent, there are no other states for transactions. This makes multistage contracts difficult to implement. On top of limited states, value-blindness also minimizes a contract's ability to provide precise instructions for the withdrawal of funds.
Tons. There is an entire section dedicated to Ethereum use cases if you refer to the Applications section of the whitepaper. For example, some of those listed are token systems, stable-value currencies, identity systems, decentralized file storage, and decentralized autonomous organizations.
One of our Meet Up members gave the example of using oracles in order to bring sports betting to the blockchain. Oraclize is an example of a project that fetches trusted, external data that Smart Contracts may need to execute properly on Ethereum's blockchain.
So who is Ethereum actually created for? An internal discussion and our book club came to the same conclusion. Ultimately, we believe that Ethereum was created for developers. Those who are not looking to technically build their product from the ground up, but instead can make use of the existing resources provided by the Ethereum development team on their global network.
Traditional architectures leave a lot to be desired and today's developers are aware of these faults. The Ethereum network has more dApps operating on its blockchain than any other Smart Contract platform and it shows no signs of slowing down.
Ethereum has also created their own programming language, called Solidity, in order to provide a simpler language to code Smart Contracts with. Solidity allows for both developers and users to better understand what is going on in a code, and an optimized way to inspect object state.
Ethereum faces two kinds of competitors in this market, those who use blockchain technology, and the traditional competitors who do not. Some examples of blockchain competitors would be Neo, Cardano, Lisk, Waves and EOS. Those who are operating outside of the blockchain sphere, yet provide app stores and development platforms, include the Google Play Store, and Apple or Amazon's App Stores.
There is an important question to consider when analyzing blockchain products, and that is whether or not it's necessary for the project to utilize blockchain technology in the first place. Not all processes perform better on the blockchain, and incorrectly applying blockchain tech to a product or service can result in increased costs, difficult development, and most likely failure. The slide below breaks down a few key questions that will enlighten you as to whether or not a project needs to implement blockchain technology.
Now unfortunately, applying this to Ethereum doesn't exactly work because Ethereum is its own blockchain. Some of the questions can apply, for example, yes it needs a database, and yes the records should be publicly accessible, but because this is a project that created a blockchain platform, we'll look at some other questions that will give us a better idea of the technology that operates it.
An important note about the questions from the slide above was brought up by a member of our bookclub. Even though being in control of functionality and having a public blockchain do not exactly mesh, in the current ecosystem, these decentralized systems' final decisions are still "centralized" to the development team. At this point, not every project is able to perform completely autonomously, and business models have not fully diverged from centralized systems with interior hierarchies.
Ethereum is a decentralized, permissionless and public blockchain. In order to access the platform, users can make one of two account types: externally owned accounts, which would provide a wallet and associated keys for transactions, or contract accounts, which are the Smart Contracts that operate autonomously.
They currently apply a Proof of Work (PoW) consensus model but because of the computing power necessary, Buterin has made public his plans to change Ethereum over to a Proof of Stake (PoS) Consensus Model. Ethereum also makes use of GHOST protocol (Greedy Heaviest Observed Subtree) which reduces stale blocks, reward uncles, and increases speed and security on the platform.
Mining in Ethereum works pretty much the same way as it does in Bitcoin. Since Bitcoin was the largest project at the time, the whitepaper constantly refers to Bitcoin's mining process as an example of how Ethereum will work. One important difference though is Ethereum's specific PoW algorithm called ehash. Ehash is designed to require more memory which results in a higher level of difficulty for minings trying to make use of ASICs (the specialized mining chips used to mine Bitcoin). Currently, the ASICs that are used to mine Bitcoin at a more efficient rate can not be applied to Ethereum, and changing to PoS will make these machines even more obsolete.
As an open source project, Ethereum's transparency is inherent through the public's ability to access code and recommend changes. The GitHub repository for Ethereum Improvement Proposals (EIP) has over 77 contributors and over 900 commits. This repository allows for the public to propose changes regarding the platform, protocol, APIs and contract standards. Ethereum Request for Comment (ERC) publicly publishes Ethereum developers methods, research, behaviours, and innovations for peer review and transparency.
EIP, ERC, the whitepaper, and other resources for Ethereum are available here.
There are some risks to building a publicly accessible platform for developers to build upon. For example, Buterin would not want to be held accountable for illegal actions that take place on his platform. Another risk when building a public blockchain is the possibility of a 51% attack from hostile network participants. If a group of miners chose to build a mining farm and gain over 50% of a network's computing power, they would be able to skew the information posted to the ledger. Since each transaction is verified through network consensus, if bad actors were able to have the majority say in validation, they are deciding what transactions are posted to the blockchain.
Those looking to build a cryptocurrency or blockchain project are up against some major regulatory uncertainty. However, the technology itself is also an uncertainty to the public. Since it is safe to say that most people are not aware of how this technology works, the adverse effects of reluctance to change are felt two-fold. If a project does not take external factors into consideration before launching, they are likely to overlook obvious roadblocks to success.
Ethereum did have one of the first cryptocurrency sales online, it took place between July and August of 2014 and raised just over 11.9 million in "premined" coins. This would not technically constitute an ICO, however, comparing the 11.9 million that Ethereum made to the hundreds of millions raised by projects on their platform is an interesting comparison.
You can refer to Currency and Issuance section in the whitepaper to get a more in-depth overview of Buterin's plan for token issuance.
At the time of Ethereum's coinsale, the regulatory landscape was not as developed as it is today. However, to say this made their experience easier would be incorrect. Buterin has talked about how difficult it was to navigate the regulatory waters when launching Ethereum, however these regulations aren't touched upon in the whitepaper.
Many barriers exist not only for Ethereum, but for blockchain and cryptocurrency projects as a whole. Social change would probably be the biggest barrier to overcome. If your grandma can't use an iPad, how will she be able to create a digital wallet and partake in global, peer-to-peer, trustless transactions? Will people be willing to rid themselves of the insurance provided by centralized systems in order to become self-sovereign and highly independent regarding their data and security? In terms of scalability and adoption, Buterin is the first to admit that scalability is a problem and outlines future measures to deal with it in the whitepaper (refer to Scalability). Buterin has addressed these scalability issues with the following solutions:
- Ethereum full nodes only store the state, not the entire blockchain history.
- Every miner will be forced to be a full node, thus creating a lower bound on the number of full nodes.
- Lastly, there will be an intermediate state tree root in the blockchain after transactions are processed. This allows for problems with centralization to be circumvented as it only takes one honest node to use verification protocol.
At the time, Ethereum was also going up against the only mainstream coin, Bitcoin. Today, there are several projects that people can recognize in the blockchain or cryptocurrency sphere, but in 2014, Buterin was going up against the original powerhouse crypto.
The Currency and Issuance section of the Ethereum whitepaper goes over the majority of important information one needs to consider when looking at any associated coins or tokens in a blockchain project.
Of course, Ethereum created their own blockchain and therefore Ether, the associated cryptocurrency, runs on the Ethereum platform. Ether serves a dual purpose, not only does it provide the liquidity layer to allow for the exchange of digital assets, it also provides a mechanism for paying transactions fees.
Ether has the following denominations for specific uses, these denominations are an expanded example of dollars being broken down into nickels or dimes:
- ether 1018: used for transactions
- finney 1015: used for microtransactions
- szabo1012: used for technical discussions regarding fees and protocols
- wei 1: used for technical discussions regarding fees and protocols
Ether is cryptofuel and therefore it makes a very good case for providing utility. Ether is used as the payment for the gas that is required to run Smart Contracts on the Ethereum blockchain. In order for a transaction to occur, there is an associated fee that is equivalent to a certain amount of gas.
This diagram quickly walks through a simple example of how gas is used in Ethereum transactions. The concept of submitting your gas price and limit is very similar to prepaying at a gas station. Most gas stations will have different prices posted for gas, and when you prepay at the pump you input a limit that you will fill your tank up to. If your tank is full before you reach your limit, you are not charged for the remaining amount, and if your limit is reached before your tank is full, the flow of fuel stops.
Some helpful hints to consider when reading this diagram: your wallet will usually provide you with an estimate for the price of contract actions in a Smart Contract, and if you wanted to estimate them yourself, you can refer to Ethereum's Gas Cost Spreadsheet for the fee schedule.
Ether currently has a circulating supply of over 99,000,000 ETH that will follow a linear, long-term growth pattern. There is no hard cap on Ether, meaning that it will continue to be minted and burned indefinitely.
The original currency sale in 2014 saw 60,102,216 ETH sold. Of this total:
- 0.099x is for early contributors.
- 0.099x is for long term reserve.
- 0.26x is to be allocated to miners, per year, forever.
A lot of people will say that the most important aspect of a blockchain or crypto project is the team. Of course, the team is an important part of a project, however, if they are able to propose a solid idea, that is backed by logical technology, and considers possible barriers to entry while creating solutions to those barriers, does it matter how famous their advisors are? We've put the team as the last factor not because we feel it is the least important metric to consider, but simply because decentralization exists to allow for anyone to develop a successful, peer-to-peer project.
The Ethereum whitepaper did not include a team page, however, because of the robustness of his idea, Buterin was awarded the 2014 World Technology Award, and his project is supported by major players like DeLoitte and Microsoft.
To summarize, there is no question that Buterin's Ethereum was a massively powerful idea that is constantly improving through public input and collaboration. The technology Buterin has chosen to implement addressed existing problems and identified future issues while presenting possible solutions. Ethereum's cryptocurrency has stronger functionality and is developed with theories that go against traditional business models for the better. As their team continues to grow and partner with developers and global enterprises, the project's reach and depth is sure to follow.
Ethereum Yellowpaper: https://github.com/ethereum/yellowpaper
Ethereum's Improvement Proposals and Request for Comments: https://github.com/ethereum/EIPs
Solidity Papers: https://github.com/ethereum/solidity
Vitalik on Proof of Stake: https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51
Coinaccord is a Canadian Blockchain Venture Studio that strives to create entirely new and decentralized models on a global scale. As a company run by humans, we want to know if we’ve made a mistake. Do we need to make a correction or do you have a different point of view on the topic? Let us know in our Medium comments.