Cosa è uno smart contract?

L'utilizzo di smart contract nel futuro aumenterà la velocità di esecuzione delle transazioni permettendo la possibilità di chiudere un volume maggiori di accordi con meno rischi di conformità o ritardi.
Marco Moshi avatar
Marco Moshi
Blockchain Evangelist - Ceo Labchain srl
smart contract

Uno smart contract è un programma informatico che interagisce con una blockchain, mediante il quale alcune azioni vengono eseguite automaticamente all'avverarsi di condizioni predefinite, permettendo così il rispetto di clausole e lo scambio di risorse tra le parti coinvolte senza la necessità di un intermediario.

Il termine “smart contract” è stato coniato da Nick Szabo nel 1994, quando si rese conto che una blockchain poteva essere il supporto per l’implementazione di programmi informatici, memorizzati e replicati sul sistema stesso, che auto eseguissero il proprio codice sotto il controllo della rete alla base della blockchain.

Lo smart contract può essere “on-chain”, se memorizzato all'interno dei blocchi di una blockchain, oppure “off-chain”, se il codice interagisce con la blockchain senza essere memorizzato all'interno di essa. 

Per qualificarsi come “smart” il contratto deve eseguirsi in automatico all'avverarsi di condizioni predefinite e deve essere rintracciabile, inalterabile e irreversibile

Una forma particolare di smart contract è lo smart contract “legale”, che utilizza il codice al fine di migliorare i contratti legali tradizionali. 

Per esemplificare il funzionamento di uno smart contract che, ad esempio, preveda lo scambio di beni tra più parti all'avverarsi di determinate condizioni, è possibile tracciare il seguente spaccato:

  • è presente una blockchain che permette l'implementazione e l'esecuzione di smart contract;
  • i beni che devono essere scambiati tra le parti vengono memorizzati in uno o più blocchi della blockchain immutabilmente;
  • i termini del contratto vengono memorizzati in uno o più blocchi della blockchain, immutabilmente (se "on-chain");
  • degli oracoli, cioè entità terze che forniscono informazioni alla blockchain, vengono collegati alla blockchain in modo che i contratti possano ricevere input dall'esterno.
  • all'avverarsi di date condizioni, verificate ad esempio grazie ad informazioni raccolte tramite oracoli, il contratto si esegue automaticamente secondo le condizioni previste;
  • la proprietà dei beni viene trasferita tra le parti, seguendo i termini del contratto. 

Gli smart contract possono, potenzialmente, aiutare le aziende a sviluppare un ambiente di fiducia con altre aziende così come con clienti privati, possono automatizzare e semplificare le transazioni in ogni settore lavorativo, possono garantire che le parte coinvolte siano ritenute responsabili delle condizioni contrattuali accettate. 

L’immutabilità del contratto rende impossibile il rischio che questo venga modificato da una delle parti a proprio favore.

L’immutabilità è però vista da alcuni come il punto debole degli smart contract. La maggioranza, se non la totalità, dei settori economici prevede che i termini contrattuali abbiano una scadenza in modo da poterli, di quando in quando, modificare aggiornandoli al mutato scenario politico economico. Lo smart contract, così come è tradizionalmente codificato, non può essere modificato, continuando così ad autoeseguire delle condizioni che potrebbero non essere più valide.

Per far fronte a questo limite diversi progetti blockchain stanno sviluppando soluzioni.

La strategia attuata da alcune piattaforme blockchain è quella di attendere che la legislazione dei diversi paesi offra una copertura legale allo smart contract e al suo funzionamento, concentrandosi sulla realizzazione di soluzioni per effettuare la certificazione su blockchain di contratti stipulati off-chain. In questo caso la validità del contratto è data dall'immutabilità del consenso al contratto sottoscritto dalle parti, senza che però sia presente una automaticità nell'esecuzione delle clausole. 

Il risultato non può perciò essere definito uno smart contract, trattandosi esclusivamente di un contratto certificato tramite blockchain.

Un percorso diverso è quello attuato da Hyperledger Fabric, la piattaforma blockchain di IBM, in cui si prevede che gli smart contract vengano memorizzati immutabilmente sulla blockchain, ma che possano essere aggiornati nel codice a fronte dell’accettazione delle parti in causa. In questo modo i termini e le condizioni possono essere modificati di quando in quando senza che i dati precedentemente memorizzati ne risentano e senza che avvengano delle azioni automatiche che non abbiano più senso di esistere.

Attualmente le principali piattaforme blockchain dotate di funzionalità smart contract sono Ethereum, NEM, Stellar, Hyperledger Fabric.

Ethereum è stata la prima blockchain dotata di funzionalità smart contract, rendendo libera e gratuita a tutti la possibilità di programmarli mediante il linguaggio Solidity. L’implementazione e l’esecuzione di ogni transazione hanno un costo in “Gas”, che può variare a seconda del sovraccarico della rete. 

Essendo Ethereum la prima piattaforma blockchain ad utilizzare gli smart contract, ha fatto da battistrada agli altri progetti, che hanno lavorato per superare alcune delle maggiori debolezze di Ethereum come ad esempio le difficoltà relative ai picchi di traffico e ai problemi di sicurezza. 

NEM ha voluto puntare al miglioramento di questi punti deboli, aumentando di decine di volte il numero di transazioni possibili al secondo così rafforzando la sicurezza. L’implementazione degli smart contract è off-chain e perciò meno decentralizzata di quella on-chain di Ethereum.

Per diminuire le barriere all’ingresso, NEM ha puntato sullo sviluppo degli smart contract in Java, uno dei linguaggi di programmazione maggiormente diffusi, così come su di una alta scalabilità. Nonostante ciò il numero di sviluppatori di smart contract NEM è ampiamente inferiore a quello degli sviluppatori su piattaforma Ethereum.

La soluzione per gli smart contract di Stellar è una delle meno costose e semplici ed ha avuto e ha tuttora un ottimo successo tra le ICO per la semplicità e per la possibilità di programmare gli smart contract in molti linguaggi quali Javascript, PHP, Python e altri. Gli smart contract di Stellar non prevedono però un alto livello di complessità rispetto ad Ethereum e NEM.

Moltissimi analisti ritengono che le blockchain ed il relativo utilizzo di smart contract supporteranno la crescita e l’evoluzione di molti settori economici garantendo un accresciuto livello di fiducia tra i partecipanti e un incremento della velocità nello svolgimento del lavoro. 

Per arrivare a questo risultato sarà necessario che si crei un framework legislativo che garantisca la crescita di queste soluzioni tecnologiche e che le aziende investano tempo, energie e denaro per comprenderne le potenzialità e adattarle ai diversi settori economici. 

Marco Moshi avatar
Marco Moshi

Blockchain Evangelist - Ceo Labchain srl