Un oráculo conecta una aplicación blockchain con información o acciones ajenas a su propio entorno de ejecución. Los reportes de precios son un ejemplo; también pueden utilizarse resultados de eventos, observaciones meteorológicas y datos de reservas para tomar decisiones contractuales. Los oráculos pueden además transmitir resultados de la blockchain a sistemas externos.
Por qué el contrato necesita una conexión
Los nodos deben ejecutar una transacción de manera consistente. Si cada nodo consultara por separado un sitio web cambiante, no obtendrían confiablemente la misma respuesta. Un oráculo presenta información mediante un proceso acordado para que los contratos puedan leerla y usarla de forma determinista.
Los diseños varían. Un proveedor puede firmar un reporte, varios informantes pueden agregar observaciones o un sistema optimista puede aceptar una respuesta propuesta salvo que se impugne dentro de un plazo definido. Los datos pueden publicarse periódicamente o solicitarse para un evento específico.
La confianza se extiende fuera de la cadena
Registrar una respuesta en cadena no demuestra que la observación original fuera correcta ni que siga vigente. La confiabilidad depende de las fuentes, los incentivos de los informantes, las reglas de verificación, los tiempos de actualización y los procedimientos de disputa.
Por ello, las aplicaciones necesitan revisar la vigencia de los datos y responder cuando no están disponibles o resultan inverosímiles. Un oráculo descentralizado puede reducir la dependencia de un informante, pero las fuentes compartidas, las fallas correlacionadas y una integración defectuosa todavía pueden afectar los resultados del contrato.