Ethereum for Newcomers
Fundamentally, currencies allow us to transfer value from one entity to another. Currencies are highly liquid and are readily and universally capable of being exchanged for goods or services. Bartering is another means of transferring value (e.g. exchanging ten sheep for one cow, or exchanging an Android for an iPhone with someone from Craigslist). Bartering is not as universal and not as liquid. You may have to wait a long period for the value transfer to complete, you may have to put in more effort to ensure the transaction goes smoothly and you may need to trust the person you’re dealing with to a high degree.
Currencies are very useful in that they are portable, universal and offer a secure method to perform transactions. Coins (and more recently, notes), for example, allow people to buy and sell high value goods and services with ease. Coins and notes can be easily carried and are universally recognized. Due to the complexity in counterfeiting, they are typically secure for most use-cases. In addition, security of the currency is reinforced with severe penalties for counterfeiters and those who tamper with monetary systems. Without currency, we’d be back to bartering and haggling and would have to place great levels of trust in the person we’re buying from or selling to.
Electronic money (e.g., bank transfers, credit card transactions, etc.) was a recent evolutionary step forward from the coin and note era. The era of electronic money coincides with advancements in telecommunications. We can now buy and sell goods and services remotely without any physical value transfer required in order for the transaction to occur. Electronic money transactions are secure (to a high degree) and people can buy and sell across all parts of the world from the comfort of their living room. Regulations and international agreements ensure that banks are largely trustworthy. Merchants must meet a high standard and maintain their reputations to be allowed to trade on electronic value transfer platforms such as VISA or MasterCard. While it can be expensive to ensure good behavior and maintain public perception of the money network’s trustworthiness, the system works very well and a huge number of electronic monetary transactions are processed every day.
Motivation for Something Better
Blockchain technology looks increasingly like it has the potential to be the next major phase in the advancement of money. But why do we need it when we’re already doing just fine? Before answering this, we must first look at the limitations of current monetary systems used today:
- National governments may print additional notes in order to deal with a myriad of economic situations and hardships;
- Maintaining a currency with coins, notes and electronic value transfer systems is surprisingly expensive and bureaucratic;
- Global value exchange can be slow, relying on international cooperation, and has the potential for political interference;
- Current currency systems are prone to counterfeiting, particularly as technology advances and the economics of forging becomes feasible.
There are many other limitations not mentioned here. But if we take the quick list of reasons above as motivation to do things better, we might find ourselves thinking like the elusive Satoshi Nakamoto in October 2008 when he/she/they (nobody’s quite sure) published a paper describing the digital currency, Bitcoin. The thought experiment of a “cryptocurrency” was implemented shortly thereafter and the Bitcoin network launched in January 2009. Bitcoin is now the most valuable blockchain network in the world and is worth about $10 billion. Bitcoin was the first manifestation of the idea of a distributed cryptocurrency and elegantly demonstrated how many of the limitations listed above can be addressed in practice.
Why a Distributed Network?
The idea of a distributed network is fundamental to this new way of doing currency. Right now if a bank customer (Ted) in Buenos Aires wants to send money to his best friend (Jim) in Tokyo, he typically uses his bank (or wire transferring company) to make a transfer. A $50 fee for the transfer of $1,000 and a transfer time of 3 or 4 days would not be unusual. Ted pays $1,050 to the bank, which relays the appropriate amount for international transfer. The banking system in Japan handles the transfer from Argentina, Jim’s local bank receives the amount and Jim sees Japanese Yen (minus a conversion fee, of course) sitting in his bank account some days later. This relay process is slow, bureaucratic and each link in the chain is continually cross-checking that the entity they’re receiving money from and sending money to is liquid and they won’t be left high and dry in the event of something going wrong; especially in another jurisdiction in which they have limited influence.
Bitcoin is different in that it doesn’t rely on centralized network bank branches, corporate banks, international bank networks, etc. The Bitcoin network is a globally distributed network of computers (there are typically about 5,000 such nodes, or computers, online at any given time), each of which stores a long list of who owns what, the transactions that have taken place and the transactions that need to be processed. This distributed transaction list is called the “blockchain.” If Ted wants to send two of his Bitcoins to his friend Jim in Tokyo, he simply opens up his laptop, starts his Bitcoin wallet software, connects to the live Bitcoin network (anyone can connect to the Bitcoin network – no special permissions are required), unlocks his account and sends the required amount plus a small commission – 20 cents should do it. The small commission goes to pay those who keep nodes online 24/7 and verify the transactions (this process is called “mining,” the details of which are beyond the scope of this article). About 10 minutes later, two Bitcoins appear in Jim’s account and the value exchange is complete. There was no bureaucracy and no paranoid banks scared that the other bank could go out of business or that some other issue could arise on the network. The distributed nature of the Bitcoin network means that there is no single point of failure – if one or many nodes go offline for whatever reason (e.g., a national government makes operating a Bitcoin node illegal), the network continues to function. This is unlike Ted’s bank, where if his local branch was closed due to a hurricane or a riot, there’s nothing he can do until it reopens again.
Bitcoin users enjoy the following features:
- New Bitcoins cannot be printed by populist governments who seek to balance their books without having to make difficult decisions;
- Bitcoins can be exchanged between accounts for nearly zero cost;
- Bitcoin transactions complete in approximately 10 minutes;
- Bitcoin transactions are immutable (i.e., cannot be reversed) by authorities (legitimate or otherwise);
- Bitcoin is (largely) free from political interference;
- The Bitcoin network is distributed and has no single point of failure;
- Bitcoin transcends nation states and national borders;
- Bitcoin is very secure and is almost impossible to forge (although new attack forms do occur, coin and note users don’t have to deal with them).
Bitcoin has been a huge success – there are about 5,000 nodes online globally at any given time and the network performs about 250,000 transactions per day. But because of its unique properties, the Bitcoin network is also a criminal’s dream and a large proportion of the network is used for the buying and selling of drugs, weapons and other nefarious things.
What’s wrong with Bitcoin? Why do we need Ethereum?
Bitcoin was first launched in 2009 and was the first practical implementation of a cryptocurrency. Bitcoin was a huge achievement, but there are fundamental limitations in its architecture which makes it unfit for use in the global economy of tomorrow. Its major limitations include poor scalability, slow confirmation times, aging architecture, the toxic stigmas plaguing the brand and the absence of smart contract functionality. Ethereum has enjoyed the benefit of learning from Bitcoin’s limitations and mistakes, and is widely regarded as the next major step forward in the evolution of blockchain technology. Ethereum has taken the core of Bitcoin’s value exchange and features, and improved upon them. Value exchange on Ethereum is far quicker with a 15 second processing time instead of 10 minutes; it boasts lower cost for processing of transactions as the network moves toward Proof of Stake (the network soon will no longer require an expensive network of miners); and it is more user friendly. But the key feature of Ethereum is its programmability. This advancement is a fundamental achievement, so much so that Ethereum has set a new standard which splits cryptocurrencies into two broad classes: those that are programmable such as Ethereum, R3, and Hyperledger; and those that are not programmable and only facilitate value exchange such as Bitcoin and Ripple. Ethereum doesn’t just store a ledger of transactions on the blockchain to facilitate value exchange; it also runs programs on the blockchain. Application developers can deploy applications, known as “smart contracts”, on the Ethereum network that are self-executing and immutable. The availability of a decentralized smart contract platform has opened up a whole new world of possibilities for developers and entrepreneurs and right now there are thousands of new businesses being developed which have this powerful new technology at their core. Smart contracts and the ability to securely store value on the network, to be released at a future point when a certain pre-agreed set of conditions occur, has the potential to eliminate huge amounts of bureaucracy and revolutionize a large number of business processes. Industry sectors that can benefit greatly from smart contract technology include: escrow services, money transmission services, the gambling industry, the insurance sector, fintech, logistics and scientific development. Smart contract technology is not limited to the world of business, finance and technology; there’s immense potential for all areas of everyday life.
Governance and Regulation
One of the key concerns for blockchain and smart contract technology is the tension between nation state currency systems of old and the globally distributed blockchain networks of the future. Ethereum has little or no recognition of the “nation state” built in to its protocol – it’s fundamentally a transnational protocol. This is not to say that the Swiss-based Ethereum Foundation doesn’t recognize nation states. Because blockchain networks make it so easy to exchange value and smart contract technology can be greatly advantageous, there’s a danger that people will circumvent current banking, payment facilitators and national currencies all together in favor of blockchain technology and digital currencies such as Ethereum. It’s happening already, but to what extent is unclear. Important regulatory considerations are expected to play out over the next few years and there’s still a lot of uncertainty in this regard. There are also many organizations afraid to get too involved or run anything of importance on Ethereum for fear of running afoul of current laws and regulatory frameworks. Arguably this fear is inhibiting development and a regulatory roadmap for the future is needed now more than ever. We are currently seeing government institutions around the world looking at blockchain technology in effort of reaching consensus or a global standard in regulations.
Guide to Ethereum for New Users
To newcomers and outsiders, the vernacular of the Ethereum community can be daunting. Ethereum folks typically interact with each other online and the language used can often result in newcomers feeling confused or even alienated. The best way to get started is to get involved--ask a question that you’re unsure of or ask about a topic that you’re interested in. There are many online communities, with the most active discussions taking place on:
- Reddit: /r/Ethereum – entertaining and lively discussions
- Stack Exchange: ethereum.stackexchange.com – technically focused discussions on the excellent stack exchange platform
- GitHub: github.com/ethereum – more in-depth and formal technical discussions
- Gitter: gitter.im/orgs/ethereum/rooms – real-time, instant discussions on varying topics
For those who prefer to meet face-to-face, there’s a strong global network of Ethereum meetup groups on meetup.com. The Ethereum meetup network is extremely beneficial because it allows users and developers an actual opportunity to have real world interactions, discussions and potentially collaborate with or learn from one another. Most importantly, the meetup network is public and open – others get to see and hear about Ethereum and anyone can join. The meetup network has been important in seeding Ethereum adoption and is still an irreplaceable outreach and engagement channel for the Ethereum project.
One of Ethereum’s greatest strengths is its community – a community that welcomes new people and new ideas, works collectively towards solutions and actively guards against becoming closed-minded or allowing groupthink to bed in. Other blockchain communities have a reputation for being hostile to newcomers, particularly to those who aren’t technically adept or fully up-to-speed on the latest developments. Ethereum has learned from this poisonous mindset and seen the damage it can do. The healthy, open-minded and constructive communities surrounding Ethereum are stronger than ever. Since Ethereum’s launch in July 2015, its communities have evolved to become one of the key attractions of Ethereum as a value transfer and distributed applications platform.
If all you want to do is transfer Ethereum tokens to your friends and family or participate in some smart contracts, then the official “mist” browser (github.com/ethereum/mist) is for you. Simply download and install it on your Windows, Mac or Linux machine and the easy-to-use, graphical user interface will guide you.
If you’re interested in exploring the capabilities of the Ethereum network with a bit more detail, the quickest way to get started is to dive in and download a client of your choice. geth (github.com/ethereum/go-ethereum) is a popular choice for beginners and runs on Windows, Mac and Linux. Once you have your client running, are connected to the Ethereum network and are in-sync with the network, you can do many things, such as send Ethereum to and from your account(s), participate in smart contracts, and/or explore the mining capabilities of your computer.
Ethereum participants traditionally come from Linux/internet/computer science/software backgrounds and can sometimes assume a base level of familiarity resulting in the unintended effect of alienating new users. But this stereotypical Ethereum participant profile is changing – as the community expands, so too are the diversity levels. Compared to other blockchain communities, Ethereum leads in terms of accessibility and the promotion of diversity. Ethereum prides itself in its authenticity and actively promotes the on-boarding of new users. Ethereum’s value is in its network and the authentic global network of people is at the core of this value. Here we provide a brief explanation for commonly used terms that some new users may find difficult to grasp:
Eth is the official Ethereum client program written in C++ (a general-purpose programming language). When you run this program on your computer (it runs on Linux, Windows and Mac) and connect to the Ethereum network, your computer becomes part of the Ethereum network. See: github.com/ethereum/cpp-ethereum
Geth has the same functionality as eth, but is written in the Golang language. One of the reasons for providing a client with the same functionality in multiple languages is for network diversity – if there’s a fundamental problem with one language or a bug or an implementation error, this error should hopefully be isolated to that particular language variant only. Maintaining multiple language releases is also a good way to ensure that developers with limited language know-how don’t feel excluded and can on-board much more easily. See: github.com/ethereum/go-ethereum
Neth has the same functionality as eth, but is written in Node.js. See: github.com/ethereum/node-ethereum
Parity is a “lightweight” implementation of the Ethereum protocol and is a gift to the Ethereum community from ethcore.io. parity is space efficient, CPU efficient and memory efficient. It’s an important project because it allows cheap and power constrained machines (such as mobile phones or IoT devices) to connect to the Ethereum network. parity provides even more diversity to the network and was extremely useful during the recent network attacks of September 2016. See: ethcore.io/parity.html
A node is a computer that’s running any flavour of the Ethereum client software (geth, eth, neth, parity, etc.) and is connected to the main Ethereum network.
A token is used to refer to a currency unit in a generic way. There are approximately 85 million Ethereum tokens in circulation today and new tokens are continually introduced at a modest, well-defined rate of inflation.
End users who want to interact with a smart contract must pay a small amount of gas to run the contract. The more complex the contract, the more gas you must pay. The gas payment is used to incentivize miners to keep their nodes online and maintain the network. Ether is the gas or “crypto-fuel” that powers Ethereum.
A mining node does everything a node does, but also provides proof-of-work. Mining nodes are typically high power machines that perform transaction verification and consume a lot of electricity. Those who run mining nodes (anyone can run a node) are rewarded for their efforts with gas payments (the small commission mentioned earlier).
A smart contract is a piece of software designed to run on a programmable blockchain such as Ethereum. Smart contracts are typically written to facilitate value transfer as a function of some future conditions. Smart contracts typically specify the contract logic only and are not used to perform general purpose or high intensity calculations.
Ethereum Virtual Machine (EVM)
The Ethereum Virtual Machine (EVM) refers to part of the protocol that handles Ethereum smart contracts. Every Ethereum node runs the EVM and executes the same smart contract machine instructions in the EVM.
A not so widely used programming language used to write smart contracts.
A not so widely used programming language used to write smart contracts.
Short for “distributed application” and technically, pronouced dee-app. A Dapp is a smart contract that runs on the Ethereum network.
Mist is a graphical browser for distributed applications. It’s inspired by browsers such as the Microsoft Windows Apps Store and the Apple App Store, and is a place where users can find and explore Dapps. This is a very important project for Ethereum and is under active development. See: github.com/ethereum/mist
A node can be considered “in-sync” if it has downloaded the blockchain history (or a summary of it), has confirmed with other nodes that the information it has downloaded is correct, is online and connected to the network, and is receiving updated blocks from the network with the rest of the Ethereum network. See: ethstats.net
whisper is a communication protocol which enables Dapps to communicate with each other. See: github.com/ethereum/wiki/wiki/Whisper
Internal names used by the Ethereum core development team to refer to a major milestone release of the Ethereum protocol. It’s easier for humans to refer to major events using words rather than version codes, which can be easily mixed up. Ethereum has 4 stages of which were given the following codenames:
The initial release in July 2015. Developer-focused.
Homestead was released in February 2016 and officially brought Ethereum out of “beta” mode. The first official wallet was released.
The metropolis release will feature the availability of the Mist browser. In a brief conversation ETHNews had with Vitalik Buterin at Money 20/20 in October 2016, Vitalik estimated that Metropolis would debut in early 2017.
Serenity will be the final release of Ethereum. It will feature the hugely anticipated Proof-of-Stake (PoS) algorithm. It’s a bold move to be the first to use proof-of-stake at this scale and there’s not an insignificant amount of risk with this release. It’s extremely ambitious to switch everyone over to PoS when the transition is done it will be a giant leap forward, not just for Ethereum, but for blockchain technology as a whole.