Bitcoin: A Payment System with Cryptography

Outline

Money is a useful form of collaboration. To use money to pay for products or services, an underlying payment protocol needs to exist. Traditional payment protocols were based on physical objects such as precious coins made of valuable metals, or more recently, on banknotes. Nowadays, payment protocols are based on digital technologies, and are commonly called payment systems. In this seminar, we introduce how a basic digital payment system works and what are the desirable properties that it must guarantee. We also show some basic cryptographic tools and how to construct a simple payment system with them. Finally, we also introduce how Bitcoin uses simple cryptographic building blocks to create a secure and decentralized payment system.

Syllabus

  1. Introduction: The first session introduces payment systems and a characterization of the desired properties they must guarantee.
    • Definition of the concept of money and its properties
    • Definition of the concept of payment system and its properties. We will focus on consensus of coin ownership (consensus on the method to identify who is the owner of each coin) and balance security (only the owner of a coin can spend)
    • Overview of how different physical payment methods achieve the properties of consensus of coin ownership and balance security. We will analyze coins, banknotes and checks and different counterfeiting methods used to vulnerate the security properties
  2. Cryptographic building blocks: The second session introduces the cryptographic building blocks needed to build a basic payment system.
    • Definition of hash function and description of its cryptographic properties.
    • Definition of digital signature and description of its cryptographic properties.
  3. Building a simple payment system: The third session is structured to combine the knowledge acquired during the previous two sessions.
    • Description of a basic payment system that relies on a trusted party (a bank) and digital signatures for transaction authorization. We will show how it achieves the properties of consensus of coin ownership, balance security and what is its main weakness (single point of failure).
    • Finally, we show how Bitcoin removes the trusted central party with a protocol called Proof of Work. Explanation of Proof of Work, Bitcoin data structure, and transaction authorization. Finally, we show that Bitcoin satisfies consensus of coin ownership and balance security. We discuss its weaknesses compared to a centralized system.

Assessment Method

  • Short report on the takeaways of each class, answering predefined questions after sessions 1, 2 and 3. Students have one week to submit their answers to the instructor.
  • The instructor will provide the students with endpoint for the API of a simple payment system that accepts post queries to store authorized transactions and get queries to download the list of accepted transactions. The instructor will provide a signing key to each student and the transaction format that the payment system accepts. Each of keys provided owns one fake-coin. The challenge is for each student to make the API accept a transaction that spends the fake-coin.
  • The grade is calculated as follows: report of session 1 accounts for 25%, report for session 2 accounts for 25%, report for session 3 accounts for 25% and successfully sending an authorized transaction accounts for 25%.

Prerequisites

Interest in learning about Bitcoin and some knowledge of Python is required. Some basic knowledge of cryptography is a plus.

Credits

0.75 ECTS

Recommended Reading

  • Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system, 2008.
  • Andreas M. Antonopoulos. 2014. Mastering Bitcoin: Unlocking Digital Crypto-Currencies (1st. ed.). O'Reilly Media, Inc.
  • Dan Boneh and Victor Shoup. A graduate course in applied cryptography, Jan 2023 [chapters 7 and 13].

Timetable

  • 19 February, 19:00-21:00
  • 26 February, 19:00-21:00
  • 05 March, 19:00-21:00

Lecture Theatre

  • A-6205

Tuition Language

English.