The inspiration for Bitcoin has largely emerged from discussion and work based in the cypherpunk movement beginning in the 1970s into the 1990s and continuing into today,,. The thought of digital currency entered into the collective consciousness via Neal Stephenson fictional work Cyrptonomicon published in 1999. However in 1982, David Chaum published an article formally introducing secure digital cash. Chaum went on to form DigiCash in 1990 applying his ideas about digital currency.
Bitcoin evolved beyond this original work by removing the need for a trusted third party. This was achieved with the innovation of a peer-to-peer, consensus based public ledger (blockchain) cryptographically secured by digital signatures and proof of work,,, which eliminated the need for a trusted third party. The token, bitcoin, is tracked on the public ledger, is cryptographically scarce and is counterfeit proof. The token has value and functions as money, cash, currency and/or at times as a cryptographic commodity. The protocol and the blockchain have together effectively solved the double spend problem associated with digital currency. Bitcoin is optimised as a digital currency and payment network. It does this very well. Every movement of bitcoin from one Bitcoin address to another is the result of a transaction composed of a specific amount of tokens or fractions of a token accompanied by instructions (script or contract) determining a source and destination which has been cryptographically verified. Although, the Bitcoin scripting language is by design restricted, the basic Bitcoin contract (from, to, amount) has been used to impart some special conditions and logic to Bitcoin transactions. Its scripting language is lacking in comparison to a general purpose scripting language.
Realizing that Bitcoin possessed the essential components to implement “smart contracts” as coined by Nick Szabo, Vitalik Buterin presented his ideas spawning the project with the name Ethereum. Gavin Wood formally described the technical specifications of the protocol in his yellow paper. Ethereum is conceived as a platform to implement truly smart contracts that are very flexible and of particular relevance to financial contracts in addition to other type of contracts. Up to now, Bitcoin has been considered as a scaffold for implementing such smart contract ledger based applications, however Ethereum is almost certainly better suited.
Ethereum is currently being implemented. It is quite a complex task. Fortunately, it is being very carefully implemented. The Ethereum network, client and ecosystem are being rolled out according to a detailed roadmap. The main design goal of Ethereum is to truly enable smart contracts. As such, there are notable departures from the design of Bitcoin. Ethereum is often incorrectly grouped together with other altcoins. Ethereum is in fact a smart contract platform which can easily reproduce many of the altcoins and Bitcoin in a few lines of native Ethereum bytecode. Ethereum takes from Bitcoin, the cryptographically secured blockchain, a token, addresses and transactions with notable differences. Ethereum is also designed to be peer-to-peer, censorship resistant, and robustly fault tolerant.
Ethereum exploits a stack based turing-complete, scripting language as the basis of its transactions rather than the very constrained turing-incomplete scripting language that Bitcoin employs in its transactions.
The Ethereum scripting language is very powerful. Every node on the Ethereum network understands this scripting language, executes it and can verify it to be valid or invalid. This creates in fact a global computer able to validate, asses, and execute the content of an Ethereum script coding and describing a smart contract. The Ethereum virtual machine on every node interprets and executes the Ethereum bytecode. Importantly, the Ethereum ‘global computer’ enforces these smart contracts. As Lawrence Lessig titles the first chapter in his 2006 publication Code; “Code is Law”.
Ethereum also establishes a token, ether, which holds value. ether, the token, is not the design goal of Ethereum. The token is used in a different way.
So, how does Ethereum do things differently? What can Ethereum do that is so special? First, Ethereum maintains a blockchain with expanded capabilities. It does not use the same proof of work as Bitcoin to secure its blockchain. Blocks are mined at a much greater frequency (~ every 17 seconds). An address space is also established where contracts (programs) and messages can be sent. The contracts are triggered when a contract address receives either a message or a payment. A contract can receive a message or a payment from another running contract. Contracts execute autonomously according to the rules which have been hard coded. Contracts exist and execute until they self-destruct. When not called they remain dormant. Code sent to an Ethereum account denoted by an address is the mechanism by which smart contracts are created. An Ethereum account holds the smart contract code in non-volatile storage. The contract code can make use of permanent data storage enabled by the blockchain. An account also holds a balance of ether, the native cryptocurrency of Ethereum. The Ethereum account also makes use of a nonce to prevent replay attacks. Within the code, a counter can be implemented to determine the number of times a particular piece of code can be run if so desired.
The Ethereum virtual machine natively understands Ethereum bytecode, however several high level languages have been written specifically to develop smart contracts for upload to the Ethereum blockchain. Solidity and Serpent are high level programming languages. Visual tools have also been developed to make programming Ethereum contracts more accessible.
The turing-completeness of the Ethereum is a potential vulnerability in that the computational resources of the Ethereum ‘global computer’ could deliberately be consumed by a malicious actor in a form of denial of service attack. In a non-malicious way, an arbitrary program could be uploaded to an Ethereum contract that results in an endless loop. Computability theory taught us 80 years ago that it is impossible to predict in advance if an arbitrary computer program and an arbitrary input will result in a solution (correct or incorrect) versus an insolvable perpetual loop that never exits,.
This brings us to ether; Ethereum’s native currency. The economic characteristics of ether differ from bitcoin in important ways. It is also a store of value, however ether is/was used in two very important ways. (1) ether was used to crowdfund the development of Ethereum. Pre-mined ether was sold not via Kickstarter or for national currencies, but interestingly directly for bitcoin. (2) ether is used to mitigate the risks associated with the implementation of a turing-complete scripting language. Each contract must be funded with ether (gas) to pay for execution. This imposes a variable cost on each computational step in a given contract resisting spam and denial of service attacks while causing Ethereum programs that have no solution to halt as they exhaust the ether balance in their account.
Clearly ether is a store of value, however it is also critical to the proper functioning of the protocol.
Ethereum has been very intentionally designed as a platform for the implementation of smart contracts. Generally, in the real world, agreements can be unclear while enforcement is not easy. Ethereum brings to these challenges contracts that are immutable and that can not be defaulted on.
Unbreakable contracts is a powerful concept. Even more enabling is the fact that Ethereum could make this accessible in a censorship resistant form to everyone worldwide at very low cost with near immediate execution with no middle man.
The basis of the economy that we are the beneficiaries of and into which we relinquish the fruits of our efforts is the law and the agreements or contracts which they define. Where law is weak, Ethereum could bring order, predictability, and non-prejudicial enforcement. Where law is strong, Ethereum could bring immediate execution, low cost, and competition to the middlemen who drain resources away from the common good and demand trust. All of the potential benefits are likely to be felt unevenly, but none the less globally.
As contracts and agreements are a fundamental component of an economy that meet the needs of its participants, Ethereum has the potential to have a democratising and important impact. There are so many potential applications where robust contracts are central to their proper functioning. Within Ethereum, contracts can be written for a variety of common and complex financial contracts and transactions such as hedging, exchange, futures, options. As most organizations make decisions by voting, control funds and are governed by agreements, both corporations and nonprofits could be formed with smart contracts as DAPPs. As contracts may be autonomous, and may interact autonomously with one another, there are endless possibilities. It goes without saying that smart contracts joined with internet of things (IOT) devices should go a long way to automating this world and should allow for microservice providers to receive micropayments according to very specific and predictable agreements. Having said this, nothing prevents macroservice providers (utilities) from receiving macropayments in the same manner. Another opportunity is the ability to bring many financial contracts that only occur between financial institutions and which require large transaction sizes and fees to individual peers without middle men. In theory, One could enter into a currency futures contract the day one makes travel arrangements for travel to a foreign country at an arbitrary time in the future. Such an arbitrary contract available to a common person would eliminate exchange risk. Personally, I suffered an 18% decline in exchange rates within months after arriving in a foreign country where I attended university for 4 years. I would have bought that kind of insurance had it been available. The wide range of transaction sizes and low cost of transactions based on smart contracts is incredibly democratising. Individuals may be able to hedge against future risks; something that was mostly reserved for institutions.
Ethereum brings together digital currency concepts and smart contracts. This marriage offers opportunities for contracts that better serve the individual parties, provide for immediate value transfer, offer lower cost payments, enhance individual privacy and autonomy, and encourages increased social, political & economic justice.
– closer to the original cypherpunk vision
For the power of Smart contracts to be realized, a number of parallel developments must occur to overcome a handful of challenges. Scalability and privacy are challenges that Ethereum shares with Bitcoin and other public ledger, proof of work based currency protocols. We should expect that solutions to these problems which are avidly being sought will cross pollinate across crypto technologies and that Ethereum will also benefit.
There are challenges specific to a smart contract platform however. In no specific order they are (1) the immutability of smart contracts (2) legislative accommodation of current law to allow for courts and law enforcement agencies to defer to the smart contract for validity, enforcement and dispute resolution (3) finally, since the output of smart contract depends on certain events, measurements, or values that are unknown when the contract is first established, a mechanism of informing the blockchain is required.
First, once uploaded to the blockchain, contracts are immutable. In the real world contracts are often continued and amended rather than invalidated or voided when appropriate. The fact that the Ethereum scripting language is turing-complete and is able to determine its own longevity and trigger its own death does mitigate this to a certain degree. Equally important is the fact that many references to other contracts, addresses, oracles can be coded as variables rather than hardcoded. This does impart quite a bit of flexibility to programs that are immutable. The logic contained in the program needs to be correct. Nothing can correct bad logic, but well written contracts with prudent use of variables will allow flexibility.
Secondly, Ethereum will work very easily with digital goods and digital assets. Bridges will have to be built from our current legal system to the Ethereum system. Specifically, we will need a method for the output of a smart contract to be enforced over a real goods or assets. For example, if the land title registry were still maintained on paper, but a contract for purchase of a plot of land were executed over the Ethereum platform. Written law would have to exist accepting the Ethereum contract as valid and in effect requiring the transfer of the title from the seller to the buyer. This gives the smart contract a mechanism to affect the real world.
Finally, the real world will need to affect Ethereum smart contracts. We need a mechanism to deliver facts about the real world to Ethereum smart contracts. That information could be for example, (a) successful transfer of the a land title from seller to buyer that a smart contract could become aware of (b) the temperature at the Rathaus in Tuebingen for the purposes of insurance, or other IOT applications (c) the current exchange rate between two currencies for the purpose of a financial futures or options contract implemented on the block chain or (d) the passing away of a person for the purpose of executing a will.
How will these important events and time-sensitive facts be reported to the Ethereum blockchain in a way accessible to Ethereum smart contracts?
I imagine that is partly a role for (a) IOT devices which can make physical measurements of the environment (b) Governments which can if they wish report on births, deaths, candidates for election, as well as the data that they collect and/or compute such as inflation numbers, trade numbers, crop/harvest numbers (c) News agencies could report on unexpected events such as accidents (d) meteorological services could report on weather events and conditions and (e) as a catch all, real world people who today function as notaries, could provide a feed to Ethereum for arbitrary facts and events.
What I am describing are termed oracles. Oracles bridge the gap between the real world and the world accessible to Ethereum smart contracts. They feed information about events, measurements, and value (exchange rates/prices) to the blockchain. A smart contract can be written to seek information from a defined place meaning that only the oracles which are agreed to at the formation of the smart contract would be monitored for changes in state that would have an impact on the output of the smart contract.
We have covered quite a bit. Ethereum represents another step in a continuum in the quest for efficient systems that permit us to interact with one another individually or at the institutional level. We began with dreams of systems that improve our collective wellbeing. We are now on the verge of a system that can make the majority of our most basic economic interactions fast, predictable and fair at low cost without the need for trust (middlemen). The basis of these interactions whether written or verbal, codified in law or not is the basic agreement or contract. This is what Ethereum aims to revolutionise.