Minicorso su Blockchain (2CFU)


Docenti:
  • Prof. Roberto Segala
  • Prof. Fausto Spoto
  • Dr. Fabio Pallaro (SyncLab)
  • Avv. Maddalena Castellani
  • Dr. Matteo Cristani


Contenuti

Elementi di crittografia, blockchain, stato, Merkle tree e consenso. Programmazione e principi di implementazione di una blockchain. Teoria dei contratti in generale e specificatamente sui contratti tipici e atipici dell'informatica (licenza, sviluppo, outsourcing, services etc.). Diritto della blockchain e le implicazioni giuridiche a seconda che si tratti di blockchain aperta o chiusa. Carrellata relativa ai contratti che possono essere stipulati nell'applicazione di progetti block differenti (per esempio: progetto supply chain; progetto retail logistica / contratti di locazione). Smart contract. Trasposizione del contratto tradizionale in smart contract. Aspetti logico formali nella trasposizione in smart contracts e viceversa. Compliance dei processi. Semantica ed ermeneutica degli smart contracts. Descrizione del funzionamento della catena Ethereum (GAS, deploy ed esecuzione smartcontract ecc.), fondamentali del linguaggio solidity e dei tool per lo sviluppo di smart contract su Ethereum (principalmente Remix, Ganache, MetaMask) ed esempi ed hands-on di blockchain con synclab.it. Implementazione di una piattaforma di votazione mediante l’utilizzo di SmartContract su catena Ethereum (linguaggio Solidity). Problemi di sicurezza in codice Solidity.

Calendario delle lezioni:
  • 01/06/2020 (2h) 14:00-16:00Roberto Segala. Introduzione alla crittografia, sicurezza crittografica, crittografia simmetrica e asimmetrica, codifiche a blocchi, semplici protocolli. Zoom Link.
  • 03/06/20202 (2h) 16:00-18:00 Roberto Segala. Firma digitale, funzioni hash collision resistant, autenticazione, cenni alla crittografia ellittica. Zoom link.
  • 04/06/2020 (2h) 9:00-11:00 Fausto Spoto. Introduzione alle blockchain, blocchi, stato, proof of work, proof of stake, consenso, il caso di Bitcoin ed Ethereum, wallet, Infura, web3j, indirizzi Ethereum, transazioni, nonce, transazioni con Infura e web3j. Zoom link.
  • 05/06/2020 (2h) 14:00-16:00SyncLab. Catena Ethereum (funzionamento generale, GAS, deploy ed esecuzione Smart Contract), introduzione al linguaggio Solidity ed ai tool di sviluppo (principalmente Remix, Ganache, MetaMask). Zoom link.
  • 05/06/2020 (2h) 16:00-18:00SyncLab. Hands-on con implementazione di una piattaforma di votazione su Ethereum. Zoom link.
  • 6/06/2020 (2h) 9:00-11:00 - Fausto Spoto. Esempi di smart contract Solidity per schemi Ponzi ed aste. Zoom link.
  • 6/06/2020 (2h) 11:00 - 13:00 - Fausto Spoto. Problemi di sicurezza del codice Solidity: reentrancy, over/underflows, entropy illusion, front running (ed altri). Zoom link.
  • 08/06/2020 (2h) - 14:00-16:00 Maddalena Castellani. Introduzione generale ai contratti - contratti tipici / atipici ; trattative precontrattuali ; la tutela del sw ; i contratti di informatica (licenza; sviluppo; manutenzione; outsourcing; services (cloud - SAAS); condizioni generali - condizioni speciali). Zoom link.
  • 09/06/2020 (2h) - 14:00 - 16:00 Maddalena Castellani. Riprendo contratti di informatica; blockchain in generale (con permesso senza permesso esempio vendita immobiliare) ; esempi di clienti tipo ( certificazione bio - retail e logistica - gestione dati disorganizzati - cliente che vuole stipulare un contratto tra due o più parti collegamento con smart contract). Zoom link.
  • 10/06/2020 (2h) - 14:00 - 16:00Maddalena Castellani. Smart contract e collegamento con lezione prof. Cristani sulla trasposizione del contratto naturale in smart contract. Zoom link.
  • 11/06/2020 (2h) 11:00 - 13:00 - Matteo Cristani. Natural language processing: tecniche di traduzione di contratti in sistemi logici, proprietà dei contratti. Negoziato digitale. Zoom link.
  • 12/06/2020 (2h) 11:00 - 13:00 - Matteo Cristani. Trattamento dell’automazione della correttezza di contratti rispetto allo sfondo normativo con tecniche logico-formali. Zoom link.
Modalità d’esame: discussione di un miniprogetto. I dettagli saranno comunicati a breve!