En el capítulo anterior vimos como los Smart Contracts, tenían que verificar la información para asegurarse de que se habían cumplido los requisitos impuestos para el cumplimiento del contrato. Pues bien, en algunos casos cuando sea necesario utilizar información externa, usaremos los llamados oráculos.
¿Qué es un oráculo?
Los oráculos son servicios ofrecidos por terceros que proporcionan a los smart sontracts información externa. Por tanto, podríamos decir que sirven de puente entre los contratos y el mundo exterior.
Nacen como consecuencia de la limitación de las blockchains y los smart sontracts ya que no tienen acceso a datos externos a la red, siendo necesario en muchos casos y muchos tipos de contratos que se tenga dicho acceso a datos externos.
Los oráculos resultan vitales dentro del ecosistema blockchain porque amplían el ámbito de aplicación de los smart contracts, ya que, de lo contrario, estos tendrían un uso muy limitado ya que solo tendrían acceso a datos internos de sus propias redes.
Es importante señalar que un oráculo no es la fuente de información en sí misma, sino la capa que consulta, verifica y autentifica fuentes de datos externas, y luego transmite dicha información.
Los datos transmitidos por los oráculos pueden tomar diversas formas como la información del precio, la culminación exitosa de un pago o la temperatura de un lugar.
Ejemplo de cómo funciona un oráculo
Antes de pasar a distinguir los distintos tipos que existen de oráculos, vamos a ver un ejemplo para entender mejor cómo funciona un oráculo.
Imaginemos que Antonio y Juan hacen una apuesta sobre quién ganará las próximas elecciones. Antonio cree que ganará el PSOE, mientras que Juan se inclina por el PP.
A continuación, acuerdan las condiciones de la apuesta y dejan sus fondos inmovilizados en depósito en un smart contract, que se encargará de dar los fondos al ganador en base a los resultados de la elección.
Como el smart contract no puede interactuar con datos externos, dependerá de un oráculo que se encargue de proporcionarle la información necesaria, en este caso, los resultados de la elección. Una vez el proceso de elección concluye, el oráculo consulta una página de confianza para averiguar qué candidato ha ganado (por ejemplo, algún periódico reputado, el BOE…), y a continuación transmite esta información al smart contract.
El contrato procede entonces a enviar los fondos a Antonio o Juan, en función del resultado.
Sin un oráculo, este ejemplo no se podría haber completado de manera automática, ya que necesitaría de un tercero que verificase la información y por tanto no tendría sentido haber realizado el contrato.
Otro ejemplo esquematizado podría ser el siguiente:
Tipos de oráculos
Este apartado no es esencial para entender el mundo que rodea a la blockchain y los Smart contracts, sin embargo, creo que es apropiado para complementar y para poder entender en mayor profundidad en que situaciones y como se pueden utilizar.
Oráculos tipo software
En primer lugar, nos encontramos este tipo de oráculos que son los más comunes, y que son los que interactúan con fuentes de información online (datos que se encuentren en la red) que transmiten a la blockchain.
Oráculos tipo hardware
En segundo lugar, tenemos los smart contracts que necesitan interactuar con el mundo real.
Los oráculos de tipo hardware están diseñados para obtener información del mundo físico y ponerla a disposición de los smart contracts. Dicha información puede ser transmitida por sensores electrónicos, escáners de códigos de barras, etc.
Por tanto, la labor de un oráculo de tipo hardware básicamente se traduce en traducir sucesos del mundo real y convertirlos en valores digitales que pueden ser comprendidos por smart contracts.
Un ejemplo ser un sensor que verifica si un camión que transporta mercancías ha llegado a su destino. Si lo hace, se transmite la información a un contrato inteligente que luego puede ejecutar decisiones basadas en él como el pago del salario al trabajador.
Oráculos de entrada y de salida
Los oráculos de entrada transmiten información de las fuentes externas a los contratos inteligentes, mientras que los oráculos de salida envían información de los contratos inteligentes al mundo externo.
Un ejemplo de un oráculo de entrada sería aquel que le dice a un contrato inteligente qué temperatura hace en un determinado punto.
Y un ejemplo de un oráculo de salida podría ser el incumplimiento de una cláusula del contrato. Enviando entonces la información del smart contract al mundo exterior para cancelar por ejemplo las cuentas que se habían abierto mientras el contrato se estaba cumpliendo.
Oráculos centralizados y descentralizados
Como viene siendo típico ya, está la distinción entre centralizado y descentralizado.
Así un oráculo centralizado será aquella entidad que proporcione información al contrato inteligente de manera exclusiva, con el riesgo de que la veracidad de dicha información solo viene dada por una entidad.
Como contraparte están los descentralizados que evitan ese riesgo. Este tipo de oráculos, aumentan la fiabilidad de la información proporcionada a los contratos inteligentes al no depender de una sola fuente, sino que el contrato inteligente consulta múltiples oráculos para determinar la validez y precisión de los datos.
Este tipo son los que están ganando más fuerza y vemos como algunos proyectos de blockchain brindan servicios de oráculos descentralizados a otras blockchains, como podría ser el caso de Chainlink (que ya analizaremos por separado).
Los oráculos descentralizados también pueden ser útiles en los mercados de predicción, donde la validez de un determinado resultado puede verificarse por consenso social.
Conclusión
Los oráculos son un mecanismo confiable que facilita la comunicación entre los contratos inteligentes y el mundo externo, lo cual es vital para la adopción global de blockchains.
Sin oráculos blockchain, los contratos inteligentes tendrían que depender solo de la información que ya está dentro de sus redes, lo que limitaría considerablemente sus capacidades.