Piazza course schedule lists all remaining assignments
Throughout this course, we have studied four fundamental topics.
Cryptocurrencies and the blockchains within them, which enable financial transactions in a decentralized way, without the need to give your money to trusted intermediaries (aka, banks).
Broadcast protocols in the (a)synchronous setting, which enable consensus over the Internet without needing to rely on trusted intermediaries (aka, leaders).
Secure multi-party computation, which enables data analysis without the need to give your data to trusted intermediaries (aka, clouds).
Zero knowledge proofs, which enable the world to hold an entity (such as a bank, leader, cloud, or any one of us) accountable, without the need for trusted intermediaries (aka, auditors).
The first two topics provide integrity and availability, and the final two topics added confidentiality as a concern to protect.
Last week, we combined ZK proofs with blockchains in order to build privacy-preserving cryptocurrencies such as Zcash and Mina.
Source: Blockchair
Or to be more precise: the blockchain itself doesn't reveal the sender, receiver, and amount of the transaction. It's entirely possible that people can find out about your transaction in other ways.
For today, we will explore the extent to which transparent Bitcoin-style cryptocurrency transactions do -- or do not -- provide anonymity.
[For the rest of today's lecture, we will follow Prof. Abhishek Jain's slides on Anonymity in Cryptocurrencies.]