Cosa sono i Contratti Intelligenti?

Come molte idee nel settore della Blockchain e della Fintech, il termine Contratto Intelligente (Smart Contract) genera confusione e curiosità. Se un contratto standard è rafforzato dalla legge, un contratto intelligente è rafforzato dall’immutabilità e la oggettività dei codici crittografici.

Un contratto intelligente è essenzialmente un programma che esegue esattamente cosa è stato inserito dai suoi creatori, ovvero dalle 2 o più controparti che lo hanno compilato e inserito nella piattaforma decentralizzata e distribuita. Il fondamento logico che viene eseguito è facilmente trascrivibile con la sentenza “if-this-then-that” , se questo accade allora succede.

Il primo software che ha permesso l’esecuzione di una condizione determinata dalla sentenza logica “if-this-then-that” è stato inserito nei distributori automatici. Inserendo la moneta, automaticamente il software legge la stessa e se soddisfatta l’importo chiesto, permette di ricevere l’acqua.

Nel 1993 è stato concepito idealmente da un programmatore e crittografico, Nick Szabo, come una tipologia di un distributore automatico digitale (digital vending machine). Egli lo descrisse come  “un insieme di promesse, specificatamente sotto una forma digitale, attraverso un protocollo tra un numero non determinante di parti, che esegue esattamente quello richiesto di partenza”. Per protocollo Szabo intendeva un algoritmo che permettesse la imperturbabilità di un insieme di regole nel tempo. La semplicità offerta da Ethereum sta nel fatto che un qualsiasi utente possa inserire degli input data, sotto forma di regole e codici, e ottenere dalla macchina ricevente periodicamente l’esatto corrisposto, automaticamente e senza ulteriori input.

L’anatomia di un contratto intelligente può essere espressa in questi sei punti

  1. Due o più parti identificano un interesse comune
  2. Scrivono insieme uno smart contract con le condizioni
  3. Inseriscono lo smart contract nella Blockchain di Ethereum
  4. La stessa Blockchain di Ethereum diventa il garante del contratto
  5. Quando nella rete si ottiene il consenso, il contratto esegue le sue condizioni
  6. Dopo che le condizioni sono state eseguite, la Blockchain verrà aggiornata della modifica di stato del sistema.

In un esempio semplice, se A deve pagare periodicamente B, i due utenti scrivono uno smart contract nel quale dal conto di A ogni X tempo verrà prelevato la somma Y verso il conto di B. Automaticamente, il programma svolgerà l’operazione, seguendo le regole e i comandi preimpostati. Inoltre, non c’è un limite di controparti nella operazioni. (Cosa sono le dApps?)

Quando due utenti scrivono uno smart contract, entrambi devo porre su questo la loro firma privata in modo che il contratto possa ottenere il consenso dai full nodes di Ethereum.

Inoltre, riprendo l’esempio precedente, le transazioni verranno costantemente verificate dagli utenti attraverso la solita catena di blocchi: se l’utente A non dispone di sufficiente denaro per pagare B, l’operazione verrà bloccata senza creare debito nel sistema. Tutte le operazioni e transazioni sono sempre pubbliche e mostrate nella piattaforma Blockchain. Ovviamente, come abbiamo spiegato nelle altre pagine, in ogni operazione richiede una transaction fees, che dipende dalla potenza computazionale richiesta (GASPRICE).

Il linguaggio utilizzato per programmare i Contratti Intelligenti è il “Turing-complete”.