SAN Seminar 2018/2019 (2IMN00)

THE UPDATED COURSE MATERIAL IS ON CANVAS

The goal of a seminar course is to give you an impression of what kind of work is conducted at a particular group at our Computer Science department. This year the seminar of our SAN (System Architecture and Networking) group is on blockchains and smart contracts. After the course you should be able to:

The course consists of two parts: a research part and a practical part.

Research

For the research part you will study existing literature to answer one of several research questions that will be provided. The results will be reported in a 2-4 page paper.

Examples of research questions:

Note that the list is not complete yet and may change before the course starts.

Practical

For the practical part you will design and implement an Ethereum smart contract that will serve as a backend for a web application: a market place for sharing home cooked food.

You will develop a basic app and an extended app. The basic app should satisfy the following requirements:

For the extended app you will design and implement one of the following extensions:


Screenshots of the front end.

The front end (implemented in HTML + CSS + Javascript + Riot.js and deployed on an Express.js webserver) will be provided to you. Your task will be to implement the backend on the Ethereum blockchain and interface with it. You will work with the following programming languages/tools:



The decentralised application.

The deliverables will be the source code and a poster (that you will also present).

The aim is to select the best app and launch it after the course!

Organization

A seminar is not a regular course where you get lectures on a particular topic. You will be provided with some pointers and will be expected to work independently. We will have weekly meetings where you will report your status and have the opportunity to ask questions. You are required to attend these meetings.

Week Day Lesson Deadline (at 23:59)
1 (12.11) Wednesday intro
Friday standup
2 (19.11) Wednesday
Friday standup
3 (26.11) Wednesday
Friday standup
4 (03.12) Wednesday
Friday standup paper
5 (10.12) Wednesday
Friday standup paper peer review
6 (17.12) Wednesday paper (final)
Friday standup
(24.12) Wednesday Christmas break
Friday
(31.12) Wednesday Christmas break
Friday
7 (07.01) Wednesday poster
Friday standup poster peer review, code
8 (14.01) Wednesday poster presentations poster (final)
Friday

Prerequisites

As preparation you are encouraged to look at Ethereum (read the white paper and the documentation on how to program Ethereum smart contracts in solidity) and blockchains in general. There are no prerequisite subjects, but you should know about distributed systems (e.g. 2IMN10 on Architecture of Distributed Systems). The Information Security Basics (2AC10) and Networks and security (3USU0) provide an introduction to the standard cryptoraphic promitives and their application in the Bitcoin blockchain.

This year the Networks and security (3USU0) course will cover the Bitcoin on November 26 at 08:45 - 10:30, December 26 at 08:45 - 10:30, and December 6 at 14:30 - 16:15 (the location t.b.a.). You are encouraged to attend these lectures.

References

  1. Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, 2008 (Bitcoin White Paper)
  2. Vitalik Buterin, A Next Generation Smart Contract & Decentralized Application Platform, 2013 (a maintained version on GitHub) (Ethereum White Paper)
  3. Leslie Lamport, Robert Shostak, Marshall Pease, The Byzantine Generals Problem, 1982
  4. M. Fischer, N. Lynch, M. Paterson, Impossibility of distributed consensus with one faulty process, 1985
  5. Gavin Wood, Ethereum: A Secure Decentralised Generalised Transaction Ledger Byzantium Version, 2014 (Ethereum Yellow Paper)
  6. Vitalik Buterin, Ethereum 2.0 Mauve Paper, 2016
  7. Gavin Wood, Polkadot: Vision For A Heterogeneous Multi-chain Framework, 2016
  8. Boris Skoric, A short introduction to Bitcoin (Reader for 3USU0), 2018
  9. Elixxir, Elixxir Technical Brief, 2018
  10. Juan Benet, IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3), 2015
  11. Tara Vancil, How Merkle Trees Enable the Decentralized Web, 2018

Contact

If you have any questions, don't hesitate to email Mike Holenderski.