Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
This is not maintained any more here, it is maintained at [https://github.com/Ethereum-community/Ethereum-introduction/wiki/Ethereum-introduction], for a more community-friendly look.
Note that due to the lightning-fast pace of development in the Ethereum space with core development and dapps continually being launched, certain parts of this article may be outdated. You can help by keeping it up to date!
Table of Contents
- About Ethereum
- How do you buy and sell Ether, the currency of Ethereum?
- Concluding remarks
- Further reading
Ethereum is a decentralized blockchain platform for "building unstoppable applications", while Ether is the cryptocurrency used on this platform. Ethereum has been described in several ways, such as (the third and third resources are good introductions, while the second is a good technological introduction, although all are outdated. Another introduction is available here, but again, it is outdated. Despite being outdated, Ethereum has maintained backwards compatibility thus far up till January 1 2018, so the info is still relevant.):
- "A Next-Generation Smart Contract and Decentralized Application Platform"—Ethereum White Paper
- "A secure decentralised generalised transaction ledger" and a generalised "transactional singleton machine with shared-state". Also described as crypto-law—Ethereum Yellow Paper
- an open source "programmable blockchain"—Ethdocs
Decentralized technology uses peer-to-peer computer networks (there's a picture below), and are not subject to the whims of a central authority such as a government or server administrator (like Google or Facebook) which can help to achieve better decision making for public good. Blockchain means that the currency is built and secured by adding and verifying blocks of transactions to blocks made previously, thus forming a "chain". Blocks added to the chain become harder and harder to crack over time, as they are verified by more nodes in the blockchain peer-to-peer network. Blockchain technology has been referred to as the Web 3.0. The world wide web (retroactively the Web 1.0) consisted of websites publishing content and users passively reading/viewing it. The Web 2.0 used user interaction, such as forums (with upvoting and commenting), reaction buttons (e.g. the Facebook reactions: likes 👍, love ❤️ , laughter 😆, wow 😲, sad 😢, angry 😠), sharing (republishing), however these interactions have no direct economic effect on the host website; users do not share in the value generated from the website. The Web 3.0 is starting to be defined as the movement away from centralisation of computation power in servers which provide services to clients (known as the client-server network model) to peer-to-peer networks and blockchains, and from centralisation of authority and sovereignty from nation-states and corporations to the networked individual.
Cryptocurrency refers to a a digital currency that secures transactions with cryptographic code, which is solved through hardware computational power (known as mining or proof of work) or other less energy-intensive ways such as proof-of-stake. (There are more details on that below.)
Zero knowledge proofs like ZK SNARKs can also be used to make cryptocurrency transactions more private 🕵️ or secret 🤐 (which is different to being secure 🔒), thus negating the need to run applications on a permissioned private network like the Ethereum Enterprise Alliance. Ethereum uses precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128, for pairing checks, which permit zk-SNARKs, also see here, as implemented in the Byzantium hard fork. There is also the Zerocoin protocol which is demonstrated by Zcoin (which plans to integrate Ethereum).
The platform part of Ethereum makes it much more useful than just a cryptocurrency. With it, you can create any decentralized application (known as a dapp, which works over a peer-to- peer network rather than a centralized client-server network 💻🕸️), so the functionality is only limited by what programs could potentially do and not do, and by consequence, what programmers develop, 👨💻 but it can theoretically be used for any economic or governance activity.
List of dapps
For a list of dapps, visit here.
However, there are several issues that will need to be resolved to help Ethereum be used to its full potential, which are described below.
As of the 1st of December 2017, the market capitalisation of Ethereum is $32.6 billion USD (refer to the link for the latest figure), and it has been in circulation possibly since 30 July 2015, with the first transaction using Ethereum on 8 August 2015. Compare this with the next largest and the current largest cryptocurrency, Bitcoin, with a market cap of $41.0 b. US, where it has been in circulation since January 2009. Technically, Ethereum has had a much faster growth rate, while more importantly for long term investment (I do not encourage speculation as that only causes volatility as has been seen) the fundamentals are much better than Bitcoin. While it is true that Bitcoin has more of a market and currency, e.g. in terms of more entities that will accept it as a form of payment, the creator of this wiki expects that time will change that (indeed the market cap of Ethereum recently surpassed half that of Bitcoin, around May 2017). Also, the number of transactions of Ethereum surpassed that of several cryptocurrencies combined on 22 Nov 2017. However, note this retort.
There also several issues with Ethereum, such as not being scalable enough, not being full decentralized, energy consumption with mining, if quantum computing advances it would be insecure (but this is being fixed). With its large storage database (I have to provide a Reddit link as a source as the original link doesn't have the graph any more, while Wayback doesn't render it either.), mining and architecture requiring to run a full node to mine or validate transactions, it is not decentralized enough. More (outdated but still applicable) info on that is e.g. here, as well as here.
Ethereum will need to scale to process far more transactions per second (to become a "world computer") than Visa, Mastercard and American Express combined (which process on the order of tens of thousands of transactions per second [in the link, CTRL+F 24,000]), while Ethereum 1.0, the current version as of December 30 2017, processed a record of 1103523 transactions on Friday, December 22, 2017, or 12.77 transactions per second.
Note that Ripple claims that it's Consensus Ledger can process a thousand transactions per second, while it could process more with payment channels. "Although payment channels achieve practically infinite scalability by decoupling payment from settlement, they do so without incurring the risk typically associated with delayed settlement." Further note that Ripple achieves this by trading off on decentralization, through a distributed network of validators or distributed servers, while it has been described as a federation protocol.
There are even more scalable blockchains that use a delegated proof of stake (DPOS) consensus protocol, such as Bitshares and Steem. Bitshares can apparently process 100,000 TPS.
More generally, in order to have faster payments or higher transaction throughput, you need to reduce the number of validators (miners are a kind of validator that perform energy intensive computational work, finding a random nonce or sequence number in a large set of numbers) in the consensus protocol, or reduce the other (i.e. for faster payments you can reduce transaction throughput or reduce validators, while for higher transaction throughput you can reduce validators or have payments take longer to finalize). This is a trade-off triangle. You could potentially have one blockchain with heterogeneous sharding, with different shards with a different degree of balance between these properties. Ethereum is working on sharding, which includes using stateless clients (while more on that is here).
If you increase scalability in an instant via some blockchain or shard, while keeping latency constant (or reducing it) you need to reduce decentralization, which reduces the number of points of attack needed to compromise the whole network, i.e. reducing decentralization reduces security.
Proof of work / proof of stake / other proving methods
The mining process to crack cryptographic code (specifically to discover the nonce, a very large number, for each block by trial and error) requires a lot of computation power. Nevertheless, I'm guessing that the computation power should be less when you consider the energy consumption of incumbent financial systems. (Think of extracting and processing resources to make coins and notes, minting and printing, energy consumption of banks and tiers of related energy consumption in the life cycle of fiat money.) Still, developers of some cryptocurrencies such as Ethereum are transitioning to (as is the case for Ethereum), or already using, a different way of maintaining and creating blocks, known as proof of stake. For more information, you can see this Proof of Stake Wikipedia article here (although note the header warning about the article potentially not being verifiable or neutral due to relying heavily on sources too closely associated to the subject). The tricky part is in getting proof methods to work better than proof of work, as outlined here in the criticism section of the PoS Wiki.
Public permissionless blockchains vs. private permissioned blockchains
Running on top of the public Ethereum blockchain (with a token) is better than using a private blockchain, or worse, not running on a blockchain at all (thus requiring a trusted third party which increases transaction costs). Running on the public Ethereum blockchain is more secure than a private chain, since the public chain is much longer and has many nodes mining and verifying it. A private chain is more prone to different kinds of attacks, particularly a 51% attack. Having open-source code is important to verify the security and performance of the software, as well as being able to innovate, e.g. with enhancements.
No technological artefacts can be a panacea
For the continual improvement of humanity, there needs to be balance in life between things that benefit us materially and things that benefit us on higher levels, particularly spiritually. There is a risk that technology can make some people better off, and others worse off. So there needs to be consideration for how technology can be implemented to maximise utility. One consideration of that is here.
How do you buy and sell Ether, the currency of Ethereum?
Summary: compare deals with buying and sell through different exchanges such as P2P ones with an arbitrator like LocalEthereum, or with centralized exchanges (which vary with your local jurisdiction, e.g. in Australia there is BTCmarkets and in the US plus worldwide there is Coinbase, which also allows you to spend cryptocurrencies e.g. with a debit card. For more see the table below, here).
The simplest way may be to use LocalEthereum, where you don't need to go through KYC processes. The creator of this wiki has found that "I can sell Ether for a better deal than I can find with an exchange, without any trading or withdrawal fees, apart from those associated with different payment methods". I like that it has lower fees compared to exchanges. The maker fee (which is what the party of the trade that puts up the offer) is 0.25% while the taker fee is 0.75%. BTCmarkets has higher fees compared to the maker fee, and higher than the taker fee if the amount is below $3000. I also read about how the platform works, and it seems pretty secure. Additionally, there have been hacks with exchanges like Mt. Gox and Bithumb. That's harder to achieve with localethereum since they can't get access to your funds, they can only settle disputes (if they arise) by sending the funds in the escrow to the buyer or the seller. However, I have been able to find a better deal, at least at certain times, with buying Ether if I buy through BTCmarkets, although that would be slower via BPAY with bank transfer than paying via cash deposit via an ATM or bank."
More information about Ether is here.
Disclaimer from the creator of this wiki: I have put most of my funds in Ether, the currency of Ethereum. Does that shock you? 😲 Yep, it's risky, but I've done due diligence 🔍 with fundamental analysis, and a little bit of sentiment and technical analysis, and I think that the market cap of Ether will continue to grow 🌱🌳 and increase, albeit with some volatility 📈. I consider it a digital currency that is in a pioneering, rapid growth stage of development (fuelled by a lot of genuine uptake of the currency as well as speculation about its future value, if not its current value), not just an asset. I hope my post will outline why investing in Ether is a good idea (and not just investing a small percentage of your cash, unless you are tied up with a mortgage 🏠 or have other monetary or non-monetary ties or circumstances that limit your investable capital).
Based on my research below, if you're in Australia 🇦🇺 (otherwise skip to the next paragraph), I recommend creating an account with BTCmarkets.net, verifying your ID, and using BPAY or PoliPayments to deposit AUD. Note that the rest of the following info in this paragraph is outdated since MEBank used to not support BPAY publicly, but now they do. If your bank doesn't support PoliPayments and you want to use that instead of BPAY, although I can't think of any good reason why you'd want to use PoliPayments over BPAY, then you can set up a bank account with BOQ (or any other bank that supports POLi Payments, doesn't invest in fossil fuels and has no fees for transaction and savings accounts [note that Bendigo doesn't have an Ultimate Everyday account any more]. You can probably ignore the interest rate since it is so marginal compared to other bank's rates and the gains that you are likely to make by holding funds with Ether instead. However, when I did research for interest rates I found that ME Bank savings rates were second only to UBank, which invests in fossil fuels indirectly as it is owned by NAB.
Table of exchanges
If you're not in Australia 🇦🇺, then here's a comparison of exchange rates 💱 for fiat to crypto- and crypto- to crypto- currencies (note that there is still a focus on Australia, but you can click on the links to get more information of the fees):
|Exchange link (may go to a fees page)||Fiat to crypto exchange fee buy/sell spread|
|BTCmarkets||AUD is the only fiat currency. 0.85% trading fee. Funds available to deposit, withdraw, buy and sell are: AUD, ETH, ETC, BTC and LTC. To deposit AUD, you need to verify your account and then use POLi Payments (available banks are here. My bank is ME Bank, which doesn't support POLi Payments. I applied with BOQ because they do support POLi Payments, they don't invest in fossil fuels [like ME Bank] and they have transaction and savings accounts with no fees [like ME Bank].)|
|GDAX||0.25/.3% maker fee low volume, 0% taker fee BTC for USD/EUR/GBP, ETH/LTC for USD/BTC/EUR|
|Coinjar||1.00% AUD/BTC (and only AUD/BTC)|
|Coinbase||In Aus: 3.99% credit/debit card only (no other transaction method accepted). Other fiat and crypto currencies are available.|
|CEX||7% BTC/ETH for USD/EUR/GBP/RUB|
|Luno||ZAR/BTC fee not easy to find|
|okcoin||CNY/USD for BTC/LTC, fee not easy to find|
|Maicoin||TN/BTC Fee not shown, claimed none|
|Crypto to crypto exchange fee / buy/sell spread|
|Poloniex||0.15/.25% BTC/ETH “maker-taker” (presumably the same as buy-sell)|
|gdax.com/fees/||0.25/.3% maker fee low volume, 0% taker fee ETH/LTC for BTC|
|Exodus||~0.4720–.528% BTC/ETH variable. Desktop app. Sometimes currencies are not available for exchange!|
|NVO||Decentralised. ICO 05/27/17 02:00 UTC to 06/27/17 02:00 UTC|
Exchanges are listed in this article, which I've copied and pasted (repetition is OK):
America, US dollars
South Korean Won
More details about what I've tried (not very necessary to know)
I bought BTC in a different way. Step 2 worked for me. I will try step 1 next time I buy more BTC.
I created an account on btcmarkets.net, verified my email address, tried to login, but couldn't. I tried to disable two factor authentication, but it asked for my mobile number, which I didn't enter when I created my account. I tried to reset my password and log in again, but that didn't work. I entered my email address correctly. I sent a message to support to ask for help. I figured out that my password was too long, and have notified btcmarkets.net. After creating a password of 23 characters, I was able to log in. I created another password of 56 characters using Chinese characters, emojis and ASCII characters, and was able to log in. (Incidentally, it is a hassle to do this, so a decentralised, private password generator would be wonderful.)
The following steps are what I have tried so far, in detail.
- Convert AUD to Bitcoin (BTC) via an exchange like Coinjar. I left a review of Coinjar here. Fee: 1%. While this step is tailored for Australia, it can be adapted to any country that has a bitcoin exchange.
- I created a Poloniex account, sent funds from got the Bitcoin deposit address, then sent my BitGo funds to that address. Once the transaction completed, I then used Poloniex Exchange to convert to Eth, with a maker-taker fee of: 0.15/0.25%.
- Create an Ethereum Wallet 👛 like MyEtherWallet. Unfortunately Mist, a program being developed by Ethereum that has a browser and a wallet is still a pre-release, so it may not be very suitable for end users just yet.
- Convert BTC to Ether (ETH) via a cryptocurrency exchange like Shapeshift. Use a precise transaction, make sure the amount is within the min. and max. deposit. Copy and paste the bitcoin address in Coinjar by signing in (if you aren't already) and going to Accounts > Everyday Bitcoin > View address. Put this address as the refundable address. Copy and paste the address from MyEtherWallet. Put this as the destination address. Tick the box to save the destination address for future payments. However, this didn't work.
I have been able to deposit funds into Coinjar (needing to be less than the transaction limits) but have not been able to get Eth funds as of yet. I have also tried to create an account on BitGo, send coins from Coinjar to BitGo, and use Shapeshift with that account and still with MyEtherWallet, however that didn't work.
I will not discuss trading (which I mean buying with the intention to sell most or all of the purchase at any future time particularly in the short term in order to realize a profit) as I am not very interested in trying to guess the short-term direction of markets (although I admit that trading helps to provide liquidity).
Are you interested in learning to develop smart contracts with Ethereum, and maybe develop a really useful dapp and become a millionaire?
If you want to help contribute to core development, there is also:
- the Yellow Paper (make sure that you read the EIPs too since as of Dec 8 it is not up-to-date with the last commit on August 8, while the Constantinople EIPs were implemented in October). Instead I recommend ;
- LLL (also see here and here);
- JULIA, an intermediate language for different Ethereum virtual machines;
- clients such as Geth, Parity which is under Parity Tech a separate organization to the Ethereum Foundation, C++ Ethereum, Pyethereum;
- research such as stateless clients, sharding, scalability improvements, Casper and more;
- if you're interested in testing, see the documentation here, as well as the Github tests repo, a Gist here (it is outdated), and Gitter here ; and
- many other repositories.
Ether certainly seems like a good investment, and a good alternative to using fiat currencies, as well as an enabler for otherwise uneconomical business, due to lower transaction costs. It's more decentralized nature than central banks has advantages for trade from a local to global scale. With governance applications and systems on top Ethereum, it is even possible to do away with the hindering borders surmounted by nation-states. By doing away with these borders, society can be more open, inclusive and equitable.
However, all technology can only help mankind and the world to a certain extent. What is more important is for each and every person to become increasingly blissful. Each person must go within and enter a stillness of body and mind, which is when that bliss starts to manifest, and practice balanced living. Practicing certain techniques such as those given by Self-Realization Fellowship, such as daily Kriya yoga meditation, developing unconditional love that starts in the heart, keeping the mind at the point between the eyebrows, and moral living, helps each person manifest that bliss within, and from there, express that bliss outwardly at all times.
- Another introduction
- An introduction (Frontier first release, outdated)
- Here's another introduction, made in November 2017
- Ethereum room on Gitter
- Ethereum research forum
- Correct by construction Casper prototype
- Casper the Friendly Finality Gadget
- The stateless client concept
- Ethereum 2 and alternative PoS implementations
- Ethereum wiki
- Ethereum and the hodlers that love them
This article was originally created here in May 2017, and has been regularly updated since then: https://sustergy.wordpress.com/2017/05/18/why-buy-ether-and-how/. Feel free to send a donation to the initial author at jamesray.eth, or make edits to it yourself, or fork it!