Chapter 1 - Ethereum Fundamentals
What is Ethereum?
Ethereum is a decentralized computing platform. You can think of it like a laptop or PC, but it doesn't run on a single device. Instead, it simultaneously runs on thousands of machines around the world, meaning that it has no owner.
Ethereum, like Bitcoin and other cryptocurrencies, allows you to transfer digital money. However, it’s capable of a lot more – you can deploy your own code, and interact with applications created by other users. Because it’s so flexible, all sorts of sophisticated programs can be launched on Ethereum.
Simply put, the main idea behind Ethereum is that developers can create and launch code which runs across a distributed network instead of existing on a centralized server. This means that, in theory, these applications can’t be shut down or censored.
What’s the difference between Ethereum and ether (ETH)?
It might be unintuitive, but the units used in Ethereum are not called Ethereum or Ethereums. Ethereum is the protocol itself, but the currency that powers it is simply known as ether (or ETH).
What makes Ethereum valuable?
We touched on the idea that Ethereum can run code across a distributed system. As such, programs can’t be tampered with by external parties. They’re added to Ethereum’s database (i.e., the blockchain), and can be programmed so that the code can’t be edited. In addition, the database is visible to everyone, so users can audit code before interacting with it.
What this means is that anyone, anywhere, can launch applications that can’t be taken offline. More interestingly, because its native unit – ether – stores value, these applications can set conditions on how value is transferred. We call the programs that make up applications smart contracts. In most cases, they can be set to operate without human intervention.
Understandably, the idea of “programmable money” has captivated users, developers, and businesses around the globe.
Sneak a peek at the latest ETHER prices right now.
What is the blockchain?
The blockchain lies at the heart of Ethereum – it’s the database that holds the information used by the protocol. If you’ve read our article What Is Bitcoin?, you’ll have a basic understanding of how a blockchain works. The Ethereum blockchain is similar to Bitcoin’s, although the data it stores – and the way it stores it – is different.
It helps to think of Ethereum’s blockchain as a book that you keep adding pages to. Each page is called a block, and it’s filled with information about transactions. When we want to add a new page, we need to include a special value at the top of the page. This value should allow anyone to see that the new page was added after the previous page, and not just inserted into the book randomly.
In essence, it’s a bit like a page number that references the previous page. By looking at the new page, we can say with certainty that it follows from the previous one. To do this, we use a process called hashing.
Hashing takes a piece of data – in this case, everything on our page – and returns a unique identifier (our hash). The odds of two pieces of data giving us the same hash are astronomically low. It’s a one-way process, too: you can easily calculate a hash, but it’s virtually impossible for you to reverse the hash to get the information used to create it. We’ll get into why this is important for mining in a later chapter.
Now, we have a mechanism to link our pages together in the correct order. Any attempt to change the order or remove pages will make it apparent that our book has been tampered with.
Want to learn more about blockchains? Be sure to check our beginner’s guide to blockchain technology.
Ethereum vs. Bitcoin – what’s the difference?
Bitcoin relies on blockchain technology and financial incentives to create a global digital cash system. It has introduced a few key innovations that allow the coordination of users around the globe without the need for a central party. By having each participant run a program on their computer, Bitcoin made it possible for users to agree upon the state of a financial database in a trustless, decentralized environment.
Bitcoin is often referred to as a first-generation blockchain. It wasn’t created as an overly complex system, and that’s a strength when it comes to security. It’s kept intentionally inflexible to prioritize security at its base layer. Indeed, the smart contract language in Bitcoin is extremely constrained, and it doesn’t accommodate applications outside of transactions very well.
The second generation of blockchains, by contrast, is capable of more. On top of financial transactions, these platforms enable a greater degree of programmability. Ethereum provides developers with much more freedom to experiment with their own code and create what we call Decentralized Applications (DApps).
Ethereum was the first of the second-generation wave of blockchains and remains the most prominent one to date. It bears similarities to Bitcoin and can perform many of the same functions. Under the hood, however, the two are very different, and each has its own advantages over the other.
How does Ethereum work?
We could define Ethereum as a state machine. All this means is that, at any given time, you have a snapshot of all the account balances and smart contracts as they currently look. Certain actions will cause the state to be updated, meaning that all of the nodes update their own snapshot to reflect the change.
A transition in Ethereum’s state.
The smart contracts that run on Ethereum are triggered by transactions (either from users or other contracts). When a user sends a transaction to a contract, every node on the network runs the contract’s code and records the output. It does this by using the Ethereum Virtual Machine (EVM), which converts the smart contracts into instructions the computer can read.
To update the state, a special mechanism called mining is used (for now). Mining is done with a Proof of Work algorithm, much like Bitcoin’s. We’ll get into more depth on this shortly.
What is a smart contract?
A smart contract is just code. The code is neither smart, nor is it a contract in the traditional sense. But we call it smart because it executes itself under certain conditions, and it could be regarded as a contract in that it enforces agreements between parties.
Computer scientist Nick Szabo can be credited with the idea, which he proposed in the late 1990s. He used the example of a vending machine to explain the concept, stating that it could be viewed as a precursor to the modern smart contract. In the case of a vending machine, there is a simple contract being executed. Users insert coins, and in return, the machine dispenses a product of their choosing.
A smart contract applies this kind of logic in a digital setting. You could specify something simple in the code like return “Hello, World!” when two ether is sent to this contract.
In Ethereum, the developer would code this so that it can later be read by the EVM. They then publish it by sending it to a special address that registers the contract. At that point, anyone can use it. And the contract can’t be deleted, unless a condition is specified by the developer when writing it.
Now, the contract has an address. To interact with it, users just need to send 2 ETH to that address. This will trigger the contract’s code – all the computers on the network will run it, see that the payment has been made to the contract, and record its output (“Hello, World!”).
The above is perhaps one of the most basic examples of what can be done with Ethereum. More sophisticated applications that connect many contracts can – and have – been built.
Who created Ethereum?
In 2008, an unknown developer (or group of developers) published the Bitcoin whitepaper under the pseudonym Satoshi Nakamoto. This permanently changed the digital money landscape. A few years later, a young programmer called Vitalik Buterin envisioned a way to take this idea further and apply it to any type of application. The concept was eventually fleshed out into Ethereum.
Ethereum was proposed by Buterin in a 2013 blog post entitled Ethereum: The Ultimate Smart Contract and Decentralized Application Platform. In his post, he described an idea for a Turing-complete blockchain – a decentralized computer that, given enough time and resources, could run any application.
In time, the types of applications that could be deployed on a blockchain would be limited only by the developers’ imaginations. Ethereum aims to find out whether blockchain technology has valid uses outside of the intentional design limitations of Bitcoin.
How was ether distributed?
Ethereum launched in 2015 with an initial supply of 72 million ether. More than 50 million of these tokens were distributed in a public token sale called an Initial Coin Offering (ICO), where those wishing to participate could buy ether tokens in exchange for bitcoins or fiat currency.
What was The DAO and what is Ethereum Classic?
With Ethereum, entirely new ways of open collaboration over the Internet have become possible. Take, for instance, DAOs (decentralized autonomous organizations), which are entities governed by computer code, similar to a computer program.
One of the earliest and most ambitious attempts at such an organization was “The DAO”. It would have been made up of complex smart contracts running on top of Ethereum, functioning as an autonomous venture fund. DAO tokens were distributed in an ICO and gave an ownership stake, along with voting rights, to token holders.
Not long after its launch, however, malicious actors exploited a vulnerability and drained almost a third of the DAO’s funds. It’s worth bearing in mind that, at that time, 14% of the entire ether supply was locked up in the DAO. Needless to say, this was a devastating event for the still-fledgling Ethereum network.
After some deliberation, the chain was hard forked into two chains. In one, the malicious transactions were effectively “reversed” to restore the funds – this chain is what’s now known as the Ethereum blockchain. The original chain, where these transactions weren’t reversed, and immutability was maintained, is now known as Ethereum Classic.
The event served as a harsh reminder of the risks of this technology, and how entrusting autonomous code with large amounts of wealth can backfire. It’s also an interesting example of how making collective decisions in an open environment can pose significant challenges. Overlooking its security vulnerabilities, though, The DAO perfectly illustrated the potential of smart contracts in enabling trustless collaboration on a large scale over the Internet.
Chapter 2 - Where does ether come from?
How is new ether created?
We briefly touched on mining earlier. If you’re familiar with Bitcoin, you’ll know that the mining process is integral to securing and updating the blockchain. In Ethereum, the same principle holds: to reward the users that mine (which is costly), the protocol rewards them with ether.
How many ether are there?
As of February 2020, the total supply of ether is around 110 million.
Unlike Bitcoin’s, Ethereum’s token emission schedule intentionally wasn’t decided at launch. Bitcoin set out to preserve value by limiting its supply, and slowly decreasing the amount of new coins coming into existence. Ethereum, on the other hand, aims to provide a foundation for decentralized applications (DApps). As it’s unclear what type of token emission schedule fits this purpose the best, the question remains open-ended.
How does Ethereum mining work?
Mining is critical to the security of the network. It ensures that the blockchain can be updated fairly and allows the network to function without a single decision-maker. In mining, a subset of nodes (aptly named miners) dedicate computing power to solving a cryptographic puzzle.
What they’re actually doing is hashing a set of pending transactions alongside some other data. For the block to be considered valid, the hash needs to fall below a value that’s set out by the protocol. If they’re unsuccessful, they can modify some of the data and try again.
To compete with others, miners therefore need to be able to hash as fast as possible – we measure their power in hash rate. The more hash rate there is on the network, the harder the puzzle becomes to solve. Only miners need to find the actual solution – once it is known, it’s easy for all other participants to check that it’s valid.
As you can imagine, continuously hashing at high speeds is expensive. To incentivize miners to secure the network, they earn a reward. It’s made up of all of the fees for transactions in the block. They also receive freshly-generated ether – 2 ETH at the time of writing.
What is Ethereum gas?
Remember our Hello, World! contract from earlier? That was an easy program to run. It’s not very computationally expensive at all. But you’re not just running it on your own PC – you’re asking everyone in the Ethereum ecosystem to run it, too.
That leads us to the following question: what happens when tens of thousands of people are running sophisticated contracts? If somebody sets up their contract to keep looping through the same code, every node would need to run it indefinitely. That would put too much strain on the resources and the system would probably collapse as a result.
Fortunately, Ethereum introduces the concept of gas to mitigate this risk. Just as your car can’t run without fuel, contracts can’t be executed without gas. Contracts set an amount of gas that users must pay for them to successfully run. If there isn’t enough gas, the contract will halt.
In essence, it’s a fee mechanism. The same concept extends to transactions: miners are chiefly motivated by profit, so they may ignore transactions with a lower fee.
Note that ether and gas are not the same. The average price of gas fluctuates and is largely decided by the miners. When you make a transaction, you pay for the gas in ETH. It’s like Bitcoin’s fees in that regard – if the network is congested and many users are trying to transact, the average gas price will probably rise. Conversely, if there isn’t much activity, it will decrease.
While the price of gas changes, every operation has a fixed amount of gas required. This means that complex contracts will consume a lot more than a simple transaction. As such, gas is a measure of computational power. It ensures that the system can provide an appropriate fee to users depending on their use of Ethereum’s resources.
Gas generally costs a fraction of ether. As such, we use a smaller unit (gwei) to denote it. One gwei corresponds to one-billionth of an ether.
To make a long story short, you could run a program that loops for a long time. But it quickly becomes very expensive for you to do so. Because of this, nodes on the Ethereum network can mitigate spam.
The average gas price in gwei over time. Source: etherscan.io
Gas and gas limits
Suppose that Alice is making a transaction to a contract. She’d work out how much she wants to spend on gas (for instance, by using ETH Gas Station). She might set a higher price to incentivize the miners to include her transaction as quickly as possible.
But she’ll also set a gas limit, which serves to protect her. Something could go wrong with the contract, causing it to consume more gas than she plans for. The gas limit is put in place to ensure that, once x amount of gas is used up, the operation will stop. The contract will fail, but Alice won’t end up paying more than she initially agreed to pay.
It might initially seem like a confusing concept to grasp. Not to worry – you can set the price you’re willing to pay for gas (and the gas limit) manually, but most wallets will take care of it for you. In short, the gas price defines how quickly miners will take your transaction, and the gas limit defines the maximum amount you will pay for it.
How long does it take to mine an Ethereum block?
The average time it takes for a new block to be added to the chain is between 12-19 seconds. This will most likely change once the network makes the transition to Proof of Stake, which aims, among other things, to enable faster block times. If you want to learn more about this, check out Ethereum Casper Explained.
What are Ethereum tokens?
A large part of Ethereum’s appeal is the ability for users to create their own assets on-chain, which can be stored and transferred like ether. The rules governing them are set out in smart contracts, allowing developers to set specific parameters regarding their tokens. These can include how many to issue, how to issue them, whether they’re divisible, whether each is fungible, and many others. The most prominent of the technical standards that allow the creation of tokens on Ethereum is called ERC-20 – and that’s why the tokens are popularly known as ERC-20 tokens.
Token functionality provides innovators with a vast playground for experimenting with applications on the cutting edge of finance and technology. From issuing uniform tokens serving as in-app currency, to producing unique ones backed by physical assets, there’s a great deal of design flexibility. It’s entirely possible that some of the best use cases for easy and streamlined token creation aren’t even known yet.
Chapter 3 - Getting started with Ethereum
How can I buy ETH?
How to buy ETH with a credit/debit card
Binance allows you to seamlessly buy ETH in your browser. To do so:
Go to the Buy and Sell Cryptocurrency portal.
Select the cryptocurrency you want to buy (ETH), and the currency you wish to pay with.
Log in to Binance, or register if you don’t have an account.
Select your payment method.
If prompted, insert your card details and complete the identity verification process.
That’s it! Your ETH will be credited to your Binance account.
How to buy ETH on peer-to-peer markets
You can also buy and sell ETH on peer-to-peer markets. This allows you to purchase coins from other users, directly from the Binance mobile app. To do so:
Launch the app and log in or register.
Select One click buy sell, followed by the Buy tab in the top left corner of the interface.
You’ll be prompted with a number of different offers – tap Buy on the one you wish to go with.
You can pay with other cryptocurrencies (the By Crypto tab) or fiat currency (the By Fiat tab).
Below, you’ll be asked for your payment method. Pick whichever one suits you.
Select Buy ETH.
You now have to make the payment. When you’re done, tap Mark as paid, and confirm.
The transaction is completed when the seller sends your coins.
What can I buy with ether (ETH)?
Unlike Bitcoin, Ethereum isn’t intended to be used only as a cryptocurrency network. It’s a platform for building decentralized applications, and as a tradeable token, ether is the fuel of this ecosystem. So, the primary use case for ether is arguably the utility it provides within the Ethereum network.
With that said, ether can also be used similarly to traditional currency, meaning you can buy goods and services with ETH just as with any other currency.
Heatmap of retailers that accept ether as payment. Source: cryptwerk.com/coinmap
What is Ethereum used for?
People can use Ethereum’s native currency, ETH, as digital money or collateral. Many also see it as a store of value, similar to Bitcoin. Unlike Bitcoin, however, the Ethereum blockchain is more programmable, so there is much more you can do with ETH. It can be used as the lifeblood for decentralized financial applications, decentralized markets, exchanges, games, and many more.
What if I lose my ETH?
Since there aren’t any banks involved, you’re responsible for your own funds. You can store your coins on an exchange, or in your own wallet. It’s important to note that if you use your own wallet, you absolutely must take care of your seed phrase. Keep it safe because you need it to restore your funds in case you lose access to your wallet.
Can I revert Ethereum transactions?
Once data is added to the Ethereum blockchain, it’s almost impossible to alter or remove it. This means that when you make a transaction, you can think of it as it’s set in stone. So, you should always double-check if you’re sending funds to the correct address. If you’re sending a large amount, it might be useful to send a small amount first to be sure that you’re sending to the right address.
With that said, due to a hack in a smart contract, Ethereum hard forked in 2016, where the malicious transactions were effectively “reversed”. This, however, was an extreme measure to an exceptional event, and not the norm.
Are Ethereum transactions private?
No. All transactions that are added to the Ethereum blockchain are publicly visible. Even though your real name isn’t on your Ethereum address, an observer might be able to connect it to your identity through other methods.
Can I make money with Ethereum?
As it’s a volatile asset, you can make money with ETH just as you can lose money with it. Some people might hold ether for the long-term, betting on the network becoming a global, programmable settlement layer. Others choose to trade it against other altcoins. Still, both of these strategies carry their own financial risks.
As it’s the main pillar of the Decentralized Finance (DeFi) movement, ETH can also be used for lending, as collateral for taking out loans, minting synthetic assets, and – at some point in the future – staking.
Some investors may only hold a long-term position in Bitcoin, and not include any other digital asset in their portfolio. In contrast, others may choose to hold ETH and other altcoins in their portfolio, or allocate a certain percentage of it to shorter-term trading (e.g., day trading or swing trading). There isn’t a one-size-fits-all approach for making money in the markets, and each investor should decide for themselves what the most suitable strategy might be for their profile and circumstances.
How can I store my ETH?
There are many options to store coins, each with their own pros and cons. As with anything that involves risk, your best bet might be diversifying between the different available options.
Generally, storage solutions can be either custodial or non-custodial. A custodial solution means that you are entrusting your coins to a third party (like an exchange). In this case, you need to log in to the custodian’s platform to make transactions with your cryptoassets.
A non-custodial solution is the opposite – you maintain control of your own funds, while using a cryptocurrency wallet. A wallet doesn’t hold your coins like your physical wallet – rather, it holds cryptographic keys that allow you to access your assets on the blockchain. It’s worth noting again: it’s imperative that you backup your seed phrase when using a non-custodial wallet!
How to deposit your ETH to Binance
If you already have ether and want to deposit it on Binance, you can simply follow these quick steps:
Log in to Binance, or register if you don’t already have an account.
Go to your Spot Wallet and select Deposit.
Select ETH from the coin list.
Select the network and send your ETH to the corresponding address.
That’s it! After the transaction is confirmed, your ether will be credited to your Binance account.
How to store your ETH on Binance
If you’d like to actively trade with your ether, you will need to store it on your Binance account. Storing your ETH on Binance is easy and secure. And it allows you to easily take advantage of the benefits of the Binance ecosystem through lending, staking, airdrop promotions, and giveaways.
How to withdraw your ETH from Binance
If you already have ether and want to withdraw it from Binance, you can simply follow these quick steps:
Log in to Binance.
Go to your Spot Wallet and select Withdraw.
Select ETH from the coin list.
Select the network
Insert the recipient’s address and amount.
Confirm the process via email.
That’s it! After the transaction is confirmed, the ETH will be credited to the address you provided.
How to store your ETH in an Ethereum wallet
If you’d like to store your ETH in your own wallet, you have two main options: hot wallets and cold wallets.
A cryptocurrency wallet that’s connected to the Internet in some way is called a hot wallet. Typically, it will be a mobile or desktop application that allows you to check your balances, and to send or receive tokens. Because hot wallets are online, they tend to be more vulnerable to attacks, but also more convenient for everyday payments. Trust Wallet is an example of an easy-to-use mobile wallet with a lot of supported coins.
A cold wallet is a crypto wallet that isn’t exposed to the Internet. Since there’s no online attack vector, the chances of an attack are overall lower. At the same time, cold wallets are typically less intuitive to use than hot wallets. Examples of cold wallets can include hardware wallets or paper wallets, but the use of paper wallets is often discouraged as many consider them obsolete and risky to use.
For a breakdown of wallet types, check out Crypto Wallet Types Explained.
What is the Ethereum logo and symbol?
Vitalik Buterin designed the earliest Ethereum emblem. It was made up of two rotated summation symbols Σ (Sigma from the Greek alphabet). The final design of the logo (based on this emblem) is made up of a rhomboid shape called an octahedron surrounded by four triangles. Similar to other currencies, it might be useful for ether to have a standard Unicode symbol so apps and websites can easily display ether values. While not as widely used as say, the $ for the USD, the most commonly used symbol for ether is Ξ.
Chapter 4 - Scalability, ETH 2.0 and the future of Ethereum
What is scalability?
In the simplest of terms, scalability is a measure of a system’s ability to grow. In computing, for instance, a network or server can be scaled to handle more demand through different methods.
In cryptocurrency, scalability refers to how well a blockchain can grow to accommodate more users. More users means more operations and transactions “competing” to be included in the blockchain.
Why does Ethereum need to scale?
Ethereum proponents believe that the next iteration of the Internet will be built on the platform. The so-called Web 3.0 would bring about a decentralized topology characterized by a lack of intermediaries, a focus on privacy, and a shift towards true ownership of one’s own data. This foundation would be built using distributed computing in the form of smart contracts and distributed storage/communication protocols.
To achieve this, though, Ethereum needs to massively increase the number of transactions it can process without harming the network’s decentralization. At present, Ethereum doesn’t limit transaction volume by restricting the block size as Bitcoin does. Instead, there is a block gas limit – only a certain amount of gas can fit into a block.
For instance, if you had a block gas limit of 100,000 gwei and wanted to include ten transactions with a gas limit of 10,000 gwei each, that would work. So would two transactions of 50,000 gwei. Any other transactions submitted alongside these would need to wait for the next block.
That isn’t ideal for a system that everyone is using. If there are more pending transactions than available space in a block, you soon end up with a backlog. The gas price will rise, and users will need to outbid others to have their transactions included first. Depending on how busy the network is, operations could become too expensive for certain use cases.
The surge in popularity of CryptoKitties was an excellent example of Ethereum’s limitations on this front. In 2017, the Ethereum-based game prompted many users to make transactions to participate in breeding their own digital cats (represented as non-fungible tokens). It became so popular that pending transactions skyrocketed, resulting in extreme congestion of the network for some time.
The Blockchain Scalability Trilemma
It seems that merely upping the block gas limit would alleviate all of the scalability problems. The higher the ceiling, the more transactions that could be processed in a given timeframe, right?
Unfortunately, that just isn’t feasible without sacrificing key properties of Ethereum. Vitalik Buterin proposed the Blockchain Trilemma (visualized below) to explain the delicate balance that blockchains must strike.
The Blockchain Trilemma: Scalability (1), Security (2), and Decentralization (3).
By choosing to optimize two out of three of the above characteristics, the third will be lacking. Blockchains like Ethereum and Bitcoin prioritize security and decentralization. Their consensus algorithms ensure the security of their networks, which are made up of thousands of nodes, but this leads to poor scalability. With so many nodes receiving and validating transactions, the system is much slower than centralized alternatives.
In another scenario, the block gas limit could be lifted so the network achieves security and scalability, but it won’t be as decentralized.
That’s because more transactions in a block results in bigger blocks. Still, nodes on the network need to download and propagate them periodically. And this process is intensive on hardware. When the block gas limit is increased, it gets more difficult for nodes to validate, store, and broadcast blocks.
As a result, you would expect nodes that couldn’t keep up to drop off the network. By continuing in this manner, only a fraction of powerful nodes would be able to participate – leading to more centralization. You might end up with a blockchain that’s secure and scalable, but it wouldn’t be decentralized.
Lastly, we can imagine a blockchain that focuses on decentralization and scalability. To be both fast and decentralized, sacrifices have to be made when it comes to the consensus algorithm used, leading to weaker security.
How many transactions can Ethereum process?
In recent years, Ethereum has rarely exceeded ten transactions per second (TPS). For a platform aiming to become a “world computer,” this number is surprisingly low.
Scaling solutions have long been part of Ethereum’s roadmap, though. Plasma is one example of a scaling solution. It aims to increase the efficiency of Ethereum, but the technique may also be applied to other blockchain networks.
What is Ethereum 2.0?
For all of its potential, Ethereum currently does have considerable limitations. We have already discussed the issue of scalability. In short, if Ethereum aims to be the backbone of the new financial system, it needs to be able to process a lot more transactions per second. Given the distributed nature of the network, this is an immensely difficult problem to solve, and Ethereum developers have been thinking about it for years.
For one thing, to keep the network sufficiently decentralized, limits must be enforced. The higher the requirements to operate a node are, the fewer participants there will be, and the more centralized the network becomes. So, increasing the number of transactions that Ethereum can process could threaten the integrity of the system, as it would also increase the burden on the nodes.
Another criticism of Ethereum (and other Proof of Work cryptocurrencies) is that it’s incredibly resource-intensive. In order to successfully append a block to the blockchain, they must mine. To create a block in this manner, though, they must rapidly perform computations that consume huge amounts of electricity.
To address the above limitations, a major set of upgrades have been proposed, collectively known as Ethereum 2.0 (or ETH 2.0). Once fully rolled out, ETH 2.0 should greatly improve the network’s performance.
What is Ethereum sharding?
As mentioned above, each node stores a copy of the entire blockchain. Any time it’s extended, each of the nodes must update, which consumes their bandwidth and available memory.
Using a method called sharding, this may no longer be necessary. The name refers to the process of dividing the network into subsets of nodes – these are our shards. Each of these shards will process their own transactions and contracts, but can nonetheless communicate with the broader network of shards as required. As every shard validates independently, it’s no longer necessary for them to store data from other shards.
The network in March 2020 vs. the network with sharding implemented.
Sharding is one of the most complex approaches to scaling that requires a lot of work to design and implement. However, if successfully implemented, it would also be one of the most effective, increasing the network’s throughput capacity by orders of magnitude.
What is Ethereum Plasma?
Ethereum Plasma is what we call an off-chain scalability solution – that is, it aims to boost transaction throughput by pushing transactions off of the blockchain. In this regard, it bears some similarities to sidechains and payment channels.
With Plasma, secondary chains are anchored into the main Ethereum blockchain, but they keep communication to a minimum. They operate more or less independently, although users still rely on the main chain for settling disputes or “completing” their activities on the secondary chains.
Reducing the amount of data that nodes must store is vital to Ethereum’s successful scaling. The Plasma approach allows developers to outline the functioning of their “child” chains in a smart contract on the main chain. Then, they’re free to create applications with information or processes that would be too expensive to store/run on the main chain.
For a comprehensive introduction to Plasma, check out What Is Ethereum Plasma?
What are Ethereum rollups?
Rollups are similar to Plasma in the sense that they aim to scale Ethereum by moving transactions off the main blockchain. So, how do they work?
A single contract on the main chain holds all the funds on the secondary chain and keeps a cryptographic proof of this chain’s current state. Operators of this secondary chain, who put down a bond in the mainnet contract, make sure that only valid state transitions are committed to the mainnet contract. The idea is that, as this state is maintained off-chain, there’s no need to store the data on the blockchain. The key differentiator of rollups from Plasma, however, lies in the way that transactions are submitted to the main chain. Using a special transaction type, a large number of transactions can be “rolled up” (bundled) together into a special block called a Rollup block.
There are two types of rollup: Optimistic and ZK Rollup. Both guarantee the correctness of state transitions in different ways.
ZK Rollups submit transactions using a cryptographic verification method called a zero-knowledge proof. More specifically, an approach to it called a zk-SNARK. We won’t get into the details of how it works here, but here’s how it can be used for rollups. It’s a way for different parties to prove to each other that they have a particular piece of information without revealing what that information is.
In the case of ZK Rollups, this information is state transitions that are submitted to the main chain. A great advantage of this is that this process can happen almost instantly, and there’s virtually no chance for corrupted state submissions.
Optimistic Rollups sacrifice some scalability for more flexibility. By using a virtual machine called the Optimistic Virtual Machine (OVM), they allow for smart contracts to run on these secondary chains. On the other hand, there’s no cryptographic proof that the state transition submitted to the main chain is correct. To mitigate this issue, there’s a slight delay to allow users to challenge and reject invalid blocks submitted to the main chain.
What is Ethereum Proof of Stake (PoS)?
Proof of Stake (PoS) is an alternative method to Proof of Work for validating blocks. In a Proof of Stake system, blocks aren’t mined, as such, but minted (sometimes referred to as forged). Instead of miners competing with hash power, a node (or validator) is periodically chosen at random to validate a candidate block. If done correctly, they will receive all of that block’s transaction fees and, depending on the protocol, possibly a block reward.
Since there’s no mining involved, Proof of Stake is regarded as less harmful to the environment. Validators don’t consume nearly as much energy as miners, and can instead mint blocks on consumer-grade hardware.
Ethereum is scheduled to transition from PoW to PoS as a part of Ethereum 2.0, with an upgrade known as Casper. Though an exact date has yet to be formalized, the first iteration will likely be launched in 2020.
What is Ethereum staking?
In Proof of Work protocols, the security of the network is assured by miners. The miners won’t cheat, as it would waste electricity and cause them to lose out on potential rewards. In Proof of Stake, there is no such game theory, and different cryptoeconomic measures are in place to ensure network security.
Instead of the risk of wastage, what prevents dishonest conduct is the risk of losing funds. Validators must put forward a stake (meaning a token holding) to be eligible for validation. This is a set amount of ether that’s lost if the node attempts to cheat, or is slowly depleted if the node is unresponsive or offline. However, if the validator runs additional nodes, they stand to gain more rewards.
How much ETH do I need to stake on Ethereum?
The estimated minimum stake for Ethereum is 32 ETH per validator. This is set so high to render the cost of attempting a 51% attack extremely high.
How much ETH can I earn by staking on Ethereum?
This isn’t a simple question to answer. This is based on, of course, your stake, but also on the total amount of ETH staked on the network and the inflation rate. As a very rough estimate, the current calculations project about 6% yearly returns. Keep in mind that this is just an estimation, and might change in the future.
How long is my ETH locked up when staking?
There’s going to be a queue for withdrawing your ETH from your validator. If there’s no queue, the minimum withdrawal time is 18 hours, but it’s dynamically adjusted based on how many validators are withdrawing at a given time.
Is there a risk to staking ETH?
Since you’re a validator on the network that’s responsible for maintaining network security, there are some risks to consider. If your validator node goes offline for an extended period, you may lose a considerable portion of your deposit. Also, if your deposit drops below 16 ETH at any point, you’ll be removed from the validator set.
It’s also worth considering a more systemic risk factor. Proof of Stake hasn’t been implemented on such a scale before, so we can’t be entirely sure that it won’t fail somehow. Software is always going to have bugs and vulnerabilities, and this can have a devastating effect – especially when billions of dollars of value are at stake.
Chapter 5 - Ethereum and Decentralized Finance (DeFi)
Will Decentralized Finance (DeFi) ever reach the mainstream?
What is Decentralized Finance (DeFi)?
Decentralized Finance (or simply, DeFi) is a movement that aims to decentralize financial applications. DeFi is built on public, open-source blockchains that are free to access by anyone with an Internet connection (permissionless). This is a crucial element for onboarding potentially billions of people to this new, global financial system.
In the growing DeFi ecosystem, users interact with smart contracts and each other through peer-to-peer (P2P) networks and Decentralized Applications (DApps). The great advantage of DeFi is that while it makes all this possible, users still maintain ownership of their funds at all times.
Simply put, the Decentralized Finance (DeFi) movement aims to create a new financial system that’s free from the limitations of the current one. As it happens, due to its relatively high degree of decentralization and large developer base, most of DeFi is currently being built on Ethereum.
What can Decentralized Finance (DeFi) be used for?
You probably already know, but one of the great advantages of Bitcoin is that no central party is needed to coordinate the operation of the network. But what if we use this as our core idea and make programmable applications on top of it? This is the potential of DeFi applications. No central coordinators or intermediaries, and no single points of failure.
As mentioned above, one of the great advantages of DeFi is open access. There are billions of people around the world who don’t have good access to any type of financial services. Can you imagine how you’d manage your day-to-day without any certainty of your finances? There are billions of people who live like this, and ultimately, this is the demographic that DeFi is trying to serve.
Will Decentralized Finance (DeFi) ever reach the mainstream?
This all sounds great, so why hasn’t DeFi taken over the world yet? Well, currently, most DeFi applications are hard to use, clunky, break frequently, and highly experimental. As it turns out, engineering even the frameworks for this ecosystem is extremely difficult, especially in a distributed development environment.
Solving all the challenges of building the DeFi ecosystem is a long road ahead for software engineers, game theorists, mechanism designers, and many more. As such, whether DeFi applications ever make it to mainstream adoption remains to be seen.
What Decentralized Finance (DeFi) applications are there?
One of the most popular use cases for Decentralized Finance (DeFi) is stablecoins. Essentially, these are tokens on a blockchain with their value pegged to a real-world asset, such as a fiat currency. For example, BUSD is pegged to the value of the USD. What makes these tokens convenient to use is that since they exist on a blockchain, they are very easy to store and transfer.
Another popular type of application is lending. There are many peer-to-peer (P2P) services that allow you to lend your funds to others and collect interest payments in return. In fact, one of the easiest ways to do it is through Binance Lending. All you have to do is transfer your funds to your lending wallet, and you can start earning interest the next day!
Arguably the most exciting part of DeFi, however, are the applications that are difficult to categorize. These can include all kinds of peer-to-peer, decentralized marketplaces, where users can exchange unique crypto-collectibles and other digital items. They can also enable the creation of synthetic assets, where anyone can create a market for pretty much anything that has value. Other uses can include prediction markets, derivatives, and many more.
Decentralized Exchanges (DEXs) on Ethereum
A Decentralized Exchange (DEX) is a venue that allows trades to occur directly between user wallets. When you trade on Binance, a centralized exchange, you send your funds to Binance, and trade through its internal systems.
Decentralized Exchanges are different. Through the magic of smart contracts, they allow you to trade directly from your crypto wallet, eliminating the possibility of exchange hacks and other risks.
A great example of a decentralized exchange is Binance DEX. Some other notable examples built on Ethereum are Uniswap, Kyber Network, and IDEX. Many will even let you trade from a hardware wallet for maximum security.
Centralized vs. decentralized exchanges.
Above, we’ve illustrated the differences between centralized and decentralized exchanges. To the left, we can see that Binance stands in the middle of transactions between users. So, if Alice wants to trade Token A for Bob’s Token B, they must first deposit their assets onto the exchange. After the trade, Binance will reallocate their balances accordingly.
To the right, however, is a decentralized exchange. You’ll note that there isn’t a third party involved in the transaction. Instead, Alice’s token is directly swapped for Bob’s by using a smart contract. In this way, neither party needs to trust an intermediary, as the terms of their contract are automatically enforceable.
As of February 2020, DEXs tend to be the most-used applications on top of the Ethereum blockchain. However, the trading volume compared to centralized exchanges is still small. Nonetheless, if DEX developers and designers flesh out the user experience to be more welcoming, DEXs could rival centralized exchanges in the future.
Chapter 6 - Participating in the Ethereum Network
What is an Ethereum node?
“Ethereum node” is a term that can be used to describe a program that interacts with the Ethereum network in some way. An Ethereum node can be anything from a simple mobile phone wallet application to a computer that stores an entire copy of the blockchain.
All nodes work as a communication point somehow, but there are different types of nodes on the Ethereum network.
How does an Ethereum node work?
Ethereum, unlike Bitcoin, doesn’t have a single program as its reference implementation. Where the Bitcoin ecosystem has Bitcoin Core as its primary node software, Ethereum has a range of individual (but compatible) programs based on its Yellow Paper. Popular options include Geth and Parity.
Ethereum full nodes
To interface with the Ethereum network in a way that allows you to validate blockchain data independently, you need to run a full node using software like the ones mentioned above.
The software will download blocks from other nodes and verify if the transactions included are correct. It will also run all of the smart contracts that have been called to ensure that you’re receiving the same information as other peers. If all is working as intended, we can expect every node to have an identical copy of the blockchain on their machines.
Full nodes are vital to the functioning of Ethereum. Without multiple nodes spread around the globe, the network would lose its censorship-resistant and decentralized properties.
Ethereum light nodes
Running a full node allows you to contribute directly to the health and security of the network. But a full node often requires a separate machine to operate as well as occasional maintenance. Light nodes might be a better option for the users that are unable to run a full node (or that simply prefer not to do it).
As the name might suggest, light nodes are lightweight – they use less resources and take up minimal space. As such, they can run on lower-spec devices like phones or laptops. But these low overheads come at a cost: light nodes are not entirely self-sufficient. They don’t sync the blockchain in full and therefore require full nodes to feed them relevant information.
Light nodes are popular amongst merchants, services, and users. They’re used extensively for making and receiving payments in scenarios where full nodes are deemed unnecessary and too costly to run.
Ethereum mining nodes
A mining node can be either a full client or a light one. The term “mining node” isn’t really used as it is in the Bitcoin ecosystem, but it’s nonetheless worth identifying these participants.
To mine Ethereum, users need additional hardware. A common practice involves the construction of a mining rig. With these, users connect multiple GPUs (graphics processing units) together to hash data at high speeds.
Miners have two options: mining solo, or in a mining pool. Solo mining means that the miner works alone to create blocks. If they’re successful, they do not share their mining rewards with anyone. Alternatively, when joining a mining pool, they combine their hashing power with that of other users. This will make them more likely to find a block, but they’ll also need to share their rewards with pool members.
How to run an Ethereum node
One of the great aspects of blockchains is open access. This means that anyone can run an Ethereum node and strengthen the network by validating transactions and blocks.
Similarly to Bitcoin, there are a number of businesses that offer plug-n-play Ethereum nodes. This might be the best option if you’d just like to get a node up and running – however, be prepared to pay extra for the convenience.
As mentioned, Ethereum has a number of different node software implementations, such as Geth or Parity. If you’d like to run your own node, you’ll need to get familiar with the setup process for the implementation you choose to run.
Unless you’d like to run a special node called an archival node, a consumer-grade laptop should suffice for running an Ethereum full node. At the same time, it’s best not to use your day-to-day machine, as it could slow it down significantly.
Running your own node works best on devices that can always be online. If your node goes offline, it might take a considerable amount of time for it to synchronize with the network once it’s online again. As such, the best solutions are devices that are cheap to build and easy to maintain. For example, you can run a light node on even a Raspberry Pi.
How to mine on Ethereum
As the network is soon to transition to Proof of Stake, mining on Ethereum isn’t the safest long-term bet. After the transition happens, Ethereum miners will likely point their mining equipment to another network or sell it entirely.
Even so, if you’d like to participate in Ethereum mining, you’re going to need specialized hardware, such as GPUs or ASICs. If you’re looking for reasonable returns, you’ll most likely require a custom mining rig and access to cheap electricity. In addition, you’ll need to set up an Ethereum wallet and configure the mining software to use it. This all requires a significant investment of time and money, so carefully consider if you’re up for the challenge.
What is Ethereum ProgPoW?
ProgPoW stands for Programmatic Proof of Work. It’s a proposed extension of the Ethereum mining algorithm, Ethash, that’s designed to make GPUs more competitive with ASICs.
ASIC-resistance has been a heavily debated topic for years in both the Bitcoin and the Ethereum community. In the case of Bitcoin, ASICs have become the dominant mining force on the network.
On Ethereum, however, ASICs are present but much less prominent – a considerable portion of miners are still using GPUs. This situation might change soon, though, as more and more companies bring Ethereum ASIC miners to the market. But why could ASICs pose a problem?
For one thing, ASICs could drastically reduce the decentralization of the network. If GPU miners aren’t profitable and have to shut down their mining operations, the hash rate could concentrate in the hands of only a handful of miners. What’s more, developing ASIC chips is costly, and only a few companies have the capabilities and resources to do so. This creates a threat of monopolization on the manufacturing side by potentially centralizing the Ethereum mining industry in the hands of a few corporations.
The integration of ProgPow has been a topic of controversy since 2018. While some think it could be healthy for the Ethereum ecosystem, others are opposed to it due to the potential of it causing a hard fork. With the coming transition to Proof of Stake, it remains to be seen whether ProgPow is ever implemented on the network.
Who develops the Ethereum software?
Like Bitcoin, Ethereum is open-source. Anyone is free to participate in the development of the protocol itself, or to build applications on top of it. In fact, Ethereum currently has the largest developer community in the blockchain space.
Resources such as Andreas Antonopoulos and Gavin Wood’s Mastering Ethereum and Ethereum.org’s Developer Resources are excellent starting points for developers that want to get involved.
What is Solidity?
Essentially, Solidity is what makes it possible for developers to write code that can be broken down into instructions that the Ethereum Virtual Machine (EVM) can understand. If you’d like to get a better understanding of how it works, the Solidity GitHub is a good place to start.
It should be noted that Solidity is not the only language available to Ethereum developers. Another popular option is Vyper, which more closely resembles Python in its syntax.