La lección anterior necesitaba dos sitios para ganar dinero: el ETH estaba barato en un DEX, caro en otro, y os llevabais la diferencia. Pero aquí viene lo inquietante: ni siquiera hace falta un segundo mercado. Un solo DEX, con tres pools de lo más corrientes, puede contradecirse a sí mismo en silencio. Haced circular una moneda por el bucle correcto y saldréis por el otro lado con más de lo que pusisteis. Sin segundo mercado. Sin ningún feed de precios discrepando. Solo tres pools que, multiplicados entre sí, no se ponen del todo de acuerdo sobre cuánto vale un dólar.
Cerrar un bucle
Before you read — take a guess
Empezáis con 100.000 USDC, los cambiáis por ETH, ese ETH por DAI y luego el DAI de vuelta a USDC, todo en un solo DEX. ¿Podéis acabar con MÁS de 100.000 USDC?
Los operadores clásicos de divisas llevan un siglo cazando esto. Imaginad la ventanilla de un cambista cotizando dólares, euros y yenes. Supongamos que podéis convertir 1 dólar en 0,9 euros, cada euro en 160 yenes y cada 144 yenes de vuelta en 1 dólar. Recorred ese triángulo —dólar → euro → yen → dólar— y, si los tres tipos no encajan, terminaréis el bucle con más dólares de los que empezasteis, sin predecir jamás hacia dónde se moverá una divisa. Simplemente habéis cerrado un bucle internamente inconsistente.
El arbitraje triangular es ese mismo truco, on-chain: hacer circular un activo de partida por tres (o más) pools y acabar con más del activo con el que empezasteis. El bucle canónico es:
Tres swaps, tres pools, de vuelta al punto de partida, idealmente más pesados. La parte bonita (y algo perturbadora): no hace falta un segundo mercado. Un solo DEX con un pool USDC/ETH, un pool ETH/DAI y un pool DAI/USDC es perfectamente capaz de ser internamente inconsistente, porque cada pool fija su precio a partir de sus propias reservas sin que nadie imponga el acuerdo entre ellos.
Un solo mercado, igual de inconsistente
El arbitraje cross-DEX explota dos mercados discrepando sobre un par. El arbitraje triangular explota un mercado discrepando consigo mismo a lo largo de tres pares. Sin precio externo, sin segundo mercado: solo un bucle cuyos eslabones no llegan a multiplicar 1.
Emparejad cada idea con lo que significa en un bucle triangular.
Pick a term, then click its definition.
Por qué importa
La mayoría imagina el arbitraje como “la misma cosa, dos precios”. El arbitraje triangular rompe ese modelo mental: el desajuste no está en ningún par concreto, está repartido por el bucle. Los bots que solo escanean pares buscando huecos entre mercados se lo pierden por completo. Para cazarlo hay que pensar en ciclos, no en pares, y por eso el escaneo triangular es un rincón distinto, y lucrativo, del mundo MEV.
La condición de no arbitraje
Before you read — take a guess
Multiplicáis los tres tipos de cambio alrededor de un bucle y obtenéis exactamente 1,000. ¿Qué os dice eso?
Aquí está todo el juego en una sola expresión. Recorred el bucle y multiplicad los tres tipos de cambio que recibís en cada tramo. Llamadlos , , (cada uno es “cuánto del siguiente activo obtenéis por unidad del activo actual”). En un mercado perfectamente consistente:
Esa es la condición de no arbitraje. Un viaje de ida y vuelta completo multiplica vuestra cantidad inicial exactamente por ese producto. Si los tipos son mutuamente consistentes, el producto es 1 y acabáis con justo lo que empezasteis: una vuelta inútil.
Ahora las dos formas en que se puede romper:
- Si , recorrer esta dirección multiplica vuestro capital por más de 1: beneficio. Ejecutad el bucle USDC → ETH → DAI → USDC.
- Si , esta dirección pierde dinero, pero el bucle inverso tiene producto , así que recorréis al revés.
Por tanto, el producto no es solo una señal de sí/no; su tamaño os dice la ventaja y su posición respecto a 1 os dice la dirección. Un producto de 1,005 es una ventaja del 0,5% en sentido horario; un producto de 0,995 es una ventaja del 0,5% en sentido antihorario.
La dirección es la mitad del trade
Detectar “el producto no es 1” no sirve de nada si recorréis el bucle al revés: pagaríais la ineficiencia en lugar de cobrarla. Comprobad siempre si el producto está por encima o por debajo de 1 y recorred en la dirección cuyo producto supere 1. Por debajo de 1, el bucle rentable es el inverso.
Completad la lógica de no arbitraje.
Elige la opción correcta para cada hueco y comprueba.
En equilibrio el producto de los tres tipos del bucle es igual a . Si ese producto sale mayor que 1, recorrer esa dirección es ; si sale menor que 1, recorréis .
Por qué importa
Esta única desigualdad es todo el detector. Un bot de arbitraje triangular no razona sobre que el ETH “va a subir”: simplemente multiplica los tipos alrededor de cada bucle que encuentra y se abalanza cuando un producto se desvía de 1. Cuanto más lejos de 1, mayor el premio y más fuerte la carrera de los bots por pillarlo. El equilibrio () es el estado aburrido hacia el que todo el ecosistema arrastra constantemente al mercado.
Un bucle resuelto
Before you read — take a guess
USDC→ETH os da ETH a 2000 USDC por ETH; ETH→DAI da 2010 DAI por ETH; DAI→USDC es 1,00. ¿Cuál es, aproximadamente, la ventaja del bucle?
Hagámoslo concreto con los números canónicos. Nuestro único DEX cotiza:
| Tramo | Activo de entrada | Tipo | Activo de salida |
|---|---|---|---|
| 1 | USDC | 2000 USDC por ETH | ETH |
| 2 | ETH | 2010 DAI por ETH | DAI |
| 3 | DAI | 1,00 USDC por DAI | USDC |
Multiplicad el bucle. Al entrar, 1 USDC compra ETH; ese ETH se vende a 2010 DAI cada uno; cada DAI se vende a 1,00 USDC. El producto de los tipos alrededor del bucle es:
Un producto de 1,005: una ventaja limpia del 0,5%, recorriendo en esta dirección. Ahora hagamos pasar dinero de verdad, empezando con 100.000 USDC:
| Paso | Tenéis | Acción | Obtenéis |
|---|---|---|---|
| Inicio | 100.000 USDC | — | — |
| Tramo 1 | 100.000 USDC | comprar ETH a 2000 | 100000 / 2000 = 50 ETH |
| Tramo 2 | 50 ETH | vender ETH por DAI a 2010 | 50 × 2010 = 100.500 DAI |
| Tramo 3 | 100.500 DAI | vender DAI por USDC a 1,00 | 100500 × 1,00 = 100.500 USDC |
Empezasteis con 100.000 USDC y terminasteis con 100.500 USDC: un beneficio bruto de unos 500 USDC por tres swaps y un solo bloque de paciencia. Fijaos en que es exactamente : el producto del bucle es el multiplicador de vuestro capital.
Leed el producto como un multiplicador
El producto del bucle no es un diagnóstico abstracto: es literalmente el número por el que se multiplica vuestro saldo inicial. Un producto de 1,005 sobre 100.000 USDC significa 100.500 USDC de salida. ¿Queréis el beneficio? Capital por (producto menos 1). Aquí: 100.000 × 0,005 = 500 USDC.
Clasificad cada valor del bucle resuelto según lo que representa.
Place each item in the right group.
- 50 ETH tras el tramo 1
- 2000 USDC por ETH
- 100.500 DAI tras el tramo 2
- Producto del bucle 1,005
- 100.500 USDC al final
Por qué importa
Este es el número titular y, igual que el “diferencial de 200 USDC” del cross-DEX, es una mentira por omisión. Los 500 USDC suponen que cada tramo se ejecuta al tipo cotizado por mucho que metáis por él. No será así. El bucle resuelto os dice que existe una oportunidad y en qué dirección recorrerla; sobreestima lo que realmente os embolsáis. La siguiente sección es donde la realidad se lleva su parte.
El impacto en el precio reduce el bucle
Before you read — take a guess
Cada tramo del bucle es un swap en un AMM que mueve su propio pool en vuestra contra. ¿Qué le hace eso al producto del bucle realizado frente al 1,005 ingenuo?
Cada tramo de nuestro bucle es un trade en un AMM, y ya sabemos lo que hacen los trades en AMM: se deslizan por la curva y mueven el precio del pool en contra del operador. Comprad ETH en el tramo 1 y el precio del ETH en el pool USDC/ETH sube: pagáis más de 2000 por las últimas unidades. Vended ese ETH en el tramo 2 y el precio del ETH en el pool ETH/DAI baja: cobráis menos de 2010 por las últimas unidades. Cada tramo entrega calladamente menos que su tipo titular.
Así que el producto del bucle realizado está por debajo del 1,005 ingenuo, y el beneficio real es menos de 500 USDC. El gráfico de abajo muestra un solo tramo haciendo esto: vended un token a un pool y el precio spot (la pendiente desde el origen) se dobla en la dirección equivocada con cada unidad:
- X vendido al pool
- 0
- Y recibido
- 0
- Precio spot antiguo
- 2,000
- Precio spot nuevo
- 2,000
Cada tramo del triángulo es un swap en un AMM. Meted tokens en un pool y os deslizáis por la hipérbola x·y = k: la reserva que añadís crece, la reserva que retiráis encoge y el tipo efectivo se degrada con cada unidad. Apilad tres de estos y el producto del bucle realizado cae por debajo del 1,005 ingenuo.
Como la ventaja se erosiona al escalar, hay un tamaño de ciclo óptimo: la mismísima joroba de la lección anterior. Operad demasiado poco y dejaréis casi todo el 0,5% sobre la mesa; operad demasiado y el impacto en el precio a lo largo de los tres tramos os recupera la ventaja, arrastrando finalmente el producto realizado por debajo de 1 (un bucle perdedor). El beneficio sube, alcanza un pico y cae, y el pico depende de lo profundos que sean los tres pools.
Y no olvidéis la dirección. Recorred el bucle al revés y partís de un producto de 0,995: cada tramo se compone en vuestra contra, así que el impacto en el precio no es vuestro único problema; estabais bajo el agua antes de pulsar el botón. Recorred siempre la dirección cuyo producto supere 1.
El 500 ingenuo es un techo, no un pago
Los 500 USDC del bucle con tipos perfectos son lo máximo que podríais extraer jamás, alcanzable solo en el límite de un trade infinitesimalmente pequeño. Cualquier tamaño real que metáis por tres pools registra menos. Dimensionad para el pico de la joroba —no para el bucle más grande que las reservas se traguen— y no recorráis nunca el bucle cuyo producto esté por debajo de 1.
Un bot encuentra un bucle con producto ingenuo 1,005 (≈500 USDC sobre 100k). Lanza el ciclo más grande que aceptan los pools. ¿Qué pasa probablemente?
Por qué importa
Esto cierra el arco de la lección anterior con limpieza: la detección es una multiplicación (¿se ha desviado el producto de 1?), pero la extracción es una optimización (¿dónde está la joroba y en qué dirección?). Los bots triangulares que solo comprueban si un bucle está mal valorado —sin resolver el tamaño y la dirección— lanzan rutinariamente trades que parecen dinero gratis y se conforman con migajas, o pérdidas, tras tres rondas de impacto en el precio y gas. La ventaja es real; capturarla es un problema de dimensionamiento.
Repaso
Big picture
El arbitraje triangular, en un mapa
- Arbitraje triangular
- El bucle
- USDC a ETH a DAI a USDC
- Un DEX, tres pools
- Acabar con más de lo que empezasteis
- Condición de no arbitraje
- Producto de tres tipos igual a 1
- Por encima de 1 recorred esta dirección
- Por debajo de 1 recorred al revés
- Bucle resuelto
- ETH a 2000 y luego 2010
- Producto 1,005 una ventaja del 0,5 por ciento
- 100000 de entrada, 100500 de salida
- Impacto en el precio
- Cada tramo mueve su pool en vuestra contra
- Producto realizado por debajo de 1,005
- Tamaño de ciclo óptimo, una joroba
- El bucle
Arbitraje triangular — comprobación final
¿Qué distingue al arbitraje triangular del arbitraje cross-DEX?
Check your answer to continue.