Blockchain and Distributed Ledger Technologies

Master of Science in Computer Science
Master of Science in Cybersecurity
Sapienza University of Rome
Academic year 2023-24

Welcome to the website of “Blockchain and Distributed Ledger Technologies”, a course of the MSc programmes in
Computer Science and Cybersecurity at the Sapienza University of Rome.

Course information at a glance

📆 Course start: Thursday 26 September 2023
📇 Course schedule: Weekly on Tuesday, from 4 pm to 7 pm, and Wednesday, from 5 to 7 pm (CEST) during the Winter Semester of a.y. 2023-24
🏛️ Course location: Viale Regina Elena 295, 00161 Rome, Italy, Aula Magna (Building C, RM111)
📖 Course log, material and exercises: Google Classroom (registration required with your institutional Google account @studenti.uniroma1.it: course code xib55hn)
🎥 Live broadcast: via Meet (available only for subscribers to the Google Classroom at https://meet.google.com/xtq-vvbs-von)
👨 Instructor: Claudio Di Ciccio (contact details), associate professor at the Department of Computer Science of Sapienza University of Rome, Italy

Course description

Introduction

Blockchains emerged as a novel, game-changing paradigm for the distributed management of transactional systems. A blockchain is a protocol for the decentralised storage of a tamper-proof sequence of transactions (ledger), maintained and verified by the nodes participating in the network. The sequence of transactions corresponds to the actions that modify the status of the blockchain. A combination of peer-to-peer networks, consensus-making, cryptography, and market mechanisms is at the core of blockchains, which thereby ensure data integrity and transparency and propel a new paradigm known as cryptoeconomics. First-generation blockchains such as Bitcoin mainly focus on the exchange of electronic cash through cryptocurrencies. Second-generation blockchains such as Ethereum support so-called smart contracts, that is, executable code expressing how business is to be conducted among contracting parties (e.g., transfer digital assets after a condition is fulfilled). The number of advantages brought by this new capability led to an array of blockchain-based platform services catering for processes in the financial sector, the management of identities, energy distribution and supply chains, among others. The design of a secure, verifiable and efficient blockchain-based application requires the capability of properly architecting the behavioural structures among the involved parties. 

Objectives

Students will learn the basics of blockchain technologies and the interplay of the underlying techniques that lead to the immutability, persistency, security and eventual consistency of the blockchain platforms. Furthermore, they will learn how to encode smart contracts and, thereupon, create full-stack Decentralised Applications (DApps). To properly design DApps and the token systems they rely upon, learners will apply the principles of process behaviour modelling and execution. To that end, an overview of cybersecurity challenges will also be provided. Furthermore, the learners will look at the covered topics from a legislative standpoint in order to consider normative challenges, including compliance with users’ privacy.

Teaching methods

The course will combine alternative ways to deliver the topics to students. On the one hand, a classical frontal-lecture style approach will be adopted to present the fundamental notions and case studies; on the other hand, students will have to solve hands-on exercises in class and as homework. At the end of the course, students will present the outcome of their teamwork in which a DApp is devised, designed and implemented.

Evaluation

The evaluation will be based on:

Prerequisites

Basic knowledge of mathematics, algebra and computer science acquired during the Bachelor of Science in Computer Science or Applied Computer Science and Artificial Intelligence are necessary. In particular, the students should be knowledgeable in the concepts of:

Course contents

The course will consist of three main parts: 1) fundamentals of blockchains and their underlying technologies; 2) smart contracts programming; 3) development of a full-stack blockchain-based application. More in detail, the course content will be based on the following subjects, although the specific contents could be subject to modifications:

Other topics will be discussed during the course are:

References

Suggested readings