At Sibos 2014, in Boston, I found myself at the Innotribe forum watching a presentation from Vitalik Buterin, one of the founders of the Ethereum blockchain who had the original idea and vision. He was then only 20 years old, and the audience was spellbound. His is the only business presentation I have ever seen displaying computer code – and only computer code, no Powerpoint. I recognised several senior CIOs in the audience from major banks, each nodding their heads sagely, and in admiration. But for me, instead of nodding, I was scratching my head – I had no idea what he was talking about and wondered how on earth anyone there did.
Fast forward 18 months, Ethereum has launched (Frontier last year and Homestead more recently) and, by all accounts, is going great. Every self-respecting innovation lab is running and experimenting with it, including IBM, Microsoft, JP Morgan and the R3 consortium. It is attracting attention from the press. As of April 16, 2016, the price of Ethereum’s cryptocurrency, ether, has increased more than 28x in the last nine months, with a capitalisation of $660 million—second only to Bitcoin ($6.5 billion).
Since Boston, I have had time to understand Ethereum a little better. In this blog, I explain what it is, how it compares to Bitcoin and how it may be used in the future in banking and elsewhere.
A “World Computer”
Ethereum is an open-source, digital computer that runs decentralised on the internet to execute peer-to-peer contracts. It has been described simply as “a world computer you can’t shut down.” It is a distributed consensus ledger, structured as a blockchain, with a protocol that contains the Ethereum Virtual Machine, which drives the computation and integrity of peer-to-peer contracts. Ethereum has what is known in computer science as “Turing-completeness” with the ability to carry out all the logical steps and functions found in a fully functioning computer.
Peer-to-peer contracts are simply computer programs that interact with each other. They are activated to run when they receive a transaction, resulting in a change in state, an output or, possibly, new transactions to send to another contract. For example, a computer program on a node of the Ethereum network could automatically run a daily auction to buy broadband capacity off competing broadband providers, whose nodes create and return bids when requested by the auction program. These contracts only run if they have sufficient fuel, known as ether, to execute the code. The Ethereum protocol dictates how much ether is needed (the more complex the program/transaction, the more costly it is to run), and stops a program running if it has insufficient ether to do so. The intention behind ether is to prevent spam and Distributed Denial of Service (DDOS) attacks, as well as to prevent poor software code from executing, such as infinite loops.
Comparing Ethereum to Bitcoin
Like Bitcoin, Ethereum is a distributed consensus ledger structured as a blockchain. It has its own token or cryptocurrency (ether) created by mining, with its own protocol (rules), running on internet nodes using a proof-of-work consensus mechanism (although future versions of Ethereum may move to a proof-of-stake mechanism called Casper).
Many blockchains, or so-called alt-coins, are based on copies, or forks, of the Bitcoin core software, usually with a few changes to set different rules around mining, cryptocurrency creation and so forth. However, Ethereum is unusual in that its founders have written their own code from scratch (there are other exceptions, notably Ripple).
Whereas Bitcoin is designed to be an internet payments system, Ethereum is designed to be an internet computer. Both enable transactions between addresses within their networks, but additionally, Ethereum enables software code, or contracts, in its network to run autonomously to send and receive transactions to and from each other. This is the key difference between Bitcoin and Ethereum.
Bitcoin does allow software code, or script, in its network to control transactions; specifically, instructions recorded with each transaction to describe how bitcoins can be accessed in order for them to be spent, for example, requiring two private keys to sign a transaction. However, Bitcoin script is deliberately not Turing-complete to prevent running poor or malicious code; for example, it does not allow loops (as stated earlier, Ethereum addresses the issue of rogue code through charging fees, in ether, for executing contracts and transactions).
Both Bitcoin and Ethereum have tokens, bitcoins and ethers respectively. However, bitcoins are designed specifically to be a cryptocurrency to enable payments between addresses, whereas ethers are designed to be the fuel required to run peer-to-peer contracts. With Bitcoin, there is an industry developing to provide wallets and applications for peer-to-peer payments, the “internet of money.” Although it is possible to get an Ethereum wallet and exchange ethers across the Ethereum network, there seems to be no intention in Ethereum to develop it as a payments network, nor to encourage other developers to do so. Payments with ethers are a possible use of the network, but, as a “World computer”, Ethereum should be capable of much, much more.
Both bitcoins and ethers are held in blocks, and both are created when blocks are created as rewards for miners, but whereas Bitcoin blocks are created in about 10 minutes, Ethereum blocks are created every 12 seconds. The rate of creation of bitcoins halves every four years, limiting the eventual supply of bitcoins created to 21 million bitcoins. Ethers are created at a fixed rate forever, which I calculate to be 13 million ethers per year (five ethers every 12 seconds, each time a block is created). Over time, this means that supply stabilises as the percentage growth rate of the total ethers available decreases, tending towards zero.
Uses for Ethereum
So, how might banks best use Ethereum to improve business, and will Ethereum supersede Bitcoin?
To answer the second question first, I believe it is clear that Ethereum will not supersede Bitcoin (or Ripple or any other payment system), as Bitcoin is optimised for payments, while Ethereum is optimised to be a distributed computer. Using Ethereum for payments would be the equivalent of using a sledgehammer to crack a walnut or using a supercomputer to run the SWIFT network. Instead, it is more likely that Ethereum will complement Bitcoin (and other cryptocurrencies for payments). For example, Ethereum contracts might be used to initiate and control bitcoin or other “internet of money” transactions.
To answer the first question, the possibilities for using Ethereum are endless, limited only by imagination and entrepreneurialism. Whole new industries and business models may develop. Vitalik Buterin, the founder of Ethereum, indicates in a Bitcoin Magazine article role for Ethereum in financial services in areas such as contracts-for-difference, escrow and savings. Given this, I believe we are likely to see Ethereum make traction quickly in financial services, in particular in capital markets, and also potentially in areas such as trade finance.
In Buterin’s own words, financial applications “only scratch the surface of what Ethereum and cryptographic protocols on top of Ethereum, can do.” In particular, Ethereum should work well driving applications in the Internet of Things (IoT) and the control of transactions between devices and machines. Examples are already appearing, such a New York resident’s scheme to control and bill the supply of electricity from solar panels on homeowners’ roofs without a central authority controlling the process. My colleagues in Accenture Digital forecast 212 billion sensors, 50 billion devices and 2.5 billion connections to 4G networks by 2020 in the IoT, illustrating the huge potential in this domain for Ethereum.
However, there are concerns around peer-to-peer contracts, or smart contracts as they are usually called. One is how a legal contract can be enforceable if it is written in software. I believe this to be largely irrelevant as there have always been plenty of commercial systems that run software which enforce contractual terms and conditions, for example credit limits on a credit card.
Another concern is that smart contracts are computationally inefficient and potentially risky. Identical code running on multiple nodes in the network may cause mass duplication of effort, and may be problematic if for any reason (such as time delay) it executes differently on different nodes.
These concerns should be addressable and I believe the future is bright for Ethereum. It is clear that Ethereum is very different from Bitcoin (and from most of the ~650 alt-coins). Its smart-contract capability and Turing-completeness make it versatile as a general, multi-purpose distributed computer. While Bitcoin’s protocol can be built upon to develop “internet-of-money” applications, Ethereum’s protocol can be built upon to develop IoT or even ”internet of anything” applications. As shown on the Ethereum Forum, there are already a large and growing number of projects developing with Ethereum. Smart contracts could well be the key that unlocks the business potential of distributed consensus ledgers/blockchains beyond payments, and seem to be the focus of industry initiatives such as R3 and Hyperledger. It is early days, but Ethereum is in a strong position. Its founders have created momentum rapidly with potential for major success.
I follow Vitalik Buterin on Twitter. As with his Sibos 2014 presentation, much of what he says is cryptic and goes over my head. “If people evolved from monkeys, why are there still monkeys?” is an example of a recent tweet. He clearly has a sharp, questioning mind and is a visionary and a problem solver.
I am sure we will hear a lot more about Vitalik Buterin, his co-founders and Ethereum over the coming months and years.