SOFTWARE AND SYSTEM VERIFICATION-1

Anno accademico
2024/2025 Programmi anni precedenti
Titolo corso in inglese
SOFTWARE AND SYSTEM VERIFICATION-1
Codice insegnamento
PHD207-1 (AF:545151 AR:311535)
Modalità
In presenza
Crediti formativi universitari
2
Livello laurea
Corso di Dottorato (D.M.226/2021)
Settore scientifico disciplinare
INF/01
Periodo
Annuale
Anno corso
1
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
L'obiettivo di questo corso è insegnare i concetti principali sulla sicurezza del software relativa alla tecnologia blockchain e alla programmazione di contratti intelligenti (smart contracts), investigando i problemi e le vulnerabilità più comuni, talvolta proponendo soluzioni di verifica automatica.
Al termine del corso, lo studente sarà in grado di:
1) comprendere il funzionamento di base della tecnologia blockchain e dei contratti intelligenti (smart contracts)
2) comprendere le principali sfide legate alla programmazione di contratti intelligenti
3) comprendere i problemi e le vulnerabilità più comuni della tecnologia blockchain e dei contratti intelligenti
Conoscenze di base di reti di calcolatori. Conoscenze di programmazione ad oggetti (Java-like).
1) Introduzione alla tecnologia blockchain (storia, struttura dati, algoritmi di consenso, ...)
2) Introduzione alla programmazione di contratti intelligenti (smart contracts)
3) Investigazione delle principali problematiche e vulnerabilità (numerical overflow, cross-contract invocations, non-determinism, ...)
4) Soluzioni per la verifica automatica del software basato su analisi statica
Blockchain e contratti intelligenti:

- 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/ )

Verifica del software:

- 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 )
Presentazione di una vulnerabilità, problematica o articolo scientifico relativo alla sicurezza di blockchain oppure contratti intelligenti.
Lezioni frontali, slides, e live coding.
Inglese
orale
Programma definitivo.
Data ultima modifica programma: 19/09/2024