Intercambio Forex Descentralizado

El módulo de intercambio de moneda estable (ForDEX) está integrado dentro del contrato acuñador (SC Minter) y puede considerarse una extensión de la funcionalidad del mismo. Su función es permitir el intercambio de cualquier par de monedas estables de Geminon sin deslizamiento del precio.

Los sistemas de intercambio de moneda estable (stableswaps) que han implementado la mayoría de protocolos hasta la fecha están basados en pools de liquidez. El sistema propuesto por Geminon es completamente diferente, ya que no utiliza liquidez sino que es puramente algorítmico: aprovecha la capacidad nativa del protocolo para acuñar y quemar monedas, siendo esta la causa de que el módulo de Stableswap de Geminon se haya integrado dentro del contrato del SC Minter. El sistema propuesto por Geminon tiene varias ventajas respecto a los sistemas basados en pools de liquidez:

  • No depende de la presencia de actores externos para funcionar. Un stableswap basado en LPs requiere proveedores de liquidez y arbitrajistas que mantengan el precio de cada uno de los pares negociados cerca de su valor de referencia, mientras que nuestro sistema funciona de forma plenamente independiente.

  • Mejor resultado en las operaciones para los usuarios: se eliminan las ineficiencias propias de la existencia de intermediarios (LPs y arbitrajistas) que obtienen su beneficio precisamente del deslizamiento de los precios, a expensas de los usuarios. Nuestro sistema proporciona siempre un precio exacto en los intercambios independientemente del importe de la operación (liquidez infinita).

  • La implementación de la solución algorítmica es notablemente más simple, y por tanto menos propensa a vulnerabilidades.

Ataques por adelantamiento del oráculo (front running)

Las monedas estables de Geminon utilizan los oráculos de Chainlink para obtener los precios respecto al dólar de las monedas fiat que replican en tiempo real. Sin embargo, debido a las características intrínsecas de la tecnología de cadena de bloques, existe un retardo (lag) entre el instante en que se produce la observación del precio en el mercado y el momento en que dicho dato se escribe en la blockchain. Este retardo es la suma del tiempo que tarda la red de Chainlink en alcanzar consenso sobre el valor del dato de precio, el tiempo que tarda Chainlink en enviar la transacción a la blockchain de destino con el nuevo valor y el tiempo que dicha red tarda en procesar la transacción e incluirla en el siguiente bloque. El tiempo total que dura este proceso puede ser mayor a un minuto.

Debido al notable retardo con que el oráculo refleja los precios dentro de la cadena, es en teoría posible para un atacante obtener un beneficio libre de riesgo operando un activo en cadena cuyo precio se fije usando este oráculo, puesto que solo sería necesario observar el precio del activo en el mundo real para conocer de antemano cómo va a cambiar su precio en la blockchain en el futuro inmediato (arbitraje temporal). El ataque solo será económicamente viable si el coste de la operación (gas + comisiones + deslizamiento) es menor que el movimiento esperado del precio. Dado que nuestro sistema no tiene deslizamiento, el umbral de ataque es más bajo y el importe es ilimitado, por lo que se ha diseñado un sistema de seguridad que haga inviables este tipo de ataques.

Probabilidad del ataque

El mercado Forex es uno de los menos volátiles del mundo, especialmente si se trata de pares mayores como el EUR/USD, cuya volatilidad a una hora casi nunca supera el 0,3%. Esta baja volatilidad hace que la comisión de base que se cobra habitualmente por un intercambio descentralizado en blockchain sea superior al beneficio esperable de casi cualquier operación intradiaria en el mercado de divisas, por lo que la probabilidad de este tipo de ataque en general es bastante baja, dado que además resultaría poco rentable en caso de tener éxito. Sin embargo, dado que el ataque descrito es teóricamente posible si existe la suficiente volatilidad en el mercado, es necesario implementar medidas para asegurar que no pueda llevarse a cabo en ninguna circunstancia.

Guardia del intercambio de estables (Stableswap Guard)

El contrato StableswapGuard implementa un sistema de seguridad basado en un oráculo de precios interno que rastrea las posiciones globales en moneda estable que se han tomado en los últimos 5 minutos tanto en el SC Minter como en el Stableswap. Cada vez que se realiza una operación en moneda estable, el contrato comprueba si se han abierto posiciones contrarias en los últimos 5 minutos que produzcan un beneficio anormal, y en su caso aplica una comisión de seguridad extra a la operación igual a la volatilidad del periodo entre la apertura y el cierre de la posición eliminando su posible beneficio.

No se recomienda realizar operativa de scalping en timeframes bajos usando el módulo de Stableswap de Geminon. Al operar compruebe siempre el importe de la comisión aplicada, y en caso de ser más alta de lo normal espere unos minutos para realizar su operación.

Algoritmo del oráculo interno

El algoritmo del StableSwapGuard es similar al utilizado para el oráculo interno de los GLP y para el limitador de acuñación de los tokens de Geminon. Se basa en una media móvil exponencial adaptativa cuyo parámetro varía en función de la relación entre volumen de la operación actual y el volumen total acumulado en los últimos 5 minutos:

Δt=tntn1\Delta t = t_n - t_{n-1}
Vn={     vnif Δt>300Vn1+vnif Δt300V_n = \begin{cases} \ \ \ \ \ v_n &\text{if } \Delta t > 300 \\ V_{n-1}+v_n &\text{if } \Delta t \le 300 \end{cases}
wn={     1if Δt>300vnvn+Vnif Δt300w_n = \begin{cases} \ \ \ \ \ 1 &\text{if } \Delta t > 300 \\ \dfrac {v_n}{v_n+V_n} &\text{if } \Delta t \le 300 \end{cases}
mn=wnpn+(1wn)mn1m_n = w_n p_n + (1-w_n) m_{n-1}

Donde Δt\Delta t es el intervalo de tiempo en segundos transcurrido desde la última operación, vnv_n es el volumen (en dólares US) de la operación actual y pnp_n es el precio actual de la moneda estable (en dólares US).

El contrato de StableSwapGuard almacena la cantidad anterior para cada moneda estable separando operaciones de compra y operaciones de venta. Para calcular la comisión de seguridad, se compara la diferencia entre precio actual y el valor promedio de las operaciones de signo contrario, y si dicho valor es superior a la comisión de base, se aplica la comisión de seguridad a la operación.

Última actualización