Course Syllabus
Obiettivi
Comprensione
dei principi di funzionamento delle blockchain, delle criptovalute e degli smart contract. Capacità di capire il funzionamento di semplici smart contract. Capacità di scegliere il tipo di blockchain più adatta a seconda della applicazione.
Contenuti sintetici
Nozioni
e concetti alla base del funzionamento delle blockchain, delle criptovalute, e degli smart contract. Il corso fornisce inoltre gli strumenti concettuali e
teorici che consentono di comprendere il funzionamento delle applicazioni basate su blockchain (DAPPs) presenti sul mercato.
Programma esteso
- Introduzione alle blockchain: motivazioni, tipi di blockchain, e loro applicazioni
- Blockchain basate sulle transazioni: Bitcoin e altre criptovalute
- Crittografia asimmetrica: cifratura, firme digitali, curve ellittiche, funzioni di hash
- Qualche dettaglio in più su come funziona la blockchain di Bitcoin
- Gli exchange, e i wallet
- Gli script di Bitcoin
- Blockchain basate su account: Ethereum
- Differenze tra la blockchain di Bitcoin e la blockchain di Ethereum
- Introduzione agli smart contract: cosa sono, possibili utilizzi e limitazioni
- Progettazione e implementazione di smart contract in Solidity
- La sicurezza delle blockchain e degli smart contract
- La tokenizzazione. Token fungibili e non fungibili (NFT). Gli standard ERC20 e ERC721. Alcuni aspetti legali della tokenizzazione
- Algoritmi di consenso
- Blockchain permissioned, e costruzione di blockchain private per il mondo enterprise
- Notarizzazione, e memorizzazione di documenti
- Alcune applicazioni delle blockchain. Architettura e funzionamento di una applicazione decentralizzata (DApp)
- Side-chains e cross-chains
Prerequisiti
Nessuno.
Modalità didattica
Lezioni in aula, con esempi svolti (dal docente) al computer.
La lingua di erogazione è l'Italiano.
Materiale didattico
- Imran Bashir. Mastering Blockchain: A deep dive into distributed ledgers, consensus protocols, smart contracts, DApps, cryptocurrencies, Ethereum, and more, 3rd Edition, Packt Publishing, 2020
- Andreas M. Antonopoulos, Mastering Bitcoin: Programming the Open Blockchain, 2nd Edition. O'Reilly, 2017. https://github.com/bitcoinbook/bitcoinbook
- Andreas M. Antonopoulos, Mastering Ethereum: Building Smart Contracts and Dapps. O'Reilly, 2018. https://github.com/ethereumbook/ethereumbook
Appunti forniti dal docente.
Periodo di erogazione dell'insegnamento
Secondo semestre A.A. 2021-2022
Modalità di verifica del profitto e valutazione
La verifica dell'apprendimento è basata su un colloquio orale avente per oggetto gli argomenti svolti a lezione.
Orario di ricevimento
Su appuntamento
Aims
Understanding of the principles of operation of blockchains, cryptocurrencies, and smart contracts. Ability to understand the operation of simple smart contracts. Ability to choose the most suitable type of blockchain, depending upon the domain-based application.
Contents
Basic notions and concepts underlying blockchains, cryptocurrencies, and smart contracts. The course also provides the conceptual and theoretical tools that allow the student to understand the operations of blockchain-based applications (DAPPs) which are currently found on the market.
Detailed program
- Introduction to blockchains: motivations, types of blockchains, and their applications
- Transaction-based blockchains: Bitcoin and other cryptocurrencies
- Asymmetric cryptography: encryption, digital signatures, elliptic curves, hash functions
- Some further details on how Bitcoin works
- Exchanges and wallets
- Bitcoin's scripts
- Account-based blockchains: Ethereum
- Differences between Bitcoin's blockchain and Ethereum's blockchain
- Introduction to smart contracts: what they are, possible applications, and limitations
- Design and implementation of smart contracts in Solidity
- Security aspects of blockchains and smart contracts
- Tokenization. Fungible and non-fungible tokens (NFT). The standards ERC20 and ERC721. . Some legal aspects of tokenization
- Consensus algorithms
- Permissioned blockchains, and the design of private blockchains for enterprise applications
- Notarization, and storing documents
- Some applications of blockchains. Architecture and operation of a decentralized application (DApp)
- Side-chains and cross-chains
Prerequisites
Teaching form
Lectures in the classroom, with examples performed (by the teacher) on a computer.
The teaching language is Italian.
Textbook and teaching resource
Textbooks:
- Imran Bashir. Mastering Blockchain: A deep dive into distributed ledgers, consensus protocols, smart contracts, DApps, cryptocurrencies, Ethereum, and more, 3rd Edition, Packt Publishing, 2020
- Andreas M. Antonopoulos, Mastering Bitcoin: Programming the Open Blockchain, 2nd Edition. O'Reilly, 2017. https://github.com/bitcoinbook/bitcoinbook
- Andreas M. Antonopoulos, Mastering Ethereum: Building Smart Contracts and Dapps. O'Reilly, 2018. https://github.com/ethereumbook/ethereumbook
Lecture notes provided by the teacher.
Semester
Second semester, Academic Year 2021-2022
Assessment method
The learning assessment is based on an oral colloquium, on the subjects exposed in class during the course.
Office hours
On appointment