logo academy

Trasportare dati esterni sulle blockchain: gli oracoli

25 giugno, 2024

7 min

Trasportare dati esterni sulle blockchain: gli oracoli
Principiante

Gli smart contract, per quanto rivoluzionari, hanno un limite fondamentale: non possono accedere autonomamente a dati off-chain, ovvero le informazioni esterne alla blockchain. Senza l’intervento degli oracoli, gli smart contract non sarebbero in grado di conoscere il prezzo delle azioni di NVIDIA, il risultato di un evento sportivo e persino la data e l’ora corrente. Questo perché le blockchain, per natura, operano in modo isolato rispetto al mondo esterno. Gli oracoli colmano questa lacuna, fungendo da ponte tra il mondo off-chain e gli smart contract.

Cosa sono gli oracoli e come funzionano?

Gli oracoli sono servizi che forniscono dati esterni alle blockchain, permettendo agli smart contract di interagire con il mondo reale. Per capire come funzionano, possiamo utilizzare un esempio pratico, molto più efficace di una complessa spiegazione teorica. Ipotizziamo che vuoi utilizzare la blockchain di Ethereum per scommettere con i tuoi amici sulla prossima partita degli Europei. Ognuno bloccherà 0,1 ETH in uno smart contract che distribuirà l’intera posta a chi indovinerà il vincitore. Se il match dovesse finire con un pareggio, invece, lo smart contract rinvierà tutti gli 0,1 ETH che sono stati depositati agli address di origine.

Come fa lo smart contract a conoscere il reale risultato della partita dato che questo dato non è, ovviamente, disponibile sulla blockchain di Ethereum? Utilizzando un oracolo

Grazie a questo esempio pratico però possiamo trattare un’altra questione centrale quando si parla di tecnologia blockchain, che riguarda la veridicità delle dei dati. Come si può essere certi che i dati trasmessi da un oracolo siano corretti? La risposta che possiamo dare ora, approfondiremo la questione nei paragrafi successivi, è: utilizza il più affidabile.

La parola “affidabile” è pericolosa da utilizzare in ambito blockchain, dove la fiducia è ridotta al minimo grazie a meccanismi decentralizzati, va da sé che introdurre un oracolo significa contribuisce ad estendere la superficie attaccabile, dato che rappresenta a tutti gli effetti un “single point of failure”. Le fonti di dati esterne, la cui sicurezza non è protetta dal meccanismo di consenso di una blockchain, possono diventare un bersaglio per gli hacker che intendono compromettere l’integrità di uno smart contract. 

Nonostante questo, sono state sviluppate, negli anni, diverse soluzioni a questo problema, continua a leggere per scoprirle.

Tipologie di oracoli

Esistono diversi tipi di oracoli, che si differenziano tra loro per alcune caratteristiche. Le principali riguardano la fonte dalla quale estrapolano i dati, la direzione, ovvero se permettono alle informazioni di entrare o uscire dalla catena e il modello di fiducia.

Fonte

  • Software: questi oracoli utilizzano dati provenienti da database o server online. Sono costantemente connessi e forniscono informazioni dinamiche come la data, l’ora, il prezzo delle azioni o i risultati di eventi sportivi. Operano in tempo reale e sono fondamentali per applicazioni che richiedono dati aggiornati frequentemente.
  • Hardware: interagiscono con il mondo reale attraverso sensori. Un esempio classico è un sensore che legge un codice a barre per monitorare una filiera produttiva. Questi oracoli sono utilizzati quando è necessario ottenere dati dal mondo fisico e trasferirli su blockchain.

Direzione

  • Input: trasmettono informazioni da fonti esterne agli smart contract. Per esempio, un oracolo input potrebbe fornire a uno smart contract il prezzo attuale di un’azione per eseguire una transazione automatica basata su tale dato.
  • Output: operano al contrario, trasmettendo informazioni dalla blockchain al mondo esterno. Ad esempio, un oracolo output può eseguire un’azione nel mondo reale, come l’attivazione di un sistema di pagamento o la chiusura di un contratto, quando una determinata condizione è soddisfatta sulla blockchain.

Modello di Fiducia

  • Oracoli centralizzati: sono controllati da un’unica entità che fornisce i dati a uno smart contract. Questo può creare un punto unico di vulnerabilità (single point of failure), rendendo l’oracolo suscettibile a manipolazioni o attacchi. La fiducia è interamente riposta nella singola entità che gestisce l’oracolo.
  • Oracoli decentralizzati: cercano di ridurre al minimo la fiducia necessaria distribuendo su una rete di nodi. Analogamente alla blockchain stessa, questi oracoli consultano più fonti per verificare l’accuratezza dei dati, minimizzando il rischio di manipolazione. La fiducia, in questo caso, è distribuita tra i vari nodi, ciascuno dei quali contribuisce a validare le informazioni.

I modelli di oracoli decentralizzati spesso utilizzano meccanismi di ricompensa simili a quelli delle blockchain. I nodi che forniscono dati affidabili nel tempo vengono premiati, incentivando la correttezza, l’affidabilità e la tempestività delle informazioni.

Chainlink: l’oracolo decentralizzato più utilizzato

Non si può parlare di oracoli senza menzionare Chainlink, una delle soluzioni più popolari e utilizzate nel mondo delle applicazioni decentralizzate. Chainlink offre un modello di fiducia decentralizzato che permette la trasmissione di dati tra smart contract e web-API. Funziona attraverso “reputation smart contracts” che utilizzano incentivi, ricompense e penalizzazioni per garantire la correttezza dei dati forniti.

Non è importante, soltanto, che le informazioni trasferite siano corrette, ma anche che siano aggiornate in tempo reale. Pensate cosa potrebbe succedere se la blockchain di Ethereum non potesse risalire, secondo per secondo, all’ora esatta, o al prezzo di un token.

In sintesi, Chainlink collega i dati off-chain agli smart contract tramite una rete di nodi che verifica e convalida le informazioni, riducendo così il rischio di manipolazione e migliorando la sicurezza e l’affidabilità del sistema.

Diverse applicazioni decentralizzate (dApp) sfruttano questo innovativo protocollo per integrare dati off-chain nei loro smart contract. 

  • Aave: la piattaforma leader del mercato dei prestiti decentralizzati utilizza Chainlink per ottenere dati sui prezzi degli asset. Ciò permette a Aave di fornire tassi di interesse variabili basati sui valori di mercato in tempo reale.
  • Synthetix: un protocollo per la creazione di asset sintetici che si basa su Chainlink per determinare i prezzi degli asset rappresentati, assicurando che i prezzi siano accurati e aggiornati.
  • Augur: una piattaforma di mercato di previsione che impiega Chainlink per verificare i risultati degli eventi su cui si basano le scommesse, garantendo la correttezza degli esiti degli eventi.
  • Arbol: Una dapp che fornisce assicurazioni basate su blockchain per eventi climatici. Chainlink viene utilizzato per raccogliere dati meteorologici da fonti affidabili e attivare pagamenti automatici in base alle condizioni contrattuali.

Per concludere questo articolo su cosa sono e come funzionano gli oracoli possiamo citare una collaborazione significativa tra Google Cloud e Chainlink che ha ulteriormente dimostrato il potenziale di questa tecnologia. Google Cloud ha integrato Chainlink, per consentire agli sviluppatori di smart contract di accedere ai dati forniti dai servizi di BigQuery.

Conclusione

Gli oracoli sono componenti cruciali per l’espansione delle capacità degli smart contract, dato che gli permettono di interagire con il mondo reale. Sebbene introducano il problema della fiducia, le soluzioni decentralizzate come Chainlink stanno contribuendo a mitigare i rischi associati. Con lo sviluppo continuo delle tecnologie oracolari e collaborazioni come quella tra Google Cloud e Chainlink, possiamo aspettarci una sempre maggiore integrazione tra blockchain e dati off-chain, aprendo nuove possibilità per le applicazioni decentralizzate.

Correlati