Come visto nelle lezioni precedenti, la blockchain è come un archivio di dati in un sistema bancario. Un smart contract è simile ad un programma in un sistema bancario.
Nella lezione sulla blockchain, abbiamo usato il seguente esempio: una persona (A) con 100€ nel suo conto vuole trasferire 50€ a qualcuno (B) attraverso la banca. Si compila un bonifico e lo si comunica alla banca (di persona o online), che quindi verifica la transazione e la registra in un archivio dati. Di conseguenza il saldo dei due conti viene aggiornato dalla banca stessa.
In un esempio leggermente più avanzato, immaginiamo di voler effettuare un ordine che dica “Trasferisci 50€ a B alle 17:00 del 12 aprile 2022”. In questo caso, oltre all’archivio dati in cui sono archiviati i dettagli della transazione, il sistema avrebbe bisogno anche di un archivio dati separato per la registrazione di tali prenotazioni. Nel sistema bancario, questo può essere configurato su un programma che si occuperà di inserire in calendario le operazioni future, per poi registrarle nell’archivio dati delle transazioni alla data prescelta. Ovviamente, il sistema bancario si basa sulla fiducia dei propri correntisti. Il cliente deve fidarsi che la banca si ricorderà di effettuare il pagamento in quella determinata data.
Nel caso delle blockchain, se hai 100 ETH e desideri trasferire 50 ETH a qualcuno (B), in una data futura, puoi farlo automaticamente se gli sviluppatori hanno implementato nella blockchain una funzione di prenotazione. In questo esempio, immaginiamo uno smart contract che dica “quando si raggiunge la data specificata, eseguire la transazione”. Automaticamente, il 12 Aprile verrà registrata la transazione di 50 ETH da A verso B, senza la necessità che qualcuno monitori la situazione e si faccia garante dell’esecuzione.
Al giorno d’oggi molte blockchain supportano gli smart contract, come ad esempio Ethereum, ma anche le più recenti Cardano, Solana, Algorand, Polkadot, Cosmos e la Binance Smart Chain.
In sostanza, gli smart contract sono programmi ospitati ed eseguiti su una rete blockchain. Ogni smart contract è costituito da un codice che specifica condizioni predeterminate che, una volta soddisfatte, attivano un’azione. Funzionando su una blockchain decentralizzata anziché su un server centralizzato, gli smart contract consentono a più parti di raggiungere un risultato condiviso in modo accurato, tempestivo e a prova di manomissione, senza il controllo di un ente terzo come la banca.
Il futuro degli smart contract
Gli smart contract sono un concetto molto semplice, banalmente sono la versione virtuale dei contratti che si firmano ogni giorno nel mondo reale, ma grazie alla blockchain garantiscono un livello di sicurezza ed affidabilità inattaccabile nel tempo.
Pensiamo al motivo per cui facciamo contratti. Viene stipulato un contratto per adempiere alle reciproche promesse e per avere effetto legale in caso di problemi successivi. Uno smart contract, un programma caricato sulla blockchain, garantisce che il programma venga eseguito così com’è scritto perché a causa della natura della blockchain, non può essere contraffatto o manomesso. È come scrivere un contratto digitale, quindi si chiama contratto intelligente (smart contract in inglese). In altre parole, è un contratto che ha l’effetto di un’esecuzione forzata.
Se finora gli smart contract possono sembrare un concetto banale, bisogna immaginare un futuro in cui tutta la finanza e persino il commercio saranno sulla blockchain.
Pensiamo alle aziende che producono e vendono merci ad altri aziende. Spesso si utilizzano pagamenti a 30, 60 o persino 90 giorni dalla consegna delle merci. Purtroppo, molte volte gli imprenditori devono sollecitare questi pagamenti, che arrivano in ritardo oppure non arrivano proprio.
Ora immaginiamo di vendere il prodotto tramite la blockchain e firmare uno smart contract con il cliente che stabilisca la condizione “dal momento in cui la merce viene consegnata, il pagamento verrà effettuato dopo 30 giorni”. Tutta la filiera di produzione e di trasporto sarà integrata nella blockchain (ad esempio VeChain offre proprio questo servizio), quindi in qualsiasi momento si potrà verificare in tempo reale dove si trova la merce. Nel momento in cui il cliente la riceverà, questo evento verrà registrato nella blockchain, e partirà il countdown per lo sblocco del pagamento. Trascorsi 30 giorni, la somma pattuita verrà automaticamente trasferita dal conto del cliente a quello del fornitore.