Sin duda alguna el crecimiento del ecosistema DeFi durante los últimos meses ha sido de locos. Esto ha hecho que muchos empiecen a ver estos protocolos financieros como una burbuja especulativa, y aunque este escenario sea posible no creo que sea injustificado. No hay duda que DeFi ha venido para quedarse, ya que por primera vez estamos delante de una tecnología capaz de llevar los servicios financieros a cualquier persona del mundo, sin fricciones ni intermediarios, completamente transparente y que otorga igualdad de oportunidades sin importar tu sitio de nacimiento. Y aún pudiendo haber una "burbuja" como ocurrió en 2017 con las ICO's, DeFi seguirá adelante hasta llegar a ser incluso uno de los ecosistemas Blockchain más importantes.
En este artículo profundizaremos en Balancer, un exchange descentralizado que ha sido protagonista en el crecimiento de DeFi durante estos últimos meses y que ha conseguido sustituir a Uniswap como plataforma líder en swaps atómicos entre tokens de Ethereum. No nos quedaremos en la superficie, sino que intentaremos romper en pedazos el protocolo y entender por qué es tan importante y disruptivo.
En resumidas cuentas, la misión de Balancer es ofrecer un protocolo financiero que permite de forma flexible y descentralizada aportar liquidez programable, y mediante esta, ofrecer swaps instantáneos on-chain y con costes de gas eficientes a todo el ecosistema.
A primera vista puede parecer que Balancer no ofrece nada novedoso en comparación a Uniswap con la posibilidad de crear pools con más tokens y con proporciones entre tokens diferentes al 50/50, pero si estudiamos bien el protocolo es mucho más que esto.
En las finanzas tradicionales encontramos los denominados “index asset managers”; fondos de inversión indexados que mantienen constante la distribución entre los diferentes activos. Aquí a los inversores se les cobra una comisión no solo por participar en el fondo, sino también por los rebalanceos entre activos que se van actualizando por los “asset managers”.
Balancer ha invertido completamente la lógica económica de estos fondos. Ahora con Balancer, no solo no tienes que pagar fees por participar en los pools actuando como proveedor de liquidez, sino que además generas ingresos a través de fees por conseguir este rebalanceo. Te pagan por participar en un protocolo con una función de “asset management” integrada de forma nativa. Esto se debe a que el protocolo vende parte de sus activos y cobra una comisión por la venta para así poder equilibrar las proporciones entre los tokens.
Este rebalanceo tiene lugar a través de arbitraje, ya que los inversores están incentivados a tradear con pools donde el precio ha subido o bajado hasta zonas donde es rentable hacer una operación y "reequilibrarse". Esto permite que los pools cobren comisiones por estos trades y por tanto generan rendimiento a los proveedores de liquidez, además que permiten rebalancear de nuevo el portfolio.
De alguna forma Balancer ha descentralizado completamente el concepto de creación de mercado, no solo por lo que hemos comentado anteriormente, sino porque además siempre tienes la opción de convertir todo tu portfolio en un pool nuevo. Es decir, puedes escoger la distribución entre tokens que prefieras y usar Balancer para rebalancear esas proporciones, además de cobrar fees por hacerlo. ¡Simplemente asombroso!
Hasta aquí tampoco estamos teniendo en cuenta la contribución de Balancer al ecosistema, ya que actúa como una especie de “sandbox” que nos permite innovar e investigar en relación a pools con proporciones y fees desiguales y así encontrar soluciones a problemas que aún no hemos encontrado.
Funcionamiento del protocolo
A nivel de protocolo el funcionamiento para determinar un precio a los swaps es muy similar a Uniswap. El framework matemático es más complejo debido a que debe calcular precios en pools con proporciones diferentes al 50/50, manteniendo también el equilibrio porcentual entre los tokens.
En Balancer podemos encontrar dos usuarios, los proveedores de liquidez y los traders. Los proveedores de liquidez son aquellos que actúan como propietarios de los pools, y que aportan sus assets en ellos para ofrecer swaps eficientes y baratos a los traders. Generan un rendimiento de su capital a través de fees, además de tener un servicio remunerado de “asset management” ya que puedes participar o crear en todo tipo de pools, con tokens y distribuciones completamente distintas. Por otro lado tenemos los traders que “usan los pools” como servicio de exchange para hacer swaps entre tokens. Estos además pueden usar el protocolo para generar oportunidades de arbitraje. Un tipo de “trader” que hace uso de los pools podría ser también smart contracts que usan Balancer como proveedor de liquidez para poder ejecutar sus funciones previamente programadas.
Cuando un trader hacer una solicitud para un swap el protocolo calcula el precio con un sistema similar al que usa Uniswap, aunque no 100% igual. Es decir, los criterios básicos para determinar el precio sí coinciden: la liquidez de los pools y la cantidad solicitada. Cuanto más se estrese al pool, más slipage (movimiento del precio) habrá.
Analicemos la primera diferencia. En Uniswap los cálculos para determinar precios son más sencillos ya que cada par de tokens tiene un pool propio. En Balancer en cambio podemos encontrar un mismo par en muchos pools diferentes, todos ellos con liquidez diferente, número de tokens diferente y distribución de esos tokens diferente. Es por eso que en Balancer se integra un optimizador de precios off-chain conocido como SOR (smart order router). Consiste en un routing que en función del par de tokens que se quiere swapear y la cantidad, busca entre todos los pools con ese par y así aportar el mejor precio posible. Este “mejor precio” puede implicar usar varios pools e incluso swaps con diferentes cantidades en función del pool.
Pongamos un ejemplo; imagina que quieres hacer un swap de 3 ETH por LEND. En el momento en que haces la solicitud del swap, el protocolo usará el SOR para buscar entre todos los pools que contengan ETH y LEND cuál es la combinación para obtener el mejor precio. El resultado podría ser hacer un swap de 1ETH en el pool “X”, que contiene ETH, LINK, LEND y MKR; hacer un swap de 1,5ETH en el pool “Y”, que contiene LEND y DAI y un último swap de 0,5ETH en en pool “Z”, que contiene LEND, DAI, USDC, SNX y KNC.
Este routing, que estará disponible on-chain en futuras actualizaciones, es realmente asombroso. Te permite usar varios pools para evitar que el slipage te perjudique y así conseguir precios muy competitivos. Con esta lógica los precios de Balancer deberían ser los más económicos del ecosistema, y aunque es así en algunas ocasiones tiene un pequeño problema: interactuar con un pool implica ejecutar un smart contract en la red de Ethereum, lo que implica pagar un gas fee. Esto hace que muchas veces la mejor opción no sea posible debido al aumento del coste del gas, cosa que el SOR también tiene en cuenta. Esto además crea desbalanceos y por tanto oportunidades de arbitraje. Me explico.
Como el gas fee aumenta, el protocolo no puede usar todos los pools disponibles para conseguir el mejor precio, así que por lo general usará el que más liquidez tenga y quizás alguno más. Esto hace que los precios establecidos entre pares concretos sean distintos entre los diferentes pools, provocando que parte del valor que el trader ha dejado atrás se lo acabe llevando una operación de arbitraje que buscará reequilibrar los precios entre pools. Esto es normal cuando hay cambios en los precios de los activos, pero son también una muestra de ineficiencia cuando sucede por desequilibrios de los pools no generados por cambios en el valor de los tokens del portfolio.
El caso idóneo (quizá posible en un futuro) será tener costes de gas tan mínimos que un trade pueda hacer uso de tantos pools como sea necesario, consiguiendo así que el precio de intercambio entre dos tokens se mueva de forma exacta entre todos los pools que contienen ese par.
Los Pools de Balancer pueden dividirse en tres categorías:
Pool controlados o Pools privados: estos son cuando un estado fijo está sobre el grupo y el creador puede establecer los tokens y los pesos. Esto generalmente se hace para actores privados que no quieren liquidadores externos, por ejemplo, liquidadores externos que trabajan con grandes cantidades.
Pools finales o Pools compartidos: estos fondos están abiertos para que todos los actores agreguen liquidez y es una transición unidireccional. No pueden modificarse y tienen un parámetro fijo, a diferencia de los pools controlados y suelen ser para que el público en general los liquide y obtenga beneficios.
Smarts pools: que son una variación de un grupo privado donde el controlador es un contrato inteligente, lo que permite cualquier lógica / restricción arbitraria sobre cómo se pueden cambiar los parámetros del grupo. Los grupos inteligentes también pueden aceptar liquidez de cualquier persona y emitir BPT para rastrear la propiedad.