Che cos'è uno Smart Contract?
Uno smart contract è un algoritmo che esiste su Blockchain e permette la gestione automatizzata delle Criptovalute con le quali interagisce, che diventano valore programmabile.

La nascita degli Smart Contract
L’idea di smart contract nasce insieme a Ethereum, prima blockchain finalizzata proprio allo sviluppo ed all’esecuzione di DApp. Ne abbiamo parlato a fondo nell’articolo su Ethereum.
Il concetto su cui si basa è quello di permettere una gestione automatizzata e programmabile del valore, colonna portante sulla quale sono costruiti tutti i servizi finanziari disintermediati e decentralizzati.
I primi smart contract
I primi smart contract erano estremamente semplici, col tempo si è iniziato poi a combinarli tra loro e farli interagire per costruire le cosiddette DApp (applicazioni decentralizzate, di cui la DeFi è un esempio).
Una delle prime funzioni espletate dagli smart contract riguardavano crowdfunding e tokenizzazione: l’emissione di nuovi token in cambio di un contributo, meglio conosciuta come ICO.
In questo modo si permetteva a chiunque di partecipare a raccolte fondi di nuovi progetti Crypto, diventandone inoltre “azionisti” (lo metto tra virgolette perché spesso i token erogati non davano benefici diretti, ma solo utilità sulla piattaforma del progetto in questione).
Servivano due smart contract: uno per creare il token ed uno per erogarlo ai contributori.
Lo smart contract di creazione del token conteneva i suoi dati economici di base, come la supply (quantità di token esistenti), il simbolo e il nome.
Quello del crowdfunding, invece, contiene le sue regole: il tasso di cambio, quanti token occorre distribuire al massimo, quant’è il minimo sotto il quale si annulla la vendita in caso di insuccesso, e altro ancora.
Bisogna fare molta attenzione quando si crea un contratto, poiché una volta caricato su blockchain, non è più possibile modificarlo (l’unico modo è crearne un altro).
Questi primi esperimenti, per quanto semplici, hanno posto le basi per la maggior parte dei progetti attualmente esistenti, che si basano sui cosiddetti token ERC-20, lo standard introdotto da Ethereum.
Da Smart Contract a DApp
Lo step successivo è stato combinare diversi contratti tra loro, per creare logiche più complesse. Nasce il concetto di DApp.
Con la crescita dell’ecosistema Ethereum si è iniziato a pensare alle prime piattaforme di servizi finanziari decentralizzati (la cosiddetta DeFi).
Esse non si potevano sviluppare con dietro un solo smart contract, le cui funzionalità sarebbero state troppo limitate.
Pertanto, si è pensato a logiche diverse, ottenute combinandone vari tra loro, ottimizzandone l’esecuzione e permettendo operazioni prima impensabili, quali il prestito, la gestione della liquidità e la collateralizzazione.
Prendiamo come esempio una “banale” piattaforma di lending, come può essere AAVE.
Il suo scopo è mettere in contatto chi ha liquidità “parcheggiata” da prestare e chi ha bisogno di essa ed è disposto a pagare un interesse per prenderla in prestito, depositando inoltre a garanzia un collaterale sotto forma di crypto.
Essa avrà bisogno di sapere il prezzo in tempo reale delle coin che gestisce, di conoscere il tasso di collateralizzazione dei prestiti, di gestire eventuali liquidazioni e di modificare i tassi d’interesse al fine di incentivare sempre l’utilizzo della piattaforma stessa.
Per ognuna di queste funzioni c’è uno contratto che, oltre a svolgerla, comunica con gli altri per coordinarsi.
L’utente non sa tutto questo ovviamente: lo scopo è rendergli la vita facile.
Pertanto, interagirà con una pagina web che, a sua volta, parlerà con Metamask, interfaccia che permette al browser di interfacciarsi con la blockchain Ethereum.
Con clic e digitazioni, l’utente inizializzerà le operazioni richieste, che verranno inoltrate agli smart contract ed eseguite.
L’utente avrà poi un feedback su quello che ha fatto. Rimanendo nell’esempio del lending, saprà quanta liquidità ha depositato, quanto sta guadagnando ecc.
Smart Contract, DApp e sicurezza
Con il crescere della complessità delle DApp, cresce anche il rischio di bug e comportamenti indesiderati.
Gli smart contract Ethereum sono scritti in Solidity, un linguaggio definito Turing Complete: può essere programmato per fare pressoché qualsiasi cosa.
Di conseguenza, diventa difficile formalizzarne la sicurezza e assicurare che la DApp non presenterà nessun bug o veicolo utilizzabile in maniera malevola per danneggiare gli utenti.
Nascono quindi gli auditor, il cui compito è esaminare il codice e trovare eventuali difetti.
Per quanto detto poco fa, neanche un audit garantisce sicurezza completa su uno smart contract, motivo per cui spesso se ne fa più di uno.
La sicurezza di una DApp dipende, più che dal numero di audit ricevuti, dalla sua storia e longevità: se gestisce alto capitale e lo fa da tanto tempo senza aver mai subito hack, è molto più probabile che sia sicura.
Tuttavia, possiamo affermare con certezza che il rischio zero, per ora, non esiste.
Conclusione
Per concludere, possiamo dire che uno smart contract è un algoritmo eseguito su blockchain che riceve specifici input, li elabora a seconda delle regole che contiene ed eventualmente restituisce degli output.
Rispetto ad un classico programma informatico, le differenze sono evidenti:
- La prima è che gli input e output di uno smart contract sono transazioni finanziarie su Blockchain contenenti dati e criptovalute.
- Inoltre, l’esecuzione è decentralizzata: non c’è un server centrale su cui il programma viene eseguito, ma esso è distribuito su una moltitudine di nodi.
- Infine, Ethereum ha un linguaggio di programmazione creato appositamente per lo sviluppo degli smart contract, di nome Solidity.
Chiunque può scrivere un contratto e caricarlo sulla blockchain Ethereum. Una volta fatto, non può più essere modificato né cancellato, ed eseguirà per sempre i comandi programmati al suo interno, o almeno fintanto che riceverà le interazioni necessarie come input.
Gli smart contract hanno permesso tutto quello che adesso conosciamo con il nome di DeFi, una delle innovazioni più grandi non solo del settore criptovalute, ma senza dubbio anche tecnologico e finanziario.