Disclaimer: This Ethereum guide is not investment advice. It serves only an informational purpose. The decision of whether to invest or not rests with the individual.
Although Bitcoin often steals the limelight Ethereum is considered to be developers’ favorite. This guide is intended to give an introduction to Ethereum. The most detailed explanation is found in their whitepaper.
If you are just starting with cryptocurrency, our Bitcoin Guide provides a more simple introduction.
The topics discussed in this part apply to all digital currencies not only Ethereum. If you are interested only in the specifics of Ethereum, skip directly to the next sections.
Wallets have the same function as bank accounts and are not much different. The major distinction is that bank accounts, due to law regulation, need to have an identity assigned to them. With wallets, there is no such need. Anyone with a password (private key) can use the wallet.
Wallets can be either hot or cold.
A hot wallet actively communicates with the blockchain. Think of them as current accounts. They are suitable for people who frequently trade or complete numerous transactions.
A cold wallet is more like a savings account. Bear in mind though, no interest is earned. Cold wallets are not connected to the virtual world. All of their information is stored locally off the blockchain. Usually, on a physical carrier like a hard drive or a ledger USB. This prevents hackers any access to the funds or information in these wallets. It is why they are considered safer than hot wallets. They are suitable for people who want to hold long-term.
Just like with bank accounts, a person can have many wallets. In fact, with the rising number of DDoS attacks, it is advised to spread your digital wealth into wallets of different kinds and providers. One option would be a hot where only funds that will be immediately used are stored; a cold one for the large portion of your wealth.
Private and Public Keys
Wallets just like bank accounts have a public address (IBAN) and a private password (PIN code).
The public address of a wallet is called a public key. When making transactions it is the only thing you need to know about the other person, which is actually a misconception, since the Ethereum address is the hashed public key. The private key is essentially a password that is known only to the owner of the wallet and should never be disclosed.
What is important to note is that, unlike bank IBANs and PIN codes, the public key is derived from the private key. Essentially, the public key encrypts the transaction when it is placed and when the private key is applied, i.e you input it as a password, the two work together to decrypt the transaction. Each private key has only one public key for which it works, they are called a key pair. One can create infinitely different public addresses using only one key pair.
This part of the discussion of mining applies to all digital currencies that are mined. If you are interested only in what is distinct about Ether mining go to the Mining Ethereum Section.
The money creation process we currently use is the printing of new money and its release into the economy done by the Central Bank or Federal Reserve. When it comes to cryptocurrency, the central banks are miners.
Miners use the graphic cards, in the current case of Ethereum, installations to solve complex equations called hashes. The process, hashing is how transactions are processed and how new currency is created. The solution to this equation, hash, gives the state of the network – a snapshot of all the accounts’ balances and all current transactions. These snapshots are recorded in blocks of information and comprise the blockchain.
Mining is costly and time-consuming endeavor, but essential for the network, this is why it is rewarded. The first one to solve the hash gets 5 Ether. The chances of first depend on the miner’s computing power (hashing power). More power, higher chance. This is the reason for the existence of mining pools, in which many people work together to increase their chances but split the reward. Since many people want to mine and acquire Ether themselves, but don’t have the needed mining computers (also called rigs), they decide to rent hashing power online. This process is referred to as Ethereum cloud mining.
The most important take from that is: Without miners, no transaction would be processed and the whole network would not operate.
Verifying Transactions: Proof of Work
But how can the other members know if this is the right answer and not a hacking attempt, without solving the hash?That is where the proof of work protocol shines.
To understand the logic behind it picture hashes as very complex equations: 3=2ab + 4cd+ …1000yz. Finding the unknowns is difficult but the check is easy. Plugin the values and see whether the right side matches the left side.
Hashing has the property that the output is always of know size, think kilobytes. In the example above the “3” is known in the equation, picture it to be the hash output for the computer. So, once a miner finds all the equation’s exes, the others plug in the equation and check if it is the right one. Bear in mind that this example shows only the basic mechanism.
Making the calculation of the hash difficult and the verification simple serves only one purpose – to fight off attempts to tamper the system. The information on the blockchain can only be edited if 51% or more of the whole network’s power is concentrated in one miner. Yet, in practice, having so much computing power is almost impossible.
What is Ethereum?
Bitcoin is a particular use of blockchain technology – a peer-to-peer electronic cash system for making payments. Ethereum is more an environment in which different applications can operate.
Ethereum’s technology expands the idea behind Bitcoin. It allows for more complex transactions and offers increased security. Smart contracts are the means through which requests placed in a human language can be translated to code that computers can read and execute autonomously, omitting the necessity for intermediaries in business and legal relations.
Most importantly Ethereum acts like an environment in which many different projects can operate. This means that the creation of new cryptocurrencies is easier and cheaper. This made Initial Coin Offerings one of the best ways to finance new business ventures. The option to raise capital without diluting the ownership of your company was a finance professional’s wet dream, now with Ethereum and ICOs, it is reality.
The intrinsic value of Ethereum lies in ICOs and Dapps, not in the currency Ether itself. The market price of an Ethereum is mostly defined by the success of the projects its network hosts, rather than the specifics of its currency Ether.
The Ethereum Supercomputer
The traditional way of accessing online data is through the client-server relationship. The client puts forward a request, like writing in google chrome a search term. Once the request goes to the server it takes the results from a database and sends the information to the client i.e. loads your web page or search results.
On the Bitcoin network, things look kind of similar. The large miners serve a special function, and why they are called main nodes, for the bitcoin network’s operations, that download the whole state of the network (all of the information about account balances and transactions). These are in most cases large mining facilities. The other users are lite clients and do not have the whole state thus they are not fully-functioning nodes.
Decentralized but not distributed
What this all means is that the Bitcoin network is decentralized but not distributed. There are still only a few nodes on which the majority of the operations depend. Basically, it is not revolutionizing the client-server relationship just changing it a bit. Instead of a couple of servers, there are a couple of hundred mining facilities.
Ethereum on the other hand does not have different kinds of nodes. Each person on the network is a fully functioning part of it. This means that instead of having a few large mining facilities to process transactions, each person’s home computer can serve as a fully-functioning node on the network. Thinking about how many home PCs there are worldwide, Ethereum’s network can easily have thousands of nodes or eventually even millions.
Why decentralization is so important?
Recently there have been a number of DDoS (Denial-of-service attacks) in the blockchain industry. Hackers flood miners with hard-to-execute requests blocking the functioning of the whole system. The fewer the nodes, the easier it is to flood them. The attack on Cloudfare showed that even when measures are taken to prevent DDoS attacks, in a distributed network it is impossible to prevent them. Cloudflare has several data centers (not centralized but distributed network) and higher-level security (they are security providers, after all) and yet they got flooded with requests.
In a decentralized network, a DDoS attack is very hard to execute. This is because instead of a couple of hundred nodes there are easily a couple of thousand or more. Think of it like that: let’s assume a hacker can place 10,000 malicious requests; if there are 100 nodes, each of them has to process 100 requests; however, if they are 10,000 each of them has to do 1. This simple spread of the workload is often enough to deter hackers from trying a DDoS attack.
The most simple way to visualize this is to imagine a street and pouring rain. If there are a few sewers that exist the street will get quickly flooded. Even if the sewer exit is very large, once the pipe underneath is filled or for some reason, there is a blockage (imagine dirty leaves and trash) the water would not be able to pass and again the street would be flooded. To minimize the chance of flood we need many sewers, even if they are smaller in size. When there are many sewers, even if they are smaller and easier to get blocked, the total water is divided among more exits.
Mining on Ethereum
Mining Ether is done only with GPUs and RAM, no specialized chips for mining like ASIC can be used. As well as that the developers behind Ethereum favor small individual miners over large industrial mining facilities. They believe that industrializing mining defies the ideology behind cryptocurrencies as tools to empower individuals and prevent the consolidation of wealth.
Like with bitcoin each new block starts with a reward. In the case with Ethereum, there is 3 ETH at the beginning of the block that goes to the miner who found the solution. The block speed is around 12 seconds and like with Bitcoin, the difficulty level of the hash would adjust if the network’s computing power increases or decreases – so the block time stays approximately the same. Although the mining of Ethereum is the same as that of bitcoin it has a couple of distinct features.
No ASIC Chips Allowed
When Bitcoin Mining became very popular the market got so saturated that even large facilities with thousands of GPUs had a hard time earning profits. A company created a new type of chip for mining that was times faster and more efficient than any other hardware. In fact, this chip disrupted the industry to such an extent that mining Bitcoin with anything but an ASIC miner is futile.
The developer community behind Ethereum decided that allowing the use of such hardware defies the ideology behind cryptocurrencies that they aim to empower individuals. ASIC chips were making mining reserved only for large mining facilities and impossible for hobbyists.
ASIC chips are very good at performing one type of calculation faster and more efficiently. However, they are very bad if more than one type of calculation is involved. This is why Ethereum’s hash, ethash, requires different types of calculations to be solved, making ASIC chips useless. Ethash unlike Bitcoin’s hash takes up more memory, something that ASIC chips lack.
Sometimes it happens that more than one miner finds the solution of the hash at roughly the same time. Of course, the network knows which miner was first. However, if another miner’s solution was almost simultaneous with the first one, they will also get a portion of the reward.
The major reason why uncles are rewarded on the Ethereum is to incentivize individual miners and smaller mining facilities or pools. Usually, the first to find the solution has significantly more computing power than the rest. Rewarding for uncles makes mining Ethereum on a small scale relevant and it also neutralizes lost rewards due to network lag times. Uncles are also needed to form a valid block. There can be only two uncles per block.
In Bitcoin, uncles also exist, however, they are called orphans and are not rewarded. This together with the use of ASIC chips is why there is no small-scale mining of Bitcoin anymore.
Smart Contracts are the main use case and selling point of Ethereum. They serve the same function as traditional contracts, stipulating conditions rewards, and parties involved in a deal. However, unlike traditional ones they are self-executing and do not need people or intermediaries to function once set in place. They are a code that contains different conditions that lead to different actions. Smart contracts can, however, only have a fixed number of parties. If the contract has been initially written for two parties if a third want to participate a new smart contract must be made.
In Bitcoin transactions are simple. Ann sends Bob 5 BTC for example. With Ethereum deals can be complex. Let us consider an example where a company has to stock raw materials. The company has two people in charge of this department. Then a smart contract can be constructed between the specified company and their raw material supplier. The SM then can then be: if supply department employees sign online the contract, execute payment to “wallet address of supplier’’.
Smart contracts allow all kinds of conditions to be implemented. However, smart contracts cannot have “real things” as conditions. There must be some form of virtual verification or way for the system to track whether a certain condition is met. In the above example, the two employees’ signatures serve to link a real action to a virtual one – the raw materials arriving and executing a transaction on the blockchain to pay the supplier.
If you want more detailed information this article will be helpful.
DApps: Decentralized Applications
Bitcoin was created in the traditional way. Developer/s came together and coded the whole blockchain from scratch. Thanks to Vitalik Buterin and Ethereum the is an easier way. Developers can use Ethereum’s exciting blockchain network and just write the specific code of the new digital currency. (rewording needed)
Not having to create the whole blockchain from scratch is a huge relief for any developer. These types of applications are called Decentralized Applications or DApps. With DApps developers can focus on perfecting the specific functions of their program instead of losing time to develop in which it operates. For the layman (non-developers) the value is that if the coding is easier and faster for developers, the program is better and cheaper for us
Each software has two components front-end, what the users see, and back-end which is the backbone of the application and what actually makes it work. Traditional applications and websites communicate with a data center to fetch, whereas in DApps each peer on the network is a data center. Think of BitTorrent. When downloading each person that has already downloaded the file serves as a data center from which your PC can fetch data.
As mentioned, smart contracts can only have a fixed number of parties. However, often in business and everyday life, we cannot be sure how many people or companies would actually take part in a deal. Having to write a separate SC every time there is a change of plans is too much of a hassle.
DApps like smart contracts are codes that can self-execute and are quite similar. There are two main distinctions. The first one is that a DAPP can involve an unlimited number of parties. The second is that they can be non-financial. Smart contracts can only stipulate conditions for a transaction. A DAPPS can facilitate the exchange of everything on the blockchain. For example, the DAPP Golem lets people exchange their idle computing power in exchange for Golem Tokens that give them specific benefits.
Although in its infancy the developer community has defined some features that distinguish a DApps from traditional applications:
Open Source – Source code of app public and anyone can create their own product with it.
Decentralized –Not a couple of data centers, but clients are themselves data centers.
Incentive – Exchange is difficult without a medium of exchange so DAPPs use a different kind of internal currency, often called token.
Algorithm/Protocol – There is an algorithm (logic) for the creation of more tokens in the system and an inbuilt consensus mechanism, similar to how transactions are validated on the blockchain.
The most important application of DAPPs is that any company can create its own ecosystem in the Ethereum environment. Basically, with DApps a new kind of company is born – decentralized organizations. The users or peers that use the DApps work towards a predefined goal and get rewarded with the private internal currency of that organization. Using the above example with Golem. The goal is to utilize idle computing power. Users give out their spare power, work towards the goal, and are rewarded Golem tokens with which they can in turn purchase computing power from other users or cash out.
Initial Coin Offerings
The most important use of DApps is Initial Coin Offerings. When a company or an individual has an idea or project they can create a DApps to achieve this goal. Initial Coin Offering refers to the whole process – creating the DApps and putting it to work. A company or individual stipulates a goal and users may choose whether they would participate and work towards this goal for a reward.
ICO is essentially the same as an IPO (Initial Public Offering). However, the main difference is that instead of a share or bond a company issues a digital currency. The aim of an ICO is to raise funds, (same as IPO) without diluting the ownership of the company. Usually, token holders often get exclusive deals, discounts or enter a profit-sharing program.
ICOs are perhaps the main reason why Ethereum is valuable. As mentioned before, Ethereum is not so much a currency as it is a coding environment. For example, if someone wants to make an ICO without the Ethereum network they would have to program a whole blockchain to host the token for their project. Such an endeavor would be time-consuming and costly as it would take a lot of coding to achieve. With Ethereum there is no such need. The developer has to code only the specific conditions of the smart contract and use the Ethereum blockchain.
Ethereum makes the creation of new digital currencies easier and much cheaper. This allows small companies or even projects that have not been started to raise funds through ICOs. Think of it as elaborate crowdfunding. However, unlike crowdfunding, there are actual tangible benefits associated with investing in an ICO. As well as that, often after a company sells their tokens they would list them on an exchange allowing them to be traded and to benefit their holders by increasing in value.
An important precaution about ICOs is to always bear in mind that at the current moment anyone with basic skills in Solidity, the coding language of Ethereum can create their own campaign. Being informed and educated is a must. Regulation is lacking behind and many countries have no laws governing this process. The main discussion is whether tokens would be considered a security or not.
Some believe that if tokens from ICOs become security they would not be so valuable as they will be subject to regulation, deterring many companies from holding such campaigns. However, others believe that regulation would increase investment in ICOs as it would reduce the chance for scams and funds embezzlement. As well as that having regulation would indirectly show that large institutional bodies believe in the feasibility of ICOs as a reliable way to raise funds.
As mentioned Ethereum is valuable because it provides a medium for new kinds of digital currency to be created, called tokens. ERC-20 is a standard that lays out the rules based on how the code of new tokens should be.
Its aim is to ensure that all tokens can interact with the Ethereum network and ensure a certain level of security. All tokens that adhere to the ERC-20 are guaranteed to be compatible with each other and the network. What this means is that wallets that support ether would also support all ERC-20 compliant tokens. As well as that it allows developers to know how their token would behave in the network even before launching it, making the development of DApps much faster, cheaper, and more straightforward.
Smart contracts and DApps have one major set back they have a hard time communicating with the outside world. A smart contract may sometimes need information from the external world, like the price of a US dollar as a trigger to be executed.
There are two ways to tackle this. One way is to have someone following the price of the US dollar and signing the smart contract when the designated price is reached so that the execution of the transaction starts. However, having people involved in smart contracts is defied their purpose of being autonomous and self-executing.
The second way is through something called oracles. The oracle grabs the information from the outside world and gives it to the smart contract in a form it can understand.
There are many types of oracles. The major distinction is whether they are software or hardware. A software oracle can monitor temperature, Forex markets, and other informational sources. An example would be a smart contract that is a future for the US dollar. If the dollar hits the desired price the contract would execute a payment to buy or sell US dollars. A good example of hardware oracles is RFID sensors in supply chain management. If the oracle learns that a certain material is low on stock it can trigger a smart contract that makes payments to the supplier and automate restocking.
Currently, the biggest challenge in using oracles is that they are third parties outside of the blockchain. That means that they have to be trustworthy. Is the website from where the oracle gets the US dollar price quote reliable? Is the RFID sensor making the right estimation? Can it give wrong inputs?
These are important considerations because as oracles are not humans they cannot discriminate between information. If the oracle is connected to an information source it will trust it blindly and execute smart contracts based on it.
In the case of a smart contract with instructions to buy USD if it falls 5 points: imagine if the website price quote is wrong and actually the dollar rose by 5 points when it says it fell. The oracle will trigger the contract with the wrong information and the contract will execute. That is a huge issue because on the blockchain no transaction can be reversed.
Nevertheless, developers are confident that oracles have indisputable advantages for many use cases. And efforts would be put into their perfecting.
What is Gas?
Those of you familiar with Bitcoin know that a fee must be paid for transaction processing. This fee together with the new unit of a digital currency at the beginning of each block is the two sources of income for miners.
To process transactions, miners had to purchase software, hardware, rent a place and pay electricity. On the bitcoin network, the fee depends on the kilobytes the transaction takes up on the block. However, this is a recommendation and in reality, each person is free the give as much or as little Satoshis as they want. Those that give more than the rest, are favored by miners as processing that transaction is more lucrative. Giving too little simply means that your transaction would take forever to process or if too little is offered, it will never go through. There are two problems with forming the price of fees in this way.
Everyone who wants their transactions processed faster would be bidding up the fee price. Someone who is moving thousands of Bitcoin at once would naturally put a larger fee to get their transaction processed faster. And for them, the larger fee pays off because of the large size of their transactions. However, for micropayments, such a way of forming the transaction fee is far from efficient. Miners look only at the fee. If someone wants to transfer only 1 BTC they would have to match the fees bidded by people who want to transfer 1000 BTC.
The other issue is that the value of a Satoshi is directly tied to the value of 1 BTC. Which means that it is constantly changing. However, the price of computational power (hardware, software, rent, and electricity) does not change with the value of BTC. If the fee proposed by people does not decrease as the value of a Satoshi rise, then miners would be getting unfairly high rewards and vice versa.
The minds behind Ethereum wanted a more straightforward and fairer way to determine transaction fees. This is why they coined the term gas. It prices the computational power that is needed to handle a certain transaction. Sending money is a simple one and will require a little gas. The interaction between smart contracts takes more computations and as such requires more gas.
On the Ethereum network, there are two separate variables for gas. One is the gas limit this is how much gas (work) does the transaction requires to be processed. This value depends on the type and complexity of the transaction. The other is the gas price is how much either one unit of gas costs and depends on the market value of Ethereum. The total fee, called the TX fee is calculated by multiplying the gas price and the gas limit.
Running out of Gas
One of the most confusing things about Ethereum is the distinction between a transaction running out of gas and not having a high enough fee.
When miners decide whether to take up a transaction or not they firstly look at the gas price that is set. If the person specified a very small gas price the miner would not even start the process. The transaction will never be included in the blockchain and the person who placed it would not be charged anything.
If the miner is fine with the gas price the client specified they will take up the transaction and start computing. In this case, it is possible that the person specified a gas limit that is too low. What would happen is that the TX Fee or total fee would not be enough to complete the processing of the transaction as the would be less than the cost for the miner. The transaction then would be recorded on the blockchain as a failed transaction. However, as the miner already spent power on this transaction they will keep the fee.
Checking Transaction Status
There are plenty of websites that provide information on the status of transactions. One of the more popular is EtherScan and EtherChain. There, users can check for potential issues with their transaction or get a confirmation that it is processed successfully.
Which one you will use depends solely on your personal needs and preference for the user interface.