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.
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:
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.
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).
* 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).
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|