Back to top

Blockchain-based Systems Engineering

Course overview

Recorded Lectures

In this lecture, we provide an overview of Blockchain systems and systems engineering, focusing on technical details and applications of blockchain systems. We introduce cryptographic hash functions and present their properties. Then the data structure and the working principles of the Bitcoin blockchain are investigated in detail. We analyze the Proof of Work consensus mechanism of Bitcoin and illustrate the mining scheme. Following this, we demonstrate the system architecture of the Ethereum blockchain with a focus on the Ethereum Virtual Machine and smart contracts. Subsequently, the Solidity language is explained in terms of syntax, types, and design. Ethereum decentralized applications(dApps) are illustrated with current standards and frameworks, and specifics to dApp developments are introduced. Alternative approaches to distributed ledger technologies in the enterprise space are also discussed. Accordingly, the Hyperledger project and the framework Fabric are unfolded, together with Corda. We inspect the risks, challenges, and limitations of the technology and present an overview of the current state of the blockchain ecosystem.

Recorded Exercises

In the exercise, we focus on the complementary practical application of knowledge gained in the lecture. We are further investigating functionality and scripting in Bitcoin, further understand consensus algorithms and understand the implications of design decisions in public and private Blockchain-based systems. Further, we investigate Smart Contract design patterns and make a deep dive into Solidity by developing dApps. In private Blockchains, we focus on Hyperledger Composer and Croda to get a solid understanding of applications in enterprise environments.

Registration in TUMonline.

Recorded lectures and exercises may be found in Github

Updated lecture slides, exercises, and solutions sheets may be found in Moodle

Content and Goals

Blockchain technology and, in general, distributed ledger technology (DLT) provides the technical foundation for the development and usage of innovative, decentralized distributed systems. In this lecture, we analyze the characteristics of these technologies. Additionally, students should be empowered to analyze and develop Blockchain-based solutions. Following contents are going to be covered:

  • Cryptographic basics
  • Peer to peer-networks
  • Data structure and setup of Blockchain
  • Consensus mechanisms
  • Smart contracts & smart contract Engineering
  • Use cases of digital ledger technologies
  • Alternative DLT approaches
  • Risks, challenges, and limitations of the technology
  • Trends and developments in Blockchain

Goals: After the successful participation in this module, the students are able to analyze Blockchain-based application systems. Further, they are able to create these systems for given use cases and to select an appropriate technology. They understand the technological foundations such that they are enabled to comprehend and assess alternative distributed ledger technologies.

Prerequisites

  • IN0002: Fundamentals of Programming
  • IN0006: Introduction to Software Engineering
  • IN0009: Basic Principles: Operating Systems and System Software

Teaching and Learning Method: Online flipped classroom 

1. You may watch the recorded lectures and exercises found in Github during the week (2.5h) *.
2. During the week, you may post your questions in Moodle .
3. At the end of the week, everyone joins a flipped classroom live session where we answer and discuss some of your posted questions (1.5h).

To pace your progress, each week go over the weekly-content in Moodle and the corresponding recorded lectures in Github before each live session.

* A week in this lecture "starts" on Thursday and "ends" on Wednesday with the flipped classroom live session.

You can only post questions until noon of the day before the live session, i.e. because live sessions are on Wednesday, you may only post questions until noon of the immediate day before (Tuesday).

Schedule Summer Term 2021: Live sessions

Connect on the 20th of April from 12:15 to 13:45 to be on-boarded with the organization and introduction to BBSE.

From then on, connect every Wednesday from 16:15 to 17:45 for the flipped classroom session. Moodle

Exception: On calendar week 27, the flipped classroom takes place on Tuesday 6th of July from 12:15 to 13:45, and the guest lecture on Wednesday 7th from 18:00 to 19:00.

Calendar week Date and hour of life session Life session topic
16 Tuesday 20.04, 12:15-13:45 Organization and introduction
17 Wednesday 28.04, 16:15-17:45 Cryptographic basics
18 Wednesday 05.05, 16:15-17:45 Bitcoin basics
19 Wednesday 12.05, 16:15-17:45 Bitcoin script
20 Wednesday 19.05, 16:15-17:45 Consensus in Bitcoin
21 Wednesday 26.05, 16:15-17:45 Bitcoin assessment
22 Wednesday 02.06, 16:15-17:45 Ethereum basics
23 Wednesday 09.06, 16:15-17:45 Ethereum smart contracts
24 Wednesday 16.06, 16:15-17:45 Ethereum design patterns
25 Wednesday 23.06, 16:15-17:45 Ethereum dApps
26 Wednesday 30.06, 16:15-17:45 Hyperledger
27 Tuesday 06.07, 12:15-13:45 Corda
27 Wednesday 07.07, 18:00-19:00 Guest lecture
28 Wednesday 14.07, 16:15-17:45 Exam preparation