Blockchain and Smart Contract
It is a FinTech-related course with an emphasis on the aspects of blockchain and smart contract theory, operation and implementation issues for the next generation of FinTech leaders with proven deep technical and managerial skills, experience, and credibility to design, engineer, implement, and manage their overall blockchain program and smart contract, and explore the possibility of applying blockchain and smart contract in new and innovative applications. This course will also discuss the certain concept of IoT (Internet of Things) to enrich the application of smart contract, as well as the modern Cloud-based computation model, such as virtual machine and Docker container.
It is designed for senior students who wish to work in positions such as FinTech Consultant, Blockchain Engineer, IT Director/Manager, FinTech Architect, FinTech Analyst, and Chief Information Officer. The design of this course is to bridge the gap between academic theory and industrial practice. The student will learn why and how blockchain and smart contract are designed, what is the limitation of blockchain and smart contract, how to apply blockchain and smart contract in the real-world application, how FinTech affects our finance operation and innovation, and the security issues related to blockchain and smart contract.
Class Info
Instructor: Shun-Wen Hsiao, NCCU MIS Dept., hsiaom at nccu.edu.tw
Lectures: Tuesday 234 (09:10 ~ 12:00).
Classroom: 研究 250306
TA: psychegratus1207 @gmail
Office Hours: By email appointment only.
Google Groups: https://groups.google.com/forum/#!forum/nccu-bcsc
Homework System: http://hsiaom.nccu.edu.tw:8888/index/
Note: it is an English taught course.
Announcements (Spring 2019)
02/26: For students who want to evaluate taking this course, I list some resources below. If you can comprehend 60%+ of the content, then you may have no problem with taking this course. If you can only comprehend 30%~45% of the content, you might need to reconsider.
Cryptography: Hash function, Public-key cryptography
Programming: Solidity by Example
Video: a mathematical tool (hash function) behind blockchain
03/12: [BN01] bonus #01. Due at 23:59 in 20 March. (It is not mandatory to write bonus homework.)
03/18: The homework submission system is online. Please get your password in the class or send email to TA.
03/18: [HW01] Homework #01. Due at 23:59 in 25 March. Please submit your answer via the homework submission system. It is okay if you have problem when uploading [BN01] and [HW01] homework, please email your them to Prof. Hsiao (if possible with the error screenshot).
03/25: [HW02] Homework #02. Due at 23:59 in 1 April via homework submission system.
04/16: [HW03] Homework #03. Due at 23:59 in 22 April via homework submission system.
04/24: [HW04] Homework #04. Due at 23:59 in 6 May via homework submission system. Please upload PDF file, do not upload MS Word file.
05/13: Here is an example (actually an outline) of TERM Project (B).
05/27: TA shares his smart contract code right here.
05/28: The upload entry of [HW07], [HW08], take-home essay exam, project presentation file, and project document has been created in the homework submission system. Please upload them before due time.
Course Objectives & Learning Outcomes
This course covers several topics, such as FinTech and digital currency, blockchain and Bitcoin, smart contract and Ethereum, and Internet of Things. The course objective is to comprehend the theory behind blockchain and smart contract (in order to understand the limitation and applicable scenario of blockchain and smart contract) and to be able to design a new blockchain or smart contract based application. The main topics include but not limited to:
The history and application of FinTech and digital currency
Hashcash, distributed consensus, and proof-of-work
Design, analysis, and implementation of blockchain
Underlying technique of blockchain: cryptography and virtual machine
Design, analysis, and implementation of smart contract
Create private blockchain and smart contract
IoT and smart contract
Case study
Security issue
References
Mastering Bitcoin, 2nd Ed., July 2017, https://github.com/bitcoinbook/bitcoinbook
NIST Blockchain Technology Overview, October 03, 2018, https://www.nist.gov/publications/blockchain-technology-overview
Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, https://bitcoin.org/en/bitcoin-paper
A Next-Generation Smart Contract and Decentralized Application Platform (Ethereum Whitepaper), https://github.com/ethereum/wiki/wiki/White-Paper
Ethereum Yellow Paper, https://github.com/ethereum/yellowpaper
Schedule (Spring 2019)
2/26: Introduction.
3/5: FinTech, Digital Currency [01], Hash Function, Hashcash and Prof-of-Work.
[img] The concept of Hashcash I drew in the class
[slide] KPMG Technology Industry Innovation Survey: Blockchain [backup file]
[news] Warren Buffett says bitcoin is a ‘delusion’ and ‘attracts charlatans’
[news] Elon Musk: Bitcoin Has ‘Quite Brilliant’ Structure, Paper Money is Going Away
3/12: Blockchain 101 [02]
Try to play around with this website (hash, block, ...).
[BN01] bonus #01. Due at 23:59 in 20 March. (It is not mandatory to write bonus homework.)
3/19: Bitcoin and Transaction [03] and Bitcoin Core Daemon [04].
[HW01] homework #01. Due at 23:59 in 25 March.
A Bitcoin paper wallet example
3/26: Bitcoin Script [05], Digital Signature.
4/2: Bitcoin CLI [06]
[Project01] Every student needs to hand in two ideas about what you want to do/study for the final project. The ideas should be written in English and uploaded to the system before 23:59 in 22 April. We will review these ideas in 23 April or 4/30 in the class together. Students who have same interest may form a group for the final project. Some examples are right here.
4/9: Lab: Bitcoin APIs.
Discussion: digital currency and interest; small transaction small fee?
[news] No Bitcoin Deficit a Problem for Regulators
4/16: Bitcoin Network, Wallet, Keys, Security Issues [07]
4/23 (M) Smart Contract. Introduction & State Machine [10]
[HW04] homework #04. Due at 23:59 in 6 May.
4/30: Ethereum
Discuss project topics (download topics from the homework system)
How to read the yellow paper?
Announce Take-home exam (due 23:59 in 3 June 2019).
5/7: Ethereum Transaction, Gas, Message, and Mining Process [11].
[HW05] homework #05. Due at 23:59 in 13 May.
5/13: Note that you can upload this homework until 23:59 20 May.
5/14: [Speech] Big Tech Regulation: Why GAFAM needs to be regulated and how do we do that?
Sébastien Soriano and Antonio Casilli will give us a talk in 5/14 at Yi Xian Bldg in Room #050201 (逸仙樓201). Please directly go to Yi Xian Bldg before 10:30am.
How to regulate GAFAM? What is the role of individuals in such a regulation?
How digital and social networks changed individuals the society? What is the opportunity for individuals in GAFAM regulation?
[HW06] homework #06. Due at 23:59 in 20 May.
5/21: Poof of Stake [12]
Ethereum Lab. Please bring your laptop to the class.
TA shares his code right here.
5/28: Block Architecture, Events/Logs [13].
Ref: [Wiki] Bloom Filter
Note: Take-home exam due 23:59 in 3 June 2019.
6/4: DApp and THE DAO [14]
6/11: Term Project Presentation
6/18: Term Project Presentation, Security and Risk
6/25 (F): Performance Issue: Lightning Network [08] and SegWit [09]
Please read the summary from https://lightning.network/ before class.
Here is a talk (00:00~38:00) given by Joseph Poon and Thaddeus Dryja who published Lightning Network paper.
Video
[YouTube] Hash Function
Digital Signature
...
Grading Policy
Homework 40%
Participation 10%: attendance and discussion
Term Project 30%: student should finish one of the following project.
A) implement a smart contract application on a private or public blockchain. Find your classmates to form a group (the number of group member will be announced according to the number of students in this class).
B) study and research a new blockchain-related technique from academic research paper. Write a research report of how this new technique is designed and implemented. The selected research paper should be reviewed by the instructor in advance. This project must be done alone.
Exam 20%: an individual take-home essay exam (graded according to the quality of in-depth argument with proper citations to support your arguments), and working in groups is considered cheating.
Course Policy
All of the homework, term projects and exams should be done yourself alone (unless it is a group project). If you have any question, TAs or the lecturer will help you to complete the homework and the project. Cheating on examinations and plagiarism in homework means breaking the academic integrity. If you violate the policies, you may be suspected of cheating or attempted cheating.
We encourage collaboration between students. It is permitted to discuss the assignment orally with others; both students and other people. However, co-operation between individuals on assignments, homework, examinations, etc., which leads to textual similarity in the submitted report and / or code, or which gives one or several candidates wrongful benefits in the exam situation, is considered cheating.
Please use different sources of inspiration, literature, code, figures, assignments and other types of references as long as they are cited and referenced correctly. But the submitted product should be essentially done by the student.