Agrupación y atribución · Lección 2 de 8
Heurísticas de detección del cambio
10 min de lectura
La mayoría de los pagos de Bitcoin devuelven parte del valor gastado al remitente como cambio. Identificar la salida de cambio permite al analista seguir los fondos restantes del remitente, reconstruir cadenas de desprendimiento y añadir la dirección de cambio a la agrupación del remitente. Sin embargo, a diferencia de la regla de entradas comunes, la detección del cambio siempre es una estimación probabilística, y los estudios publicados muestran que las heurísticas de cambio mal elegidas son la principal causa de agrupaciones que crecen sin control.
Por qué existe el cambio
Un UTXO debe gastarse por completo. Una billetera que tiene una moneda de 0,09 BTC y quiere pagar 0,05 BTC gasta toda la moneda, envía 0,05 BTC al destinatario y envía el resto, menos la comisión, a una dirección que controla. A continuación se muestra una transacción de este tipo, decodificada y simplificada:
{
"txid": "b52d…0e7a", "version": 2, "locktime": 861203,
"vin": [
{"address": "bc1q…h8e2", "type": "p2wpkh", "value_btc": 0.09000000,
"sequence": "0xfffffffd"}
],
"vout": [
{"n": 0, "address": "1Kx3…9vQe", "type": "p2pkh", "value_btc": 0.05000000},
{"n": 1, "address": "bc1q…7k3f", "type": "p2wpkh", "value_btc": 0.03985860}
]
}
La comisión es de 0,09000000 − 0,08985860 = 0,00014140 BTC (14.140 satoshis). Nada en los datos indica qué salida corresponde al pago. El analista debe inferirlo, y aquí varios indicios independientes apuntan en la misma dirección.
Las heurísticas clásicas
| Heurística | Lógica | Principal modo de fallo |
|---|---|---|
| Dirección nueva (cambio de un solo uso) | Las billeteras generan una dirección nueva para el cambio; una dirección de salida que nunca ha aparecido antes, cuando la otra sí lo ha hecho, probablemente corresponde al cambio | Los destinatarios también usan direcciones nuevas; algunas billeteras reutilizan las direcciones de cambio |
| Coincidencia del tipo de script | El cambio usa el mismo tipo de dirección que las entradas, porque procede de la misma billetera | No aporta información cuando el remitente y el destinatario usan el mismo tipo, algo cada vez más habitual a medida que se extienden SegWit nativo y Taproot |
| Importe redondo | Los pagos suelen ser números redondos; el cambio, que absorbe la comisión, rara vez lo es | Los pagos cuyo precio se fija en moneda fiduciaria no son redondos en BTC; algunas billeteras aleatorizan los importes |
| Cambio óptimo (entrada innecesaria) | Si una salida es menor que cada una de las entradas, probablemente corresponde al cambio, porque, de lo contrario, la billetera no habría necesitado todas esas entradas | Los algoritmos de selección de monedas no siempre minimizan las entradas; solo se aplica a gastos con varias entradas |
| Huellas | El cambio se gastará más adelante con el mismo software de billetera, por lo que la transacción que lo gasta comparte las características de la original | Muchas billeteras comparten configuraciones predeterminadas populares; las huellas cambian con las versiones del software |
La idea de la dirección nueva procede de Androulaki et al. (2013, "Evaluación de la privacidad del usuario en Bitcoin"), quienes llamaron a las salidas de cambio "direcciones sombra", y de Meiklejohn et al. (2013, "Por un puñado de bitcoins"), cuya Heurística 2 etiqueta una salida como cambio si es la única dirección de salida que aparece por primera vez, la transacción no es una coinbase y ninguna salida devuelve fondos a una dirección de entrada (sin cambio a la propia dirección). Trabajos posteriores añadieron condiciones: Goldfeder et al. (2018, un estudio sobre los riesgos para la privacidad en los pagos web) excluyeron los CoinJoin, y Ermilov et al. (2017, "Agrupación automática de direcciones de Bitcoin") exigieron exactamente dos salidas y un valor significativo al menos hasta la cuarta cifra decimal.
En el ejemplo: la salida 1 es una dirección nueva, coincide con el tipo P2WPKH de la entrada y su importe no es redondo, mientras que la salida 0 es un importe redondo de 0,05 BTC dirigido a una dirección heredada que ya ha recibido fondos. Todas las señales coinciden en que la salida 1 es el cambio.
Las transacciones posteriores pueden confirmar o refutar la estimación. Si bc1q…7k3f termina gastándose junto con otras monedas que ya están en la agrupación del remitente, la regla de entradas comunes la vincula ahora de forma independiente, y la etiqueta de cambio se convierte en evidencia sólida en lugar de una inferencia. Si, en cambio, se gasta junto con monedas de una agrupación conocida de un exchange, probablemente la salida 1 era en realidad el pago, y debe revertirse la etiqueta junto con todos los vínculos construidos a partir de ella. Esta confirmación diferida es exactamente la forma en que Möser y Narayanan (2022) construyeron sus datos de referencia verificados, descritos más adelante, y es el motivo por el que las etiquetas de cambio deben reevaluarse a medida que crece la cadena en lugar de quedar fijadas en el momento de su asignación.
Huellas de las billeteras
El software de billetera deja rastros consistentes en campos que el consenso no fija:
- Versión. Las transacciones que usan bloqueos temporales relativos (BIP 68) deben establecer la versión 2; muchas billeteras siguen usando la versión 1. En los datos analizados por Möser y Narayanan (2022), alrededor del 80% de las transacciones usaban la versión 1, por lo que la versión 2 por sí sola solo reduce parcialmente las posibilidades.
- Tiempo de bloqueo. Algunos clientes, en particular Bitcoin Core, establecen
nLockTimeen la altura del bloque actual de forma predeterminada para desalentar la captura oportunista de comisiones. Un tiempo de bloqueo cercano a la altura de confirmación es una huella. - Señalización de reemplazo por comisión. Una transacción señala que puede reemplazarse conforme a BIP 125 cuando una entrada tiene un
nSequenceinferior a0xfffffffe, como en el ejemplo (0xfffffffd). - Ordenación. BIP 69 define una ordenación lexicográfica opcional de las entradas y salidas; las billeteras que la siguen producen un patrón reconocible.
- Comportamiento de scripts y comisiones. Los tipos de dirección, el redondeo de la tasa de comisión y las estructuras multifirma también difieren entre billeteras.
La heurística de huellas compara la transacción que gasta cada salida candidata con la original. Si la original tenía la versión 2, un tiempo de bloqueo establecido en la altura del bloque y señalización RBF, y la salida 1 se gasta posteriormente mediante una transacción con los mismos tres rasgos, mientras que la salida 0 se gasta mediante una transacción de versión 1 con tiempo de bloqueo 0, probablemente la salida 1 sea el cambio. Las huellas son evidencia ligada a un período: los valores predeterminados cambian entre versiones, así que registre el período que describen sus reglas de huellas.
Qué dicen los estudios sobre la precisión
Una misma heurística puede parecer excelente o deficiente según cuándo y cómo se mida.
- Meiklejohn et al. (2013) consideraron que una dirección reutilizada posteriormente era un indicio de falso positivo. Su Heurística 2 ingenua produjo un 13% de falsos positivos y una superagrupación de 1,6 millones de claves; tras introducir ajustes (esperar una semana antes de etiquetar, exceptuar las transacciones de juegos de dados, excluir algunos patrones de direcciones y realizar una revisión manual), estimaron un 0,17%.
- Kappos et al. (2022, "Cómo desprender un millón") probaron la misma familia de heurísticas con agrupaciones verificadas manualmente. Midieron una tasa de falsos descubrimientos del 51,64% para la heurística de Meiklejohn, del 64,19% para la de Androulaki y del 12,7% para la heurística más estricta de Ermilov, y atribuyeron la diferencia a cuánto ha cambiado el uso de Bitcoin desde 2013. Su propio método, que utiliza el comportamiento previo de cambio y los patrones de gasto de la agrupación, alcanzó un 0,62% y un 0,02% en dos variantes.
- Möser y Narayanan (2022, "Resucitar la agrupación de direcciones en Bitcoin") construyeron datos de referencia verificados a partir del cambio revelado posteriormente por la reutilización de direcciones. Las heurísticas individuales tenían tasas bajas de falsos positivos, pero solo detectaban una minoría de las salidas de cambio: la de cambio óptimo identificó el 30,6% con una tasa de falsos positivos del 2,6%, y la de tipo de dirección, el 23,7% con un 3,1%. Un clasificador de bosque aleatorio que combinaba heurísticas y huellas detectó alrededor del 82% del cambio con una tasa de falsos positivos cercana al 0,06%.
De ello se desprenden dos enseñanzas. En primer lugar, las tasas de error están ligadas a su conjunto de datos y período; cítelas con su fuente, nunca como constantes. En segundo lugar, incluso una tasa de falsos positivos del 0,06% es elevada cuando se aplica a cientos de millones de transacciones: Möser y Narayanan descubrieron que fusionar agrupaciones de forma ingenua a partir de los resultados de su clasificador producía una superagrupación de 223,9 millones de direcciones, y tuvieron que añadir restricciones para evitarlo (véase la lección Evaluación de la calidad de las agrupaciones).
Puntuación y solidez
Un enfoque transparente puntúa cada salida candidata y acepta una etiqueta de cambio solo cuando una salida aventaja claramente a las demás:
-- Puntuar cada salida de las transacciones de dos salidas como candidata a cambio
SELECT o.transaction_hash, o.output_index, o.address,
(CASE WHEN o.script_type = s.input_script_type THEN 1 ELSE 0 END)
+ (CASE WHEN MOD(o.value, 100000) <> 0 THEN 1 ELSE 0 END)
+ (CASE WHEN f.first_seen_block = o.block_number THEN 1 ELSE 0 END)
AS change_score
FROM outputs o
JOIN tx_summary s ON s.transaction_hash = o.transaction_hash
JOIN address_first_seen f ON f.address = o.address
WHERE s.output_count = 2
AND s.single_input_type = TRUE; -- omitir entradas de tipos distintos
Cada salida obtiene un punto por coincidir con el tipo de script de la entrada, uno por tener un valor no redondo (que no sea múltiplo de 100.000 satoshis, o 0,001 BTC) y uno por aparecer por primera vez en este bloque. Algunos motores escriben MOD(a, b) como a % b. La consulta puntúa ambas salidas; un paso posterior acepta la salida 1 como cambio solo si, por ejemplo, obtiene 3 puntos y la salida 0 obtiene 0 o 1. Los empates significan "desconocido", no una elección al azar. La lección Consultas de datos UTXO y registros y trazas de EVM deriva la comprobación de un único tipo de entrada de las tablas inputs y outputs; las tablas auxiliares que se usan aquí se construyen a partir de ellas de la misma manera.
| Solidez | Evidencia típica |
|---|---|
| Alta | Coinciden varias señales independientes, incluida una coincidencia de huellas en el gasto posterior, y no hay características de CoinJoin ni de PayJoin |
| Moderada | Coinciden dos señales universales; aún no hay evidencia de huellas |
| Baja | Solo hay una señal, o las señales se contradicen |
| Nula | Salidas de igual valor, muchas salidas o un posible gasto sin cambio |
Modos de fallo que conviene recordar
- Ausencia total de cambio. Los métodos de selección de monedas, como Branch and Bound de Bitcoin Core, buscan conjuntos de entradas que coincidan exactamente con el pago y producen transacciones sin cambio. Una heurística obligada a elegir una salida etiquetará entonces el pago como cambio.
- Transferencias a uno mismo y consolidaciones, en las que todas las salidas pertenecen al remitente.
- Pagos por lotes con muchas salidas, en los que varias parecen nuevas.
- PayJoin y CoinJoin, que están diseñados para eludir estas reglas.
- Tipos de dirección uniformes, que eliminan la señal del tipo de script.
Los vínculos de cambio deben incorporarse a la tabla de evidencias junto con su solidez y el grado A–D que esta respalda en la escala del curso (Lección 3.2), y los informes deben indicar si un hallazgo depende de ellos.
Enfoque del examen: por qué existen las salidas de cambio; las heurísticas de dirección nueva, tipo de script, importe redondo y cambio óptimo, y el modo de fallo de cada una; las condiciones de la Heurística 2 de Meiklejohn et al. y su superagrupación ingenua; las huellas de las billeteras (versión y BIP 68, tiempo de bloqueo y prevención de la captura oportunista de comisiones, señalización RBF de BIP 125 y ordenación de BIP 69) y por qué son evidencia ligada a un período; el contraste entre el 0,17% (Meiklejohn, 2013) y el 51,64% (Kappos et al., 2022) para la misma heurística; por qué las tasas bajas de falsos positivos siguen causando un colapso a gran escala; la puntuación de las salidas y el tratamiento de los empates como desconocidos; las transacciones sin cambio.
Preguntas de práctica
Comprueba lo que has aprendido. Estas preguntas no cuentan para el examen.
Inicia sesión para guardar tu progreso y continuar donde lo dejaste. Es gratis. Iniciar sesión