Ethereum is an open platform using blockchain technology to enable anyone to create and use decentralized applications. Ethereum is not controlled or owned by anyone, but is an open-source project with many people globally contributing. Ethereum differs from the Bitcoin protocol in that it is flexible and adaptable. This makes it easy to use the Ethereum platform to build new applications, and with the latest release codenamed Homestead, those applications are safe to use.
A new version of blockchain
Bitcoin is built on blockchain technology which was described by Satoshi Nakamoto in a white paper published in 2008. Although the original paper discussed general uses of blockchains, blockchain technology was used as a generic term only a few years later. A blockchain is a distributed computing architecture consists of blocks that execute and record the same transactions on every network node. Only one block is added at a time, and each block contains mathematical proof that proves that it is sequential from the previous block. This allows the distributed database to stay in consensus across the total network. Individual interactions with the ledger are called transactions and these are secured by strong cryptography. Nodes that verify and maintain the network are incentivized by economic incentives built into the protocol and are enforced mathematically.
For Bitcoin, the distributed database is treated as a table containing account balances and a ledger, while transactions are made by transferring the bitcoin token to enable trustless finance between individuals. As bitcoin attracted more attention from technologists and developers, new projects started using the bitcoin network for more than simply transferring value tokens. Many of these used “alt coins” which evolved to become separate blockchains with their own cryptocurrencies. These improved the original bitcoin protocol by adding new capabilities and features. In 2013, Vitalik Buterin, the inventor of Ethereum, proposed a single blockchain which could be reprogrammed to perform random complex computations and would be able to incorporate many of these other projects.
Ethereum founders Vitalik Buterin, Jeffrey Wilcke and Gavin Wood started work on this new version of blockchain in 2014. Their goal was to implement a general smart contract platform that was fully trustless.
The Ethereum blockchain is programmable. Rather than provide a set of pre-defined operations, users of Ethereum can create their own operations. These can be as simple or complex as they want them to be. This allows the platform to be used for many different kinds of decentralized blockchain applications, including cryptocurrencies.
Ethereum includes a peer-to-peer network protocol, as does any blockchain. The blockchain database is updated and maintained by many nodes on the network. Each network node runs an instance of the EVM and executes the same instructions.
This massive parallel computing across the network is not done to improve efficiency, but this process makes Ethereum computation slower and more expensive than would be the case on a traditional server. Ethereum nodes run the EVM to maintain consensus across the blockchain. This decentralized consensus ensures zero downtime, provides Ethereum with extreme levels of fault tolerance and ensures that data stored on the blockchain remains resistant to censorship and unchangeable.
The Ethereum platform is in itself featureless or value-agnostic. It is up to developers and entrepreneurs to decide what they want to use it for, similar to using programming languages. It is however clear that some types of application will benefit more from the capabilities of Ethereum. Ethereum is best suited for applications that facilitate coordinated group actions across a network, or automate direct interactions between peers. Examples of this include the automation of complex financial contracts and applications that coordinate peer-to-peer marketplaces. While Bitcoin enables individuals to exchange cash without involving a middleman like banks, Ethereum’s impact may reach much further as financial exchanges or interactions of any complexity can be automatically carried out reliably by using code that runs on Ethereum. Other, non-financial applications where security, trust, and permanence are important could be impacted massively by the Ethereum platform. Examples include governance, voting, asset-registries and the IoT.
Bitcoin developers will find many familiar technologies and features in Ethereum, while it also introduces many innovations and modifications of its own.
While the Bitcoin blockchain consists of a list of transactions, Ethereum uses the account as a basic unit. The Ethereum blockchain keeps track of the state of accounts, and all transfers of information and value between accounts on the Ethereum blockchain are state transitions.
Ethereum uses two account types:
– An EOA (Externally Owned Account) is controlled by a private key.
– A Contract Account is controlled by a contract code and can only be activated by an EOA
The main difference between the account types is that humans control EOAs as they are able to control the private keys of an EOA, while contract accounts are governed by their own internal code. In cases where contract accounts are controlled by humans, it is because their programming calls for control by an EOA with a specific address, and the EOA is in turn controlled by the private keys holder. The term “smart contracts” often used with Ethereum refers to the code in Contract Accounts that executes when transactions are sent to a specific account. A users creates a new contract by installing code on the blockchain.
A contract accounts only performs operations when told to do so by an EOA. A Contract account can therefore not perform native operations like API calls or random number generation unless it is prompted to do so by an EOA. This is due to Ethereum requiring nodes with the ability to agree on computational outcomes, which in turn requires strictly deterministic execution.
Like with using any other cryptocurrency, a user pays a small transaction fee to the network. This protects the blockchain from malicious or frivolous computational tasks, such as infinite loops and DDoS attacks. The transaction sender pays for each step of the “program” they activate, including memory storage and computation. For Ethereum these fees are paid in ether, the native value-token.
Transaction fees are paid to the nodes validating the network, called miners. A miners is an Ethereum network node that receives, propagates, verifies, and executes transactions. The miner then groups the transactions, including the many updates to the “state” of an account in the Ethereum blockchain – into “blocks”. Miners compete with each other to get their block added to the blockchain. For each successful block a miner mines, they are rewarded with ether. This offers an economic incentive for individuals or companies to provide hardware and electricity to the Ethereum network.
Miners are given complex mathematical problems to solve in order to “mine” a block successfully. This is called a “Proof of Work”. Any computational problem that needs orders of magnitude more resources to solve algorithmically than what it would take to authenticate the solution is a good contender for proof of work. To discourage centralization by using specialized hardware (e.g. ASICs), as has happened in the Bitcoin network, Ethereum selected a computational problem that is memory-hard. As the problem needs memory as well as CPU, the ideal hardware to solve it is a general computer. This makes the Proof of Work for Ethereum resistant to ASICs, allowing a more decentralized distribution of security than blockchains, like Bitcoin, whose mining is dominated by specialized hardware.