CPSC 601: Blockchain and its Uses (Spring 2018)
| General Information
Instructor: Joel Reardon, ICT 642,
e-mail joel.reardon [at] ucalgary [dot] ca
Lectures: TR 13:00--15:45 in ST 061
from 2018.05.08 to 2018.06.30
This will be a seminar course targetted for graduate students to learn
about research in the space of the blockchain. How blockchain works at the detail of
hash functions and chaining, what it does as consensus finding mechanism,
bitcoin as an application of it to motivate, then an more breadth
exploration of proposed areas where it can be used in public and private
spheres, such as irrevocable and automatic contracts, land leasing and
ownership, supply chain managment, indeliable bookkeeping.
The begining on the course will consist of some introductary lectures on the
cryptographic basics such as hashes, signatures, proof of work, Merkle trees,
etc. The foundations of blockchain, including the Byzantine general's problem
and distributed consensus will be also introduced. The properties of blockchain
as a data structure will be examined, and Bitcoin as a top-layer, e.g.,
application of blockchain, will be covered.
The remainder of the course will be a seminar style course where students will
present blockchain research papers and lead a discussion. Each student will
select a paper to present, prepare a 30 minute presentation and lead a 30 minute
discussion with the class afterwards. The other students will review both the
paper before class and the presentation of the student afterwards. Participation
in discussion and these reviews correspond to a quarter of the grade. The
presentation itself is a further quarter of the grade.
Finally, there will be a course project, done in groups of two. Students will
pick a topic related to blockchain, for example, building an application that
works with blockchain, researching ways to improve it, examining the economics
of it, etc. The project will be worth half the grade of the course, and will consist of a
written conference-style paper describing the research as well as a presentation
done in class on the topic. There will be time reserved in class for students to
work on their project to ensure that work on it is done early and often.
- 25% participation
- 25% paper presentation
- 50% course project (25% paper, 25% presentation)
May 15: History of Money; Game Theory
May 17: Cryptographic Background
May 22: Bitcoin and Blockchain; Bitcoin Problems; Forks; Alternative Consensus
May 24: Bitcoin Again; Permissioned and Unpermissioned;
May 29: Lightning Network (Reardon); Project prep
May 31: Smart Contracts (Reardon); Hyper Ledger (Reardon); Project prep
June 5: Swirld Consensus (Horacsek); Ripple Consensus (Phodkar)
June 7: ZEUS: Analyzing Safety of Smart Contracts (MacAdam); Cryptographic Lending (Farhoudi)
June 12: Arbitrary Blockchain Content on Bitcoin (Talero); Guest Presentation
June 14: Security and Performance of Proof of Work Blockchains (Newson); A Blockchain-Based Storage System for Data Analytics in the Internet of Things (Pullano)
June 19: Block chain and Quantum Computing (Shabash); On Decentralizing Prediction Markets and Order Books
June 21: [project preparation---no lecture]
June 26: Project Presentations
Project report is due no later than July 2nd.
This list is provisionary. The students can also suggest a paper and not all
these papers will be presented.
The course is open to graduate students in the computer science department.
Graduate students in any department at the University of Calgary are welcome to
attend with consent of the instructor, and will be expected to be able to read and understand published research
papers on blockchain.
Undergraduate students at the University of Calgary are
also welcome to attend with consent of the instructor and the same expectations
as graduate students. These admissions will be
space permitting with priority given first to graduate students in the department of
Computer Science and second to those with high GPAs.