SOFTWARE AND SYSTEM VERIFICATION-1

Academic year
2024/2025 Syllabus of previous years
Official course title
SOFTWARE AND SYSTEM VERIFICATION-1
Course code
PHD207-1 (AF:545151 AR:311535)
Modality
On campus classes
ECTS credits
2
Degree level
Corso di Dottorato (D.M.226/2021)
Educational sector code
INF/01
Period
Annual
Course year
1
Where
VENEZIA
Moodle
Go to Moodle page
The goal of this course is to teach the main concepts of software security related to blockchain technology and smart contract programming, investigating the most common issues and vulnerabilities and proposing also some automatic verification solutions.
At the end of the course, the student will be able to:
1) understand the basic functioning of blockchain technology
2) understand the main challenges of smart contract programming
3) understand the main security issues and vulnerabilities related to blockchain and smart contracts
Basic knowledge of computer networks. Knowledge of object-oriented programming (Java-like).
1) Introduction to blockchain technology (history, data structure, consensus algorithms, ...)
2) Introduction to the programming of smart contracts
3) Investigation of the main issues and vulnerabilities (numerical overflow, cross-contract invocations, non-determinism, ...)
4) Solutions for automatic software verification based on static analysis
Blockchain e smart contracts:

- Antonopoulos, Andreas M.: "Mastering Bitcoin: unlocking digital cryptocurrencies", O'Reilly Media, 2014. (https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ )
- Antonopoulos, Andreas M., and Gavin Wood: "Mastering Ethereum: building smart contracts and dapps", O'Reilly Media, 2018. (https://www.oreilly.com/library/view/mastering-ethereum/9781491971932/ )

Software Verification:

- Xavier Rival and Kwangkeun Yi: "Introduction to Static Analysis: An Abstract Interpretation Perspective", MIT Press, 2019 (https://mitpress.mit.edu/books/introduction-static-analysis )
- Patrick Cousot: "Principles of Abstract Interpretation", MIT Press, 2021 (https://mitpress.mit.edu/books/principles-abstract-interpretation )
Presentation of a vulnerability, issue or scientific article relating to the security of blockchain or smart contracts.
Frontal lectures, slides, and live coding.
English
oral
Definitive programme.
Last update of the programme: 19/09/2024