CODICE 108872 ANNO ACCADEMICO 2025/2026 CFU 6 cfu anno 2 COMPUTER SCIENCE 10852 (LM-18) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Questo corso esplorerà i fondamenti delle blockchain, i loro principi crittografici, gli smart contract e alcuni framework introdotti per aiutare gli sviluppatori nella realizzazione di applicazioni decentralizzate nell’ecosistema Web3. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Learning the techniques and problems related to systems based on permissioned and permissionless blockchains, and decentralized systems in general, examining with particular attention the aspects related to security. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO La frequenza regolare e la partecipazione attiva alle attività didattiche proposte, insieme allo studio individuale, permetteranno agli studenti/alle studentesse di comprendere le sfide legate alla progettazione dei sistemi decentralizzati. In particolare, gli studenti/le studentesse saranno in grado di: discutere gli algoritmi di consenso decentralizzato e il loro utilizzo nelle reti peer-to-peer; spiegare come le tecniche crittografiche garantiscano la sicurezza dei ledger distribuiti; analizzare i principali problemi di scalabilità nelle architetture blockchain, incluse alcune soluzioni proposte in letteratura; discutere alcuni problemi di sicurezza e privacy nelle architetture blockchain e le relative contromisure; implementare smart contract di base pubblicabili su blockchain programmabili (ad esempio, Ethereum, Solana); utilizzare strumenti e librerie open-source per interagire con gli smart contract pubblicati; comprendere i problemi economici, etici e ambientali legati alle piattaforme blockchain. PREREQUISITI Per avere successo in questo corso, gli studenti/le studentesse dovrebbero possedere conoscenze di base su: Reti di comunicazione Sistemi distribuiti Programmazione (JavaScript, Python) MODALITA' DIDATTICHE Lezioni frontali e attività pratiche, propedeutiche allo svolgimento degli assignment che saranno discussi durante l’esame orale. PROGRAMMA/CONTENUTO Come costruire uno stato condiviso senza autorità centrali Algoritmi per raggiungere il consenso in un sistema decentralizzato e adversariale (ad es. Byzantine, PoW, PoS, ...) Tecniche crittografiche Protocolli di rete peer-to-peer Blockchain programmabili e applicazioni decentralizzate Linguaggi e framework per smart contract e applicazioni client File system peer-to-peer Utilizzo di reti di test Scrittura di codice sicuro ed efficiente Problemi di scalabilità e relative soluzioni Reti Layer 2 (off-chain) Problemi di sicurezza e privacy Anonimizzazione e deanomizzazione di utenti e transazioni Attacchi e difese per smart contract TESTI/BIBLIOGRAFIA La bibliografia consigliata, composta principalmente da risorse online liberamente accessibili, sarà indicata e discussa durante le lezioni e resa disponibile sulla pagina AulaWeb del corso. DOCENTI E COMMISSIONI MATTEO DELL'AMICO Ricevimento: Su appuntamento (in presenza o online) definito per email (matteo.dellamico@unige.it). MARINA RIBAUDO Ricevimento: Gli studenti/le studentesse possono contattare la docente via e-mail. LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/10852/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L’esame si compone delle seguenti parti: (i) una prova scritta e (ii) una presentazione orale durante la quale gli studenti/le studentesse discuteranno i propri assignment. MODALITA' DI ACCERTAMENTO La prova scritta, che costituisce requisito di ammissione alla discussione degli assignment, consiste in domande relative agli argomenti trattati a lezione e permette di valutare le conoscenze teoriche acquisite dallo studente/dalla studentessa durante il corso. Per la parte orale, la valutazione si baserà sulla qualità del codice prodotto e sulla completezza delle relazioni. La prova scritta e la discussione degli assignment si svolgono nella stessa sessione. ALTRE INFORMAZIONI Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare i docenti.