
Los oráculos de blockchain resuelven el problema de la entrega de información del mundo exterior al blockchain. Pero es importante saber a cuáles de ellos podemos confiar.
En sobre el lanzamiento del catálogo hemos hablado sobre la importancia de los oráculos para el blockchain.
Las aplicaciones descentralizadas no tienen acceso a datos fuera del blockchain. Por eso se crean pequeños programas: oráculos, que obtienen acceso a los datos necesarios del mundo exterior y los registran en el blockchain.
Según el tipo de fuente de datos, los oráculos se pueden dividir en tres categorías: programáticos, hardware y humanos.
Oráculos programáticos obtienen y procesan datos de Internet, como la temperatura del aire, precios de productos, retrasos de trenes y aviones. La información proviene de fuentes en línea, como APIs, y el oráculo la extrae y la coloca en el blockchain. Para saber cómo hacer un oráculo programático simple, lea .
Oráculos hardware monitorean objetos del mundo real utilizando dispositivos y sensores. Por ejemplo, una cámara calibrada para cruzar una línea graba automóviles que ingresan a una determinada área. El oráculo registra el hecho de cruzar la línea en el blockchain, y con base en esos datos, el script de la aplicación descentralizada puede, por ejemplo, iniciar una multa y deducir tokens de la cuenta del propietario del automóvil.
Oráculos humanos utilizan datos ingresados por personas. Se consideran los más avanzados debido a su perspectiva independiente sobre el resultado del evento.
Recientemente proporcionamos una herramienta que permite registrar en el blockchain datos del oráculo según una especificación dada. Funciona de manera muy sencilla: solo hay que registrar , completando la especificación. Después de eso, se pueden publicar transacciones de datos de acuerdo con esta especificación a través de la interfaz de Waves Oracles. Lea más sobre la herramienta en .

Estas herramientas y interfaces estandarizadas facilitan la vida tanto a los desarrolladores como a los usuarios de servicios en blockchain. Nuestra herramienta es útil específicamente para los oráculos humanos y se puede utilizar, por ejemplo, para registrar certificados o derechos de autor sobre ciertos objetos.
Sin embargo, al usar oráculos surge la pregunta sobre la confianza en la información que proporcionan. ¿Es confiable la fuente? ¿Se recibirán los datos a tiempo? Además, existe el riesgo de que un oráculo engañe a los usuarios al proporcionar intencionadamente información incorrecta para su propio beneficio.
Como ejemplo, consideremos un oráculo que proporciona información sobre eventos deportivos para una bolsa descentralizada de apuestas.
El evento es la pelea principal del torneo UFC 242, Khabib Nurmagomedov contra Dustin Poirier. Según las casas de apuestas, Nurmagomedov es un claro favorito en la pelea. Se podía apostar por su victoria con una cuota de 1,24, lo que corresponde a una probabilidad del 76%. La cuota para la victoria de Poirier era de 4,26 (22%), y la probabilidad de un resultado empate era evaluada por las casas de apuestas con una cuota de 51,0 (2%).

El script acepta apuestas de los usuarios en los tres posibles resultados hasta que recibe del oráculo la información sobre el resultado real de la pelea. Este es el único criterio para la distribución de ganancias.
Ahora se sabe que Nurmagomedov ganó. Sin embargo, imaginemos que un dueño deshonesto del oráculo, planeando un engaño, realizó una apuesta en el resultado con la mejor cuota: el empate. Cuando la banca de apuestas alcanzó un gran volumen, el dueño del oráculo inicia un registro en la blockchain con información falsa sobre un supuesto resultado de empate en la pelea. El script de la bolsa descentralizada no tiene la capacidad de verificar la validez de los datos recibidos y solo distribuye las ganancias de acuerdo con esta información.
Si la posible ganancia de un engaño de este tipo es mayor que el ingreso proyectado de un oráculo honesto, y mientras tanto el riesgo de ir a juicio es bajo, la probabilidad de que el dueño del oráculo actúe de manera deshonesta aumenta significativamente.
Una de las posibles soluciones al problema es solicitar datos de varios oráculos y llevar los valores obtenidos a un consenso. Se pueden identificar varios tipos de consenso:
- todos los oráculos proporcionaron información unánime
- la mayoría de los oráculos proporcionaron información unánime (2 de 3, 3 de 4, etc.)
- promediar los datos de los oráculos (se pueden considerar opciones en las que se descartan previamente el valor máximo y el mínimo)
- todos los oráculos proporcionaron información unificada con un margen de desviación previamente acordado (por ejemplo, los valores de cotizaciones financieras de diferentes fuentes pueden diferir en 0.00001, y obtener una coincidencia exacta es una tarea imposible)
- filtrar solo los valores únicos de los datos obtenidos
Volvamos a nuestro intercambio descentralizado de apuestas. Al utilizar el consenso de '3 de 4', un oráculo que informe de un resultado empatado no podría influir en la ejecución del script, siempre que los otros tres oráculos proporcionen información veraz.
Pero un usuario malintencionado podría poseer tres de los cuatro oráculos, lo que le permitiría asegurar la mayoría decisiva.
Para combatir la falta de honestidad de los oráculos, se podría implementar un sistema de calificación o sanciones por datos inexactos. También se podría optar por el enfoque de 'zanahoria' y ofrecer recompensas por veracidad. Sin embargo, ninguna medida permitirá evitar completamente, por ejemplo, la manipulación de calificaciones o una mayoría deshonesta.
¿Vale la pena inventar servicios complejos, o sería suficiente contar con una herramienta para el consenso que permita, como en una estantería de supermercado, seleccionar, por ejemplo, cinco oráculos que proporcionen los datos necesarios, establecer el tipo de consenso y obtener un resultado?
Por ejemplo, una aplicación descentralizada necesita datos de temperatura en grados Celsius. En el catálogo de oráculos encontramos cuatro oráculos que proporcionan dichos datos, establecemos el tipo de consenso 'promedio' y hacemos la solicitud.
Supongamos que los oráculos dieron los valores: 18, 17, 19 y 21 grados. La diferencia de tres grados puede resultar crítica para la ejecución del script. El servicio procesa el resultado y obtiene el valor promedio de temperatura: 18.75 grados. Este número será recibido por el script de la aplicación descentralizada y trabajará con él.

En última instancia, la decisión recae en el consumidor: ¿confiar en un solo oráculo y utilizar sus datos, o construir el consenso de varios oráculos seleccionados a su criterio?
De todos modos, los oráculos de datos son un campo bastante nuevo. Se encuentran en una etapa donde los propios usuarios pueden determinar hacia dónde debería desarrollarse. Por eso, queremos escuchar su opinión. ¿Es necesaria la herramienta mencionada anteriormente para los oráculos? ¿Cómo ves el futuro de los oráculos de datos en general? Comparte tu opinión en los comentarios y en nuestro grupo oficial en .
Fuente: habr.com
