Blockchain Scalability and its Foundations in Distributed Systems

Description

Blockchain promises to disrupt industries once it will be efficient at large scale. In this course, you will learn how to make blockchain scale. You will learn about the foundational problem of distributed computing, consensus, that is key to create blocks securely. By illustrating limitations of mainstream blockchains, this course will indicate how to improve the technology in terms of security and efficiency.

In particular, this course will help you:
* understand security vulnerabilities of mainstream blockchains;
* design consensus algorithms that tolerate attacks, and;
* design scalable blockchain systems.

What you will learn

Consensus in blockchain

This week, we will start our exploration of the blockchain and its relation to distributed computing. In particular, we will learn the basics on blockchain abstraction and the importance of consensus between machines in order to mitigate the risks of having an attacker spend the same asset twice – an undesirable situation called ‘double-spending’.

Blockchain fundamentals

This week we will learn how classic blockchains try to solve consensus. We will look at the failures and delays blockchain systems must consider, and how these events may prevent machines from reaching consensus.

Consensus fundamentals

This week, we will investigate how to solve the consensus problem. To do this, we will first investigate how to solve consensus when failures cannot occur in the network. Later on, we will learn how to solve consensus when processes may fail, first through crash failures and then when processes can behave arbitrarily.

Making blockchains secure

This week, we will investigate how delays in the network can impact the security of the blockchain. We will illustrate this using network attacks that allow hackers to steal digital assets in the past and that every blockchain designer should be aware of.

What’s included