Nel precedente articolo ho introdotto in maniera semplice il concetto di blockchain, la tecnologia che sta alla base di Bitcoin e di tutte le cryptovalute su web. In parole poverissime, la blockchain è un sistema decentralizzato che ci consente di effettuare transazioni digitali senza la necessità di grandi intermediari come banche, governi o social media, con evidenti risparmi di tempo e di conflitti. La blockchain è un sistema informatico che non è immune da bug e problemi, ma è innegabilmente vero che sono sistemi veloci, economici e più sicure rispetto ai sistemi tradizionali: governi, banche e istituti finanziarie hanno i riflettori puntati su questa tecnologia per eventuali utilizzi futuri.
Uno dei progetti, ancora in una fase embrionale/sperimentale, che si basa su blockchain è appunto lo Smart Contract, cioè il “contratto intelligenti”.
Mentre i contratti tradizionali vengono garantiti da leggi e regolamenti, i contratti intelligenti vengono “rafforzati” da algoritmi informatici che ne garantiscono l’immutabilità: ciò significa impossibilità di manomissione delle informazioni con una conseguente riduzione di truffe…
L’idea che sta alla base degli smart contract in realtà non è per niente nuova. Nel 1994 infatti, il crittografo e informatico (nonchè avvocato) Nick Szabo pubblicò un articolo dove teorizzava il primo modello di smart contract: l’umile distributore automatico. Quello delle lattine o del caffè va più che bene per rendere l’idea.
Il distributore automatico può essere visto come un contratto al portatore: chiunque abbia monete può partecipare a uno scambio con il venditore (cioè il distributore). Meccanismi di sicurezza proteggono le monete e i contenuti archiviati dagli aggressori (in questo caso le lattine), in misura sufficiente a consentire una proficua distribuzione dei distributori automatici in diversi contesti. Un distributore automatico ha regole “hard coded” che definiscono cosa succede quando determinate condizioni sono soddisfatte e quindi esegue determinate azioni. Per esempio:
- Se metto un 40 centesimi nel distributore automatico, riceverò una bottiglia d’acqua.
- Se metto un euro, allora riceverò una bottiglia d’acqua e 60 centesimi come resto.
Sono regole semplici definite in una macchina e applicate al mondo reale. Allo stesso modo, i contratti intelligenti sono “programmi” con regole semplici definite al loro interno e applicate su una blockchain.
Esempio 1
Facciamo un primo esempio, abbastanza comune nella vita reale: supponiamo che debba affittarti un appartamento. Ci accordiamo sul prezzo e stabiliamo che il pagamento avvenga attraverso la blockchain pagando con una criptovaluta. Tu riceverai una ricevuta che è contenuta nel nostro contratto virtuale; Io ti darà la chiave di accesso digitale che ti arriverà entro una data specifica. Se la chiave non arriva in tempo, la blockchain ti rilascia un rimborso. Se invio la chiave prima della data di inizio della locazione, un algoritmo manterrà la chiave che l’importo d’affitto in stand-by fino alla data di riferimento. Siamo sicuri che il sistema funziona, perchè:
- si basa su semplici algoritmi If-Then
- il database che contiene tale transazione è distribuito
- il contratto viene garantito da centinaia di persone
Quindi puoi aspettarti una consegna delle chiavi senza errori: se ti do la chiave, sono sicuro che sarò pagato e se mi invii una certa quantità in bitcoin, di sicuro riceverai la chiave. Il contratto viene automaticamente cancellato dopo tempo e il codice non può essere interferito da nessuno di noi senza che l’altro sappia poiché tutti i partecipanti sono contemporaneamente allertati.
Esempio 2
Giovanni e Maria hanno un figlio di 12 anni di nome Marco. Marco è un po’ malizioso e i suoi voti a scuola sono mediocri.
Giovanni e Maria sono pronti per una vacanza sull’Himalaya dove saranno reperibili solo via email. Quindi, per incentivare Marco a fare meglio a scuola mentre sono via, gli fanno un patto: se lui ottiene un 10 in Matematica, otterrà 50 euro (sono genitori generosi…).
Marco accetta questo accordo ma ecco il problema. Marco è impaziente e vuole una garanzia che se ottiene un 10 in Matematica, allora riceverà il pagamento prima che i suoi genitori tornino a casa dal loro viaggio.
Ma ricorda, Marco è malizioso, e i suoi genitori non possono fidarsi di lui perchè potranno comunicare solamente via email, senza possibilità di vedersi faccia a faccia. Marco potrebbe facilmente mentire sul suo voto solo per ottenere la ricompensa di 50 euro.
Allora Giovanni e Maria scrivono un contratto intelligente e bloccano 50 euro. I 50 euro saranno rilasciati solo all’indirizzo di portafogli pubblico di Ethereum di Marco solo se questi ottiene un 10 in Matematica. Invitano quindi l’insegnante di Marco a inserire il voto (i dati) nel contratto intelligente. Giovanni e Maria danno all’insegnante una chiave privata sicura in modo che lei sia l’unica in grado di scrivere i dati nel contratto intelligente.
L’insegnante , in questo caso, è un trusted oracle. Giovanni e Maria possono stare tranquilli sapendo che Marco verrà pagato solo se l’insegnante inserirà un 10 nel contratto intelligente. E Marco è felice perché sa che otterrà la sua ricompensa se lavora sodo e ottiene 10 e verrà pagato prima che i suoi genitori tornino dalle loro vacanze.
Punti di forza degli smart contract
- Autonomia: sei tu a fare l’accordo; non è necessario affidarsi a intermediari. Per inciso, anche in questo caso vi è una percentuale di rischio dovuto al pericolo di manipolazione da parte di terzi, tuttavia l’esecuzione è gestita automaticamente dalla rete, piuttosto che da un singolo individuo (magari di parte…) che potrebbe sbagliare.
- Fiducia: i tuoi documenti sono crittografati su un registro (libro mastro) condiviso tra centiania o migliaia di utenti. Non c’è modo che qualcuno possa dire di averlo perso.
- Backup: immagina se la tua banca perdesse le informazioni sul tuo conto corrente. In una blockchain, questo non è possibile perchè le informazioni sono duplicate centinaia di volte.
- Sicurezza: la crittografia mantiene i tuoi documenti al sicuro. Come ogni sistema informatico esiste una percentuale di violabilità del sistema, ma ci vorrebbe un hacker abnormemente esperto per violare il codice e riuscire ad infiltrarsi.
- Velocità: gli smart contracts utilizzano il codice del software per automatizzare le attività, riducendo così le ore fuori da una serie di processi aziendali.
- Risparmio: ti fanno risparmiare perché mettono fuori gioco la presenza di un intermediario. Pensa, ad esempio, il compenso per un notaio…
- Precisione: i contratti automatizzati non sono solo più veloci ed economici, ma evitano anche gli errori derivanti dalla compilazione manuale di moduli cartacei.
Conclusioni
Gli smart contracts hanno fondamentalmente un’applicazione illimitata e impatti di grandissima portata. Questi contratti “eseguiti tramite codice” sono una naturale evoluzione dei contratti moderni che noi tutti conosciamo e amiamo (e talvolta odiamo). Per essere chiari, ciò non significa che avvocati, notai o agenti immobiliari perderanno il lavoro. I loro mercati non si restringeranno e non è questo il caso. È la dinamica del processo che cambierà in meglio. Saremo in grado di fare le cose in modo più rapido ed economico, ma avremo ancora bisogno dell’agente immobiliare per trovare acquirenti o di un avvocato che ci rappresenti…