USDI
Last updated
Last updated
USDI es una moneda indexada a la inflación en EEUU. Para el valor de la inflación se toma como referencia el índice de precios al consumo para todos los consumidores urbanos de todos los productos (CPIAUCSL), que puede consultarse en el siguiente enlace:
El índice, de base 100 en los años 1982-1984, se actualiza mensualmente. Los cambios porcentuales en el índice miden la tasa de variación de la inflación entre dos periodos cualquiera. Por ejemplo, en enero de 2010 el índice tenía un valor de 217,488, y en noviembre de 2022 de 298,349, lo que significa que la inflación acumulada en ese periodo ha sido del 37,19%.
USDI no toma su valor directamente del CPI, ya que el dato se publica con un mes de retraso. En su lugar, se calcula la predicción del índice que será publicado en el mes siguiente, cuyo valor corresponde al mes actual, y se utiliza el valor de dicha predicción como valor objetivo de referencia del token.
En los casos en que el nuevo valor objetivo está por debajo del valor actual (deflación), el valor de referencia del USDI permanece constante, de forma que en ningún caso su valor decaiga frente al dólar. Esta distinción es lo que hace que el USDI sea una moneda deflacionaria propiamente dicha y no un simple índice de inflación tokenizado. En la figura se observa cómo es bastante habitual que aparezcan periodos deflacionarios, algunas veces de varios años de duración, en los que el valor de referencia del USDI se mantiene constante mientras el valor objetivo no recupera su máximo anterior.
El token USDI se diseñó para que sus valores de referencia se pudieran actualizar de forma descentralizada. El sistema se basa en el uso del servicio Any API de la red de oráculos de Chainlink, que permite hacer llamadas a cualquier API desde una aplicación en blockchain y recibir los datos de la respuesta de una forma verificable. Para más información consultar la documentación de Chainlink:
El funcionamiento del mecanismo de actualización sin embargo es complejo e involucra cuatro contratos diferentes:
Contrato ChainlinkFredRelease. Permite realizar llamadas a la API de la Reserva Federal a través de la red Chainlink para obtener la fecha de la siguiente publicación del dato del índice de precios al consumo (CPI).
Contrato ChainlinkFredObservation. Permite realizar llamadas a la API de la Reserva Federal a través de la red Chainlink para obtener el valor del último dato publicado del índice de precios al consumo (CPI).
Contrato PredictIndex. Lee de los dos contratos anteriores el valor de la siguiente fecha de publicación y el del último dato publicado, y los usa para calcular la predicción del próximo dato que se publicará en esa fecha y actualizar el valor objetivo.
Contrato USDI. Lee el nuevo valor objetivo del contrato PredictIndex, comprueba que es válido y actualiza sus valores para el objetivo.
El procedimiento de actualización es descentralizado y puede ser llevado a cabo por cualquiera dispuesto a pagar las comisiones de gas y de la red Chainlink. Son necesarias un total de cinco transacciones para completar el proceso:
Dos transacciones para depositar tokens LINK en los contratos ChainlinkFredRelease y ChainlinkFredObservation a través de la función depositLink() para pagar la comisión de Chainlink por las llamadas a la API.
Una transacción usando la función requestData() del contrato PredictIndex para hacer las llamadas a las API a través de los contratos ChainlinkFredRelease y ChainlinkFredObservation.
Una transacción usando la función fetchData() del contrato PredictIndex para leer de los contratos ChainlinkFredRelease y ChainlinkFredObservation los datos obtenidos de las llamadas a la API y actualizar las predicciones del índice.
Una transacción utilizando la función updateTarget() del token para actualizar el valor objetivo. Cualquiera puede llamar a esta función, ya que el contrato comprueba automáticamente si debe actualizarse y en caso contrario revierte la transacción. Esta función se llama también automáticamente desde el contrato del SCMinter cada vez que se realiza una transacción involucrando al USDI, lo que garantiza que siempre se opera con un valor de referencia actualizado.
El contrato PredictIndex dispone además de un mecanismo auxiliar que permite al propietario actualizar manualmente los valores del índice de inflación de referencia y de la próxima fecha de lanzamiento en caso de que el mecanismo principal no esté disponible por algún motivo. Este procedimiento requiere solo dos transacciones:
Una transacción utilizando la función provideData() del contrato PredictIndex asociado al token USDI, proporcionando los valores de la fecha de la siguiente publicación del dato de inflación y el del último dato publicado. Solo una dirección autorizada por el propietario del contrato puede ejecutar esta acción.
Una transacción utilizando la función updateTarget() del token para actualizar el valor objetivo, igual que en el apartado anterior.
El contrato del token USDI está preparado para funcionar de forma completamente autónoma. Incluso si nadie actualiza nunca el valor objetivo del contrato PredictIndex, la función updateTarget() puede realizar una actualización de respaldo utilizando un valor por defecto. Este valor es de un 0,2% mensual, que equivale a un 2,68% anualizado. La tasa de variación mensual converge lentamente hacia ese valor si dejan de actualizarse los valores del índice de referencia. Consultar la página anterior sobre monedas indexadas a la inflación para más información sobre cómo se calcula este valor de respaldo.