Blockchain Scalability and its Foundations in Distributed Systems (Coursera)

Blockchain Scalability and its Foundations in Distributed Systems (Coursera)

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Syllabus

WEEK 1
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'.

WEEK 2
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.

WEEK 3
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.

WEEK 4
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.

WEEK 5
Making blockchains scale
This week, we will explore how to design a scalable and secure blockchain algorithm. What makes a blockchain algorithm scalable and secure? To be secure, we need a consensus algorithm that works over the Internet and is not affected by unexpected communication delays. To be scalable, we need to get rid of the bottlenecks.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introducción a la Minería de Datos (Coursera) Coursera
Pontificia Universidad Católica de Chile

Introducción a la Minería de Datos (Coursera)

En este curso, aprenderás de manera gradual y práctica los conceptos básicos de Minería de Datos, junto a los algoritmos más utilizados hoy en día. Al finalizar el curso, serás capaz de entender la importancia de manejar la información y de explorar por ti mismo distintas bases de datos reales. Este curso es el primer paso para convertirte en un/a profesional con habilidades básicas de un científico de datos o Data Scientist, de manera tal que puedas abrirle la puerta al futuro.

Oct 5th 2026
5-12 Weeks
Introduction to User Experience Design (Coursera) Coursera
Georgia Institute of Technology

Introduction to User Experience Design (Coursera)

The focus of this course is to introduce the learner to User Experience (UX) Design. User Experience design is design that is user centered. The goal is to design artifacts that allow the users to meet their needs in the most effective efficient and satisfying manner. The course introduces the novice to a cycle of discovery and evaluation and a set of techniques that meet the user's needs.

Oct 5th 2026
5-12 Weeks
Algorithmic Thinking (Part 1) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 1) (Coursera)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Oct 5th 2026
4 Weeks
Excel/VBA for Creative Problem Solving, Part 2 (Coursera) Coursera
University of Colorado Boulder

Excel/VBA for Creative Problem Solving, Part 2 (Coursera)

Excel/VBA for Creative Problem Solving, Part 2" builds off of knowledge and skills obtained in "Excel/VBA for Creative Problem Solving, Part 1" and is aimed at learners who are seeking to augment, expand, optimize, and increase the efficiency of their Excel spreadsheet skills by tapping into the powerful programming, automation, and customization capabilities available with Visual Basic for Applications (VBA).

Oct 5th 2026
4 Weeks
Code Yourself! An Introduction to Programming (Coursera) Coursera
University of Edinburgh,Universidad ORT Uruguay

Code Yourself! An Introduction to Programming (Coursera)

Have you ever wished you knew how to program, but had no idea where to start from? This course will teach you how to program in Scratch, an easy to use visual programming language. More importantly, it will introduce you to the fundamental principles of computing and it will help you think like a software engineer.

Sep 28th 2026
5-12 Weeks
Programming Fundamentals (Coursera) Coursera
Duke University

Programming Fundamentals (Coursera)

Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class.

Oct 5th 2026
4 Weeks
Programming Reactive Systems (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Programming Reactive Systems (Coursera)

Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems. The basic building-block of such systems is event handlers. This course teaches how to implement reactive systems in Scala by using high-level abstractions based on event-handlers. You will learn how to: use, transform and sequence asynchronous computations using Future values; write concurrent systems based on Actors, using untyped Akka and Akka Typed; design systems resilient to failures; implement systems that can scale out according to a varying workload; transform and consume infinite and intermittent streams of data with Akka Stream; understand how back-pressure controls flows of data

Oct 5th 2026
5-12 Weeks
Social and Economic Networks: Models and Analysis (Coursera) Coursera
Stanford University

Social and Economic Networks: Models and Analysis (Coursera)

Learn how to model social and economic networks and their impact on human behavior. How do networks form, why do they exhibit certain patterns, and how does their structure impact diffusion, learning, and other behaviors? We will bring together models and techniques from economics, sociology, math, physics, statistics and computer science to answer these questions.

Sep 28th 2026
5-12 Weeks