May 15, 2024  
2022-2023 Catalog 
    
2022-2023 Catalog [ARCHIVED CATALOG]

CSC 352 - Blockchains


Instructor
Mendes

Blockchains are distributed computer systems designed to maintain a decentralized ledger, and also collectively execute & validate public computations, assuming an environment with open admittance but without mutual trust. In this course, we study the computational ideas in the design and implementation of blockchains, including public-key cryptography, data structures for state management, consensus protocols for conflict resolution, virtual machines for smart contract execution, security aspects of trustless / permissionless systems, and scalability and synchrony issues in computer networks. We also study the anatomy of popular decentralized finance applications from a software design perspective(not financial perspective). The course adopts a hands-on approach: students solve practical programming assignments during the course, and develop a final project designed jointly with the professor.

Satisfies major and minor requirement for Computer Science

Prerequisites & Notes
Data Structures (CSC 221) and one of the following: Discrete Structures (CSC 220) or Sets and Proofs (MAT 230).