La blockchain è uno strumento rivoluzionario, che permette di ottimizzare e rendere sicura e trasparente la trasmissione di informazioni, dati e valori tra utenti (per approfondire clicca qui).
È un ecosistema che ha tutte le caratteristiche per funzionare in modo estremamente avanzato ed efficiente, a patto però che si verifichi una condizione imprescindibile: la rete deve poter accedere ad informazioni appartenenti al mondo reale, che descrivono lo status e l’evoluzione di quegli stessi dati che ha il compito di gestire.
Questo è un passaggio fondamentale.
Ma come fa la blockchain a comunicare con il mondo reale?
Te lo sei mai chiesto?
Quale strumento o meccanismo le consente di accedere a dati che sono indispensabili per il suo funzionamento e la sua efficienza, ma che restano esterni alla rete?
La risposta è proprio in questo post: attraverso gli oracoli!
Il termine sicuramente non ti è nuovo.
Prova a tornare al suo significato originario e ti sarà molto più facile comprendere qual è il senso del suo utilizzo in ambito blockchain.
Tutti conosciamo gli oracoli del mito, ponti tra l’uomo e la divinità in grado di dare risposte sul futuro e su eventi che altrimenti sarebbero rimasti inspiegabili e inspiegati agli occhi degli antichi.
Gli oracoli della blockchain funzionano esattamente allo stesso modo.
Con una differenza fondamentale, ovviamente!
Bisogna trasferire il concetto dal mondo divino a quello informatico (😉).
I nostri oracoli, infatti, agiscono come ponti tra il mondo reale e quello digitale e hanno il compito di risolvere quello che altrimenti sarebbe un problema di incomunicabilità fondamentale per l’evoluzione stessa della tecnologia blockchain.
Non fraintendere eh!
Purtroppo per noi, gli oracoli di cui parliamo in questo post non annunciano profezie infallibili sul futuro prezzo di criptovalute o sull’opportunità di investimenti NFT.
Rivestono però un ruolo determinante per il corretto funzionamento di molte piattaforme sviluppate su blockchain, poiché consentono, oltre allo sviluppo concreto di questa tecnologia, anche una sua sempre migliore e più concreta implementazione con il mondo reale.
Vediamoli un pò più da vicino
Partiamo dalla definizione ufficiale.
Abbiamo detto che gli oracoli sono gli strumenti che forniscono alla rete blockchain tutte le informazioni legate al mondo reale a cui altrimenti non potrebbe avere accesso.
Sono per l’esattezza pezzi di codice che fungono da ponte di comunicazione tra la blockchain e i suoi protocolli e il mondo esterno, tra mondo crittografico e mondo fisico.
Sono la porta che permette a blockchain e smart contract di interagire con il mondo reale.
Come per gli oracoli del mito, quelli blockchain non sono essi stessi la fonte dei dati, ma sono, invece, lo strumento attraverso il quale quei dati possono essere richiesti, consultati, elaborati e consegnati a destinazione.
Entrando più in dettaglio, la loro funzione è integrare le informazioni on-chain, ovvero quelle che si trovano all’interno della blockchain, con quelle off-chain, ovvero quelle che si trovano al di fuori del network di riferimento.
Il loro scopo è duplice:
● mettere a disposizione della blockchain tutte le informazioni che le sono necessarie ma sono però reperibili solo esternamente ad essa
● viceversa, mettere a disposizione del mondo esterno tutte le informazioni che si possono trovare solamente nella rete
Gli oracoli hanno il compito di recuperare informazioni corrette e trasmetterle dall’esterno alla blockchain o, al contrario, dalla rete verso il mondo reale riducendo al minimo le possibilità di errore o di manipolazione e costruendo un sistema trasparente e sicuro, che non sia cioè esposto a possibili attacchi informatici fino quando le informazioni non giungono a destinazione.
Le loro funzionalità seguono alcune linee guida fondamentali:
Probabilmente starai pensando: se gli oracoli sono porte aperte verso il mondo reale, come è possibile tutelare quella riservatezza che è proprio tra i principi fondanti della blockchain?
Niente pericolo!
È possibile sviluppare oracoli in grado di proteggere i dati e la privacy degli utenti, integrando meccanismi di funzionamento atti ad anonimizzare o criptare tali informazioni.
Ecco un nodo importante, che introduce un elemento di criticità e vulnerabilità nel sistema.
Ad oggi, gli oracoli ricevono le informazioni che poi passano su blockchain da servizi centralizzati.
Questo costringe a re-introdurre due concetti che sono in pieno contrasto con i principi basilari della rete blockchain: la centralizzazione e la necessaria fiducia verso un ente terzo.
Chi si fa carico di controllare e gestire l’oracolo, infatti, azienda o individuo che sia, controlla l’elemento di contatto con la blockchain e può dunque diventare l’elemento di vulnerabilità dell’intero sistema.
Nel prossimo paragrafo, scoprirai più in dettaglio come funziona questo aspetto.
Gli oracoli vengono classificati in base a tre caratteristiche fondamentali:
● La provenienza dei dati, che può essere da software o hardware
● La direzione delle informazioni, che possono essere in entrata o in uscita
● La gestione, che può essere centralizzata o decentralizzata
Gli oracoli software
Come puoi facilmente intuire, questo è il tipo di oracoli che gestisce le informazioni direttamente online.
Gli oracoli software monitorano, ottengono ed estraggono informazioni dal web – come, ad esempio, condizioni meteo, orari e ritardo di un volo, prezzi di prodotti – e poi le trasmettono in tempo reale direttamente alla blockchain, inviandole allo smart contract che può così eseguire le azioni programmate.
Gli oracoli hardware
Nel caso di oracoli hardware, invece, entrano in gioco dispositivi hardware appunto, come sensori IoT o lettori di codici a barre, che tracciano oggetti del mondo reale – come l’arrivo di un autobus o di una barca o il monitoraggio del movimento di un’auto quando arriva in un determinato luogo o attraversa una barriera – e trasmettono tutte le informazioni acquisite allo smart contract su blockchain.
Forniscono un sistema molto efficiente, ad esempio, per monitorare su blockchain processi articolati e complessi come quelli delle supply chain.
Poco sopra abbiamo detto che gli oracoli sono come un ponte a doppio senso: portano informazioni dal mondo reale alla blockchain e viceversa. Può anche avvenire, infatti, che sia il mondo off-chain ad avere necessità di sapere cosa sta succedendo on-chain.
Per questo, gli oracoli possono essere “in entrata” o “in uscita” a seconda della direzione in cui viaggiano le informazioni.
Gli oracoli in entrata
Gli oracoli in entrata, è intuitivo, sono quelli che portano i dati dall’esterno verso la blockchain e i suoi protocolli.
Sono uno strumento utilissimo, ad esempio, a livello aziendale, perché permettono di automatizzare azioni di vario tipo che dipendono strettamente dall’introduzione di informazioni.
Gli oracoli in uscita
Gli oracoli in uscita, invece, sono quelli che danno alla rete la possibilità di inviare dati al mondo reale.
Pensiamo, per esempio, alla domotica.
Questa tipologia di oracoli si applica perfettamente alla tecnologia della casa intelligente, poiché consente, ad esempio, di aprire una serratura una volta verificato che l’ingresso è stato autorizzato da una chiave privata e da una firma crittografica valida.
Essere o non essere.
Il tema della natura centralizzata o decentralizzata degli oracoli è uno dei grandi dilemmi del momento in ambito blockchain, tanto che si parla spesso del cosiddetto “problema dell’oracolo”.
Cerchiamo di capire meglio.
I dati che gli oracoli trasmettono guidano l’esecuzione degli smart contract e quindi il funzionamento dell’ecosistema blockchain.
Sono dunque un ingranaggio fondamentale del meccanismo.
Sono però anche, come abbiamo detto, uno strumento esterno alla blockchain, che non è dunque soggetto alle dinamiche che garantiscono la sicurezza della rete.
Questo significa che è estremamente difficile decidere se per la gestione in piena sicurezza delle informazioni sia più opportuno affidarsi ad un ente terzo che possa fungere da garante o contare, invece, sull’esecuzione trustless degli smart contract.
Gli oracoli centralizzati
Gli oracoli nascono come tecnologia centralizzata, con un ente che, attraverso un software o un hardware come abbiamo detto sopra, raccoglie i dati, li gestisce in modo centralizzato e li consegna alla blockchain.
Hai ragione, è come stai pensando.
Questo principio va in contrasto proprio con i concetti di trasparenza, decentralizzazione e verificabilità che sono alla base della tecnologia blockchain.
E non solo!
Usare una sola fonte di informazioni può essere rischioso, poiché l’efficacia del contratto dipende interamente dall’entità che controlla l’oracolo e qualsiasi interferenza dannosa di malintenzionati avrà così impatto diretto su di esso.
In altre parole, chi detiene il controllo dell’oracolo, ha anche il potere di falsificare volontariamente le informazioni e ingannare il sistema perché è l’unico attore che fornisce informazioni allo smart contract.
Si genera il rischio di quello che in informatica viene definito Single Point of Failure (SPOF), il singolo punto di errore, che rende i contratti meno resistenti a vulnerabilità e attacchi.
In cosa consiste?
Nel fatto che, anche nel caso in cui l’ente che fornisce i dati all’oracolo non decida di alterare i dati volontariamente, esso rappresenta però, comunque, il possibile bersaglio di un attacco informatico mirato a modificare le informazioni.
Se l’attacco va a buon fine, le informazioni comunicate alla blockchain risultano immediatamente compromesse, così come è compromesso lo smart contract che si basa su quell’oracolo, poiché è stato violato l’unico sistema responsabile della fornitura di dati attraverso il SPOF.
Per capire meglio, proviamo a fare un esempio molto chiaro, anche se un pò surreale.
Pensa ad uno smart contract che gestisce in autonomia i pagamenti ai tassisti di un’intera città, programmato in modo da restituire il 50% del costo totale della tratta nel caso in cui il taxi arrivi con 10 minuti di ritardo.
Se in qualche modo qualcuno riuscisse a modificare per un mese intero il dato riguardante l’orario di arrivo dei taxi che viene consegnato allo smart contract, ad esempio aggiungendo sempre 10 minuti, cosa succederebbe?
Che i tassisti dell’intera città si ritroverebbero con lo stipendio di un mese dimezzato!
Gli oracoli decentralizzati
Per questo motivo, gli oracoli stanno intraprendendo la via della decentralizzazione.
Il primo passo è stata la nascita di oracoli “decentralizzati”, che sono detti anche “oracoli di consenso” perché, come avviene nella blockchain, si basano su una fiducia distribuita e condivisa.
Il loro meccanismo di funzionamento prevede la raccolta di informazioni da diversi oracoli centralizzati e una fase di verifica della loro correttezza attraverso la conferma da parte di diverse entità.
Allo smart contract vengono inviati solo i dati che risultano totalmente affidabili, perché condivisi da più oracoli e confermati da più fonti.
Questo è ad esempio proprio ciò che fa Chainlink, uno degli oracoli attualmente più utilizzati, in esecuzione sulla blockchain di Ethereum.
Le informazioni che il sistema invia sulla blockchain sono sempre valide e libere da qualsiasi manipolazione perché si basano su un oracolo decentralizzato che convoglia le informazioni corrette sugli smart contract, modificabili solo con il consenso di tutti coloro che prendono parte alla rete (per comprendere meglio i meccanismi di consenso su blockchain clicca qui).
In questo modo è molto più difficile mentire (o ricevere informazioni errate), perché per falsificare un’informazione è necessaria la collaborazione malevola di più oracoli fornitori delle informazioni primarie.
Ad oggi non esiste ancora un oracolo decentralizzato efficiente e la strada per arrivarvi sembra ancora piuttosto lunga.
Prova però a pensare ad uno smart contract interoperabile su più blockchain realizzato appositamente per ottenere informazioni direttamente on-chain e trasmetterle senza alcun intervento di nessun ente centralizzato: ecco, potrebbe essere un primo esempio di oracolo realmente decentralizzato!
Abbiamo visto insieme che è fondamentale poter portare informazioni dentro e fuori dal mondo blockchain in maniera veloce ed affidabile.
Ma quale potrebbe essere un’applicazione reale di questo flusso di informazioni?
Ecco un esempio concreto!
Supponi di detenere degli Ether (ETH) nel tuo wallet da molto tempo e di essere in profitto. Decidi di regalarti finalmente la sognata vacanza ad Honolulu per fuggire dalla realtà quotidiana e prenderti un mese di pausa.
[Ammettiamolo, se sei in ampio profitto con le criptovalute hai avuto un fegato di ferro per sopportare la loro volatilità, quindi te la sei veramente meritata! …ma torniamo alla nostra vacanza]
Decidi di pagare il viaggio con una parte dei tuoi ETH attraverso una comoda applicazione di booking che ti permette il pagamento direttamente in criptovaluta.
Dopo esserti lasciato catturare dall’opzione all-inclusive, arriva il momento di effettuare la transazione e saldare il conto.
Ed ecco che arriva il “ma”…
Il prezzo di ETH, lo sai bene, è variabile e solitamente la cifra da pagare è calcolata in valute FIAT, come l’Euro.
Quindi come fai a sapere quanti ETH dovrai pagare esattamente?
Senza l’aiuto di un oracolo che comunichi all’esterno della blockchain il prezzo di ETH e che dunque permetta di effettuare una conversione del prezzo in tempo reale, ti troveresti in difficoltà, non potresti portare a termine il pagamento con certezza della sua correttezza…
….e l’atmosfera di Honolulu con il suo tanto agognato mare di cristallo sparirebbe in una nuvola di fumo!
Per questo esempio abbiamo utilizzato un dato molto semplice, l’informazione relativa al prezzo di una criptovaluta.
È però facile intuire come la comunicazione mondo reale-blockchain, in entrambe le direzioni, possa giocare davvero un ruolo rilevante per semplificare e rendere trasparenti tante azioni attraverso un’implementazione efficace della blockchain nel nostro quotidiano.
A questo punto, ti è sicuramente chiaro che gli oracoli rappresentano un passaggio cruciale e molto delicato nel processo di comunicazione in-out della blockchain.
Così come ti sarà chiaro che il loro sviluppo deve essere portato avanti meticolosamente, perché l’oracolo ricopre un ruolo in cui i fruitori del servizio ripongono grande fiducia, siano essi azienda o utenti finali.
Gli oracoli sono assolutamente essenziali per l’espansione della tecnologia blockchain e per la sua implementazione nel mondo reale.
E questo per un motivo molto semplice, che ora conosci bene: come possiamo pensare che la blockchain entri nella nostra vita quotidiana se non può comunicare con ciò che succede nel mondo reale? Non è possibile.
Per questo gli oracoli sono necessari, con la loro funzione di ponte comunicativo che connette i due mondi e non solo permette un flusso efficiente di scambio di informazioni ma dà anche la possibilità a sviluppatori e innovatori di utilizzare ciò che succede all’interno della blockchain nel mondo esterno e viceversa.
In uno dei precedenti post del blog ti abbiamo spiegato cosa sono gli smart contract e quali sono le loro funzioni e potenzialità, ricordi (altrimenti clicca qui)?
Ecco, gli oracoli sono lo strumento che permette agli smart contract di espandersi ed integrarsi con il mondo reale.
Senza oracoli, gli smart contract potrebbero fare affidamento solo sulle informazioni che sono già all’interno dei loro network, cosa che limiterebbe notevolmente le loro capacità.
Per comprendere meglio questo concetto, utilizziamo un’analogia: gli smart contract sono i veicoli indispensabili per programmare le operazioni che avvengono sulla blockchain, mentre gli oracoli sono le strade di collegamento fra questi veicoli e le informazioni presenti nel mondo reale e sulle varie blockchain.
Fin quando l’infrastruttura di collegamento non sarà adeguatamente aggiornata, i veicoli non potranno raggiungere efficacemente nuove mete.
Ecco perché la blockchain ha assolutamente bisogno degli oracoli per proseguire la sua espansione e per l’implementazione nel mondo reale.
Gli oracoli sono la chiave per uscire dai confini entro cui, fino ad oggi, la blockchain ha operato: sono lo strumento indispensabile per consentire all’ecosistema blockchain di abbracciare un numero sempre più ampio di settori e connetterli fra loro, in modo sicuro, affidabile e trustless.