Este artículo presentará varias implementaciones importantes de AMM en el ecosistema de Solana.
Escrito por: ZAN
En el estado actual de la industria Web3, los productos relacionados con DeFi ocupan el mercado absoluto. Y dentro de esto, el AMM (Automated Market Maker, creador de mercado automatizado) es una parte clave y un poderoso impulsor de los cambios en las finanzas de Web3. Este artículo presentará varias implementaciones importantes de AMM en el ecosistema de Solana, con la esperanza de poder ayudar a los LP (Liquidity Provider, proveedores de liquidez) a elegir su estrategia de inversión.
CPMM
CPMM (Creadores de Mercado de Producto Constante) como la implementación más básica de AMM, se ha implementado en muchos productos. Aquí tomamos como ejemplo el AMM basado en producto constante lanzado por Raydium. El producto constante significa que la cantidad de suministro de dos tipos de tokens en el fondo tiene un producto fijo: X * Y = k.
Para los proveedores de liquidez, cuando alguien añade liquidez (activos) al grupo, 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 LP Token Mint). Este LP Token se utiliza para demostrar que la dirección de la billetera posee una participación en un grupo determinado y será destruido al retirar el Token correspondiente por parte del proveedor de liquidez.
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 se implementa el producto constante.
Primero, al usar el intercambio de tokens CPMM de Raydium, se activarán los comandos relacionados 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 de la piscina TRUMP-USDC.
Por ejemplo, al revisar esta transacción, para simplificar, ignoraremos las otras instrucciones en la transacción y solo miraremos 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, el par LP se puede representar de manera simple a través de la Cuenta de Token, sin necesidad de crear un nuevo programa de contrato y desplegarlo (como es común en los contratos de fábrica de Ethereum). Cuando ocurre una transacción, se interactúa directamente con el Programa CPMM de Raydium; el programa de Solana modificará el estado de la Cuenta de Token correspondiente mediante la dirección del grupo, la dirección del token, etc., para realizar la operación 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 a través de ConstantProductCurve.swap_base_input_without_fees:
El fórmula utilizada es:
Después de que las cantidades totales de TokenX y TokenY cambien, su producto debe permanecer inalterado. El lado izquierdo de la fórmula es el producto después del cambio, y el lado derecho es el producto antes del cambio.
La fórmula de conversión para Δy (es decir, la cantidad de tokens y que podemos intercambiar) se puede obtener a través de una transformación matemática de la ecuación anterior:
también es 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, que 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 múltiples 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, entre otros. Más contenido se puede encontrar en el curso de desarrollo de DEX lanzado por ZAN: DEX Development Practice - Análisis de código de Uniswap - Cómo funciona Uniswap - ZAN
Sin embargo, es importante tener en cuenta que, al igual que con CPMM, debido a las características de la cadena Solana, Raydium CLMM no necesita desplegar un contrato por separado para cada piscina, por lo que no existe el concepto de contrato de fábrica. Esto es diferente de Uniswap.
CLMM permite a los proveedores de liquidez seleccionar un rango de precios al inyectar fondos, y los fondos solo se distribuirán dentro del rango seleccionado:
Para un grupo de liquidez concentrada, 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 las dos tipos de tokens en el grupo.
También podemos inyectar solo un tipo de token para proporcionar lo que se llama liquidez unilateral (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 también tiene más puntos de riesgo a considerar.
En general, para los pools con poca volatilidad de precios, los LP tienden a elegir un rango más pequeño; por el contrario, para aquellos pools donde la volatilidad de precios es muy alta, tienden a elegir un rango más amplio. El objetivo de esto es evitar que el precio actual se aleje demasiado del rango de precios elegido, lo que podría causar demasiadas pérdidas impermanentes.
Es importante tener en cuenta que la liquidez concentrada, aunque puede aumentar la tasa de utilización de los fondos de los LP, también plantea mayores exigencias en cuanto a la conciencia financiera de los LP. Los LP necesitan gestionar su liquidez de manera más activa. Si los LP no lo hacen adecuadamente, las fluctuaciones frecuentes en la cadena pueden llevar fácilmente a que los LP sufran pérdidas impermanentes severas.
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. Sin embargo, DLMM tiene algunas diferencias en su implementación específica y ofrece algunas funciones destacadas.
DLMM ofrece el concepto de Bin, donde el fondo comienza desde el precio base y cada pequeño intervalo de Bin step existe como un Bin. Si una transacción ocurre dentro del mismo Bin, los traders disfrutarán de cero deslizamientos. Esto puede aumentar enormemente el volumen de transacciones y la tasa de éxito de las transacciones, y teóricamente, los LP podrán obtener más tarifas de transacción.
Al igual que el CLMM, los tokens en el fondo también se distribuyen a ambos lados del precio actual, y un token solo necesita proporcionar liquidez unilateral. Pero 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: Hay dos tipos de tokens presentes, 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, donde solo existe un único token.
Cuando la cantidad de tokens en el Bin actualmente activado cambia, si los tokens de una parte disminuyen a 0, DLMM establecerá el Bin actualmente activado en el siguiente Bin a la izquierda o a la derecha, según la situación real en el pool. De esta manera, se impulsa el cambio de precio en el pool.
Al proporcionar liquidez en LP, DLMM ofrece 3 estrategias, que son Spot, Curve y Bid Ask.
Entre ellos, Spot es el más universal, prácticamente todas las piscinas de liquidez son bastante adecuadas, 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 precio en estos grupos son muy pequeñas, como revela su forma, y concentrar los fondos de los LP en este rango puede maximizar las comisiones de transacción.
Las órdenes de compra y venta son más adecuadas para aquellos pools con alta volatilidad de precios. La gente tiende a realizar más operaciones de arbitraje en estos pools, donde los precios pueden ser difíciles de concentrar en un rango estrecho. Esta estrategia generalmente requiere que los proveedores de liquidez ajusten frecuentemente sus posiciones para evitar que los precios se desvíen del rango de capital que han establecido. Debido a que implica un juicio sobre el mercado, esto no siempre es fácil.
Resumen
AMM, como una parte importante del ámbito financiero Web3, impulsa la popularización y desarrollo de las finanzas descentralizadas a través de su mecanismo único e innovador. Con el constante avance de la tecnología y la mejora del ecosistema, se espera que AMM juegue un papel aún más importante en el futuro, transformando 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 de AMM en el ecosistema de Solana
Escrito por: ZAN
En el estado actual de la industria Web3, los productos relacionados con DeFi ocupan el mercado absoluto. Y dentro de esto, el AMM (Automated Market Maker, creador de mercado automatizado) es una parte clave y un poderoso impulsor de los cambios en las finanzas de Web3. Este artículo presentará varias implementaciones importantes de AMM en el ecosistema de Solana, con la esperanza de poder ayudar a los LP (Liquidity Provider, proveedores de liquidez) a elegir su estrategia de inversión.
CPMM
CPMM (Creadores de Mercado de Producto Constante) como la implementación más básica de AMM, se ha implementado en muchos productos. Aquí tomamos como ejemplo el AMM basado en producto constante lanzado por Raydium. El producto constante significa que la cantidad de suministro de dos tipos de tokens en el fondo tiene un producto fijo: X * Y = k.
Para los proveedores de liquidez, cuando alguien añade liquidez (activos) al grupo, 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 LP Token Mint). Este LP Token se utiliza para demostrar que la dirección de la billetera posee una participación en un grupo determinado y será destruido al retirar el Token correspondiente por parte del proveedor de liquidez.
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 se implementa el producto constante.
Primero, al usar el intercambio de tokens CPMM de Raydium, se activarán los comandos relacionados 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 de la piscina TRUMP-USDC.
Por ejemplo, al revisar esta transacción, para simplificar, ignoraremos las otras instrucciones en la transacción y solo miraremos 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, el par LP se puede representar de manera simple a través de la Cuenta de Token, sin necesidad de crear un nuevo programa de contrato y desplegarlo (como es común en los contratos de fábrica de Ethereum). Cuando ocurre una transacción, se interactúa directamente con el Programa CPMM de Raydium; el programa de Solana modificará el estado de la Cuenta de Token correspondiente mediante la dirección del grupo, la dirección del token, etc., para realizar la operación 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 a través de ConstantProductCurve.swap_base_input_without_fees:
El fórmula utilizada es:
Después de que las cantidades totales de TokenX y TokenY cambien, su producto debe permanecer inalterado. El lado izquierdo de la fórmula es el producto después del cambio, y el lado derecho es el producto antes del cambio.
La fórmula de conversión para Δy (es decir, la cantidad de tokens y que podemos intercambiar) se puede obtener a través de una transformación matemática de la ecuación anterior:
también es 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, que 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 múltiples 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, entre otros. Más contenido se puede encontrar en el curso de desarrollo de DEX lanzado por ZAN: DEX Development Practice - Análisis de código de Uniswap - Cómo funciona Uniswap - ZAN
Sin embargo, es importante tener en cuenta que, al igual que con CPMM, debido a las características de la cadena Solana, Raydium CLMM no necesita desplegar un contrato por separado para cada piscina, por lo que no existe el concepto de contrato de fábrica. Esto es diferente de Uniswap.
CLMM permite a los proveedores de liquidez seleccionar un rango de precios al inyectar fondos, y los fondos solo se distribuirán dentro del rango seleccionado:
Para un grupo de liquidez concentrada, 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 las dos tipos de tokens en el grupo.
También podemos inyectar solo un tipo de token para proporcionar lo que se llama liquidez unilateral (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 también tiene más puntos de riesgo a considerar.
En general, para los pools con poca volatilidad de precios, los LP tienden a elegir un rango más pequeño; por el contrario, para aquellos pools donde la volatilidad de precios es muy alta, tienden a elegir un rango más amplio. El objetivo de esto es evitar que el precio actual se aleje demasiado del rango de precios elegido, lo que podría causar demasiadas pérdidas impermanentes.
Es importante tener en cuenta que la liquidez concentrada, aunque puede aumentar la tasa de utilización de los fondos de los LP, también plantea mayores exigencias en cuanto a la conciencia financiera de los LP. Los LP necesitan gestionar su liquidez de manera más activa. Si los LP no lo hacen adecuadamente, las fluctuaciones frecuentes en la cadena pueden llevar fácilmente a que los LP sufran pérdidas impermanentes severas.
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. Sin embargo, DLMM tiene algunas diferencias en su implementación específica y ofrece algunas funciones destacadas.
DLMM ofrece el concepto de Bin, donde el fondo comienza desde el precio base y cada pequeño intervalo de Bin step existe como un Bin. Si una transacción ocurre dentro del mismo Bin, los traders disfrutarán de cero deslizamientos. Esto puede aumentar enormemente el volumen de transacciones y la tasa de éxito de las transacciones, y teóricamente, los LP podrán obtener más tarifas de transacción.
Al igual que el CLMM, los tokens en el fondo también se distribuyen a ambos lados del precio actual, y un token solo necesita proporcionar liquidez unilateral. Pero 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, si los tokens de una parte disminuyen a 0, DLMM establecerá el Bin actualmente activado en el siguiente Bin a la izquierda o a la derecha, según la situación real en el pool. De esta manera, se impulsa el cambio de precio en el pool.
Al proporcionar liquidez en LP, DLMM ofrece 3 estrategias, que son Spot, Curve y Bid Ask.
Entre ellos, Spot es el más universal, prácticamente todas las piscinas de liquidez son bastante adecuadas, 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 precio en estos grupos son muy pequeñas, como revela su forma, y concentrar los fondos de los LP en este rango puede maximizar las comisiones de transacción.
Las órdenes de compra y venta son más adecuadas para aquellos pools con alta volatilidad de precios. La gente tiende a realizar más operaciones de arbitraje en estos pools, donde los precios pueden ser difíciles de concentrar en un rango estrecho. Esta estrategia generalmente requiere que los proveedores de liquidez ajusten frecuentemente sus posiciones para evitar que los precios se desvíen del rango de capital que han establecido. Debido a que implica un juicio sobre el mercado, esto no siempre es fácil.
Resumen
AMM, como una parte importante del ámbito financiero Web3, impulsa la popularización y desarrollo de las finanzas descentralizadas a través de su mecanismo único e innovador. Con el constante avance de la tecnología y la mejora del ecosistema, se espera que AMM juegue un papel aún más importante en el futuro, transformando aún más el panorama de las finanzas tradicionales.