San José State University

College of Science/Department of Computer Science
CS 168, Blockchain and Cryptocurrencies, Fall 2020

Course and Contact Information

Instructor:

Thomas Austin

Office Location:

MacQuarrie Hall 216

Zoom URLs listed under “Office Hours”

Telephone:

408-924-7227 (NOT AVAILABLE DURING COVID-19)

Email:

thomas.austin@sjsu.edu

Office Hours:

Mondays 1-2pm, Thursdays 10-11am

SEE http://www.cs.sjsu.edu/~austin/cs166b-fall20/office-hours-updates.txt FOR LAST MINUTE CHANGES

 

Monday Zoom URL: https://sjsu.zoom.us/j/93886638082?pwd=RW1ISTNkWUdvcm93N1R2WE1YM1pydz09

 

Thursday Zoom URL: https://sjsu.zoom.us/j/94275302183?pwd=aXNWM3pjdU5GWE1lYjRpZm9vNnNTdz09

 

 

Class Days/Time:

Monday/Wednesday, 10:30-11:45

Classroom:

https://sjsu.zoom.us/j/96418908069?pwd=NVZveWVZMWk1eWZNWVpZeHlMQno3UT09

Prerequisites:

CS 166 or equivalent.

Course Format

Faculty Web Page and MYSJSU Messaging

Course materials such as syllabus, handouts, notes, assignment instructions, etc. can be found on my faculty web page at http://www.cs.sjsu.edu/~austin/cs166b-fall20 and Canvas (http://sjsu.instructure.com/). You are responsible for regularly checking with the messaging system through Canvas to learn of any updates.

Course Description

Cryptocurrencies and the blockchain.  Centralized clearinghouse solutions vs. distributed consensus solutions.  The blockchain and its validation approaches: proof-of-work, proof-of-stake, proof-of-storage, etc.  Cryptocurrency wallets.  Smart contracts.

Course Learning Outcomes (CLO)

The goal of this course is to equip students to be blockchain engineers.  After completion of this course, the student is expected to be versed in the various subjects of interest in cryptocurrencies and comfortable with the technologies needed.

 

Upon successful completion of this course, students will be able to:

1.     Build a cryptocurrency with a central clearinghouse.

2.     Build a cryptocurrency with distributed consensus.

3.     Design and implement a proof-of-work blockchain.

4.     Design and implement a proof-of-stake blockchain.

5.     Use mnemonics to save and reconstruct a cryptocurrency wallet.

6.     Apply the blockchain outside of a cryptocurrency setting.

Required Texts/Readings

Textbook

Mastering Bitcoin: Unlocking Digital Cryptocurrencies, Andreas M. Antonopoulos,
(O’Reilly, December 2014, ISBN-13: 978-1449374044, ISBN-10: 1449374042)

Other Readings

·      Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakomoto.

·      Bitcoin and Cryptocurrency Technologies (PRE-PUBLICATION VERSION), Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, 19-Feb-2016.

·      SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies, Bonneau et al., IEEE 2015.

·      Other readings TBD.

Course Requirements and Assignments

SJSU classes are designed such that in order to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at http://www.sjsu.edu/senate/docs/S12-3.pdf.

 

Homework assignments are in JavaScript using Node.js.  There will also be a group project involving teams of 1-4 students.  In this project, students will design their own blockchain-based cryptocurrency borrowing concepts from other cryptocurrencies.

 

There is a final and a midterm.

 

In-class labs are used as the basis for your participation grade.  Any question in the lab is fair game for the exams.

 

See Canvas at http://sjsu.instructure.com/ for more details.

Final Examination or Evaluation

The final exam is worth 20% of the total grade for the class.  It is a written exam.  Paper will be provided.  Bring something to write with.  DUE TO COVID-19, THERE WILL BE NO EXAMS.  Instead, you will be expected to do 2 graded presentations: one with your project proposal, and another with your final product.

Grading Information  

Determination of Grades

  1. 30% -- Homework assignments (individual)
  2. 20% -- Class project (team)
  3. 20% -- Midterm
  4. 20% -- Final
  5. 10% -- Participation (labs)

Rebalanced grading for COVID-19:

  1. 40% -- Homework assignments (individual)
  2. 40% -- Class project (team)
  3. 10% -- Labs
  4. 10% -- Readings

 

Assignments are due by 11:59 PM Pacific Time on the specified day.

 

Late homework assignments will not be accepted.  However, you may elect to take a ‘0’ on any assignment and resubmit a previous assignment instead.

 

Nominal grading scale:

 

Percentage

Grade

92 and above

A

90 - 91

A-

88 - 89

B+

82 - 87

B

80 - 81

B-

78 - 79

C+

72 - 77

C

70 - 71

C-

68 - 69

D+

62 - 67

D

60 - 61

D-

59 and below

F

Classroom Protocol

Attendance is recommended, but it is not mandatory, except for exam dates. Cell phone use is prohibited. Punctuality is appreciated.

Bring your laptop to class.

COVID-19 DRESS CODE: YOU MUST BE DRESSED FOR ZOOM SESSIONS.  You may wear pajamas and sweats if you want, but wear a shirt.

University Policies

Per University Policy S16-9, university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc. will be available on Office of Graduate and Undergraduate Programs’ Syllabus Information web page at http://www.sjsu.edu/gup/syllabusinfo/”


 

 

CS 168 / Blockchain and Cryptocurrencies, Fall 2020

Please note that the schedule is subject to change with fair notice, which will be posted through Canvas at https://sjsu.instructure.com.

Course Schedule

Week

Date

Topics, Readings, Assignments, Deadlines

1

8/19

Introduction

2

8/24

Crash course on JavaScript and Node.js

2

8/26

Review of cryptography

3

8/31

A first cryptocurrency and the double-spending problem

3

9/2

DigiCash and blinded signatures

4

9/7

**LABOR DAY**

4

9/9

Introduction to Bitcoin.  Byzantine fault tolerance.

Reading:

·      Mastering Bitcoin – Chapter 1.

·      Bitcoin: A Peer-to-Peer Electronic Cash System

5

9/14

Bitcoin transactions

Reading: Mastering Bitcoin – Chapter 2.

5

9/16

Bitcoin transactions, continued

Reading: Mastering Bitcoin – Chapter 5.

6

9/21

Bitcoin – wallets and mnemonics

Reading: Mastering Bitcoin – Chapter 4.

6

9/23

Bitcoin – mining and the blockchain

Reading: Mastering Bitcoin – Chapter 7.

7

9/28

Bitcoin – mining and the blockchain

Reading: Mastering Bitcoin – Chapter 8.

7

9/30

Beyond Bitcoin – challenges to be addressed.

Reading: Bonneau et al., IEEE 2015

8

10/5

Mining pools

8

10/7

PRESENTATIONS: PROJECT PROPOSALS DAY 1

9

10/12

PRESENTATIONS: PROJECT PROPOSALS DAY 2

9

10/14

Selfish mining attack

10

10/19

Smart contracts and Ethereum

10

10/21

Decentralized applications (DApps)

11

10/26

Ethereum virtual machine (EVM)

11

10/28

Ethereum security

12

11/2

Proof-of-stake protocols. Peercoin. Tendermint.

12

11/4

Proof-of-storage protocols.  Permacoin.

13

11/9

Filecoin, proof-of-replication, proof-of-spacetime.

13

11/11

**VETERAN’S DAY**

14

11/16

High performance blockchains.  Dfinity, Algorand, Thunderella.

14

11/18

High performance blockchains, continued

15

11/23

TBD

15

11/25

**HAPPY THANKSGIVING!**

16

11/30

TBD

16

12/2

Project presentations

17

12/7

Project presentations

Final Exam

12/14

FINAL EXAM: 9:45-11:45 (demo your project)