
Gli oracoli blockchain risolvono il problema della consegna nel blockchain delle informazioni provenienti dal mondo esterno. Ma è importante sapere di quali possiamo fidarci.
In sul lancio del catalogo abbiamo scritto dell'importanza degli oracoli per il blockchain.
Le applicazioni decentralizzate non hanno accesso ai dati al di fuori del blockchain. Pertanto, vengono creati piccoli programmi — oracoli — che accedono ai dati necessari dal mondo esterno e li registrano nel blockchain.
Gli oracoli possono essere suddivisi in tre categorie in base al tipo di fonte dei dati: oracoli software, hardware e umani.
Oracoli software ricevono e elaborano dati da Internet, come la temperatura dell'aria, i prezzi dei prodotti, i ritardi dei treni e degli aerei. Le informazioni provengono da fonti online, ad esempio API, e l'oracolo le estrae e le inserisce nel blockchain. Per sapere come realizzare un semplice oracolo software, leggi .
Oracoli hardware tracciano oggetti del mondo reale utilizzando dispositivi e sensori. Ad esempio, una telecamera calibrata per il passaggio di una linea registra le auto che entrano in una determinata zona. L'oracolo registra il fatto del passaggio della linea nella blockchain, e sulla base di questi dati, lo script di un'app decentralizzata può, ad esempio, avviare l'emissione di una multa e il prelievo di token dal conto del proprietario dell'auto.
Oracoli umani utilizzano dati forniti da una persona. Sono considerati i più avanzati a causa della loro visione indipendente dell'esito di un evento.
Recentemente abbiamo fornito uno strumento che consente di registrare nella blockchain i dati dell'oracolo secondo una specifica prestabilita. Funziona in modo estremamente semplice: è sufficiente registrare , compilando la specifica. Dopo di che, è possibile pubblicare le transazioni dei dati secondo questa specifica tramite l'interfaccia di Waves Oracles. Leggi di più sullo strumento nella .

Strumenti e interfacce standardizzati semplificano la vita sia agli sviluppatori che agli utenti dei servizi basati su blockchain. Il nostro strumento è particolarmente utile per gli oracoli umani e può essere utilizzato, ad esempio, per registrare certificati o diritti d'autore su determinati oggetti.
Tuttavia, quando si utilizzano oracoli, sorge la questione della fiducia nelle informazioni fornite. È affidabile la fonte? I dati arriveranno in tempo? Inoltre, esiste il rischio che un oracolo inganni gli utenti, fornendo deliberatamente informazioni errate per ottenere un vantaggio personale.
Prendiamo a esempio un oracolo che fornisce informazioni su eventi sportivi per una piattaforma di scommesse decentralizzata.
L'evento in questione è il combattimento principale del torneo UFC 242, Khabib Nurmagomedov contro Dustin Poirier. Secondo le valutazioni dei bookmaker, Nurmagomedov è il chiaro favorito del match. Puntare sulla sua vittoria era possibile con un coefficiente di 1,24, corrispondente a una probabilità del 76%. Il coefficiente per la vittoria di Poirier era di 4,26 (22%), mentre la probabilità di un pareggio era stimata dai bookmaker con un coefficiente di 51,0 (2%).

Lo script accetta le scommesse degli utenti su tutti e tre i possibili esiti, finché non riceve dall'oracolo informazioni sul risultato effettivo del combattimento. Questo è l'unico criterio per la distribuzione delle vincite.
È già noto che Nurmagomedov ha vinto. Immaginiamo però che il proprietario disonesto dell'oracolo, pianificando un inganno, abbia scommesso sull'esito con la quota più alta — il pareggio. Quando il fondo delle scommesse raggiunge un ammontare consistente, il proprietario dell'oracolo avvia la registrazione in blockchain di informazioni false riguardo a un presunto risultato di pareggio. Lo script dell'exchange decentralizzato non ha la possibilità di verificare l'attendibilità dei dati ricevuti e distribuisce le vincite in conformità con tali dati.
Se il profitto potenziale da tale frode è superiore all'entrata prevista di un oracolo onesto, e nel contempo il rischio di controversie legali è basso, la probabilità di azioni disoneste da parte del proprietario dell'oracolo aumenta significativamente.
Una delle possibili soluzioni al problema è richiedere dati da più oracoli e portare i valori ottenuti a consenso. Si possono distinguere diversi tipi di consenso:
- tutti gli oracoli hanno fornito informazioni unificate
- la maggior parte degli oracoli ha fornito informazioni unificate (2 su 3, 3 su 4, ecc.)
- media dei dati degli oracoli (possono esserci casi in cui vengono scartati i valori massimo e minimo)
- tutti gli oracoli hanno fornito informazioni unificate con una deviazione consentita predefinita (ad esempio, i valori delle quotazioni finanziarie possono differire di 0,00001 e ottenere una corrispondenza esatta è un compito impossibile)
- selezionare solo i valori unici dai dati ottenuti
Torniamo al nostro scambio decentralizzato di scommesse. Utilizzando il consenso '3 su 4', un oracolo che ha segnalato un pareggio non potrebbe influenzare l'esecuzione dello script finché gli altri tre oracoli forniscono informazioni veritiere.
Ma un utente disonesto potrebbe possedere anche tre dei quattro oracoli, e quindi potrebbe garantire una maggioranza decisiva.
Lottare per l'integrità degli oracoli può comportare l'introduzione di un sistema di valutazione o sanzioni per dati non veritieri. Si potrebbe anche seguire la strada della ‘carota’ e offrire premi per l'accuratezza. Tuttavia, nessuna misura potrà completamente evitare, ad esempio, le manipolazioni dei punteggi o una maggioranza sleale.
Vale quindi la pena inventare servizi complessi, o basterebbe avere uno strumento di consenso che consenta, come in uno scaffale di supermercato, di scegliere, ad esempio, cinque oracoli che forniscono i dati desiderati, definire il tipo di consenso e ottenere un risultato?
Ad esempio, un'applicazione decentralizzata necessita di dati sulla temperatura in gradi Celsius. Nel catalogo degli oracoli troviamo quattro oracoli che forniscono tali dati, impostiamo il tipo di consenso su ‘media’ e facciamo una richiesta.
Supponiamo che gli oracoli abbiano fornito i valori: 18, 17, 19 e 21 gradi. Una differenza di tre gradi può rivelarsi critica per l'esecuzione dello script. Il servizio elabora il risultato e ottiene una temperatura media di 18,75 gradi. Questo numero verrà ricevuto dallo script dell'app decentralizzata e verrà utilizzato.

In definitiva, la decisione spetta al consumatore: fidarsi di un singolo oracolo e utilizzare i suoi dati, oppure costruire un consenso di più oracoli scelti a discrezione propria.
In ogni caso, gli oracoli dei dati sono un settore piuttosto nuovo. Si trova in una fase in cui gli utenti stessi possono determinare in quale direzione svilupparsi. Pertanto, vogliamo sentire la vostra opinione. È necessario lo strumento descritto sopra per gli oracoli? Come vedete il futuro degli oracoli dei dati in generale? Condividete la vostra opinione nei commenti e nel nostro gruppo ufficiale su .
Fonte: habr.com
