This page will be removed on August 6th 2026. Please update your links to refer to https://esb.ics.hawaii.edu/2024spring.ics491/index.html instead.
Blockchain and Cryptocurrencies, ICS 491
This page is
https://www2.hawaii.edu/~esb/2024spring.ics491/
This page is subject to change without notice -- please reload it
in your browser if an item that might affect you may have changed.
The lectures for this class are in POST 318A every Tuesday and
Thursday 1:30-2:45pm.
Office hours and contact information for the instructor
are available in the Resources on Laulima.
The textbook for the course is
"Mastering Blockchain", 4th edition (Released March 2023), by Imran
Bashir, ISBN: 9781803241067, published by Packt
Publishing and also available through the usual channels.
Due to the continuing evolution of the field, the 4th edition (2023)
is required.
The class will also study the freely available
Bitcoin whitepaper,
and likely also the
Ethereum whitepaper.
Schedule
This schedule is subject to change.
- Tue, Jan 9. Course introductions, course summary.
Ideas in the the bitcoin whitepaper.
Presentation
- introductions
- course overview
- the bitcoin whitepaper.
Assignment: read the bitcoin whitepaper.
- Thu, Jan 11. The bitcoin whitepaper, continued.
Bitcoin block explorers.
Presentation
- reminders: transactions, blocks, and the blockchain
- the bitcoin P2P network
- block explorers
- mining incentives
- bitcoin privacy
- the 51% attack
Assignment (due Tuesday Jan 16): write a paragraph about what you
have learned from reading the Bitcoin whitepaper.
- Tue, Jan 16. Cryptography used in Bitcoin. Read Chapters 3 and
4 of the textbook.
Presentation
- secure hashes, SHA-256, and SHA-3
- Merkle trees
- symmetric cryptography
- HMAC authentication
- public-key cryptography: RSA, elliptic curves
Assignment (due Tuesday Jan 23): explore at least two bitcoin
block/blockchain explorers. Report (a) which explorers you tried, and (b)
details (including the hash) of at least two interesting transactions,
explaining why you found them interesting. Or, as an alternative,
turn in your own from-scratch implementation of any one of the SHA-2 or
SHA-3 hashes.
Links:
- Thu, Jan 18. Crytpography used in Cryptocurrencies.
Presentation
- public-key cryptography: elliptic curves
- securely storing passwords
- zero-knowledge proofs
- more about encryption
- Tue, Jan 23. Blockchain Programming. Read pages 1-25 of the
Ethereum whitepaper.
Presentation
- bitcoin script
- smart contracts
- introduction to Ethereum and EVM
Assignment (due Tuesday Jan 30): write a paragraph about what you
have learned from reading the Ethereum whitepaper.
Links:
- Thu, Jan 26.
Presentation
- Ethereum accounts and messages
- Ethereum gas
- Turing-complete EVM
- derived coins
- high-level languages for EVM programming
- smart contracts
- oracles
- Tue, Jan 30. Midterm review.
Presentation
- bitcoin
- cryptography
- ethereum
- smart contracts
- Thu, Feb 1. Midterm 1, including material from all the lectures,
the bitcoin and ethereum whitepapers, the assignments, and chapters 3
and 4 of the textbook.
- Tue, Feb 6. Read the links.
Presentation
- the first DAO
- the DAO hack
- governance tokens
- Initial Coin Offerings, ICOs
Assignment (due Tuesday Feb 13): Read the links below, and provide your one-paragraph summary of either the first link or the fourth link (your choice). Also, set up a non-custodial cryptocurrency wallet on a device that you control, and report (a) the wallet, (b) the cryptocurrencies it can store, (c) the type of device you used, (d) how you know it is non-custodial, and (e) how safe you feel holding in this wallet crypto of value.
Links:
-
Code example for re-entrancy attack.
-
Buterin's soft fork.
-
Other vulnerabilities of the DAO.
-
SEC summary of the DAO and the DAO hack.
-
The ethics of the hard fork.
- Thu, Feb 8.
Presentation
- evolution: BIPs and EIPs
- the Merge
- proof of stake
Links:
- Tue, Feb 13.
Presentation
- programming the network nodes (RPC+JSON)
- historical: Serpent
- Solidity
- Vyper
Assignment (due Tuesday Feb 20): install a solidity IDE (e.g. textbook
p. 318), and compile and run a smart contract. You may create the smart
contract yourself, or use one you have found -- if the latter, include
a reference to the source. Turn in (a) comments about your experience
of running the smart contract, (b) the smart contract source code itself,
and (c) the reference if any from which you got the smart contract
Links:
- Thu, Feb 15.
Presentation
- Solidity
- Vyper
- Example Smart Contracts
Links:
- Tue, Feb 20.
Presentation
- obvious solutions and drawbacks
- layer-2 networks
- Bitcoin Lightning
Assignment (due Tuesday Feb 27): read at least one of (1) the Bitcoin
Lightning whitepaper, (2) Ethereum rollups, including Zero-knowledge
and Optimistic rollups (3 links).
Then write a paragraph summarizing (1) either section 3.3.4 and Figure 9
(you will have to read and understand everything up to 3.3.4 to make
sense of 3.3.4), or if you prefer the process described in Figure 12
or Figure 14, or Section 8 of the paper, or (2) the centralization risks of ZK
rollups and ways for users to reclaim their funds if needed. Please make
it clear what your paragraph is summarizing. Your entire paragraph must
be in your own words.
You are also encouraged to read Chapter 17 in the textbook.
Links:
- Thu, Feb 22.
Presentation
- Ethereum rollups
- Ethereum sharding
- other cryptocurrencies
Also, in-class practice with Solidity.
- Tue, Feb 27. Midterm review.
Presentation
- material from the previous midterm
- smart contracts
- EVM communication
- proof-of-work vs. proof-of-stake (PoW, PoS)
- Ethereum programming
- Solidity
- blockchain scaling, layer 2, LN, rollups
Assignment (due Tuesday Mar 5th, but only start after the midterm): read
chapter 11 of the textbook beginning on page 354 (section "The Solidity
Language") until the end of the chapter. Report both of the following:
1. Report (in one sentence) that you have read the chapter.
2. Either report that you understand the chapter, or include one or
more questions.
- Thu, Feb 29. Midterm 2.
- Tue, Mar 5. Chapter 15 of the textbook.
Presentation
- ERC-20: basic tokens
- ERC-721: non-fungible tokens (NFTs)
Links:
Assignment (due Tuesday Mar 12th): read chapter 15 of the textbook.
Alone or in groups of 2-5, create a smart contract that is more
interesting and/or useful than the one on the Feb 13-20 assignment.
Summarize your results in 1-3 powerpoint slides that you will present
in class on Thursday Mar 14th.
The slide should include why the code is interesting.
I plan to publish on the web page a collection of all the slides, so
please do not include your names or other identifying information.
Send me the slides and team information by email (i.e. not on
Laulima), cc'ing all your team members, only 1 email per team please.
- Thu, Mar 7.
Presentation
Links:
- Tue, Mar 12.
Presentation
- automated market makers
- decentralized finance
Links:
- Uniswap protocol:
version 1 (exchanging only between ERC-20 tokens and ETH),
version 2 (added exchanges directly between different ERC-20 tokens),
version 3.
- Thu, Mar 14. Student presentations and discussions.
Presentation
- Tue, Mar 26. Prince Kuhio day holiday.
- Thu, Mar 28. Blockchain Privacy. Textbook Chapter 18.
Presentation
- ideal and actual privacy
- anonymity on the Internet
- anonymous use of crypto
Links:
- Tue, Apr 2. Blockchain Security. Textbook Chapter 19.
Presentation
- wrapped coins
- security concerns with centralized systems
- miscellaneous attacks
- issues with smart contracts
Assignment (due Tuesday Apr 9): Alone or in groups of 2-5, email me a
project proposal: a description of a blockchain- or cryptocurrency-related
project you plan to do for the rest of the semester. Only email one
description per group, and be sure to cc all your group members. If you
have no ideas for a project, email me that you don't have a specific
project in mind, and include some idea of what you are interested in
doing, and I will try and find something for you to do, perhaps in a
group with others.
- Thu, Apr 4. Midterm review.
Presentation
- ERC-20 tokens
- NFTs
- stablecoins
- DeFi
- blockchain privacy
- blockchain security
- programming in solidity
- Tue, Apr 9. Midterm 3.
Assignment (due Tuesday Apr 16): Please send me a report of your progress
on your project.
- Thu, Apr 11.
- Tue, Apr 16. What is money? and, Is Crypto Money?
Presentation
- medium of exchange: money and crypto
- unit of account/measure of value: only fiat
- store of value: inflation and deflation
- Thu, Apr 18. Hyperledger. Chapter 14 in the textbook.
Presentation
- Hyperledger project
- distributed ledger projects, including Fabric
- libraries and domain-specific apps
- architecture
Links:
Assignment (due Tuesday Apr 23): Please send me a report of your progress
on your project.
- Tue, Apr 23.
Presentation
- quadratic funding
- decentralized identity (DID)
- regenerative finance
Links:
On CES (the course evaluation system used by UHM), please let me know
1. whether you think this should become a regular course, 2. as much
detail as possible about your opinions of the textbook, 3. any other
comments about this teaching of the course.
- Thu, Apr 25. Blockchains and Cryptocurrencies in the Future
Presentation and Discussion
- how does additional investment affect crypto?
- non-crypto applications of blockchain
- name and authentication (public key/certificate) service
- non-private government records, including anonymized results of elections
- digital identity
- more interoperability between blockchains, better programming languages for smart contracts, easier onboarding
- more applications of zero-knowledge proofs, homomorphic encryption, and formal verification of code
- well-known challenges: security, scalability, privacy, crime
- evolving regulatory and legal conditions, likely more CBDCs
- discussion! What changes do you wish to see?
- Tue, Apr 30. Student presentations
(of projects that include a presentation).
- Tue, May 7, 2pm, final
projects are due.
Grading
This grading scheme is tentative, and may change during the semester.
This course has occasional homework assignments and projects.
Each of these is done individually by default, but if interested in doing
a particular project as a group, please contact the instructor.
- Assignments and projects: 50%.
- Three midterms, for a total of 30%.
- Final project, 20%.
To accomodate the potential for covid or other emergencies affecting academic performance,
- the lowest 2 weeks' worth of assignment grades will be dropped
- the lowest midterm exam grade will be dropped
- the first draft of the final project must be turned in two weeks
before the due date.
- if the instructor has to take time off for health reason, the
students must study the corresponding material on their own.
This is intended for use with covid or other emergencies. It need not
be justified, but will also not be extended in any way, so students
should not take advantage of it unless actually needed (or until the
end of the semester, whichever comes first).
Exams may be taken early, if requested at least one week before the scheduled time. Under no circumstances may an exam be taken late.
Grading will use the standard cutoffs of
97% (A+), 93% (A), 90% (A-), 87% (B+), 83% (B), 80% (B-), 77% (C+),
73% (C), 70% (C-), 67% (D+), 63% (D), 60% (D-).
Accomodations
If you feel you need reasonable accomodations because of the impact of
a disability, please (1) contact the Kokua (Disability Access) Program at
808-956-7511 or in room 013 of the Queen Lili'uokalani Center for Student
Services, and/or (2) speak privately with the instructor to discuss your
specific needs. I will be happy to work with you and the Kokua program
to meet your access needs related to your documented disability.
Goals of this Course and Learning Objectives
The goal of this course is to learn more about how blockchains work
and how they are used to create cryptocurrencies.
Since this is a technical area that is still rapidly evolving,
the main focus of this class is on the fundamentals that are likely to
stand the test of time. There is also a substantial focus on recent
and current developments, including not just technology, but also the
social aspects of blockchain and cryptocurrencies.
Cheating
In this course, most assignments are individual, unless a group
is approved by the instructor. Any other collaboration is considered
cheating.
Using resources from the web in assignments is acceptable if those
resources are properly identified (cited, referenced) in the assignment.
Using AI assistants or other automated assistance is also acceptable
as long as the assistance is properly identified, including a clear
idea of the prompts used.
The final project is either individual or group. Groups must be
approved by the instructor.
Each of the midterm exams must be done individually.
Policy: any cheating will result in a grade of 0 for the
assignment, project or exam the first time it is detected, and a grade
of F for the entire course for any subsequent instance. Any instance
of cheating may also be reported to the office of the Dean of Students,
possibly resulting in disciplinary action against the student.
The
Student Conduct Code has more details on both impermissible behavior
(see for example section IV.B.1 of the policies, Acts of dishonesty)
and possible disciplinary sanctions.
Improvements
Any suggestions for improvement to this web page or to the course are welcome.
University of Hawaiʻi at Mānoa (UHM) TITLE IX SYLLABUS INFORMATION
UHM is committed to providing a learning, working and living environment that promotes personal integrity, civility, and mutual respect and is free of all forms of sex discrimination and gender-based violence, including sexual assault, sexual harassment, gender-based harassment, domestic violence, dating violence, and stalking. If you or someone you know experiences any of these, UHM has staff and resources on campus to support and assist you. Staff also can direct you to resources in the community. Here are some:
If you wish to remain ANONYMOUS, speak with someone CONFIDENTIALLY, or would like to receive information and support in a CONFIDENTIAL setting, contact: (* Confidential Resource)
Counseling & Student Development Center* (808) 956-7927 • manoa.hawaii.edu/counseling/
Office of Gender Equity* (808) 956-9499 • manoaadv@hawaii.edu
Lesbian, Gay, Bisexual, Transgender, Queer (LGBTQ+) Center (808) 956-9250 • manoa.hawaii.edu/lgbt
Respondent Support (808) 956-4392 • PAUrs@hawaii.edu
Student Parents at Mānoa (SP@M)* (808) 956-8059 • manoa.hawaii.edu/studentparents/
UH Confidential Advocacy* • advocate@hawaii.edu
University Health Services Mānoa* (808) 956-8965 • hawaii.edu/shs/
http://www.manoa.hawaii.edu/titleix/resources.html#confidential
If you wish to REPORT an incident of sex discrimination or gender-based violence including sexual assault, sexual harassment, gender-based harassment, domestic violence, dating violence or stalking as well as receive information and support, contact:
Dee Uwono
Director and Title IX Coordinator
Hawaiʻi Hall 124
2500 Campus Road
Honolulu, HI 96822
(808) 956-2299
t9uhm@hawaii.edu
As a member of the University faculty, I am required to immediately report any incident of sex discrimination or gender-based violence to the campus Title IX Coordinator. Although the Title IX Coordinator and I cannot guarantee confidentiality, you will still have options about how your case will be handled. My goal is to make sure you are aware of the range of options available to you and have access to the resources and support you need. For more information regarding sex discrimination and gender-based violence, the University’s Title IX resources and the University’s Policy, EP 1.204, go to: http://www.manoa.hawaii.edu/titleix/