GliΒ smart contract sono protocolli informatici che facilitano, verificano, o fanno rispettare, la negoziazione o l’esecuzione di unΒ contratto, essi quindi specificano le condizioni di un accordo tra parti diverse. Sono la versione informatica dei contratti fisici tra le persone validati da un notaio.

Il termine smart si riferisce al fatto che le condizioni sono specificate ed eseguite sotto forma di codice eseguito in una Blockchain, anzichΓ© su un foglio di carta conservato da un notaio.

La blockchain Γ¨ l’infrastruttura informatica che si sostituisce al notaio in quanto garantisce, intrinsecamente,Β sicurezza, affidabilitΓ  e accessibilitΓ . Io potrei, potenzialmente, scrivere i miei smart contract con un normale software ma questo non sarebbe trasparente ne sicuro. Si sfrutta quindi la blockchain per poter far girare degli script β€œvalidati” intrinsecamente. E quando si parla di milioni di dollari questa condizione Γ¨ fondamentale.

Differenze tra contratto tradizionale e smart contract

Il contratto tradizionale trova il proprio meccanismo di salvaguardia nel suo essere giuridicamente vincolante, in quanto protetto da una fonte normativa esterna al contratto, ovvero, dall’ordinamento giuridico. Infatti, Γ¨ l’ordinamento giuridico a prevedere, nel caso in cui una delle parti dovesse essere inadempiente, la possibilitΓ  per la parte soccombente a questo tipo di condotta, di adire l’autoritΓ  giudiziaria per modificare, annullare o far eseguire le obbligazioni pattuite.

Il contratto intelligente, a differenza del contratto tradizionale, pone il suo meccanismo di vincolativitΓ  nella peculiare tecnologia dellaΒ blockchainΒ e delloΒ smart contractΒ che impedisceΒ ab initioΒ l’inadempimento delle parti. Per il nodo Γ¨ tecnicamente impossibile violare volontariamente le condizioni prestabilite. Tutto questo pone in secondo piano le problematiche attinenti alla condotta del singolo ai fini dell’adempimento.

Smart contract sulla blockchain Ethereum

Ethereum Γ¨ la blockchain piΓΉ utilizzata per la definizione di smart contract. Vediamo velocemente i passaggi per poter inserire un nuovo contratto all’interno di essa.

  • Definizione dell’accordo: Per prima cosa vi deve essere un accordo univoco tra le parti, oppure una procedura standard, da tradurre in linguaggio macchina. Gli smart contract sono scritti in numerosi linguaggi di programmazione (tra cui Solidity, Web Assembly e Michelson).
  • Inserimento nella blockchain: Una volta scritto questo deve essere trascritto nella blockchain. Ethereum, in quanto permissionless, permette a tutti di effettuare questa operazione. C’è una verifica sulla disponibilitΓ  dei fondi dell’utente che registra il contratto.
  • Creazione del blocco: La rete dei dispositivi interconnessi garantisce il mantenimento, l’accessibilitΓ  e il corretto aggiornamento di un Distributed Ledger. Lo smart contract entra a far parte di un blocco (identificato univocamente da un codice hash) che viene validato dai partecipanti della blockchain
  • Validazione: in Ethereum la validazione di un blocco Γ¨ attraverso il Proof of Work, quindi la soluzione di un problema matematico. Il nodo che trova la soluzione e registra un contratto riceve una remunerazione in Ether.
  • Aggiunta alla catena: una volta validato il nodo viene aggiunto alla catena, la quale Γ¨ certificata. L’operazione Γ¨ pubblica e mostrata sulla piattaforma. Ogni nodo aggiunge un hash alla catena in modo che questa sia sicura e non contraffabile
  • L’oracolo: per definizione uno smart contract non puΓ² accedere a dati off-chain, quindi fuori dalla blockchain. In questi casi Γ¨ necessario utilizzare gli oracoli (oracles in inglese) che sono programmi terzi che fungono tra bridge tra dati on-chain e off-chain. Esistono anche oracoli decentralizzati come Chainlink.
  • Esecuzione: ricevuto l’input dall’oracolo avviene l’esecuzione del contratto, qualora le condizioni siano rispettate. per eseguire uno smart contract sulla rete Ethereum, Γ¨ necessario versare una commissione denominata β€œgas” (Γ¨ chiamata cosΓ¬ perchΓ© le commissioni consentono alla blockchain di funzionare).

Esempi

  • Etherisc: assicurazione sui viaggi aerei decentralizzata, che opera sulla piattaformaΒ Ethereum. LoΒ smart contractΒ interroga delle Api (alla fine Γ¨ codice, quindi le sue potenzialitΓ  sono infinite) per avere informazioni sugli orari di partenza e, in caso di ritardo del volo garantito dalla polizza, fa scattare automaticamente il rimborso
  • Uniswap: una piattaforma di negoziazione decentralizzata che consente agli utenti, tramite smart contract, di scambiare alcuni tipi di criptovaluta senza alcuna autoritΓ  centrale che stabilisca i tassi di cambio.
  • Compound: una piattaforma che utilizza gli smart contract per consentire agli investitori di guadagnare interessi e ai richiedenti di ottenere immediatamente un prestito, senza l’intermediazione di un istituto bancario.Β 

Eliminazione

Uno smart contract, una volta inserito in una blockchain non Γ¨, teoricamente, eliminabile. Come fare quindi se non le parti non vogliono piΓΉ utilizzare tale contratto? Potrebbe essere anche una clausola del contratto stesso la sua eliminazione. In alcune blockchain evolute (come Ethereum) Γ¨ stata implementata la possibilitΓ  di effettuare il kill o funzione di autodistruzione delloΒ smart contract. Questa funzione Γ¨ stata pensata per rimuovere i programmi non piΓΉ impiegati, con la finalitΓ  di efficientare leΒ performanceΒ dellaΒ blockchain, ma puΓ² essere anche utilizzata dal nodo che ha creato lo smart contract per, attraverso l’inoltro di una transazione e immettendo nellaΒ blockchain il corrispondente codice elettronicamente firmato, ovvero, le parti potrebbero anche inserire la funzione di autodistruzione all’interno delloΒ smart contractΒ e nell’eventualitΓ  prevedere, in un accordo a latere, i casi di attivazione della medesima.

Limiti

  • Non tutto Γ¨ traducibile in linguaggio informatico: nella realtΓ  Γ¨ facile riscontrare casi in cui per gestire alcuni accordi si rende necessario conferire un certo grado di ambiguitΓ  e discrezionalitΓ  che Γ¨ impossibile tradurre in codice
  • Le parti che sottoscrivono tale contratto possono non essere dei programmatori, essi quindi si troverebbero nella condizione di chiedere a terzi programmatori che si occuperebbero di trasporre il linguaggio naturale in linguaggio formale comprensibile alla macchina. Ho quindi un dispendio economico e una delega a terzi, che di fatto sono gli intermediari che dovrebbero, teoricamente, non servire piΓΉ con l’avvento di questa tecnologia.
  • Il programmatore che scrive il contratto potrebbe compiere degli errori, sia di interpretazione che di programmazione. Questi errori porterebbero dei risultati inattesi senza la possibilitΓ  di modificare tale contratto.
  • Essendo la blockchain una tecnologia per definizione internazionale, in caso di controversie quale sistema giuridico utilizzare?

Conclusione

Definiti i vantaggi e i limiti, loΒ smart contractΒ Γ¨ una soluzione estremamente innovativa e conveniente in presenza di accordi standard definiti univocamente e poco complessi. In quel caso basta programmare una sola volta lo smart contract e poi numerosi enti lo potranno utilizzare senza temere bug o ambiguitΓ .

Pensare di sostituire qualsiasi accordo commerciale con uno smart contract ad oggi Γ¨ difficile, ma si possono fare dei passi in avanti per la regolamentazione e giustiziabilitΓ  di tali contratti in modo da poter utilizzare, potenzialmente, una soluzione ibrida.

La finanza centralizzata, o DeFi, Γ¨ l’applicazione piΓΉ concreta ed utilizzata di smart contract e permette di investire denaro, o di ottenerlo tramite prestiti, senza passare per una banca o un exchange, riducendo quindi i costi senza rinunciare alla sicurezza.

Fonti