Tempo fa confrontandomi con una delle persone che più stimo in ambito blockchain, e non solo, questa mi faceva notare alcune cose riguardo il termine “smart contract”, di cui la traduzione in italiano è “contratto intelligente”, adesso invece mentre leggevo alcuni feed che seguo, sempre in ambito blockchain, sono incappato in un interessante articolo che mi ha dato lo spunto per scrivere quanto stai leggendo ora.
Quello che sto per dirti potrebbe non piacerti e sfatare alcuni miti legati agli smart contract, ma il titolo parla chiaro: “Tutta la verità sugli smart contract”.
Come per alcuni termini come “blockchain”, “AI”, “cloud”, anche la parola “smart contract” è una di quelle che porta con sé diverso hype.
In un sistema ormai in declino fidarsi di un’entità imparziale e incorruttibile come uno smart contract è qualcosa di pionieristico, quasi futuristico, e se pensiamo ad esempio al sistema giudiziaro, gli smart contract sono spesso oggetto di discussione in quanto prospettano di:
- Eseguire i contratti in modo automatico, imparziale e sicuro
- Eliminare i “middleman” tra la costruzione del contratto, l’esecuzione e l’imposizione di un contratto
- Eliminare di riflesso quindi gli avvocati
Tutto questo è molto interessante e gli smart contract sono proprio uno dei capisaldi di Ethereum, uno degli elementi che ha aiutato questa blockchain ad affermarsi, prospettandogli un futuro roseo, all’insegna del progresso.
Ora però andiamo a capire cosa sono gli smart contract e a livello ingegneristico cosa c’è dietro.
Che cos’è uno smart contract?
Un normale contratto è un accordo tra due o più parti che li lega a qualcosa nel futuro, contratti di affitto (Tizio pagherà Caio in cambio dell’uso della sua casa), contratti di assicurazione (Tizio pagherà una quota annuale a Caio che però lo risarcirà in caso di incidente), contratti di lavoro (Tizio offrirà una prestazione a Caio in cambio di denaro), e così via.
La differenza con uno smart contract consiste nel fatto che le condizioni sono valutate ed eseguite da un codice informatico che è “trustless” ovvero “senza fiducia“.
Cosa si intende con il termine “trustless”?
Semplice, pensa ad un contratto di compravendita di un auto tra Tizio ed una concessionaria.
Tizio si impegna a pagare 10.000€ alla concessionaria in cambio di un auto nuova che però gli verrà consegnata a distanza di 3 mesi.
In questo caso un “semplicissimo” codice informatico è in grado di determinare se le condizioni sono vere:
- Tizio ha pagato la concessionaria?
- Sono passati 3 mesi?
Se queste condizioni sono vere lo smart contract potrà eseguire la consegna dell’auto e nessuna delle due parti potrà ritirarsi.
Questa esecuzione avviene senza fiducia, si parla di “trustless execution”, ovvero non vi è una terza parte estranea, sia a Tizio che alla concessionaria, che verifica ed esegue le condizioni, tutto avviene in modo immediato ed obiettivo, al contrario invece di quanto avviene in un contratto tradizionale dove anche dall’immagine seguente puoi vedere che c’è un elemento in più.
Gli smart contract sono davvero intelligenti?
La persona con cui mi confrontavo tempo fa, di cui ho la fortuna di essere amico, mi diceva proprio che: “Di intelligente, gli smart contract, hanno solo il nome, per il resto sono stupidi” e come dargli torto?
Il fatto che siano”intelligenti” è solo in funzione di quello che viene codificato al loro interno, non hanno alcuna intelligenza innata.
Insomma immaginiamo che nella compravendita dell’auto ci siano stati dei problemi, un contratto veramente intelligente, potrebbe esaminare una serie di circostanze e di attenuanti, verificherebbe la validità del contratto stesso e prenderebbe una decisione “giusta” anche nei casi più oscuri.
In questo caso potremmo dire che lo smart contract è l’equivalente di un ottimo giudice.
Ma in realtà non è così, lo smart contract potrà fare solo quello per cui è stato programmato a monte, ovvero compierà le azioni che le due parti hanno deciso che vengano attuate “in caso di” fino alla possibilità di trovarsi davanti un vicolo cieco, senza prendere in considerazione una serie di particolari e dettagli che un giudice con la sua intelligenza innata avrebbe potuto notare.
Dunque un contratto “trustless” implica che non possiamo lasciare spazio ad ambiguità e questo ci introduce ad un ulteriore problema .
Ethereum non ha inventato gli smart contract, li ha “migliorati”
Qualcuno di voi potrà pensare che con questo articolo voglio smontare Ethereum ed uno dei suoi pilastri, assolutamente no, resto convinto che si tratta del progetto pilota del mondo blockchain, ci tengo a precisarlo.
Tutto sommato, gli smart contract esistono da anni (1995), lo stesso Bitcoin nel 2009 con il suo linguaggio Script, permetteva l’esecuzione di smart contract.
La differenza sostanziale, e non da poco, è che il linguaggio usato da Ethereum, ovvero Solidity, è Turing-complete.
Questo permette ad un programmatore Solidity di scrivere smart contract più complessi che allo stesso tempo però sono più difficili da analizzare.
Le conseguenze di questa complessità sono significative.
Infatti se da un lato permettono di gestire situazioni complicate, dall’altro possono sorgere problemi di sicurezza.
Cosa significa?
Per capirlo spostiamoci nel mondo dei contratti normali, più sono le clausule, le opzioni, i vari punti del contratto, insomma più la sua complessità aumenta tanto maggiore sarà la difficoltà di applicarlo, in quanto maggiori saranno potenziali incertezze ed interpretazioni.
Con in contratti intelligenti, sicurezza implica che questi siano eseguibili in qualsiasi circostanza e che ciò che venga eseguito è quello che gli autori vogliono.
Conclusione
Come ho già detto in precedenza qualcuno potrebbe considerare questo articolo negativo nei confronti di Ethereum ma in realtà lo scopo di questo articolo, come dell’intero sito su cui ti trovi ora, è quello di fare informazione in maniera chiara, e fare chiarezza sugli smart contract è sicuramente un qualcosa che andava fatto, in quanto troppo spesso nell’immaginario collettivo si pensa a quest’ultimi come un innovazione perfetta ed infallibile.
Questa prima parte dedicata a “Tutta la verità sugli smart contract” termina qui e continuerà in un prossimo articolo, intanto se questo articolo ti è piaciuto aiutaci a condividerlo sui social e se hai domande lascia pure un commento qui sotto.
Commenti