Mirroring the shift from desktop applications to Internet-based distributed applications that began over two decades ago, computing stands at the cusp of another shift, from distributed to decentralized applications. Such applications, commonly called smart contracts, are programs stored and executed on blockchains. They hold the potential to streamline the management of digital assets in diverse use-cases with wide-ranging economic and societal ramifications, including auctions, financial contracts, elections, trading platforms, and permission management.
How can we make smart contracts more secure, bug free, and trustworthy? In this course, we will learn various techniques for program security and how they apply to the Web3.0 domain. The fundamentals of this course have roots in program analysis, testing, and formal verification. The advent of Web3.0 provides an exciting new application for these techniques. Smart contracts often hold funds and are frequent surfaces of attack. The cost of a bug in the Web3.0 domain is often massive and difficult to revert. In this course we will learn the foundations of program analysis while getting hands on experience in finding bugs and verifying correctness of smart contracts.
Class Coordinates: Mondays and Wednesdays 1:45 - 3:15 pm New Location: Room 401B in 3401 Walnut Course Discussion: Join our discord