Table of Contents
Complexity, Cryptography and Financial Technology
This course is one of the security courses of the Security Group in Trento.
It is offered at the University of Trento in the framework of the Cyber Security track of the European Institute of Innovation and Technology (EIT Digital) Master School programme.
It is also available in the normalMaster Degree in Computer Science and in Information and Communications Engineering at the University of Trento.
Lecturers
Syllabus
Course Objectives
This 12ECTS course provides the broad overview of modern crypto-based Financial Technology. Module 1 provides the foundations of Cryptography and Computational Complexity that are needed for understanding the technology that is behind crypto-based FinTech. Module 2 focuses on two rich case studies in collaboration with EIT partners. The first case study is UNBIAS in collaboration with InnoPay NL. The second case study is FuturesMEX in collaboration with Durham Business School UK.
Students interested in further exploring the research topics behind this area can also take a Software Project (6ECTS) or a Research Project (12ECTS) by contacting the lecturers.
Intended Learning Outcomes
Regular and active participation in the teaching activities offered by the course (lectures, laboratories and group work) and in independent study and project activities will enable students to:
- identify the relevant security characteristics of a crypto-based FinTech problem;
- organize and integrate the algorithm and information needed for finding a solution;
- compare methods and tools discussed during the course and choose the ones most suited to the solution;
- apply the methods learned during the course to a complex industrial relevant scenario.
In terms of soft skills, active participation in the group-based teaching activities will enable students to learn how to organize group work, apply problem-solving techniques, deliver a presentation, and make critical code review to support their results with compelling arguments.
Prerequisites
Students should have attended a general security course, e.g. Introduction to Computer and Network Security or a cryptography course.
Course Content
- Introduction to Crypto-based FinTech:
- Fintech Characteristics, Bitcoin as an example, Distributed systems overview
- Complexity:
- Introduction to computing relations, P vs NP (search and decision problems), One-way functions, Interactive proofs, Zero knowledge proofs, Introduction to Multi-Party Computations
- Cryptography
- Finite Field (Discrete Log, Quadratic Residuosity), recap of Digital Signatures, Elliptic Curves Digital Signature Algorithm, Quadratic Arithmetic Programs, Pairing-based zk-SNARKS, Multy-party computation based on Garbled Circuits, Secret Sharing
- Labs will be done for libraries implementing the above features
- Hyperledger (Java), libsnark (C), SPDZ (Python)
- FinTech Case Studies (depend on the EIT partnership)
- Students Presentations
- Proposal for FinTech case study 1, Hostile review for FinTech case study 1
See details in the list of upcoming topics below.
Teaching Methods and Learning Activities
The instructors will use:
- highly interactive lecture-style presentation during which students will be required to actively participate;
- lab exercises given to small groups of students, who must discuss, analyze and present to the class the results achieved.
If the number of attendees is too small, individual projects will be assigned for the EIT students who need to attend the course.
Assessment Methods and Criteria
This is an eligible course so we expect active participations.
Grading is organized as follows:
- Participation and submission of lab materials: 7 points
- Midterm theory evaluation: 8 points
- Presentation by students on the UNBIAS case study: 4 points
- Participation, submission of lab materials, and final implementation of UNBIAS: 8 points
- Participation, submission of lab materials, and final implementation of IOP: 8 points
Reference and Bibliographic Material
The following books might be useful:
- Complexity and Cryptography: An Introduction. Book by DJA Welsh and J Talbot
- Computational Complexity: A Conceptual Perspective. Book by O Goldreich. An old version of the book is on'line. See also Goldreich's page on complexity theory
- Handbook of Applied Cryptography| Book by AJ Menezes, PC van Oorschot and SA Vanstone
More advanced books
- Cryptography: An Introduction. Book by N Smart
- Computational Complexity: A Modern Approach. Book by S Arora and B Barak
Additional research papers will be given by the instructors in class.
Schedule
The lectures/seminars etc. are
- Mon. 13:30-15:30 room A220
- Wed. 9:30-11:30 room A211 (Changed!)
- Fri. 13:30-15:30 room A215
(well, they change us all the time so check on Easyroom.
Past Lectures, Lab Sessions and Exercises
Date | Weekday | Hours | Topic | Slides | Additional materials |
---|---|---|---|---|---|
13/09/18 | Thu | 2 | Admin and Introduction | Slides | FinTech General Overview,a summary article on payments and cards (you should read it and then pick the cited articles), fintech lenders, InsurTech and FinTech , Payments for Ecosystem Services and REDD+, Security and Privacy Requirements |
14/09/18 | Fri | 2 | Introduction to Crypto-based FinTech | Slides Exercise | For a bit of history see wiki page on DigiCash. For general introduction to the key issues in payment see a paper on payments and distributed ledgers by the Federal Reserve Board |
17/09/18 | Mon | 2 | Cryptocurrency Examples | Slides | For further details and possible extensions of PTN see a PTN survey (joint work of instructors with an Economics professor in UK). For a bit of history see Wiki page on Ripple and Wiki page on ZCash. Technical details of Ripple can be explored on Ripple Developer Center. To understand more about ZCash, look into their Technology page and the original scientific paper of ZeroCash. |
19/09/18 | Wed | 2 | Requirements for FinTech Case Studies | slides | The Innopay Case study is on Google Classroom |
21/09/18 | Fri | 2 | Bitcoin by prof. A. Montresor | ||
24/09/18 | Mon | 2 | Introduction to Complexity | sides | See Section 1.2 of Gold Reich Book. There is an old version of the chapter on the web page. You can also see |
26/09/18 | Wed | 2 | Finite Field, Discrete Logs, Quadratic Residuosity | slides | Read Chapter 2 and Chapter 3 of the Handbook of Applied Cryptography. Read also the original paper of El-Gamal Cryptosystem and GM Cryptosystem. Find the reference implementation of El-Gamal Cryptosystem and GM Cryptosystem in C. |
28/09/18 | Fri | 2 | Lab on Finite Field 1 (libsnark) | Exercise | |
01/10/18 | Mon | 2 | Lecture + Lab on Elliptic Curves | Slides and Exercise | Read Appendix 6 of FIPS 186-2 for the list of recommended curves. |
05/10/18 | Fri | 2 | Digital Signature | Slides | Read the main body of FIPS 186-2. |
08/10/18 | Mon | 2 | P vs NP: Decision | ||
12/10/18 | Wed | 2 | Recap on P vs NP: Search & Decision | ||
15/10/18 | Fri | 2 | P vs NP: Computational | ||
19/10/18 | Mon | 2 | Randomness | ||
24/10/18 | Wed | 2 | Zero-Knowledge Proof | ||
14/11/18 | Wed | 2 | Libsark Tutorial: Getting Started | Tutorial | |
16/11/18 | Fri | 2 | Libsnark Tutorial: Basic Gadgets | Tutorial | |
19/11/18 | Mon | 2 | Student evaluation (theory) | ||
21/11/18 | Wed | 2 | Libsnark Tutorial: Fundamental Relations and Gadgets | Tutorial | |
23/11/18 | Fri | 2 | Students presentation and feedback on Invoice Factoring use case (1) | ||
26/11/18 | Mon | 2 | Libsnark Exercise: Basic FinTech Gadgets | Exercise | |
28/11/18 | Wed | 2 | Libsark Tutorial: Merkle Tree for FinTech | ||
30/11/18 | Fri | 2 | Students presentation and feedback on Invoice Factoring use case (2) | ||
3/12/18 | Mon | 2 | FuturesMEX | Slides | FuturesMEX paper |
05/12/18 | Wed | 1 | Libsnark Tutorial: FuturesMEX advanced gadgets (1) | ||
07/12/18 | Fri | 3 | Libsnark Tutorial: FuturesMEX advanced gadgets (2) | ||
10/12/18 | Mon | 2 | Student final presentation and feedback on Invoice Factoring use case (graded) | ||
12/12/18 | Wed | 2 | HyperLedger Tutorial | ||
14/12/18 | Mon | 2 | Student tutoring in class | ||
17/12/18 | Wed | 2 | Student tutoring in class | ||
19/12/18 | Wed | 2 | SPDZ Tutorial | Tutorial |
Planned Lectures, Lab Sessions and Exercises
Date | Weekday | Hours | Topic | Slides | Additional materials |
---|---|---|---|---|---|
21/12/18 | Fri | 2 | Student tutoring in class | ||
25/01/19 | Fri | 8 | Final project |
Other Material
Other material is available in Google Classroom or in the Github repo.