Corso Blockchain

Basi teoriche, Bitcoin, Ethereum e smart contract con Solidity

Corso di formazione professionale sulle tecnologie blockchain, rivolto ad aziende che vogliono apprenderne le basi teoriche e le applicazioni pratiche per valutarne l'introduzione all'interno dei loro progetti. Il corso è rivolto soprattutto a sviluppatori, perché il contenuto è molto tecnico. Per un pubblico meno operativo posso preparare una versione su misura con contenuti più teorici.

Il corso si tiene in italiano o in inglese, in presenza a Torino o da remoto.

Per partecipare servono ottime capacità di programmazione e un computer con Linux, Mac o Windows con WSL2.

I moduli previsti, ciascuno della durata di mezza giornata (4 ore), sono i seguenti:

  • Introduzione alle tecnologie blockchain
    • Componenti di una blockchain;
    • Crittografia asimmetrica e firme digitali;
    • Wallet, transazioni e mining;
    • Tipologie di algoritmi di consenso;
  • Introduzione a Bitcoin
    • Input e Output;
    • Chiavi e indirizzi;
    • Wallet e transazioni;
    • Proof of Work e consenso;
  • Introduzione a Ethereum
    • EVM, Turing completezza, smart contract;
    • Wallet, EOA e indirizzi dei contratti;
    • Ether e gas;
    • Transazioni e blocchi;
    • Reti;
  • Solidity: ambiente di sviluppo e testing
    • Configurazione dell'ambiente di sviluppo con Hardhat;
    • Creazione di uno smart contract;
    • Qualificatori di visibilità;
    • Modificatori di accesso;
    • Interazione manuale con lo smart contract;
    • Testing con Hardhat;
  • Solidity: caratteristiche del linguaggio (prima parte)
    • Tipi di dato (value types e reference types);
    • Data location (memory, storage e calldata);
    • Struct;
    • Accesso alla transazione e al blocco;
  • Solidity: caratteristiche del linguaggio (seconda parte)
    • Gestione degli errori;
    • Eventi;
    • Modificatori;
    • Ereditarietà;
    • Funzioni fallback e receive;
  • Token e OpenZeppelin
    • OpenZeppelin (descrizione e installazione);
    • Funzioni di utilità;
    • Token fungibili (ERC20);
    • Token non fungibili (ERC721);
    • Multi-token standard (ERC1155);
  • Deploy e interazione con lo smart contract
    • Deploy su testnet o mainnet;
    • Introduzione alle dApp con viem;
    • Introduzione a MetaMask;
    • Creazione di una dApp;

Durante i moduli sono previsti esercizi per mettere in pratica gli argomenti trattati.