Course Introduction

Learn the origins of Bitcoin and how Bitcoin is different from the current financial system.

Welcome to “Ethereum and Solidity from Scratch!" We are beginning an exciting journey of learning to use one of the most innovative and groundbreaking technologies of the last decade. Ethereum is a new application platform that has already been used to develop a myriad of new applications.

Why learn Ethereum?

But why should anyone take this course in the first place?

We think there are at least a few good reasons to learn Ethereum.

Firstly, Ethereum is one of the most fast-growing and exciting fields, and it's on track to disrupt multiple businesses. For example, it has already become a foundation for a thriving ecosystem of decentralized finance (DeFi), a radically new approach to building an efficient and open financial infrastructure.

Secondly, Ethereum developers are in high demand and can command high salaries for their work. Learning Ethereum is an excellent opportunity to acquire in-demand skills and position ourselves to benefit from the growing interest in the field.

Lastly, the skills taught in this course will be applicable even when writing applications on other similar platforms.

Course overview

This course is first and foremost about building applications on Ethereum. We'll learn how to build and deploy various applications, starting from very simple projects and going all the way to building our web application on top of Ethereum.

To use technology efficiently, it's essential to have at least rudimentary knowledge of how it works under the hood. And this is especially important when learning Ethereum. This is why, in this course, we'll also learn the fundamentals of how Ethereum works.

Prior knowledge of Ethereum or blockchain is not required for this course, but a learner should be familiar with at least one programming language to get the most out of it. We'll also use a bit of JavaScript closer to the end of the course, but there's no need to have experience with it to understand code examples.

History of blockchain

It's unusual to start a programming course with a history lesson, so why are we doing it here? We think that the best way to understand Ethereum is to learn it in the context of the problems it meant to solve, and the easiest way to do this is to learn about its predecessor: Bitcoin. Like Ethereum, Bitcoin is based on a revolutionary technology called blockchain that underpins its implementations.

Bitcoin emerged amid the Great Recession financial crisis. In 2008, a pseudonymous person under the name of Satoshi Nakamoto published a whitepaper describing a new way of implementing a digital payments system. This whitepaper described a peer-to-peer payment network with its own digital currency and proposed a radically new implementation.

Before Bitcoin, all payments were made through intermediaries such as banks and financial companies. These entities control access to users’ funds and provide their services for a fee. Such systems are sometimes called centralized because there's a single entity controlling access to data and providing users with access to it.

Bitcoin turned this model on its head. Instead of having centralized institutions providing access to users’ funds, Bitcoin was developed as a peer-to-peer network where users can send payments to each other without intermediaries. Bitcoin also has its own digital currency called bitcoin (lowercase), which is not backed by any government or organization. Such currencies are also called cryptocurrencies because they're backed only by computer code and cryptography.

Peer-to-peer payment network
Peer-to-peer payment network

Creating a purely digital peer-to-peer currency is fundamentally a very tough problem. To be useful, money is something that should have a limited quantity, but in the digital realm, nothing is preventing us from making a copy of whatever data we have. If we have an image on our computer, we can send it to our friends and do it as often as we like. So what would prevent us from copying digital money? The possibility of spending the same money multiple times is also called a double-spend problem, clearly not something we want to have in our payments system.

Bitcoin was the first project that solved this problem by introducing a new approach that allowed to implement a payment network without a centralized intermediary. This was made possible due to two major innovations:

  • Blockchain—a global and publicly available data structure that, in Bitcoin, is used to record all transactions performed in the system.

  • Nakamoto consensus—an algorithm that allowed all nodes on the network to maintain a single shared state without relying on a central leader.

How these innovations work is beyond the scope of the introductory lesson, but we'll come back to these topics in more detail later in this course.

Bitcoin is a network of computers (also called nodes) that process payments in bitcoin currency. Anybody is free to join the network, and at the same time, nobody is controlling the network. Network nodes and their operators are anonymous and don’t need to disclose their identity.

But can we trust some anonymous people on the Internet running a payment network? It turns out that we don’t have to! With a centralized system, such as a bank, users have to trust an entity that provides services. They would need to trust that a company or an institution would follow the law and keep its promises. The only recourse users have is litigation, a long and complicated process.

In the case of Bitcoin, the rules are defined by a computer code, and no single participant can change the rules. All that individual participants can do is enforce these rules, but they can’t break them. Such systems are also called trustless because we don’t need to trust any particular participant, since they can’t break the rules enforced by the system as a whole.

The other concept that Bitcoin introduced was digital scarcity. Something can be digital like bitcoin currency and yet be scarce and exist in limited quantity. In the case of Bitcoin, the system enforces a hard limit that there will only ever be twenty one million bitcoins, and there is no way to go above this number.

A new financial system

However, why do we need a new payment network, and why should it be based on a new approach? We already have an established financial system, so it might not be obvious why someone would want to reinvent the wheel. As it turns out, there are a few issues with the current financial system that provided the impetus to look for alternative solutions:

  • High fees: For example, a merchant should pay a fee of around 3% on all the payments they receive, a high fee on international money transfers, etc.

  • Slow transactions: Transferring money from one country to another can take multiple days.

  • Huge unbanked population: Almost two billion people worldwide don’t have access to banking services and can’t fully participate in the global economy.

  • Lack of interoperability: Different products are not integrated and have high switching costs.

  • Lack of transparency of financial institutions: The operation of financial institutions is opaque.

A system like Bitcoin aimed at creating an alternative financial system that would be more open, transparent, efficient, and accessible:

  • No gatekeepers: Anybody can join and use Bitcoin; there are no barriers to entry.

  • Auditability: Anybody can download a complete history of transactions and verify that the system is following the rules.

  • No single point of failure: There's no single computer, or even company, that needs to be online to keep the system working.

  • Decentralization: There's no need to rely on centralized intermediaries such as banks. Instead, users can make payments to one another directly.

  • Trustless: There's no need to trust individual actors. The rules are defined by the shared code and enforced by the network.

  • Fast and global transfers: Bitcoin can be used to send funds anywhere in the world and only needs an internet connection.

  • Users own their funds: Nobody has the power to limit access to a user’s funds.

Bitcoin became the first decentralized global currency. Millions of people use it as a means of exchange and store of value across the world. However, as with any other technology, blockchain technologies were developing further. Innovators who tried to use Bitcoin in their projects soon faced its limitations and started to look for alternative solutions.

Summary

In this lesson, we’ve taken a first look at blockchain technologies and cryptocurrencies. We’ve looked at the brief history of Bitcoin, what problems it aimed to solve, and what innovations made it possible. In the next lesson, we'll learn about its limitations and how it resulted in the development of other blockchain projects.