Motivated by the wide success of Bitcoin, recent years have witnessed the surge of a considerable number of blockchains, such as Dogecoin, Ripple, Ethereum, Corda, Fabric, Chain, Solana, and Dfinity, among many others. Blockchains instantiate decentralized platforms and are typically comprised of three main layers: the network layer that manages information exchange, a consensus layer used to reach information agreement, and finally, a smart contract layer that executes decentralized applications (a.k.a. Dapps). By removing the need for trusted third parties, decentralized technologies promise drastic cost reductions and enhanced security compared to their centralized counterparts. They also enable open access and participation and promote transparency. For these reasons, decentralized platforms are rapidly gaining ground as a key technology in a rich set of applications beyond cryptocurrencies, especially in the financial and retail sectors.
During this course, students are expected to design and implement their very own decentralized platform “from scratch”, using a programming language of their choice. The first half of the course focuses on developing a basic working decentralized platform, which we break up into three essential components: implementing a peer-to-peer gossip protocol, the consensus layer, and basic smart contract functionality. The programming is aided by existing open-source libraries and tools. In the second half, the students will specialize. Based on the field's literature, they will extend their platform with security or privacy-enhancing features on the chosen layer. In this half of the course, the students are entirely free to choose which layer they want to specialize in. Finally, the students will present their design choices and demonstrate their decentralized platform. The students are allowed to work in groups of up to two people.
- Kursleiter/in: Ghassan Karame