This shows you the differences between two versions of the page.
complexity_cryptography_and_financial_technology [2018/12/19 09:36] channam.ngo@unitn.it |
complexity_cryptography_and_financial_technology [2021/01/29 10:58] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Complexity, Cryptography and Financial Technology ====== | ||
- | This course is one of the [[teaching_activities|security courses]] of the [[start|Security Group]] in Trento. | ||
- | |||
- | It is offered at the University of Trento in the framework of the [[https://masterschool.eitdigital.eu/programmes/cse/|Cyber Security track]] of the [[https://www.eitdigital.eu/|European Institute of Innovation and Technology (EIT Digital)]] Master School programme. | ||
- | |||
- | It is also available in the normal[[http://web.unitn.it/en/scienze/6859/master-science-computer-science|Master Degree in Computer Science]] and in [[http://offertaformativa.unitn.it/en/lm/information-and-communications-engineering |Information and Communications Engineering]] at the University of Trento. | ||
- | |||
- | ===== Lecturers ===== | ||
- | |||
- | * [[http://www.massacci.org|Fabio Massacci]] | ||
- | * [[https://sites.google.com/g.unitn.it/namnc/home|Chan Nam Ngo]] | ||
- | |||
- | ===== 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 [[https://www.innopay.com/blog/join-the-co-creation-of-unbias-to-revolutionise-sme-financing|UNBIAS]] in collaboration with InnoPay NL. The second case study is [[https://www.youtube.com/watch?v=cOGgB9GdPT0|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. [[https://sites.google.com/view/intro2cns|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 | ||
- | * [[http://www.wisdom.weizmann.ac.il/~/oded/cc-book.html|Computational Complexity: A Conceptual Perspective]]. Book by O Goldreich. An old version of the book is on'line. See also [[http://www.wisdom.weizmann.ac.il/~/oded/cc.html|Goldreich's page on complexity theory]] | ||
- | * [[http://cacr.uwaterloo.ca/hac/|Handbook of Applied Cryptography|]] Book by AJ Menezes, PC van Oorschot and SA Vanstone | ||
- | |||
- | |||
- | More advanced books | ||
- | * Cryptography: An Introduction. Book by N Smart | ||
- | * [[http://theory.cs.princeton.edu/complexity/|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 [[https://easyroom.unitn.it/Orario|Easyroom]]. | ||
- | |||
- | ==== Past Lectures, Lab Sessions and Exercises ==== | ||
- | |||
- | ^ Date ^ Weekday ^ Hours ^ Topic ^ Slides ^ Additional materials ^ | ||
- | | //13/09/18// | Thu | 2 | Admin and Introduction | {{:teaching:cryptofintech:2018:2018-lecture-1-intro.pdf|Slides}} | [[http://www.sciencedirect.com/science/article/pii/S0007681317301246|FinTech General Overview]],[[http://www.sciencedirect.com/science/article/pii/S1567422315000678|a summary article on payments and cards]] (you should read it and then pick the cited articles), [[http://www.sciencedirect.com/science/article/pii/S0148619518300390|fintech lenders]], [[http://www.sciencedirect.com/science/article/pii/S0921800917301295|InsurTech and FinTech ]], [[http://www.sciencedirect.com/science/article/pii/B9780128104415000117|Payments for Ecosystem Services and REDD+]], [[http://www.sciencedirect.com/science/article/pii/S1084804517303247|Security and Privacy Requirements]] | | ||
- | | 14/09/18 | Fri | 2 | Introduction to Crypto-based FinTech | {{:teaching:cryptofintech:2018:2018-lecture-2-introduction_to_crypto-based_fintech.pdf|Slides}} {{:teaching:cryptofintech:2018:2018-lecture-2-introduction_to_crypto-based_fintech_-_exercise.pdf|Exercise}} | For a bit of history see [[https://en.wikipedia.org/wiki/DigiCash|wiki page on DigiCash]]. For general introduction to the key issues in payment see a paper on [[https://www.federalreserve.gov/econresdata/feds/2016/files/2016095pap.pdf|payments and distributed ledgers]] by the Federal Reserve Board | | ||
- | | 17/09/18 | Mon | 2 | Cryptocurrency Examples | {{:teaching:cryptofintech:2018:2018-lecture-3-cryptocurrency.pdf|Slides}} | For further details and possible extensions of PTN see a {{ teaching:cryptofintech:2018:money.pdf|PTN survey}} (joint work of instructors with an Economics professor in UK). For a bit of history see [[https://en.wikipedia.org/wiki/Ripple_(payment_protocol)|Wiki page on Ripple]] and [[https://en.wikipedia.org/wiki/Zcash|Wiki page on ZCash]]. Technical details of Ripple can be explored on [[https://developers.ripple.com/introduction.html|Ripple Developer Center]]. To understand more about ZCash, look into their [[https://z.cash/technology/index.html|Technology page]] and the [[http://zerocash-project.org/media/pdf/zerocash-extended-20140518.pdf|original scientific paper of ZeroCash]].| | ||
- | | 19/09/18 | Wed | 2 | Requirements for FinTech Case Studies | {{:teaching:cryptofintech:2018:2018-lecture-4-requirements-fintech.pdf|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 | {{:teaching:cryptofintech:2018:2018-lecture-5-complexity-introduction.pdf|sides}} | See Section 1.2 of [[http://www.wisdom.weizmann.ac.il/~/oded/cc-book.html|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 | {{:teaching:cryptofintech:2018:2018-lecture-6-finite_fields.pdf|slides}} | Read [[http://cacr.uwaterloo.ca/hac/about/chap2.pdf|Chapter 2]] and [[http://cacr.uwaterloo.ca/hac/about/chap3.pdf|Chapter 3]] of the [[http://cacr.uwaterloo.ca/hac/|Handbook of Applied Cryptography]]. Read also the original paper of [[https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1057074|El-Gamal Cryptosystem]] and [[https://dl.acm.org/citation.cfm?id=802212|GM Cryptosystem]]. Find the reference implementation of [[https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=blob_plain;f=cipher/elgamal.c;hb=HEAD|El-Gamal Cryptosystem]] and [[https://github.com/prvnkumar/libgm|GM Cryptosystem]] in C. | | ||
- | | 28/09/18 | Fri | 2 | Lab on Finite Field 1 (libsnark) | {{:teaching:cryptofintech:2018:lab1.pdf|Exercise}} | | | ||
- | | 01/10/18 | Mon | 2 | Lecture + Lab on Elliptic Curves | {{:teaching:cryptofintech:2018:2018-lecture-7-elliptic_curves.pdf|Slides and Exercise}} | Read Appendix 6 of [[https://csrc.nist.gov/csrc/media/publications/fips/186/2/archive/2000-01-27/documents/fips186-2.pdf|FIPS 186-2]] for the list of recommended curves. | | ||
- | | 05/10/18 | Fri | 2 | Digital Signature | {{:teaching:cryptofintech:2018:2018-lecture-8-digital_signature.pdf|Slides}} | Read the main body of [[https://csrc.nist.gov/csrc/media/publications/fips/186/2/archive/2000-01-27/documents/fips186-2.pdf|FIPS 186-2]]. | | ||
- | | 14/11/18 | Wed | 2 | Libsnark Tutorial: Getting Started | {{:teaching:cryptofintech:2018:tut1.pdf|Tutorial}} | | | ||
- | | 16/11/18 | Fri | 2 | Libsnark Tutorial: Basic Gadgets | {{:teaching:cryptofintech:2018:tut2.pdf|Tutorial}} | | | ||
- | | 21/11/18 | Wed | 2 | Libsnark Tutorial: Fundamental Relations and Gadgets | {{:teaching:cryptofintech:2018:tut3.pdf|Tutorial}} | | | ||
- | | 26/11/18 | Mon | 2 | Libsnark Exercise: Basic FinTech Gadgets | {{:teaching:cryptofintech:2018:exercise1.pdf|Exercise}} | | | ||
- | | 3/12/18 | Mon | 2 | FuturesMEX | {{:teaching:cryptofintech:2018:2018-lecture-15-futuresmex.pdf|Slides}} | {{:sp18proceedings.pdf|FuturesMEX paper}} | | ||
- | | 19/12/18 | Wed | 2 | SPDZ Tutorial| {{:teaching:cryptofintech:2018:tut1mpc.pdf|Tutorial}} | | | ||
- | |||
- | ==== Planned Lectures, Lab Sessions and Exercises==== | ||
- | |||
- | ^ Date ^ Weekday ^ Hours ^ Topic ^ Slides ^ Additional materials ^ | ||
- | | 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) | | | | ||
- | | 03/12/18 | Mon | 2 | FuturesMEX | | | | ||
- | | 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 | Fri | 2 | SPDZ Tutorial| | | | ||
- | | 17/12/18 | Mon | 2 | Student tutoring in class | | | | ||
- | | 19/12/18 | Wed | 2 | Student tutoring in class | | | | ||
- | | 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. |