Programmabilità e Smart Contract, con Manuel Tumiati
Impara come la blockchain riesce a garantire trasparenza nei processi digitali
10min
Impara come la blockchain riesce a garantire trasparenza nei processi digitali
10min
Episodi di Blockchain Revolution
Benvenuti ad una nuova lezione di questo corso in formato podcast dedicato alla tecnologia blockchain e al Web3. Oggi affronteremo un tema molto interessante ovvero quello della programmabilità della blockchain. Lo faremo con un ospite d'eccezione Manuel Tumiati che da diversi anni opera nel settore blockchain e lo fa come CTO di aziende che sviluppano progetti basati su tecnologia blockchain e Web3.
Benvenuto Manuel. Grazie mille Vincenzo è un piacere essere qui e un saluto a tutti gli ascoltatori. Il tema secondo me è molto interessante e attuale perché quando si parla di programmabilità si pensa subito alla digitalizzazione che è qualcosa che negli ultimi anni abbiamo applicato a diversi processi e i motivi sono ovvi. Quando digitalizzo un processo lo rendo automatico, aumento l'efficienza delle mie risorse e diminuisco la richiesta di attività manuali. Tutto questo sembra bellissimo però c'è anche un problema. Ogni volta che digitalizzo un processo introduco un po' di opacità ovvero inserisco uno strato opaco che non mi permette di vedere quello che sta succedendo dall'altra parte.
Pensate a degli esempi molto semplici, ad esempio siete in coda al supermercato alle poste e c'è una fila ordinata di persone davanti a voi. Il meccanismo è molto chiaro quando tocca la persona davanti a voi voi diventate i prossimi e sarete serviti ma se qualcuno arriva dal fondo scavalca la fila e si mette davanti a voi ecco voi ve ne accorgete chiaramente ci litigate probabilmente. E cosa succederebbe se invece digitalizzassimo questo processo? Io non dovrei stare in piedi in coda ad aspettare, magari mi verrebbe assegnato un numero su un'applicazione e verrei chiamato quando manca poco al mio turno. Ecco che se qualcuno però arriva dal fondo e mi scavalca nella coda virtuale io faccio molta più fatica ad accorgermene perché il tutto è gestito con un processo che io non vedo, non è trasparente come la coda di prima ma, appunto, è un po’ più opaco. Tra le cose che la blockchain ci aiuta a fare c'è proprio questa: aiutarci a rendere più trasparenti i processi digitali.
La prima cosa che ti chiedo allora Manuel è cosa vuol dire digitalizzare un processo così poi vedremo insieme come la blockchain ci aiuterà a renderlo anche trasparente. Digitalizzare un processo significa trasformarlo in una modalità che possa essere in qualche modo automatizzata eseguita ad esempio da un software. Quindi possiamo immaginarci un insieme di regole che noi in qualche modo rendiamo comprensibili ad un automa quindi ad un computer ad una macchina che sia in grado di ricevere dei dati in ingresso delle informazioni in ingresso e produrre dei risultati a fronte di un'elaborazione che è stata definita a priori da chi ha insomma digitalizzato questo processo. Questo ci può andar bene in molti casi ma ce ne sono altrettanti in cui vogliamo vedere cosa succede dietro le quinte. Pensate, ad esempio, alle liste d'attesa della sanità pubblica, ai bandi di gara, alle lotterie, ai concorsi a premi. Questi sono soltanto alcuni esempi dove la digitalizzazione ci dà grandi vantaggi ma dall'altro lato avremmo bisogno di maggiore trasparenza. E allora a questo punto la domanda è come fa la blockchain ad aiutarci a creare dei processi digitali ma trasparenti? Lo fa consentendo l'esecuzione di programmi tipicamente chiamati smart contract che girano sull'infrastruttura blockchain. Ma cosa significa esattamente che un'applicazione o un programma viene eseguito sull'infrastruttura blockchain? Noi siamo abituati ad eseguire applicazioni sui nostri dispositivi, pensate ai cellulari, i computer, oppure quando visitiamo delle pagine web vediamo il front-end ma molte delle elaborazioni avvengono lato back-end, quindi su dei server remoti a cui non abbiamo accesso diretto. In altri casi ancora queste applicazioni vengono eseguite nel cloud su delle macchine di cui non abbiamo il controllo. In tutti questi casi abbiamo piena visibilità sulle informazioni che abbiamo fornito in ingresso e sugli effetti dell'elaborazione ma non abbiamo alcuna informazione su come questi dati sono stati effettivamente elaborati e quindi ci troviamo di fronte a delle vere e proprie scatole nere. Al contrario su blockchain questo paradigma cambia completamente. Noi possiamo caricare i nostri software su blockchain, il codice è accessibile a tutti e visibile a tutti e le interazioni sono anch'esse visibili a tutti, quindi tutte le esecuzioni, i dati in ingresso che vengono forniti e gli effetti che vengono prodotti dall'elaborazione che è stata definita all'interno di questi smart contract è pubblicamente accessibile ed è verificabile da chiunque.
Grazie Manuel. Ti va di farci un esempio? Per darvi un'idea più precisa riguardo a queste tematiche mi piacerebbe raccontarvi un episodio che è avvenuto circa un anno fa. Come sicuramente già saprete Marco Montemagno ha lanciato un suo progetto NFT qualche anno fa con l'obiettivo di creare una vera e propria community. Senza dilungarmi troppo su questo progetto in pratica i possessori di questo NFT hanno accesso a call dedicate piuttosto che vantaggi, sconti, promozioni, inviti agli eventi e cose di questo genere. Sempre lo stesso anno Monty ha deciso di provare ad andare oltre e sperimentare ancora di più quello che si può fare attraverso questa tecnologia e l'ha fatto proprio ragionando su queste tematiche di verificabilità. In questo secondo progetto Marco ha voluto dare degli ulteriori benefici ai membri della sua community e l'ha voluto fare attraverso un'estrazione quindi una vera e propria raffle. All'interno della sua community sono stati identificati alcuni parametri che permettevano di avere più o meno opportunità di venire selezionati. E quali erano i premi in palio? Per questa estrazione Marco ha voluto mettere a disposizione il suo tempo offrendo delle call dedicate anche di un'ora e delle partite a ping pong, delle partite a tennis o anche una cena, un aperitivo, un pranzo. Una volta stabiliti i criteri di partecipazione ci siamo chiesti come possiamo rendere questa estrazione il più trasparente possibile? Come possiamo garantire agli utenti che non verranno effettuati favoritismi, che non verrà alterato il risultato solo per avvantaggiare qualcuno rispetto a qualcun altro? Beh proprio in questo caso ci è venuta in aiuto la tecnologia blockchain quindi in particolare gli smart contract. Codificare le regole in un registro pubblico che permette l'esecuzione di queste regole in maniera verificabile ed immutabile è sicuramente la strada giusta da percorrere. A questo punto abbiamo sviluppato gli smart contract, li abbiamo configurati ed abbiamo avviato l'estrazione. E qui è venuta proprio una delle coincidenze curiose di questo progetto. Considerate che io personalmente faccio parte della community NFT di Montemagno e dall'altro lato ho partecipato attivamente allo sviluppo dell'algoritmo quindi dalla parte di progettazione anche la parte di implementazione dello smart contract stesso. E qui voi direte va bene dai tutto normale finché a un certo punto nella lista dei vincitori non vedete apparire il mio nome ben due volte. A un primo impatto la reazione sarebbe abbastanza scontata. Voi tutti potreste pensare “ah ecco lui ha sviluppato il software, ha ideato lo smart contract, ha ideato l'algoritmo di estrazione, avrà sicuramente introdotto dei meccanismi che gli hanno permesso di avvantaggiarsi rispetto agli altri” e giustamente vi sentireste un po' come nell'esempio che faceva Vincenzo all'inizio puntata, quello dove arriva una persona che scavalca la fila e si trova davanti a tutti. In realtà è proprio in questi casi limite dove possiamo renderci conto meglio dei vantaggi che questa tecnologia può portare a processi digitalizzati come questo.
E allora in che modo la tecnologia blockchain ti ha aiutato in questo caso? Molto semplice l'algoritmo è stato implementato all'interno di uno smart contract quindi è un programma che risiede su blockchain ed è pubblicamente accessibile e verificabile da chiunque. Ma qui si tratta non solo di poter verificare il codice ma possiamo addirittura verificare l'intera esecuzione del programma dell'algoritmo. Ad esempio possiamo vedere come è stata configurata l'estrazione, quando l'estrazione è stata effettivamente avviata, quali sono i dati che sono stati forniti in ingresso e ancora verificare come si è arrivati a questo risultato finale quindi tutte le elaborazioni che sono state eseguite per ottenere il risultato finale. Sebbene questi aspetti legati alla trasparenza e la verificabilità dell'esecuzione possono sembrare abbastanza semplici portano con sé in realtà una probabilità molto importante a cui spesso si presta poca attenzione ovvero quello della dimostrabilità. In questo caso specifico abbiamo potuto dimostrare con certezza matematica il fatto che l'estrazione in questione sia avvenuta in maniera estremamente onesta ed equa verso tutti i partecipanti. Spero che questo esempio concreto possa avervi dato gli elementi per capire un po' più a fondo i vantaggi della tecnologia blockchain e di quanto questa possa essere cruciale per garantire la trasparenza in un mondo che sta andando verso la digitalizzazione che abbiamo citato ad inizio puntata.
Vincenzo ti ringrazio ancora per l'invito. Grazie a te Manuel, ritengo che il tuo intervento sia stato davvero molto utile. Come sai è sempre un piacere per me poter parlare di questi argomenti di queste tecnologie. E allora grazie ancora e alla prossima. Di nuovo ciao Vincenzo grazie per l'invito. Un saluto a tutti gli ascoltatori.