¿Por qué colapsó realmente Terra?

Geminon
10 min readMay 14, 2022

--

Los últimos días han sido extremadamente difíciles en el mercado cripto, y especialmente para los seguidores y usuarios de Terra y su moneda (antes) estable UST. Dada la magnitud del colapso, que algunos catalogan ya como la mayor y más rápida caída en la historia de las criptomonedas, ahora es importante entender a fondo qué fue lo que salió mal para evitar que vuelva a suceder. Esta importancia es mayor aún si cabe para nosotros ya que nuestro proyecto estaba fuertemente inspirado en el éxito del UST como moneda estable algorítmica, por lo que el fracaso de Terra nos afecta más directamente de lo que ya lo ha hecho a todo el ecosistema cripto.

Crónica de una muerte anunciada

Lo primero de todo es entender cómo funciona el protocolo Terra. De la documentación del proyecto:

“El módulo de mercado del protocolo Terra permite a los usuarios intercambiar siempre 1 USD de Luna por 1 UST, y viceversa, incentivando a los usuarios a mantener el precio de Terra.

Ejemplo

Si 1 UST se cotiza a 0,99 USD, los usuarios pueden comprar 1 UST por 0,99 USD. Luego, los usuarios utilizan la función de intercambio de mercado de Terra Station para intercambiar 1 UST por 1 USD de Luna. El canje quema 1 UST y acuña 1 USD de Luna. Los usuarios ganan 0,01 UST del intercambio. Este arbitraje continúa, y UST se quema para acuñar Luna hasta que el precio de UST vuelve a subir a 1 USD.”

La teoría es sencilla: los usuarios siempre pueden ir a la aplicación de Terra y cambiar su UST por exactamente 1 dólar en tokens Luna. Si esto es realmente así, ¿cómo es posible entonces que haya colapsado el protocolo y el UST siga cotizando muy por debajo de 1 $ días después?

La respuesta a esta pregunta la encontramos al intentar hacer nosotros mismos esa sencilla operación de arbitraje que explica la documentación:

En el momento de la captura de pantalla, el UST estaba cotizando a 0,91 USDT, por lo que Luna cotizaba a 30 frente al USDT (que valía 1 $) y a 33 frente al UST (que valía 0,91). Como según la documentación del protocolo siempre se podría cambiar el UST por Luna con un valor de 1 $ para el UST, se podía hacer la siguiente operación de arbitraje:

  1. Comprar en el exchange 30 UST por 27,3 USDT (a 0,91 UST/USDT)
  2. Enviar los 30 UST desde el Exchange al monedero privado, y cambiar los 30 UST por 1 Luna (recordemos que Luna cotizaba frente al USDT a 30) en la aplicación de Terra Station. Este paso es la clave de todo, porque aquí es donde está implícita la valoración del UST a 1 $ que dice la documentación: la aplicación nos paga Luna al precio que cotiza frente al USDT (que vale 1 $), lo que equivale a que nos paga nuestro UST a 1 $, el precio teórico que debería tener.
  3. Volvemos a enviar 1 Luna al exchange, donde lo vendemos por 30 USDT. Como en el paso 1 lo compramos por 27,3 USDT, acabamos de obtener un 9,9% de beneficio.
  4. Volvemos a repetir desde el paso 1, usando los 30 USDT que acabamos de obtener para comprar 32,95 UST. Cada vez que hacemos esto, generamos presión de compra sobre el UST, elevando su precio y haciendo que vuelva poco a poco hacia su objetivo de 1 $.

Con un beneficio potencial de casi un 10% libre de riesgo por operación, no se puede entender por qué el mercado no acudió en masa a efectuar estas operaciones de arbitraje restaurando de inmediato el valor del UST a 1 $. ¿Qué sucedió entonces?

Observemos de nuevo en detalle la captura de pantalla anterior, correspondiente al paso 2 en el que usábamos la aplicación de Terra Station para cambiar 30 UST por 1 Luna:

Como podemos ver, la aplicación no nos paga 1 Luna, sino 0,91. Es decir, no nos paga el UST a 1 $ como se suponía que debería hacer según la documentación para forzar el apego al dólar, sino a 0,91 que es el mismo precio al que estaba cotizando en el resto de sitios. ¿Cómo es posible que sucediera esto, si se suponía que la base de todo el funcionamiento del protocolo era que se podía siempre redimir el UST a 1 $?

La propia documentación de Terra nos aporta pistas sobre esto en las especificaciones técnicas del módulo de mercado:

“Terra utiliza un algoritmo de creación de mercado de producto constante para garantizar la liquidez de los swaps de Terra<>Luna

Por ejemplo, comienza con grupos iguales de Terra y Luna, ambos con un valor total de 1000 SDR. El tamaño del pool de Terra es 1000 SDT, y asumiendo que el precio de Luna<>SDR es 0.5, el tamaño del pool de Luna es 2000 Luna. Un intercambio de 100 SDT por Luna devolvería alrededor de 90,91 SDR de Luna (≈ 181,82 Luna). La oferta de 100 SDT se suma al pool de Terra, y los 90,91 SDT de Luna se sacan del pool de Luna”

Traducción: el módulo de mercado de Terra no es un mecanismo puro de emisión / quema de tokens, sino que se trata de una variante del pool de liquidez de Uniswap. Esto significa que el principal mecanismo que debía garantizar la estabilidad de precios del UST tenía una capacidad limitada para hacerlo, que dependía de la liquidez de Luna disponible, en lugar de tratarse de un mecanismo de emisión / quema puro con liquidez infinita como en teoría debía ser para garantizar que en toda situación pudiera redimirse UST a 1 $.

La presentación de Nick Platias durante la SFBW de 2019 da más detalles de esta implementación del módulo de mercado:

Lo que dice ahí es que en realidad el módulo de mercado no puede pagar siempre el UST a 1 $ exacto al usar un pool de liquidez, y que el precio real a pagar varía en una cantidad ε (diferencial). Pero lo mejor de todo es que admite a continuación que dicho diferencial entre el precio teórico de redención del UST y el precio efectivo podría descontrolarse en caso de un desequilibrio en la liquidez del pool, que es justo lo que pasó cuando se inició el colapso del protocolo: una oleada de grandes ventas abrumó al módulo de mercado, desequilibrando la liquidez del pool e incrementando ese diferencial. Como el precio del UST en el mercado dependía directamente del precio que proporcionara el módulo de mercado (gracias a las operaciones de arbitraje descritas anteriormente), en el momento en que este se desequilibró y empezó a pagar el UST por debajo de 1 $, se produjo un contagio a todos los exchanges, quedando fijado el precio de mercado del UST por debajo de su valor teórico. El precio ya no podía volver a su valor objetivo simplemente porque el mecanismo que debía asegurar esto no era capaz de hacerlo debido a un error grave de diseño.

Cambio del invariante para la valoración de la moneda estable en función de la variación del suministro de Luna en el pool de liquidez del módulo de mercado de Terra. (Platias, N. 2019)

Este diseño deficiente del módulo de mercado con una capacidad finita hizo que una vez alcanzada dicha capacidad, el precio del UST se mantuviera de forma sostenida por debajo de su objetivo de 1 $, lo cual empezó a generar alarma entre los poseedores de UST y Luna, generando una reacción en cadena: la temida “espiral de la muerte”. Cuanta más gente intentaba vender su UST en el mercado, más se separaba este de su valor teórico, y todos los creadores de mercado y arbitrajistas no trabajaban para defender el valor de 1 $, sino para defender un valor solo ligeramente superior al que se estaba cotizando en los exchanges. Además, los usuarios comunes tampoco podían ayudar participando en dicho arbitraje porque no tenían ninguna garantía de que en el tiempo que tardaban en enviar su UST desde el Exchange a su monedero el diferencial ε del módulo de mercado se ampliara haciendo que perdieran dinero en la operación. El protocolo en este punto era como una enfermedad autoinmune, con el módulo de mercado apoyando el desapego a 1 $ en lugar de defenderlo, luchando contra todo el mercado en lugar de contar con su ayuda para restaurar el precio. La catástrofe era ya inevitable.

Es importante destacar que lo que en última instancia provocó el colapso de Terra no fue una venta masiva puntual por parte de uno o varios actores, sino el diseño deficiente del módulo de mercado, que era la pieza más importante del protocolo. Si se hubiera hecho una implementación correcta del mecanismo descrito en la documentación que siempre permitiera redimir UST a 1 $ exacto con un mecanismo de emisión / quemado (liquidez infinita) en lugar de limitarse a copiar el pool de Uniswap (liquidez limitada), no se hubiera producido el colapso de Terra en estas circunstancias ya que el precio del UST habría podido volver rápidamente a su valor objetivo y no se habría iniciado la espiral de pánico que finalmente produjo el colapso.

Resumiendo:

  • El comportamiento real del módulo de mercado de Terra que era el núcleo del protocolo que debía garantizar la estabilidad del UST no se correspondía con lo descrito en la documentación, ya que no podía garantizar la redención de UST a 1 $ en todas las condiciones.
  • La implementación del módulo de mercado como un pool de liquidez de Uniswap en lugar de como un mecanismo puro de emisión / quemado de tokens fue un grave error, ya que al hacerlo de esa forma tenía un comportamiento reflexivo e inherentemente inestable.
  • Lo que en última instancia provocó el colapso de Terra fue esa mala implementación del núcleo del protocolo, no un presunto ataque por parte de terceros ni el hecho de que se tratara de una moneda puramente algorítmica. De haber estado correctamente implementada, la idea podría haber funcionado.
  • El protocolo estaba condenado desde el primer día. Era una cuestión de cuándo, no de si ocurriría.

Geminon no es como Terra

Como hemos dicho al comienzo, el protocolo Geminon estaba fuertemente inspirado en el éxito de Terra. Sin embargo, también estaba inspirado en otros protocolos como Frax, con un diseño inicial a medio camino entre los dos, pero con notables mejoras respecto a ambos. Las diferencias más importantes entre Geminon y Terra son:

  1. Nuestra implementación del mecanismo de emisión y redención de moneda estable está hecha correctamente: no es una copia del pool de liquidez de Uniswap como en Terra, sino un diseño propio que permite en toda condición redimir la moneda estable por su valor objetivo sin deslizamiento y en cantidad ilimitada (liquidez infinita).
  2. El protocolo Geminon estaba diseñado para estar colateralizado desde el principio de forma plenamente descentralizada (al contrario de Terra) y empleando activos puramente descentralizados (Frax emplea monedas estables centralizadas).
  3. Las monedas estables emitidas con el protocolo Geminon no guardan la paridad con la moneda fiat, sino con su índice de inflación asociado. En el corto plazo su precio es constante, pero al cabo de los meses su valor de cambio crece lentamente, conservando su poder adquisitivo.

Mejoras en el protocolo Geminon

A pesar de que el diseño de nuestro protocolo no tenía los graves errores que provocaron el colapso de Terra, a la vista de los acontecimientos hemos decidido implementar medidas adicionales para reforzar la solidez del protocolo frente a eventos de mercado:

  1. Colateralización fuerte. Nuestro diseño inicial incluía una colateralización suave del protocolo con criptomonedas consolidadas como BTC, ETH, BNB, AVAX y LINK (en nuestro whitepaper hay una explicación más detallada del por qué de esta elección) comenzando con un 33% de colateral. La razón tras esta decisión era que al tener previsto lanzar nuestro proyecto durante el mercado bajista, con valoraciones de estas monedas entre un 50 y un 80% por debajo de su ATH, el nivel de colateralización aumentaría por sí mismo en el futuro, pudiendo llegar a superar el 100% en el próximo ciclo expansivo. Hemos decidido pasar a un sistema de colateralización fuerte, con un objetivo del 100% de colateralización desde el principio.
  2. Colateral exógeno no correlacionado. Otra lección aprendida del colapso de Terra es que la alta correlación existente entre las distintas criptomonedas juega en contra del protocolo en los momentos de mayor necesidad, forzando las liquidaciones de colateral precisamente cuando este se encuentra más infravalorado. Por este motivo hemos buscado alternativas que, estando disponibles dentro de la cadena, no estén correlacionadas. La elección del resto de protocolos en esta situación es emplear otras monedas estables como USDT, USDC, DAI, etc. Para nuestro protocolo esta elección no sería adecuada ya que su objetivo es proporcionar monedas estables indizadas a la inflación. Por este motivo, hemos decidido emplear oro tokenizado como parte del colateral usando alguno de los proveedores existentes como Paxos. Geminon se convertiría así en el primer protocolo de moneda estable resistente a la inflación y colateralizada por oro físico.
  3. Colateralización del token Geminon. Los protocolos existentes de moneda estable colateralizada han dispuesto el colateral como medio de redención directa de la moneda estable, exponiendo a esta directamente a las variaciones del colateral y dejando a los tenedores de tokens del proyecto sin ningún tipo de protección. Nosotros vamos a ir un paso más lejos, adoptando un nuevo sistema donde tanto las redenciones de colateral como las de moneda estable son a través del token Geminon. Esto proporciona seguridad simultáneamente a los poseedores del token y de las monedas estables, así como una mayor estabilidad del precio de estas últimas, ya que es el token del protocolo el que absorbe la volatilidad del colateral. El principio de funcionamiento es similar al de Frax, que emplea una reserva mixta fraccional y algorítmica, aunque la implementación es completamente diferente (FXS no está respaldado por colateral, mientras que en nuestro protocolo el token Geminon sí lo está).

Nota final: estamos finalizando la creación del MVP del protocolo, y pronto estará disponible en la testnet. Geminon se encuentra en fase semilla, por lo que estamos buscando financiación de VC y colaboradores para el proyecto. Síguenos en twitter y telegram para estar al tanto de las novedades del proyecto.

--

--