En el estado actual de la industria Web3, los productos relacionados con DeFi ocupan un mercado absoluto. Y dentro de esto, el AMM (Automated Market Maker, Proveedor de liquidez) como una parte clave, es un fuerte impulsor de los cambios en las finanzas Web3. Este artículo presentará varias implementaciones importantes de AMM en el ecosistema de Solana, con la esperanza de poder ofrecer alguna ayuda a los LP (Proveedor de liquidez) sobre cómo elegir su estrategia de inversión.
CPMM
CPMM (Product ConstantMarket Maker) como la implementación más básica de AMM, se ha implementado en muchos productos. Aquí se utiliza el AMM basado en el producto constante lanzado por Raydium como ejemplo. El producto constante significa que la cantidad de suministro de dos tokens en el pool tiene un producto fijo: X * Y = k.
Para los proveedores de liquidez, cuando alguien añade liquidez (añade activos) al fondo, el CPMM creará automáticamente una cuenta asociada a la dirección de la billetera y emitirá un LP Token (cada par de tokens tiene su propio Mint de LP Token), este LP Token se utiliza para demostrar que la dirección de la billetera posee una participación en un fondo, y se destruirá el Token correspondiente cuando el proveedor de liquidez retire su participación.
El programa en cadena de CPMM se desarrolla utilizando Anchor, y el código del programa se puede encontrar en . A continuación, confirmemos brevemente cómo implementa el producto constante.
Primero, cuando los usuarios utilizan el CPMM de Raydium para intercambiar tokens, se activarán las instrucciones relacionadas con el swap.
Por ejemplo (solo para ilustrar la situación, este artículo no se hace responsable de ningún Token): cuando un usuario quiere intercambiar USDC por TRUMP, puede hacerlo a través del grupo TRUMP-USDC.
Por ejemplo, observemos esta transacción; para simplificar, ignoraremos otras instrucciones en la transacción y solo examinaremos la parte de Raydium. Encontrar Raydium CPMM: swapBaseInput:
En las cuentas de entrada, podemos ver que el token de entrada es USDC y el token de salida es TRUMP. En el AMM del ecosistema Solana, LP Pair puede ser representado simplemente por una Cuenta de Token sin la necesidad de crear un nuevo programa de contrato y desplegarlo (como el contrato de fábrica comúnmente utilizado en Ethereum). Cuando se produzca la transacción, interactúe directamente con el Programa CPMM de Raydium, y el programa Solana modificará el estado de la Cuenta Token correspondiente a través de la dirección del pool entrante, dirección del token, etc., para realizar operaciones de intercambio.
Por ejemplo, el comando swapBaseInput mencionado anteriormente, el código se puede encontrar aquí. Después de una serie de comprobaciones previas, la cantidad específica de tokens objetivo que se puede intercambiar se calcula en ConstantProductCurve.swap_base_input_without_fees:
El fórmula utilizada es:
Es decir, después de que las cantidades totales de TokenX y TokenY cambien, su producto debe permanecer constante. El lado izquierdo de la fórmula es el producto después del cambio, mientras que el lado derecho es el producto antes del cambio.
La fórmula de conversión de Δy (es decir, la cantidad de tokens y que podemos intercambiar) se puede obtener mediante una transformación matemática de la ecuación anterior:
Es decir, la parte delta_y = (delta_x * y) / (x + delta_x) en el código. Tenga en cuenta que este cálculo no incluye las tarifas, ya que estas ya se han deducido en la lógica previa de swap_base_input.
CLMM
CLMM (Creador de mercado de liquidez concentrada ) También es un AMM lanzado por Raydium, es similar a Uniswap V3, cada par de tokens tiene varios niveles de tarifas, lo que permite crear un grupo correspondiente a cada nivel.
Debido a que la implementación de CLMM se basa en Uniswap V3, al estudiarlo, muchos conceptos y métodos de implementación se pueden referir a la implementación de Uniswap. También hereda conceptos de Uniswap como tick, múltiples niveles de tarifas y liquidez concentrada, etc. Más contenido se puede encontrar en el curso de desarrollo de DEX lanzado por ZAN: DEX Development Practice - Uniswap Code Analysis - How Uniswap works - ZAN.
Sin embargo, es importante tener en cuenta que, al igual que con CPMM, debido a las características de la cadena Solana, el CLMM de Raydium no necesita desplegar un contrato separado para cada grupo, por lo que no existe el concepto de contrato de fábrica. Esto es diferente a Uniswap.
CLMM permite a los proveedores de liquidez seleccionar un rango de precios al inyectar fondos, y los fondos se distribuirán únicamente dentro del rango seleccionado:
Para los pools de liquidez centralizados, los tokens existen a ambos lados del precio actual. El rango de precios seleccionado en la imagen anterior incluye el precio actual, por lo que los fondos se asignarán a los dos tipos de tokens en el pool.
También podemos inyectar solo un tipo de token para proporcionar lo que se llama liquidez unidireccional (como se muestra en la imagen a continuación). Esto es algo similar a las órdenes limitadas en los modelos de finanzas tradicionales, donde los fondos del LP solo se utilizarán cuando el precio del token alcance un cierto rango, aunque este modelo tiene más puntos de riesgo a considerar.
En general, para los fondos con poca volatilidad de precios, los LP tienden a elegir un rango más pequeño; por el contrario, para aquellos fondos con fluctuaciones de precios muy drásticas, tienden a elegir un rango más amplio. El objetivo de esto es evitar que el precio actual se desvíe demasiado del rango de precios que han elegido, lo que causaría demasiadas pérdidas impermanentes.
Es importante tener en cuenta que, aunque la liquidez concentrada permite una mayor eficiencia en el uso de los fondos de los proveedores de liquidez, también plantea mayores exigencias en la conciencia financiera de los proveedores de liquidez, quienes deben gestionar su liquidez de manera más activa. Si los proveedores de liquidez no logran hacerlo adecuadamente, las frecuentes fluctuaciones en la cadena pueden llevar fácilmente a que sufran pérdidas impermanentes significativas.
DLMM
DLMM (Dynamic Liquidity Market Maker) es un producto AMM lanzado por Meteora, que también pertenece a Uniswap V3 y es muy similar al CLMM mencionado anteriormente. DLMM también permite a los Proveedores de liquidez concentrar sus fondos en un rango cercano al precio actual. Sin embargo, DLMM tiene algunas diferencias en la implementación y ofrece algunas funciones especiales.
DLMM introduce el concepto de Bin, donde el grupo comenzará desde el precio base, existiendo cada pequeño paso de Bin como un Bin. Si la transacción ocurre dentro del mismo Bin, entonces los comerciantes disfrutarán de deslizamientos nulos. Esto puede aumentar enormemente el volumen de transacciones y la tasa de éxito de las transacciones, teóricamente los Proveedores de liquidez podrán obtener más comisiones de transacción.
Al igual que en CLMM, los tokens en el fondo también se distribuyen a ambos lados del precio actual, y solo se necesita proporcionar liquidez unilateral para un token. Sin embargo, según el concepto de Bin, el Bin actualmente activado (que indica el precio de intercambio actual) tiene dos tipos de tokens. Es decir:
Bin activo actual: existen dos tipos de tokens, el intercambio de tokens en el Bin actual se realizará a un precio fijo y con 0 deslizamiento;
Otros Bin: Distribuidos a ambos lados del Bin actualmente activado, existiendo únicamente un solo token en cada uno.
Cuando la cantidad de tokens en el Bin actualmente activado cambia y los tokens de una parte disminuyen a 0, el DLMM establecerá el Bin actualmente activado, según la situación real en el fondo, como el siguiente Bin a la izquierda o a la derecha. De esta manera, se impulsa el cambio de precio en el fondo.
Al proporcionar liquidez en LP, DLMM ofrece 3 estrategias, que son Spot, Curve y Bid Ask.
Spot es el más universal, básicamente todos los pools de liquidez son bastante adecuados, se considera una de las estrategias de liquidez más simples.
Curve es más adecuado para aquellos grupos con cambios de precio muy pequeños, como los pares de stablecoins. Las fluctuaciones de precios en estos grupos son muy pequeñas, como lo revela su forma, concentrando los fondos de los proveedores de liquidez dentro de este rango, lo que permite maximizar las tarifas de transacción.
Bid Ask es más adecuado para aquellos grupos con fluctuaciones de precios muy grandes. La gente tiende a realizar más operaciones de arbitraje en estos grupos, y los precios pueden ser difíciles de concentrar en un pequeño rango. Esta estrategia generalmente requiere que el Proveedor de liquidez ajuste con frecuencia su posición para evitar que el precio se desvíe del rango de capital que ha establecido. Dado que implica juicio sobre el mercado, esto no suele ser fácil.
resumen
AMM como una parte importante del campo financiero de Web3, a través de su mecanismo único e innovador, impulsa la popularización y desarrollo de las Finanzas descentralizadas. Con el avance continuo de la tecnología y la mejora del ecosistema, se espera que AMM desempeñe un papel aún más importante en el futuro, cambiando aún más el panorama de las finanzas tradicionales.
El contenido es solo de referencia, no una solicitud u oferta. No se proporciona asesoramiento fiscal, legal ni de inversión. Consulte el Descargo de responsabilidad para obtener más información sobre los riesgos.
Investigación sobre AMM en el ecosistema Solana: el código subyacente detrás de la alta Liquidez
En el estado actual de la industria Web3, los productos relacionados con DeFi ocupan un mercado absoluto. Y dentro de esto, el AMM (Automated Market Maker, Proveedor de liquidez) como una parte clave, es un fuerte impulsor de los cambios en las finanzas Web3. Este artículo presentará varias implementaciones importantes de AMM en el ecosistema de Solana, con la esperanza de poder ofrecer alguna ayuda a los LP (Proveedor de liquidez) sobre cómo elegir su estrategia de inversión.
CPMM
CPMM (Product Constant Market Maker) como la implementación más básica de AMM, se ha implementado en muchos productos. Aquí se utiliza el AMM basado en el producto constante lanzado por Raydium como ejemplo. El producto constante significa que la cantidad de suministro de dos tokens en el pool tiene un producto fijo: X * Y = k.
Para los proveedores de liquidez, cuando alguien añade liquidez (añade activos) al fondo, el CPMM creará automáticamente una cuenta asociada a la dirección de la billetera y emitirá un LP Token (cada par de tokens tiene su propio Mint de LP Token), este LP Token se utiliza para demostrar que la dirección de la billetera posee una participación en un fondo, y se destruirá el Token correspondiente cuando el proveedor de liquidez retire su participación.
El programa en cadena de CPMM se desarrolla utilizando Anchor, y el código del programa se puede encontrar en . A continuación, confirmemos brevemente cómo implementa el producto constante.
Primero, cuando los usuarios utilizan el CPMM de Raydium para intercambiar tokens, se activarán las instrucciones relacionadas con el swap.
Por ejemplo (solo para ilustrar la situación, este artículo no se hace responsable de ningún Token): cuando un usuario quiere intercambiar USDC por TRUMP, puede hacerlo a través del grupo TRUMP-USDC.
| | | | | --- | --- | --- | | Piscina | TRUMP | USDC | | 7XzVsjqTebULfkUofTDH5gDdZDmxacPmPuTfHa1n9kuh | 6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
Por ejemplo, observemos esta transacción; para simplificar, ignoraremos otras instrucciones en la transacción y solo examinaremos la parte de Raydium. Encontrar Raydium CPMM: swapBaseInput:
En las cuentas de entrada, podemos ver que el token de entrada es USDC y el token de salida es TRUMP. En el AMM del ecosistema Solana, LP Pair puede ser representado simplemente por una Cuenta de Token sin la necesidad de crear un nuevo programa de contrato y desplegarlo (como el contrato de fábrica comúnmente utilizado en Ethereum). Cuando se produzca la transacción, interactúe directamente con el Programa CPMM de Raydium, y el programa Solana modificará el estado de la Cuenta Token correspondiente a través de la dirección del pool entrante, dirección del token, etc., para realizar operaciones de intercambio.
Por ejemplo, el comando swapBaseInput mencionado anteriormente, el código se puede encontrar aquí. Después de una serie de comprobaciones previas, la cantidad específica de tokens objetivo que se puede intercambiar se calcula en ConstantProductCurve.swap_base_input_without_fees:
El fórmula utilizada es:
Es decir, después de que las cantidades totales de TokenX y TokenY cambien, su producto debe permanecer constante. El lado izquierdo de la fórmula es el producto después del cambio, mientras que el lado derecho es el producto antes del cambio.
La fórmula de conversión de Δy (es decir, la cantidad de tokens y que podemos intercambiar) se puede obtener mediante una transformación matemática de la ecuación anterior:
Es decir, la parte delta_y = (delta_x * y) / (x + delta_x) en el código. Tenga en cuenta que este cálculo no incluye las tarifas, ya que estas ya se han deducido en la lógica previa de swap_base_input.
CLMM
CLMM (Creador de mercado de liquidez concentrada ) También es un AMM lanzado por Raydium, es similar a Uniswap V3, cada par de tokens tiene varios niveles de tarifas, lo que permite crear un grupo correspondiente a cada nivel.
Debido a que la implementación de CLMM se basa en Uniswap V3, al estudiarlo, muchos conceptos y métodos de implementación se pueden referir a la implementación de Uniswap. También hereda conceptos de Uniswap como tick, múltiples niveles de tarifas y liquidez concentrada, etc. Más contenido se puede encontrar en el curso de desarrollo de DEX lanzado por ZAN: DEX Development Practice - Uniswap Code Analysis - How Uniswap works - ZAN.
Sin embargo, es importante tener en cuenta que, al igual que con CPMM, debido a las características de la cadena Solana, el CLMM de Raydium no necesita desplegar un contrato separado para cada grupo, por lo que no existe el concepto de contrato de fábrica. Esto es diferente a Uniswap.
CLMM permite a los proveedores de liquidez seleccionar un rango de precios al inyectar fondos, y los fondos se distribuirán únicamente dentro del rango seleccionado:
Para los pools de liquidez centralizados, los tokens existen a ambos lados del precio actual. El rango de precios seleccionado en la imagen anterior incluye el precio actual, por lo que los fondos se asignarán a los dos tipos de tokens en el pool.
También podemos inyectar solo un tipo de token para proporcionar lo que se llama liquidez unidireccional (como se muestra en la imagen a continuación). Esto es algo similar a las órdenes limitadas en los modelos de finanzas tradicionales, donde los fondos del LP solo se utilizarán cuando el precio del token alcance un cierto rango, aunque este modelo tiene más puntos de riesgo a considerar.
En general, para los fondos con poca volatilidad de precios, los LP tienden a elegir un rango más pequeño; por el contrario, para aquellos fondos con fluctuaciones de precios muy drásticas, tienden a elegir un rango más amplio. El objetivo de esto es evitar que el precio actual se desvíe demasiado del rango de precios que han elegido, lo que causaría demasiadas pérdidas impermanentes.
Es importante tener en cuenta que, aunque la liquidez concentrada permite una mayor eficiencia en el uso de los fondos de los proveedores de liquidez, también plantea mayores exigencias en la conciencia financiera de los proveedores de liquidez, quienes deben gestionar su liquidez de manera más activa. Si los proveedores de liquidez no logran hacerlo adecuadamente, las frecuentes fluctuaciones en la cadena pueden llevar fácilmente a que sufran pérdidas impermanentes significativas.
DLMM
DLMM (Dynamic Liquidity Market Maker) es un producto AMM lanzado por Meteora, que también pertenece a Uniswap V3 y es muy similar al CLMM mencionado anteriormente. DLMM también permite a los Proveedores de liquidez concentrar sus fondos en un rango cercano al precio actual. Sin embargo, DLMM tiene algunas diferencias en la implementación y ofrece algunas funciones especiales.
DLMM introduce el concepto de Bin, donde el grupo comenzará desde el precio base, existiendo cada pequeño paso de Bin como un Bin. Si la transacción ocurre dentro del mismo Bin, entonces los comerciantes disfrutarán de deslizamientos nulos. Esto puede aumentar enormemente el volumen de transacciones y la tasa de éxito de las transacciones, teóricamente los Proveedores de liquidez podrán obtener más comisiones de transacción.
Al igual que en CLMM, los tokens en el fondo también se distribuyen a ambos lados del precio actual, y solo se necesita proporcionar liquidez unilateral para un token. Sin embargo, según el concepto de Bin, el Bin actualmente activado (que indica el precio de intercambio actual) tiene dos tipos de tokens. Es decir:
Cuando la cantidad de tokens en el Bin actualmente activado cambia y los tokens de una parte disminuyen a 0, el DLMM establecerá el Bin actualmente activado, según la situación real en el fondo, como el siguiente Bin a la izquierda o a la derecha. De esta manera, se impulsa el cambio de precio en el fondo.
Al proporcionar liquidez en LP, DLMM ofrece 3 estrategias, que son Spot, Curve y Bid Ask.
resumen
AMM como una parte importante del campo financiero de Web3, a través de su mecanismo único e innovador, impulsa la popularización y desarrollo de las Finanzas descentralizadas. Con el avance continuo de la tecnología y la mejora del ecosistema, se espera que AMM desempeñe un papel aún más importante en el futuro, cambiando aún más el panorama de las finanzas tradicionales.