Subjetividad en los oráculos

(Tellor Core) (15 de diciembre de 2020)

Subjetividad, ambigüedad y oráculos descentralizados

En un instante, los hackeos de los protocolos financieros o los malentendidos del funcionamiento interno de un contrato financiero pueden generar grandes pérdidas con pocos recursos. . Ya sea que se trate de productos financieros tradicionales que se asentaron en LIBOR, traders que vieron al Crude volverse negativo por primera vez en la historia este año [1], o un contrato de derivados que liquida coberturistas desprevenidos, el precio de liquidación o la manipulación del oráculo han existido desde mucho antes de Vitalik y préstamos flash.

La estructura de su Oracle y los datos que está recuperando son especificaciones cruciales al crear un producto financiero sólido. La pregunta aparentemente sencilla de «¿qué precio usas?» es todo menos. El matiz involucrado en seleccionar la definición correcta de lo que es la verdad con respecto a su entrada tiene implicaciones de seguridad que afectarán todos los aspectos de su producto.

El oráculo

Cuando se coloca un precio de liquidación en una cadena de bloques, tiene dos componentes:

– Cómo obtener it on-chain

– Qué conseguir en la cadena

Verás, los oráculos no están tan estrictamente definidos como blockchains. Más bien, los oráculos relacionados con la información fuera de la cadena son una decisión social en un estado que no está vinculado al consenso de la cadena de bloques. Para desempacar esto:

a) La verdad es subjetiva. En lo que un grupo de personas está de acuerdo (en un contexto puramente digital) es la verdad. La forma en que llegamos a esta verdad es una forma codificada de lograr el «consenso social» (la verdad subjetiva y acordada)

b) La capa 1 es el consenso social.

c) La capa 1 el consenso es solo en un conjunto muy específico de códigos de operación y acciones.

d) Todas las acciones en cadena deben estar codificadas en instrucciones de Capa 1 o tener su propio consenso social (por ejemplo, un contrato con una clave de administrador es una forma específica de gobierno autoritario)

e) Los oráculos colocan datos en cadena cuya validez no es manejada por el mecanismo de consenso de capa 1. Por lo tanto, los oráculos también deben tener un elemento humano, social o de consenso.

Los oráculos representan un problema interesante ya que intentan proporcionar información relacionada con la ocurrencia de un evento o el estado de algún sistema que no es nativo a la propia cadena. Mientras que un mecanismo de consenso de capa 1 está estrictamente definido con ciertas operaciones y puntos de disputa, los sistemas Oracle buscan extender las capacidades de la cadena a información arbitraria no acordada por los validadores base. El caso de uso más común actualmente se relaciona con el precio de las criptomonedas en intercambios centralizados, seguido de los eventos que ocurren en otras cadenas de bloques (encabezados de bloques, disponibilidad de datos, etc.). Aunque puede parecer sencillo decir lo que sucedió o cuál es el estado de algún evento externo, la verdad es que la realidad puede ser más subjetiva de lo que los defensores de las soluciones codificadas quisieran admitir.

¿Qué es un precio?

Cuando los protocolos eligen un oráculo, eligen el mecanismo de consenso social para determinar la precisión de una entrada. Para un diseño de Oracle dado, no solo tiene diferentes pensamientos sobre cómo validar una entrada determinada, tiene diferentes pensamientos sobre cuál es esa entrada.

Hay una diferencia entre el precio de Bitcoin, el precio de Bitcoin en Coinbase, el precio de Bitcoin según la API de Coinbase y el precio al que actualmente puedo comprar un Bitcoin completo en Coinbase.

Las definiciones importan.

La elección de la entrada (el precio en este caso) determina en qué basarán sus validadores la precisión. Tellor tiene un (excelente artículo sobre precios de liquidación), pero ese es un tema que no se limita a defi o blockchain, y tiene una literatura sólida de mejores prácticas.

Muchas soluciones de Oracle son simplemente tecnología que se toma de una API o trabaja para traer información sin confianza desde esa API en la cadena. Esta es una gran herramienta para constructores o MVP, pero no es una solución de Oracle completa.

Si asume que el precio de la API siempre es correcto, confía completamente en el operador de este feed de precios. La manipulación de estos precios o la honestidad / resistencia a la censura de la API del intercambio deberían ser preocupaciones serias para cualquier proyecto. La verdad es que la transparencia del kit de herramientas «leer directamente desde una API» también es una ruina.

La seguridad de lo desconocido

Conocer las reglas del juego es importante, pero siempre hay consecuencias imprevistas cuando los sistemas complejos intentan trazar cada escenario potencial. Como puede atestiguar cualquier desarrollador cuyo software haya fallado en producción, el código es difícil de hacer bien.

Pero no es solo código, son leyes y regulaciones en general.

Este es un conocido problema en la gobernanza. Si intenta escribir lo que sucede en cada caso, la gente encontrará lagunas y formas de eludir la ley. Es por eso que tenemos jueces y jurados en el mundo real que establecen castigos personalizados sobre decisiones matizadas. Las reglas específicas para cada situación son imposibles y cómo traducimos este principio al universo digital es difícil.

La formalización del protocolo es la idea de que el código no requiere intervención humana y no cambia. Sin embargo, como sabemos por experiencia, esto conduce a rigidez, casos extremos imprevistos y, a menudo, al abandono del protocolo, ya que la narrativa en torno a su caso de uso puede necesitar cambiar si el código no lo hace. La capacidad de una comunidad para responder a problemas no especificados que puedan surgir es fundamental para que un sistema realmente resuelva un problema con el tiempo. La forma en que una comunidad hace esto es donde surge el consenso social.

Esto se remonta a los principios de blockchain. ¿Es blockchain «el código es la ley» o es un «consenso de la comunidad»? ¿Es una forma de que las comunidades se pongan de acuerdo sobre la verdad o un fragmento de código sin sentido que funciona como lo haría una calculadora?

Manipulación de Oracle

Si conoces las reglas y puedes jugar con el sistema sin castigo, las reglas se romperán. Aunque se desea transparencia, la exactitud con respecto a la derivación de los datos es realmente un error en este escenario.

La idea de que las especificaciones legalistas no son necesarias es algo que la mayoría da por sentado. Incluso si no está especificado en su contrato de alquiler, si el techo se derrumba con un huracán, su arrendador es responsable de arreglarlo de manera oportuna. Las sociedades tienen leyes que previenen cosas muy generales (por ejemplo, conducción imprudente, conducta desordenada, etc.); no requerimos una declaración if / else para cada escenario. Si una persona en la que confiamos (por ejemplo, un oficial de policía) lo ve haciendo algo estúpido, puede detenerlo. No es necesario que escriba en la ley que disparar una ballesta mientras se conduce un monociclo es ilegal; tenemos formas de usar el sentido común.

Sin embargo, los contratos inteligentes funcionan de manera diferente. Las partes que utilizan un oráculo demasiado específico (el firmante de API único o incluso el precio de Uniswap) están sujetas a un mayor riesgo de manipulación. Hemos visto varios hackeos en los que el oráculo trae los datos en cadena correctamente, pero hay consecuencias imprevistas con respecto a ese precio, ya que ha sido manipulado. La comunidad en estos casos no tiene recurso. Estás atascado con lo que te dio el código y la mayoría de las veces eso significa que alguien pierde dinero. Obtener un feed sin confianza no le dice que sea correcto con respecto a un consenso de intercambios o una comunidad y no puede protegerlo si alguien incluso encuentra una manera de tirar el precio con respecto a esa fuente de datos. [2]

A pesar de las llamadas a “codificar como ley” o el dolor de trabajar con comunidades y otros protocolos, no desea un oráculo que sea simplemente un fragmento de código. De la misma manera que Ethereum o Bitcoin se bifurcan / revierten si se ataca el protocolo de consenso, un oráculo completo debería tener flexibilidad en el caso de un ataque. Puede tener una forma de acuerdo comunitario (o una prueba en casos muy específicos) sobre lo que es un buen precio. Si la API de Coinbase deja de funcionar, no la use. Si surge una nueva fuente de liquidez, asegúrese de incluirla. No es ciencia espacial, pero es un proceso manual; uno que llevará tiempo hacerlo bien, pero que no esté limitado por su propio alcance.

Consenso social de la comunidad de Tellor

Tellor proporciona una forma de ponerse de acuerdo sobre la verdad. El oráculo de Tellor no es una técnica criptográfica mágica para monitorear el mundo exterior y transmitirlo a Ethereum. Es una red de participantes individuales que están incentivados criptoeconómicamente para informar y validar datos precisos.

Se ha reconocido que no hay solución para el «problema del oráculo», pero a menudo se trata de superar las difíciles compensaciones que debe realizar un proyecto cuando se trata de seleccionar correctamente un feed de precios y los mecanismos de seguridad que lo rodean.

Si es un proyecto defi que busca utilizar precios únicamente centralizados con costos de ataque conocidos, Es mejor omitir la parte del protocolo de consenso de la comunidad y trabajar para permitir que los intercambios escriban el precio en su contrato. Sin embargo, si usted es un proyecto, o conoce uno, que podría beneficiarse de un oráculo robusto y descentralizado, comuníquese y no dude en brindar www.tellor.io una mirada.

[1] https://www.bbc.com/news/business-52350082#:~:text=The\%20price\%20of\%20US \% 20aceite, el\% 20 del mundo tiene\% 20 se mantiene\% 20 personas\% 20 dentro .

[2] https://news.bitcoin.com/100 -million-liquidated-on-defi-protocol-composite-following-orracle-exploit /