Cos’è il problema dell’oracolo blockchain?

DoT
Chainlink Community
10 min readJan 25, 2021

Fonte Orginale: https://blog.chain.link/what-is-the-blockchain-oracle-problem/

Il problema dell’oracolo blockchain è una delle barriere più importanti da superare per consentire ai contratti intelligenti su reti come Ethereum di ottenere un’adozione di massa in un’ampia varietà di mercati e casi d’uso.

Come discusso in precedenza nella nostra serie Blockchain Education, i contratti intelligenti eseguiti su blockchain offrono un immenso potenziale per ridefinire il modo in cui più parti diverse si impegnano in accordi contrattuali condivisi e valore di scambio. A operare separatamente dall’economia dei contratti intelligenti è l’economia digitale non blockchain molto più grande, composta da tutti i dispositivi connessi a Internet che ora elaborano online. Un sottoprodotto di questa infrastruttura digitale è un serbatoio in continua espansione di dati e API che forniscono informazioni su come funziona il mondo; es. risultati di ricerche su Internet che mostrano argomenti di discussione popolari nella società o sensori IoT che mostrano modelli di traffico comuni.

I contratti intelligenti basati su blockchain e i dati tradizionali e le economie API hanno un immenso potenziale per essere i futuri elementi costitutivi dell’automazione basata sui dati, ma la domanda è come si collegano questi due mondi? Questo racchiude il nocciolo del “problema dell’oracolo” e sarà il fulcro di questo articolo.

L’articolo sarà suddiviso in cinque sezioni chiave:

  • Definire il problema dell’oracolo
  • Delineare il lavoro di un oracolo
  • Discutere perché blockchain come Ethereum non offrono soluzioni Oracle native
  • Identificare i rischi per la sicurezza degli oracoli centralizzati
  • Introdurre Chainlink, lo standard per oracoli decentralizzati sicuri e affidabili

Il problema Oracle

Il problema Oracle ruota attorno a una limitazione molto semplice: le blockchain non possono estrarre dati da o inviare dati a nessun sistema esterno come funzionalità incorporata. In quanto tali, le blockchain sono reti isolate molto simili a un computer senza connessione a Internet. L’isolamento di una blockchain è la proprietà precisa che la rende estremamente sicura e affidabile, poiché la rete deve solo fornire il consenso su una serie molto semplice di domande vere/false utilizzando i dati già memorizzati all’interno del suo libro mastro, ad esempio il detentore della chiave pubblica firmare la transazione con la chiave privata corrispondente, l’indirizzo pubblico ha fondi sufficienti per coprire la transazione e il tipo di transazione è valido all’interno del particolare contratto intelligente? L’obiettivo molto ristretto del consenso sulla blockchain è il motivo per cui i contratti intelligenti sono definiti deterministici;

Tuttavia, affinché gli smart contract realizzino oltre il 90% dei loro potenziali casi d’uso , devono essere collegati al mondo esterno. Ad esempio, gli smart contract finanziari necessitano di informazioni di mercato per determinare gli insediamenti, gli smart contract assicurativi necessitano di dati IoT e web per prendere decisioni sui pagamenti delle polizze, i contratti di trade finance necessitano di documenti commerciali e firme digitali per sapere quando rilasciare i pagamenti e molti smart contract vogliono farlo stabilirsi in valuta fiat su una rete di pagamento tradizionale. Nessuna di queste informazioni viene generata all’interno della blockchain, né questi servizi tradizionali sono intrinsecamente accessibili.

Colmare la connessione tra la blockchain (on-chain) e il mondo esterno (off-chain) richiede un pezzo di infrastruttura aggiuntivo e separato noto come “oracolo”.

Cosa fanno gli oracoli Blockchain?

Un oracolo blockchain è un middleware sicuro che facilita la comunicazione tra blockchain e qualsiasi sistema off-chain, inclusi provider di dati, API Web, backend aziendali, provider cloud, dispositivi IoT, firme elettroniche, sistemi di pagamento, altri blockchain e altro ancora. Ogni oracolo comprende diverse funzioni chiave:

  • Listen(Ascolto): monitora la rete blockchain per verificare la presenza di qualsiasi utente in arrivo o richieste di contratto intelligente per dati off-chain
  • Extract(Estrazione) : recupera i dati da uno o più sistemi esterni come le API off-chain ospitate su server web di terze parti
  • Format(Formato) : consente a due sistemi di intercomunicare formattando i dati recuperati dalle API in un formato leggibile blockchain (input) e / o rendendo i dati blockchain compatibili con un’API esterna (output)
  • Validate(Convalida) : crea una prova crittografica per attestare le prestazioni dei servizi Oracolari utilizzando qualsiasi combinazione di firma dei dati, firma delle transazioni blockchain, firme TLS, attestazioni TEE (Trusted Execution Environment), prova a zero conoscenza e altro
  • Compute(Calcolo) : eseguire un certo tipo di calcolo sui dati, come calcolare una mediana da più invii di Oracle o eseguire attività più complesse come la generazione di un preventivo assicurativo da diversi tipi di dati (profilo di rischio personale, tassi di mercato, costo del capitale, ecc.)
  • Broadcast(Trasmissione) : firma e trasmetti una transazione sulla blockchain come mezzo per inviare dati e la relativa proof-on-chain per l’utilizzo del contratto intelligente
  • Output (opzionale) : inviare i dati a un sistema esterno in seguito all’esecuzione di un contratto intelligente, come l’inoltro delle istruzioni di pagamento a una rete di pagamento tradizionale o l’influenza di un sistema cyber-fisico

Per offrire le funzioni di cui sopra, il sistema Oracle deve funzionare contemporaneamente sia dentro che fuori la blockchain. Il componente on-chain serve per stabilire una connessione blockchain (per ascoltare le richieste), trasmettere dati, inviare prove, estrarre dati blockchain e talvolta eseguire calcoli sulla blockchain. Il componente off-chain serve per elaborare richieste, recuperare e formattare dati esterni, inviare dati blockchain a sistemi esterni e potenzialmente eseguire calcoli in reti Oracle più avanzate.

Uno smart contract basato su Oracle Chainlink per l’assicurazione del raccolto che acquisisce dati meteorologici da più fonti, utilizza il punto dati aggregato per attivare l’esecuzione di un contratto assicurativo sulla blockchain e paga con qualsiasi metodo di pagamento tradizionale.

Perché le blockchain non possono risolvere il problema dell’Oracolo

Le blockchain sono altamente sicure e affidabili a causa di alcuni principi di progettazione specifici. Come descritto sopra, hanno solo bisogno di prendere decisioni su domande molto basilari utilizzando dati generati esclusivamente all’interno del proprio ambiente che sono provabili o falsi. Inoltre, utilizzano la decentralizzazione sia per convalidare in modo ridondante lo stesso pezzo di dati da tutti i nodi della rete e garantire che un nodo o un piccolo gruppo di nodi non possa modificare le regole dell’algoritmo di consenso (PoW, PoS, ecc.) e i Sybil attack sulla rete, ad esempio avendo il controllo del 51% dell’hash power. Queste proprietà forniscono forti garanzie intorno al determinismo, specialmente in una rete altamente decentralizzata e resistente a Sybil.

Tuttavia, le blockchain non sono adatte a rispondere a domande che iniziano ad approfondire il regno della soggettività o richiedono dati esterni che non sono accessibili a tutti i nodi della rete. Ad esempio, una semplice domanda come “Qual è il prezzo di mercato di Bitcoin?” o “Che tempo fa a New York?” possono suscitare un’ampia gamma di risposte diverse che possono variare a seconda dell’origine dati che utilizzano e quando richiedono dati da una fonte. La domanda quindi diventa: qual è la risposta corretta?

L’introduzione della soggettività al livello di base della blockchain apre il vaso di Pandora attorno a tutta una serie di problemi di sicurezza, affidabilità e governance, il che mette a rischio proprio la proposta di valore che la blockchain mira a fornire: determinismo imparziale per le transazioni informatiche.

Una delle principali preoccupazioni è come garantire che i dati siano di alta qualità quando non tutti i nodi hanno lo stesso accesso ai dati. Anche una richiesta di dati di base per il prezzo di Bitcoin è molto impegnativa, perché semplicemente guardare un sito Web o un singolo scambio non sarà così accurato o affidabile come un abbonamento API a pagamento a un aggregatore di dati professionale con incentivi finanziari per mantenere servizi di alta qualità e con decenni di esperienza nel filtraggio dei dati e nella creazione di una copertura di mercato che tenga conto di tutti gli ambienti di trading. È estremamente difficile gestire e applicare il controllo di qualità per i dati off-chain inviati dai nodi blockchain, poiché chiunque può eseguire un nodo pseudo-anonimo e tutti hanno le stesse opportunità di inviare risposte, ma potrebbero non essere tutti disposti ad acquistare un abbonamento a un’API off-chain di alta qualità né è facilmente applicabile.

Un’altra delle principali preoccupazioni è la scalabilità. Ogni volta che una nuova fonte di dati deve essere aggiunta alla rete o un metodo di aggregazione dei dati esistente deve essere regolato, è necessario un massiccio coordinamento della governance sociale per ottenere che ogni nodo della rete concordi e aggiorni il proprio software. Questo overhead di governance aumenta l’attrito, rallenta lo sviluppo di altre funzionalità principali della blockchain (come PoS e sharding) e limita la velocità dell’innovazione Oracle. In definitiva, maggiore è la complessità al livello di base della blockchain, maggiore è la superficie di attacco e il rischio per tutte le applicazioni che vengono eseguite su di essa. Anche le applicazioni che non utilizzano oracoli o non sono coinvolte in richieste di dati conflittuali verranno coinvolte nel fuoco incrociato e potenzialmente verranno interrotte se l’intera catena si interrompe a causa di un problema con oracoli.

È per questi e molti altri motivi che gli oracoli non sono integrati nel livello base di nessuna delle principali blockchain, ma operano invece come reti separate. Ciò garantisce che le blockchain abbiano una superficie di attacco inferiore e mantengano il loro determinismo concentrandosi singolarmente sul consenso blockchain, mentre gli oracoli hanno la flessibilità richiesta necessaria per produrre determinismo da un mondo off-chain complesso e soggettivo senza creare dipendenze e limitazioni che mettono a rischio l’intera catena.

Gli oracoli centralizzati introducono rischi maggiori

L’intero punto di un contratto intelligente è raggiungere il determinismo attraverso l’applicazione tecnologica dei termini del contratto rispetto all’esecuzione probabilistica eseguita dall’applicazione umana. Per raggiungere questo scopo, la blockchain non può avere un singolo punto di errore, che deve essere esteso all’oracolo per mantenere queste proprietà durante l’intero ciclo di vita end-to-end del contratto.

Perchè un contratto multimilionario funziona come un contratto intelligente su una blockchain completamente decentralizzata se un singolo oracolo centralizzato può controllare gli input che determinano il risultato del contratto?

Un oracolo centralizzato è un punto centrale di fallimento nel contratto intelligente

Che si tratti del team di sviluppo dell’applicazione smart contract che esegue l’oracolo stesso o che si affida a un servizio Oracle di terze parti, entrambi gli scenari danno un potere eccessivo a una singola entità per influenzare il contratto tramite il controllo dell’oracolo. Sebbene l’operatore Oracle centralizzato possa operare con le migliori intenzioni, sono ancora soggetti a tutti i problemi centralizzati comuni di oggi come tempi di inattività, attacchi DDOS, hack e incompetenza accidentale, che mettono tutti a rischio i fondi degli utenti.

Anche le entità centralizzate più nobili possono subire pressioni una volta che il valore del contratto scala, aprendole a tangenti, intimidazioni e pressioni normative, che alla fine richiedono che una sola persona coinvolta nel funzionamento dell’oracolo centralizzato diventi canaglia. Questo modello non è scalabile e non si adatta all’idea che l’infrastruttura decentralizzata sia un fattore chiave per l’automazione sicura e affidabile.

Per superare queste carenze, gli oracoli devono creare le stesse garanzie di sicurezza e affidabilità di una blockchain, anche se in modo diverso date le molte differenze su come risolvere il problema dell’oracolo rispetto al raggiungimento del consenso blockchain.

Chainlink: lo standard per oracoli sicuri e affidabili

Al fine di portare il determinismo al livello Oracle, Chainlink ha sviluppato una rete Oracle decentralizzata che può fornire una moltitudine di garanzie diverse che possono essere utilizzate in qualsiasi combinazione per fornire soluzioni Oracle personalizzate per qualsiasi caso d’uso.

  • Open-source : essendo una tecnologia open-source consente alla più ampia comunità di blockchain di verificare in modo indipendente la sicurezza e l’affidabilità del codice sorgente e delle funzioni di Chainlink, oltre a contribuire al suo miglioramento
  • Adattatori esterni : consentire ai nodi di archiviare in modo sicuro le chiavi API e gestire gli accessi agli account consente agli smart contract di recuperare i dati da qualsiasi sistema esterno e API, inclusi quelli protetti da password/credenziali
  • Decentralizzazione : l’utilizzo della decentralizzazione a livello di nodo e origine dati garantisce che nessun nodo o origine dati sia un singolo punto di errore, fornendo agli utenti forti garanzie che i dati saranno consegnati in tempo e rimarranno resistenti alla manipolazione
  • Firma dei dati : il fatto che i nodi firmino crittograficamente i dati che forniscono ai contratti intelligenti consente agli utenti di identificare quali nodi hanno inviato i dati e guardare la loro storia passata per determinare la qualità delle prestazioni
  • Contratti di servizio : l’utilizzo di accordi vincolanti sulla catena tra lo smart contract richiedente e il fornitore Oracle che delineano i termini del servizio Oracle e le sanzioni/premi per le prestazioni fornisce agli utenti garanzie applicabili sulla loro richiesta di dati off-chain.
  • Sistemi di reputazione: l’inserimento di dati on-chain firmati nei sistemi di reputazione consente agli utenti di prendere decisioni informate su quali nodi sono validi e quali nodi non si basano su una varietà di metriche come lavori riusciti, clienti serviti, tempo medio di risposta, ecc.
  • Servizi di certificazione : consentire ai nodi di aumentare la sicurezza e l’affidabilità per gli utenti ottenendo un numero qualsiasi di certificazioni può fornire alcune garanzie chiave come KYC, posizione geografica del nodo, revisioni della sicurezza della loro infrastruttura e più
  • crittografia avanzata e hardware , fornendo flessibilità per più crittografia avanzata (come prove a conoscenza zero) e hardware (come ambienti di esecuzione affidabili) consentono agli oracoli di eseguire funzioni aggiuntive come dimostrare l’origine dei dati a un contratto intelligente (ad esempio dati specifici provenienti da un server specifico), mantenere i dati riservati dall’oracolo stesso, eseguire calcoli off-chain e altro ancora

Queste sono solo alcune delle tante funzionalità offerte da Chainlink che forniscono agli utenti tutta una serie di garanzie per assicurare un meccanismo Oracle altamente sicuro e affidabile. Nei futuri articoli sull’istruzione, approfondiremo ciascuno di essi per ottenere una comprensione più completa della rete Chainlink.

Sviluppando queste funzionalità chiave su Chainlink, i contratti intelligenti su qualsiasi blockchain possono ora accedere ai dati off-chain senza sacrificare il suo valore fondamentale di determinismo, fornendo una solida base da cui costruire il futuro dell’automazione basata sui dati.

Seguici su Twitter per ricevere notifiche sui prossimi articoli rilasciati, unisciti al nostro Telegram o Reddit per notizie generali su Chainlink o prendi parte alla discussione tecnica sul nostro Discord .

--

--

DoT
Chainlink Community

Chainlink community Advocate, Chainlink Italian Community Telegram Admin: t.me/Chainlink_italian