Puentes cross-chain e intercambios · Lección 3 de 5
Swaps, DEX y exchanges instantáneos
9 min de lectura
Casi todos los rastros de blanqueo cambian de activo en algún punto, y la forma en que se produce el cambio determina cuán sólido puede ser el siguiente vínculo. Un swap en un exchange descentralizado queda registrado en una transacción; un protocolo de swap entre cadenas puede incluir el destino en la cadena de origen y el origen en la cadena de destino; un servicio de exchange instantáneo o una mesa OTC solo deja un depósito en un lado y un pago en el otro. Esta lección trata sobre cómo leer cada tipo de swap como evidencia, qué registros existen fuera de la cadena y qué puede afirmarse sobre cada vínculo.
Swaps en DEX y agregadores en un rastreo
La mecánica de los pools, los routers y los eventos de swap se explica en la lección IDFE-BA Swaps en DEX y flujos de liquidez. Para un rastreo forense, importan cuatro puntos.
- El vínculo es determinista; el activo cambia. Los valores de entrada y salida aparecen como eventos de transferencia en la misma transacción. Registra ambos montos, la tasa efectiva y, si necesitas un valor en moneda fiduciaria, la fuente y la hora del precio. Cualquiera que sea el método de rastreo que apliques (consulta la lección Métodos de rastreo y sus consecuencias), el resultado de ese swap son los fondos obtenidos de su entrada.
- El pool no es una contraparte. Un pool de liquidez es un contrato que contiene fondos de muchos proveedores. Los fondos no «van» al propietario del pool; sigue la salida, no el pool.
- El destinatario puede ser distinto del remitente. Los routers y agregadores aceptan un parámetro de destinatario, por lo que la salida puede pagarse a una dirección nueva en la misma transacción. Lee la llamada decodificada o los eventos de transferencia; nunca des por sentado que quien hizo la llamada recibió la salida.
- Los agregadores dividen las rutas. Una llamada de un agregador puede interactuar con varios pools y tokens intermedios. Calcula el neto de las transferencias por dirección en toda la transacción: lo que salió del sujeto y lo que llegó al destinatario son los hechos; la ruta entre ambos es un detalle.
Añadir fondos robados a un pool como liquidez y retirarlos después es un patrón distinto: el depositante recibe un token LP o una posición, y el evento de retiro devuelve su participación. Sigue la posición, no el saldo del pool.
Los contratos DEX no tienen un operador que conserve registros, pero la interfaz que utilizó el sujeto sí podría tenerlos. Las interfaces web y las API de los agregadores pueden registrar direcciones IP, agentes de usuario y solicitudes de cotización, y las aplicaciones de billetera pueden enrutar los swaps a través de sus propias API. La existencia de esos registros y el tiempo que se conservan dependen del operador.
Protocolos de swap entre cadenas: los memos como evidencia pública
Los protocolos de swap entre cadenas intercambian activos nativos entre cadenas mediante bóvedas controladas por los nodos del protocolo. THORChain es el ejemplo de referencia, y sus registros son excepcionalmente útiles porque ambos lados incluyen texto que identifica al otro.
En el lado de entrada, el usuario envía el activo a la bóveda del protocolo (en cadenas EVM, a través de un contrato router que registra el memo en su evento de depósito; en Bitcoin, en una salida OP_RETURN, que la documentación del protocolo limita a 80 bytes). El formato del memo de swap es SWAP:ASSET:DESTADDR/REFUNDADDR:LIMIT/INTERVAL/QUANTITY:AFFILIATE:FEE (la dirección de reembolso es opcional), y suele abreviarse con = para un swap de mercado, como muestra la lección IDFE-BA Rastreo entre cadenas. En el lado de salida, la bóveda del protocolo paga el activo de destino en una transacción cuyo memo es OUT: seguido del hash de la transacción de entrada. Un swap fallido se reembolsa con un memo REFUND: que contiene el mismo hash. A continuación, se muestra un par ficticio:
Ethereum (entrada, ficticio)
tx 0x9a3f…c21e de 0x3f9c…a1d7 a router de swap 130,0 ETH
memo del evento de depósito "=:BTC.BTC:bc1q…r7w2::xx:20"
Bitcoin (salida, ficticio)
txid 6d0b…e45a de la bóveda bc1q…v9tn
vout 0 5,16800000 BTC bc1q…r7w2
vout 1 OP_RETURN "OUT:9A3F…C21E"
El memo de entrada indica el destinatario de Bitcoin; el memo de salida identifica la transacción de Ethereum. Por lo tanto, el emparejamiento puede verificarse en ambas cadenas desde tus propios nodos, sin confiar en ninguna API, y los registros públicos del protocolo (su API de nodos e indexadores) ofrecen una tercera confirmación independiente. Pocos vínculos entre cadenas son tan sólidos.
Tres detalles cambian la forma de leer estos swaps:
- Sincronización. Los swaps en streaming se ejecutan como swaps parciales a lo largo de varios bloques, y los swaps con límite pueden esperar en una cola hasta 43.200 bloques del protocolo (unos tres días) de forma predeterminada. Define las ventanas de tiempo a partir de los parámetros del memo, no de una suposición fija.
- Afiliados. El campo de afiliado identifica la interfaz o la billetera que creó la transacción mediante un nombre corto registrado. Ese operador es una posible fuente de registros, aunque el protocolo no los tenga.
- Memos sin datos y memos de referencia. Para sortear las limitaciones de espacio de los memos, el protocolo permite registrar un memo por adelantado y luego hacer referencia a él, por ejemplo, mediante una referencia codificada en el monto; los registros vencen después de una cantidad determinada de bloques (el parámetro
MemolessTxnTTLdel protocolo, que por defecto es de 3.600 bloques, unas seis horas). Para decodificar un swap de este tipo se necesita el estado del protocolo en ese momento, así que conserva el registro junto con las transacciones.
Otros protocolos de swap entre cadenas y basados en intenciones usan campos distintos, pero el método es el mismo: busca qué indica la transacción de origen sobre el destino y qué indica la transacción de destino sobre el origen.
Servicios de exchange instantáneo
Los servicios de exchange instantáneo convierten un activo en otro sin una cuenta: el usuario ingresa una dirección de pago, recibe una dirección de depósito nueva para la orden, envía los fondos y recibe el pago, a menudo en otra cadena. Muchos se describen como no custodiales porque no mantienen saldos. Sí controlan los fondos entre el depósito y el pago, por lo que el rastro en la cadena se interrumpe en ese punto; además, intercambiar un activo virtual por otro para un cliente o en su nombre constituye una actividad de VASP según la definición del GAFI utilizada en la Recomendación 15, sea cual sea la etiqueta.
En la cadena, un exchange instantáneo se parece a cualquier servicio custodial: direcciones de depósito por orden, transferencias a una billetera caliente y pagos desde una billetera caliente. Sin registros, el vínculo entre un depósito y un pago es una inferencia basada en el monto y el tiempo, construida y comprobada según se describe en la lección El salto entre cadenas como patrón de ofuscación y blanqueo. Con registros, se convierte en un hecho documentado. Según sus prácticas, un servicio puede conservar:
| Registro | Uso probatorio |
|---|---|
| ID de la orden, hora de creación, activos y tasa cotizada | Vincula una dirección de depósito con una orden |
| Dirección de depósito e ID de transacción del depósito | Confirma qué depósito corresponde a la orden |
| Dirección de pago e ID de transacción del pago | Convierte el vínculo inferido en uno documentado |
| Dirección de reembolso | A menudo es una billetera controlada por el sujeto; vincula otras órdenes |
| Dirección IP, agente de usuario y ajustes de idioma | Indicios para la atribución (consulta el módulo 5) |
| Correo electrónico o contacto proporcionado para asistencia | Identificador para procedimientos legales posteriores |
| ID de socio o afiliado | Identifica la billetera o el sitio web que envió la orden |
| Indicadores de riesgo, retenciones y resultados de análisis | Muestran si el servicio congeló o cuestionó la orden |
Solicita todas las órdenes del período que compartan la misma dirección de pago, dirección de reembolso o dirección IP, no solo la que encontraste: el historial de órdenes suele revelar otras billeteras del sujeto. Analiza la respuesta de forma crítica. Las direcciones IP pueden pertenecer a VPN o proveedores de alojamiento, y los datos de contacto no están verificados. Muchos de estos servicios operan en lugares donde la cooperación es lenta, por lo que las solicitudes de preservación deben enviarse en cuanto se identifica el depósito (consulta la lección Trabajo con proveedores de servicios).
Mesas OTC
Una mesa OTC negocia operaciones fuera de la cadena, a menudo mediante aplicaciones de mensajería, y liquida las operaciones en la cadena desde y hacia sus propias direcciones. Los dos tramos de una operación OTC pueden estar en cadenas distintas, o uno de ellos puede ser una transferencia bancaria, por lo que a menudo no existe ningún vínculo en la cadena entre lo que envió el sujeto y lo que recibió. Los registros de la mesa (diligencia debida del cliente, confirmaciones de operaciones, instrucciones de liquidación, registros de chat y datos bancarios) son el único puente. Los corredores que operan mediante una cuenta en un exchange más grande añaden una capa: el exchange ve a un cliente —el corredor—, mientras que los clientes del corredor son invisibles para él. Los servicios anidados de este tipo se explican en la lección Otras técnicas de ofuscación.
Qué puedes afirmar sobre cada vínculo de swap
| Evidencia disponible | Fundamento del vínculo | Redacción en un informe |
|---|---|---|
| Swap en DEX en una misma transacción | Determinista (grado A) | «En la transacción T, X se intercambió por Y y se pagó a la dirección B» |
| Memo entre cadenas en ambas cadenas | Determinista en ambas cadenas (grado A), también registrado por el protocolo | «El protocolo pagó Z a la dirección B con respecto a la transacción de entrada A» |
| Exchange instantáneo, solo monto y tiempo | Inferencia (grado D) | «Compatible con», con la cantidad de candidatos y la tasa de coincidencias fortuitas |
| Exchange instantáneo con registro de orden | Confirmado por registro (grado B) | «Según los registros del servicio, la orden N pagó Z a la dirección B» |
| Mesa OTC, sin registros | Ninguno | «No se conoce el destino de estos fondos» |
Los grados son los de la escala ilustrativa de la lección Rastreo con estándar probatorio. Un vínculo confirmado por registro solo es tan confiable como el registro: identifica quién lo produjo, la fecha en que se recibió y el hash del archivo tal como se recibió.
Enfoque del examen: Swaps en DEX como vínculos deterministas que cambian el activo; pools como entidades que no son contrapartes, parámetros de destinatario y consolidación de rutas de agregadores; operadores de interfaces y API como custodios de registros; memos de swaps entre cadenas, memos de salidaOUT:yREFUND:que contienen el hash de entrada, y verificación del par en ambas cadenas; sincronización de swaps en streaming y con límite, campos de afiliado y memos de referencia; servicios de exchange instantáneo como VASP según la definición del GAFI y los registros que pueden conservar; solicitud de órdenes vinculadas; mesas OTC como saltos sin vínculo en la cadena; adecuación de la redacción al fundamento de cada vínculo.