Saltar al contenido

8 métodos con los que identifican tu dirección de cambio

En este artículo te explicaré los métodos que utilizan los espías y empresas de vigilancia para detectar cuál es la dirección de cambio en una transacción Bitcoin y qué hacer para evitarlo

Las transferencias en Bitcoin son muy parecidas a las de la banca tradicional, en ambos casos están compuestas por entradas (ingresos) y salidas (egresos). La diferencia radica en como son movido los fondos. En el caso de la banca tradicional se envía siempre el monto exacto que el usuario quiere pagar (no se genera un cambio o retorno), mientras que en Bitcoin es como pagar con dinero en efectivo: Imagina que compras con un billete de 10$ un artículo de 7$, en esa transacción el comerciante tendrá que entregarte 3$ de cambio.

En Bitcoin la dirección de pago es a la que envías los 7$ y la de cambio o retorno es donde se depositan los 3$ de mi ejemplo, esta ultima sirve de pista para que los espías de la blockchain obtengan la información de gastos, ahorros y posiblemente, identidades personales de los usuario de Bitcoin. 

Esquema de una transacción básica de Bitcoin





Un espía puede detectar la dirección de Cambio «C» y usarla como pista para vigilar como gastas tus monedas o para saber cuántos ahorros tienes.

¿Qué sucede si descubren cuál es mi dirección de cambio?

La detección de la dirección de cambio le permite a tu adversario tener un punto de partida para vigilar tus transacciones futuras. A partir de esa dirección, un espía puede conocer cuántos ahorros tienes, los montos que gastas, la exchange que utilizas, si has enviado tus monedas a servicios de Coinjoins y hasta que billetera usas. Como puedes ver, un error al administrar el cambio en una transacción Bitcoin puede ser suficiente para crear un problema de pérdida de privacidad.

Métodos con los que identifican tu dirección de cambio

Heurística de la sombra (reutilización de una dirección)

Su premisa es que en toda transacción Bitcoin en la que se observa que una dirección es reutilizada (ingresos provenientes varias transacciones) esa dirección es la de pago. Por tanto, la dirección que no presenta reutilización es una dirección de cambio.

El espía detecta la dirección de cambio “Z” porque Alice había Reutilizado la dirección “X” en dos transacciones previas (T1 y T2) y se la entregó a Bob para un nuevo pago (T3).

Esta suposición es fuerte porque el software de las billeteras crea de manera automática direcciones nuevas para recibir los cambios. Mientras que las direcciones de pago se escogen manualmente y se envían entre las personas, que por ignorancia o apatía pueden entregar una dirección ya utilizada.

¿Cómo combatirlo?

  • No reutilizar direcciones al recibir un pago.
  • Al realizar un pago verifica antes que la dirección que te entrego tu contraparte (receptor) no se haya reutilizado.
  • Utiliza una billetera que generen nuevas direcciones publicas cada vez que recibes un pago.
  • No utilizar paper wallet o direcciones estáticas para recibir pagos o donaciones.

Huella digital de la billetera

Un espía puede deducir la huella digital de la billetera que crea una transacción y utilizar esa información para detectar la salida de cambio. porque los diferentes softwares de las billeteras no siempre crean transacciones exactamente de la misma manera.

Por ejemplo, una billetera SegWit (inicia con “3”) con múltifirmas 2-de-3 paga en una transacción con dos salidas: 

Una salida va a una dirección SegWit (inicia con “3”) múltifirmas 2-de-3 y la otra va a una dirección SegWit (inicia con “3”) múltifirmas 2-de-2.

Los scripts (diferentes) de las salidas son indicativo fuerte de cuál es la dirección de cambio.

¿Cómo combatirlo?

  • Evita utilizar Scripts poco habituales para realizar pagos cotidianos. Utiliza firmas múltiples solo para tus ahorros a largo plazo.

Números redondos

Por lo general el monto de los pagos es en números redondos, por consiguiente, el cambio será un número no redondo. Esto es potencialmente útil para encontrar la dirección de cambio.

Números redondos en términos de BTC.

El monto puede ser un número redondo en otra moneda (fiat, altcoin).

Números redondos en términos de fiat (USD).

¿Cómo combatirlo?

  • Evitar realizar pagos con números redondos (en términos de BTC o de una moneda fiat)
  • Usar billeteras como SamoraiWallet que cuenta con herramientas de PayJoin: Stonewall, StonewallX2 y Stonwaway, estas te permiten ofuscar el monto de tus pagos.

Aumento de la tarifa de minería (RBF/CPFP)

Si usas RBF o CPFP para acelerar la confirmación de un pago tu adversario puede observar las transacciones no confirmadas, ver tu transacción inicial de tarifa baja y la nueva transacción de tarifa alta (para confirmado pronto). La salida con el monto reducido sería la salida de cambio.

El espía detecta que la dirección “Z” es la de cambio, porque Bob aplicó RBF en su transacción no confirmada. El monto de la dirección “Z” disminuyó.

¿Cómo combatirlo?

  • Verifica la mempool antes de elegir la fee de minería que pagaras para tu transacción.
  • Usa una billetera que te permitan escoger la fee de minería y te muestre el aproximado de cuantos bloques tardara en confirmarse (SamouraiWallet es una buena opción).
  • Evita usar RBF o CPFP.
  • Reduciendo el monto de ambas salidas (pago y cambio).
  • Reduciendo solo la cantidad de pago (en un modelo de remitente paga CPFP).

Heurística de Entrada innecesaria (heurística del cambio óptimo)

 Si utilizas más de una entrada para pagar un monto que se saldaba con una sola, entonces tu adversario sabrá que la salida de pago es la de mayor valor y la de cambio la de menor valor.

El espía detecta que la dirección “Z” es la de cambio, por medio de la interpretación de entrada innecesaria.

¿Cómo combatirlo?

  • Agregar más entradas hasta que la salida de cambio sea más alta que cualquier entrada. Desafortunadamente, esto cuesta más en tarifas de minero y solo se puede hacer si la billetera realmente posee otros UTXOs.
  • Utilizar billeteras que te permitan control coin para que escoger la UTXO a gastar según el monto que a pagar (gastar el UTXO completo en la medida de lo posible).
  • Usar una billetera como SamouraiWallet que de forma predeterminada genera transacciones con el monto más grande posible según lo que necesites pagar. Esto provoca que la salida de cambio sea superior a la de pago y aumenta la negación plausible de las transacciones.

Script diferente (formato de la dirección)

Usar una dirección de cambio con un scrip diferente a la dirección que se paga hace que sea más fácil saber qué salida (dirección) es de cambio.

El espía detecta que la dirección 3Zf.. es la de cambio porque es de formato diferente a la otra salida (1Xm..) y de formato similar a la entrada con la que Bob paga (3An…)

¿Cómo combatirlo?

  • Utilizando una dirección de cambio con mismo formato que la de pago, te permite ocultar cual es la salida de cambio y la salida de pago.
  • Si no puedes seleccionar el formato de tus direcciones de cambio, pídele a quien pagas (tu contraparte) que te entregue una dirección pública de formato similar a la de tus direcciones de cambio.
  • Utiliza billeteras como Samouraiwallet que de forma predeterminada y automática genera direcciones de cambio de formato similar a la dirección de pago.

Errores de la billetera 

Algunas billeteras manejan el cambio de una manera poco privada: Colocando la salida del cambio en el último lugar de la transacción.

No dan soporte a los tres formatos de direcciones disponibles en Bitcoin (legacy “1”, SegWit native”bc1” y SegWit “3” compatible).

Agregan entradas en la transacción hasta que se genere un monto establecido para la salida de cambio.

¿Cómo combatirlo?

  • Utiliza billeteras que den soporte los tres (3) formatos de direcciones y que te permitan escoger el formato de la dirección de cambio.

CoinJoin de igual rendimiento

Las transacciones CoinJoin con salidas iguales revelan la dirección de cambio, porque es la salida que no tiene el mismo valor.

El espía detecta que las direcciones “Z” y “X” son de cambio. Porque la transacción Coinjoin es de salidas iguales y el cambio participa en ella.

¿Cómo combatirlo?

  • Usando herramientas ConJoins en los que el cambio no participa en la transacción (Whrilpool de SamouraiWallet es buena opción).

Referencia:

https://en.bitcoin.it/wiki/Privacy#Change_address_detecti

«No Confíes, Verifica«

Sobre el autor de este artículo

Aprender y enseñar sobre Bitcoin son de las actividades que más disfruto. Si  quieres apoyar mi trabajo, en temas de Seguridad y Privacidad en el uso de Bitcoin, puedes hacer una libre aportación via Lightning network u on chain 🙌
P_Hold

Paynyms (Samourai Wallet)

PM8TJLCBidk5DFPG8Q8HwpRthCEQRJm5BRCzgUPdVYzJnRqfTH4WzKBkdCk5HnBBmfCtuVhuuB9ipvyu89AjiZ6XDe9TpefZdj7wEjR8Cp2LMX9Zzndp +muddymath92c