San José State University
Instructor: |
Thomas Austin |
Office Location: |
Zoom URLs listed under “Office Hours” |
Telephone: |
|
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 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.
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.
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.
Mastering
Bitcoin: Unlocking Digital Cryptocurrencies, Andreas M. Antonopoulos,
(O’Reilly, December 2014, ISBN-13: 978-1449374044, ISBN-10: 1449374042)
· 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.
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.
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.
Rebalanced grading for COVID-19:
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 |
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.
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/”
Please note that the schedule is subject to change with fair notice, which will be posted through Canvas at https://sjsu.instructure.com.
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) |