El ciclo de vida de una transacción de Witnet por Rokowski El blog de Witnet Oracle marzo de 2023

Una transacción de oráculo de Witnet suena increíblemente complicada en papel, pero en realidad es bastante simple desde su inicio hasta su finalización. Recorrámoslo juntos.

Debido a que Witnet está completamente descentralizado y no hay un único punto de falla, el procedimiento real para cumplir con una solicitud de Oracle al principio no es convencional. Sin embargo, este proceso tiene más sentido para un sistema de Oracle, ya que Witnet se creó con un solo propósito para las consultas de Oracle.

“No convencional” en el sentido en que lo es Witnet, está impulsado por el hecho de que una solicitud de datos dentro de Witnet es “asincrónica”, o un proceso de dos partes. Esta es la única forma en que se puede descentralizar un oráculo en web3, y ha demostrado su resiliencia una y otra vez, donde otras soluciones de oráculo han visto vulnerabilidades contra su arquitectura.

Este artículo está diseñado para guiar a los nativos y no nativos de Witnet a través del ciclo de vida de una solicitud de datos al mostrar todo el proceso a través de nuestro explorador de bloques. Witnet es capaz de consultar cualquier API disponible públicamente, generar verdadera aleatoriedad y proporcionar datos como feeds de precios. Por el bien de este artículo, nos centraremos en las fuentes de precios, ya que son el uso más común de Witnet en este momento. Para simplificar aún más, vamos a utilizar el precio de Bitcoin en la red principal de Polygon.

Bien, primero comencemos ubicando el feed de precios en la red principal de Polygon. Esto es muy fácil porque Witnet tiene un explorador de fuentes de datos donde cualquiera puede auditar y verificar las fuentes de precios en cualquier momento. El feed que nos preocupa en este momento se encuentra en Polygonscan aquí (estamos usando la actualización que ocurrió a las 2:52 UTC del 29 de marzo) donde puede ver que el precio de Bitcoin se actualizó en el almacenamiento de contratos, de lectura gratuita. de una manera sin permiso.

Pero cuando hacemos clic en el hash de la transacción en el explorador de fuentes de datos, accedemos al explorador de bloques de Witnet. El hash de la transacción refleja la transacción en la cadena lateral de Witnet en la que los nodos estaban trabajando para completar, la que mencionamos anteriormente en el lado de Polygon.

Dentro de la transacción de Witnet, vemos algunas pestañas diferentes: “solicitud de datos”, “confirmar”, “revelar” y “recuento”. Todos estos son su propio tipo de transacción por separado, completos con su propio hash y almacenados en su propio bloque.

Arriba hay una imagen tomada de la misma solicitud de datos vinculada. En la esquina superior derecha encontrará algunos parámetros. Testigos (10) es el número de nodos que el solicitante de datos le pidió a la red que usara. La recompensa (150 mWIT) es la recompensa que se pagará a cada nodo por estar en consenso y tener éxito. La garantía (15 WIT) es la cantidad que cada nodo debe apostar para ser elegible para cumplir con la solicitud de datos (la columna vertebral y la seguridad criptoeconómica subyacente al protocolo que garantiza que los nodos tienen interés económico en permanecer honestos). El consenso (51%) es el porcentaje requerido de nodos que deben estar de acuerdo con el punto de datos final. La tarifa de minero (200 mWIT) es la tarifa a la que un minero agregó la transacción de solicitud de datos en un bloque. Por el bien del propósito de nuestro artículo, vamos a omitir la prioridad y el peso, pero son esencialmente similares a la velocidad de finalidad y la altura del bloque de Bitcoin, respectivamente.

Todos los parámetros en cursiva anteriores son establecidos por el solicitante de datos, quienquiera que sea. Witnet está completamente parametrizado, lo que significa que puede hacer que sus datos estén más seguros al establecer tasas de garantía, recompensas, consenso y testigos más altos, entre otros puntos.

La parte inferior de la solicitud de datos muestra nuestras API de datos a las que van los nodos. Estas son API públicas que cualquiera puede ver. Por ejemplo, aquí están Binance, Kraken y Bitfinex. Cuantas más fuentes se utilicen en una solicitud de datos, más resistente será y, por lo tanto, más segura.

Aquí hay una instantánea de la fase de “compromiso” en Witnet. Esencialmente, los nodos seleccionados al azar deben comprometerse con los datos que recuperaron antes de revelarlos a los otros nodos dentro de la red. Esto garantiza que los nodos no se confabulen y que no haya atacantes que utilicen un ataque de ejecución frontal, que es otra razón por la que el protocolo selecciona los nodos al azar.

Los 10 nodos dentro de la fase de “confirmación” de una solicitud de datos de Witnet.

Como puede ver, cada nodo tiene su propio hash de transacción, y su confirmación se incluye en un bloque que, al hacer clic en él, le mostrará todas las demás confirmaciones y transacciones (ya sean de esta solicitud de datos u otras). Véalo aquí.

El nodo superior izquierdo en la fase de confirmación, de la imagen que precede a esta.

Arriba está la parte superior izquierda más confirmada de la imagen inmediatamente encima de sí misma. Como puede ver, tiene su propio hash de transacción, pero está incluido en el mismo bloque al que todos los nodos agregan sus compromisos. Así es en parte cómo Witnet crea una “cadena de verdad” en cierto sentido.

A continuación se muestra una captura de pantalla de la misma solicitud de datos en su etapa de “revelación” de su vida. Desafortunadamente, el marco de la captura de pantalla no captura todos los nodos como lo hace arriba.

8 de los 10 nodos en la fase de revelación de una solicitud de datos.

A continuación se muestra otra captura de pantalla del mismo nodo exacto al que hicimos referencia en la fase de confirmación. Observe que hay una nueva línea que dice “revelado” con una cadena de números después. Ese número (28040653000) es el precio de Bitcoin que recuperó este nodo. Al observar los otros 9 nodos, podemos ver que cada uno tiene sus propias recuperaciones. Por ejemplo, 28034321000, 28040373000, 28038599000 y 28036577000 para enumerar algunos. Estos datos excluyen a propósito el lugar decimal, pero por lo general sale 6 puntos (simplemente comience completamente a la derecha y cuente los seis números restantes para obtener el precio).

Nodo wit1c3s y los datos que revelaron para nuestra solicitud de datos de ejemplo.

Entonces, en este punto, cada nodo ha revelado los datos que obtuvieron de su fuente en el primer paso. Todos regresarán con esta información para el paso de “recuento”.

Podría decirse que esta es la fase más importante e interesante, y es donde nuestro parámetro de “consenso” del primer paso se vuelve lucrativo.

La fase de conteo está completamente parametrizada por el desarrollador que solicitó una solicitud de datos de Witnet. Dentro de la fase de conteo, hay un parámetro de desviación estándar que existe para filtrar los valores atípicos o, en otras palabras, los nodos que han proporcionado información que está más allá de esta desviación estándar. Una vez que la fase de conteo está cerca de completarse, los nodos son recompensados ​​por su trabajo dentro de la solicitud de datos o cortados si estaban “mentiendo”.

A continuación se muestra la transacción de conteo final, con el resultado de los datos que se incluirán en el contrato inteligente en Polygon. Como puede ver, el precio que acordaron los nodos es de $ 28,038.421250. Como referencia, CoinMarketCap tiene el precio de Bitcoin en $28,056.42 en ese mismo momento (pero tenemos que confiar en un solo punto de falla, y es por eso que los oráculos y los contratos que usan estos agregadores de datos tienden a sufrir más).

Con suerte, en este punto está muy claro por qué usar un oráculo verdaderamente descentralizado como Witnet es la única forma de crear productos financieros verdaderamente descentralizados. La arquitectura del oráculo de Witnet en realidad protege contra las vulnerabilidades observadas en otros oráculos, porque no tiene las mismas trampas que estos oráculos han dado a su proceso asincrónico.

Witnet sigue siendo la base sobre la que se construyen las finanzas descentralizadas porque se creó con un único propósito para abordar el problema del oráculo. Hace su trabajo increíblemente bien.

Conéctate con Witnet:

Sitio web | Gorjeo | Telegram | Discordia | YouTube | Reddit