Los oráculos de Blockchain resuelven el problema de entregar datos externos a la cadena de bloques, pero aún necesitamos saber en cuál de ellos podemos confiar. En nuestro
artículo sobre el lanzamiento del directorio
Waves Oracles , discutimos la importancia de los oráculos para la cadena de bloques. Las aplicaciones descentralizadas no pueden acceder a datos fuera de blockchain. Este problema se resuelve utilizando oráculos.
El tema en juego es bastante sencillo. Si la ejecución de una dApp requiere datos externos, debe almacenarse en la cadena de bloques. Para lograr eso, se crean pequeños programas llamados oráculos, que acceden a datos relevantes del mundo exterior y los registran en la cadena de bloques.
Por el tipo de fuente de datos externa, todos los oráculos se pueden dividir en tres categorías: oráculos de software, oráculos de hardware y oráculos humanos.
Los oráculos de software obtienen datos de Internet, como temperatura, precios de bienes y servicios o retrasos en vuelos y trenes. La información proviene de fuentes en línea, como las API. Un oráculo extrae datos relevantes y los registra en la cadena de bloques. Puedes aprender cómo hacer un simple oráculo de software
aquí .
Los oráculos de hardware rastrean objetos del mundo real utilizando dispositivos y sensores. Por ejemplo, una cámara de video calibrada para cruzar líneas rastrea vehículos que ingresan a un área determinada. Un oráculo registra el hecho de ingresar al área a la cadena de bloques. Basado en los datos de ese oráculo, el script de una aplicación puede, por ejemplo, emitir un boleto y deducir tokens de la cuenta del propietario del vehículo.
Los oráculos humanos operan con datos ingresados por humanos y se consideran más avanzados porque ofrecen una visión independiente del resultado de un evento.
Recientemente, presentamos una herramienta que permite escribir datos en la cadena de bloques bajo una especificación establecida.
La herramienta es muy sencilla. Usted registra
una tarjeta oracle completando la especificación y luego puede registrar transacciones de datos en la cadena de bloques bajo esa especificación. Lea más sobre la herramienta en nuestra
documentación .

Las herramientas e interfaces estandarizadas de este tipo hacen la vida más fácil para los desarrolladores y usuarios de servicios basados en blockchain por igual. Esta herramienta es especialmente útil para oráculos humanos en áreas como la grabación de certificados o los derechos de autor de algunos objetos.
Sin embargo, los datos proporcionados por los oráculos deben ser confiables. Usar solo un oráculo podría causar problemas. Es vital saber si puede confiar en la fuente y si los datos están actualizados. De lo contrario, existe el riesgo de que un oráculo pueda engañar a los usuarios al proporcionar deliberadamente información falsa para obtener ganancias.
Consideremos el ejemplo de un oráculo que proporciona información del resultado de un evento deportivo a un mercado de predicción descentralizado.
El evento en cuestión es una pelea UFC 242 entre Khabib Nurmagomedov y Dustin Poirier. Según las casas de apuestas, Nurmagomedov era el favorito con probabilidades de 1,24, lo que corresponde a un 76% de probabilidad de victoria. Poirier recibió probabilidades de 4.26 (22%). Las probabilidades de un empate fueron 51.0 (2%).

Un script acepta apuestas en los tres resultados hasta que recibe información sobre el resultado real de un oráculo. Esa información es el único desencadenante para distribuir las ganancias.
Sabemos que Nurmagomedov ganó la pelea. Pero supongamos que un propietario de oráculo deshonesto planeó un fraude y realizó una apuesta sustancial en el resultado más rentable, un empate. Una vez que se ha acumulado una gran suma de apuestas, el propietario del oráculo deshonesto inicia el registro de información falsa sobre un sorteo en la cadena de bloques. El script del intercambio descentralizado no puede verificar la precisión de los datos y solo puede aceptarlos. Posteriormente, el script distribuye las ganancias entre los apostadores de acuerdo con los datos de resultados que ha recibido.
El fraude de este tipo podría ser altamente rentable para un creador de oráculo deshonesto. Si el beneficio previsto es mayor que el ingreso previsto de un oráculo honesto y el riesgo de consecuencias legales es bajo, la posibilidad de fraude podría aumentar sustancialmente.
Una forma de abordar esto es solicitando datos de varios oráculos y estableciendo un consenso de los resultados recibidos.
Podría haber varios tipos de consenso:
- Todos los oráculos proporcionaron la misma información.
- La mayoría de los oráculos proporcionaron la misma información (2 de 3, 3 de 4, etc.).
- Se calcula la mediana de los datos de los oráculos (los resultados máximos y mínimos se pueden descartar antes de calcular la mediana).
- Todos los oráculos suministraron la misma información dentro de una desviación previamente acordada. Por ejemplo, los tipos de cambio de diferentes fuentes podrían diferir en 0.00001, y sería imposible obtener exactamente los mismos datos.
- Solo se seleccionan resultados únicos.
Apliquemos esto a nuestro ejemplo. Si se utiliza un tipo de consenso '3 de 4', información falsa de resultados en Nurmagomedov vs. La lucha de Poirier de un oráculo no tendría un impacto en la ejecución del script. Se ejecutará en función de la información sobre la victoria de Nurmagomedov, y las ganancias se distribuirán en función de esos datos.
Sin embargo, si una persona deshonesta poseyera 3 de 4 oráculos, aún sería posible manipular los datos de resultados.
Para mantener la integridad de los oráculos, podrían introducirse varios conceptos para la clasificación de oráculos o multas por proporcionar información falsa, así como incentivos para proporcionar información precisa. Pero ninguno de ellos estaría protegido del aparejo o una mayoría deshonesta.
Entonces, ¿realmente necesitamos conceptos más complicados, o sería mejor simplemente tener una herramienta de consenso que nos permita tomar cinco oráculos que proporcionen datos relevantes, como si estuvieran fuera de la plataforma de un supermercado, establecer el tipo de consenso y obtener un resultado?
Por ejemplo, una aplicación descentralizada necesita datos de temperatura Celsius. Encontraremos cuatro oráculos que suministran esos datos en el directorio de oráculo, estableceremos el tipo de consenso como "mediana" y haremos una solicitud.
Los oráculos proporcionan valores de 18, 17, 19 y 21 grados. Existe una aparente discrepancia en los datos, y una diferencia de tres grados podría tener un impacto en la ejecución del script. El servicio procesa los datos recibidos y genera una mediana de 18,75 grados, que se envía al script de dApp.

En cualquier caso, la decisión de si confiar en los datos de un solo oráculo o crear un consenso de varios oráculos depende del usuario.
En general, los oráculos de datos son un campo nuevo. Actualmente se encuentra en una etapa en la que los usuarios pueden tener un impacto en la dirección en la que se desarrollará. Por lo tanto, nos gustaría saber de usted. Díganos si cree que se necesita una herramienta de consenso descrita anteriormente y comparta sus ideas sobre las direcciones en las que evoluciona el campo del oráculo.
Proporcione sus comentarios en los comentarios y en nuestro
grupo oficial de
Telegram .