Cos’è uno smart contract?
1. Cos’è uno smart contract?
Lo smart contract (dall’inglese “contratto intelligente”) è un algoritmo progettato per l’amministrazione e il mantenimento di contratti auto-eseguibili nell’ambiente blockchain.
Tali contratti sono registrati sotto forma di un codice che esiste in un registro distribuito - una blockchain, che è gestita e controllata da una rete di computer. In parole povere, lo smart contract consente di scambiare gli asset senza ricorrere a servizi di intermediari.
2. Qual è la particolarità degli smart contract?
I smart contract offrono la possibilità di eseguire transazioni sicure e riservate senza la partecipazione di intermediari, come ad esempio le banche o le agenzie governative. Inoltre, tali transazioni sono tracciabili, trasparenti e irreversibili.
Gli smart contract non contengono solo informazioni sugli obblighi delle parti e le sanzioni per la loro violazione, ma assicurano anche automaticamente l’adempimento di tutte le condizioni contrattuali.
3. Chi ha inventato i smart contract?
Per la prima volta gli smart contract furono proposti nel 1994 da Nick Szabo. Quest’ultimo ha descritto il contratto intelligente come un protocollo informatico che, basato su algoritmi matematici, conduce in modo indipendente le transazioni con il pieno controllo sulla loro implementazione.
Per la prima volta, le idee di Szabo furono realizzate nella prima criptovaluta (bitcoin) e nella tecnologia che gli è alla base (blockchain). Infatti, bitcoin possiede alcuni dei principi di smart contract descritti da Szabo, tuttavia, la prima criptovaluta come la maggior parte delle blockchain moderne, non ha la completezza di Turing, quindi i loro “contratti” sono costruzioni relativamente semplici e eseguono solo funzioni come la multi-firma o le transazioni con esecuzione differita.
Gli smart contract hanno ricevuto un’ampia applicazione pratica con l’avvento e lo sviluppo del progetto Ethereum. Nel 2013, il fondatore Vitalik Buterin, giunse alla conclusione che il protocollo di Bitcoin è scarsamente adatto per gli smart contract, dal momento che non fu originariamente progettato per questo compito. Successivamente, Buterin decise di creare da zero il protocollo più adatto per essi.
4. Come funzionano i smart contract e quali sono gli elementi fondamentali per la loro esecuzione?
Di solito, uno smart contract è registrato in una blockchain, dove tutta la sua logica è inserita in un contenitore software - un blocco. Quest’ultimo unisce tutti i messaggi relativi a uno specifico contratto intelligente. I messaggi possono svolgere il ruolo di input e output del codice di un contratto intelligente e portare a qualsiasi azione al di fuori della blockchain, nel mondo reale o digitale.
Gli elementi fondamentali per l’esecuzione di uno smart contract:
- l’uso di firma elettronica basata su chiavi pubbliche e private, detenute da due o più parti dell’accordo;
- la presenza di un ambiente privato decentralizzato (ad esempio Ethereum) in cui sono scritti gli smart contract e che supporta gli input e gli output per gli oracoli che forniscono comunicazione tra il mondo reale e quello digitale;
- l’oggetto del contratto stesso e la disponibilità degli strumenti necessari per la sua esecuzione (conti correnti di criptovaluta, programmi oracle, ecc.);
- le esatte condizioni descritte della sua esecuzione, che le parti del contratto confermano con la firma, nonché l’accuratezza della fonte dei dati digitali.
5. Quali tipi di smart contract esistono?
A seconda del grado di automazione, gli smart contract possono essere:
- Completamente automatizzati.
- Con una copia cartacea.
- Cartacei, con alcune delle funzioni trasferite nel mondo digitale (ad esempio, quando sono automatizzati solo i pagamenti).
Le soluzioni basate sulla Blockchain sono solo in una fase iniziale di sviluppo. Le tecnologie vengono testate e perfezionate, quindi in pratica, gli smart contract davvero complicati al momento non si usano. Oggi, la stragrande maggioranza degli smart contract è del terzo tipo, dove solo alcuni aspetti degli accordi sono automatizzati, in particolare, lo scambio di denaro per i diritti di proprietà.
6. In quali altre circostanze i smart contract possono essere utilizzati?
Le potenzialità e la portata dell’uso di smart contract sono estese dalla semplice firma multipla alle transazioni con strumenti finanziari derivati. La multi-firma (multisig, escrow) è l’esempio più semplice e classico di un contratto intelligente. Con il suo aiuto, le controparti non fidelizzate possono congelare una certa quantità di monete all’interno della blockchain in modo che, se c’è la necessità di spendere questo importo, per rilasciare i fondi congelati, il contratto intelligente avrà bisogno delle firme di più della metà dei partecipanti.
I smart contract sono ampiamente utilizzati nel campo delle ICO. Ad esempio, un contratto intelligente può essere programmato in modo tale che quando si invia la criptovaluta ad un portafoglio appartenente all’ICO, i partecipanti della “vendita iniziale delle monete” saranno sicuri che in caso di fallimento di una campagna, i loro fondi saranno automaticamente restituiti; se l’obiettivo finanziario dell’ICO è raggiunto, i fondi saranno trasferiti agli sviluppatori. Tuttavia, ciò avverrà a condizione che un numero sufficiente di partecipanti alla firma multipla (se prevista) attivi le proprie chiavi, confermando così personalmente la buona fede del progetto.
I settori più promettenti per l’applicazione degli smart contract sono: il mercato finanziario (banche, assicurazioni, commercio di derivati), contabilità e controllo, gestione della catena di approvvigionamento e logistica, registrazione dei diritti di proprietà, tutti i tipi di voto, trasporto intelligente, identificazione digitale, ecc.
7. Quali sono i vantaggi degli smart contract rispetto ai contratti tradizionali?
I sostenitori degli smart contract sono convinti che molti tipi di relazioni contrattuali possano essere parzialmente o completamente auto-realizzati. La crittografia alla base degli smart contract fornisce un livello di sicurezza più elevato rispetto ai tradizionali contratti basati sulla legge. Gli smart contract possono ridurre i costi di transazioni ed eliminare i rischi di interpretazioni ambigue di condizioni o decisioni giudiziarie ingiuste.
Pertanto, tra i principali vantaggi degli smart contract ci sono:
- Autonomia (per le conclusioni e le conferme delle transazioni non è necessario cercare un intermediario, ad esempio: un broker, una banca, un notaio, ecc.);
- affidabilità e sicurezza (è un contratto ripetutamente duplicato e memorizzato in un modulo crittografato all’interno della blockchain;
- la sicurezza del sistema è garantita da leggi matematiche e rende improbabile attacchi di hacker, così come l’inserzione delle informazioni retrodatate;
- risparmio e velocità: grazie alla blockchain, molti intermediari vengono eliminati e i processi automatizzati;
- accuratezza (automatizzando e riducendo al minimo il lavoro manuale, la probabilità di errori, che spesso compaiono durante la compilazione dei moduli nel processo di approvazione e durante l’esecuzione manuale di varie operazioni nell’ambito del contratto, è ridotta).
8. Gli smart contrct hanno dei difetti?
Gli smart contract sono ancora lontani dall’essere perfetti: l’infrastruttura blockchain è ancora sottosviluppata e vi sono degli errori critici nei codici. Inoltre, ci sono ancora molte lacune nel quadro normativo degli smart contract, oracoli che non riescono al momento a legare il mondo digitale al mondo reale e fornire ai contratti i dati di input per la loro esecuzione. Tutto ciò crea alcuni ostacoli alla loro integrazione nelle attività quotidiane di organizzazioni e individui.
In alcuni casi, gli smart contract sono meno flessibili dei contratti convenzionali. Le informazioni che entrano nella blockchain non possono essere ulteriormente modificate, pertanto è estremamente importante mantenere l’accuratezza e l’affidabilità delle informazioni iniziali, nonché prevenire errori durante l’immissione dei dati.
Inoltre, lo scambio dei dati riservati attraverso registri aperti non è adatto a molte banche e grandi società. Sono ancora rilevanti i problemi della scalabilità e velocità di elaborazione delle transazioni.
Al giorno d’oggi molti sviluppatori cercano di risolvere questi e altri problemi e vincoli e ci riescono, ma essi sono risolti in modo diverso all’interno di piattaforme diverse, che non riescono ancora a contattare tra di loro. Il progresso non si ferma e in futuro molti problemi saranno risolti e il mondo della finanza passerà completamente dall’elaborazione dei contratti tradizionali alla loro implementazione digitale e persino alla loro attuazione con il supporto dell’intelligenza artificiale.