Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Dirección de cambio

También se conoce como Salida de cambio.

¿Qué es una dirección de cambio?
Una dirección de cambio recibe la parte de una entrada que su billetera no gastó, porque las salidas de bitcoin se consumen enteras y cualquier resto tiene que ir a alguna parte.

Se especifica en el BIP-32.

Bitcoin no tiene el concepto de gasto parcial. Si usted tiene una moneda de 0,05 BTC y paga 0,012 BTC, la transacción destruye esa moneda y crea dos nuevas: el pago y aproximadamente 0,038 BTC de cambio bloqueados en una dirección que solo usted controla. En un explorador de bloques, la segunda salida parece un pago a un desconocido, y no lo es.

Cómo funciona

Todo pago en bitcoin comienza con la elección de las monedas completas que lo alimentan. Una moneda, propiamente un UTXO, no puede dividirse donde está: la transacción la consume por completo y escribe salidas nuevas. Su billetera suma lo que seleccionó, resta lo que usted paga y lo que se llevará el minero, y envía el resto a un destino que generó para sí misma. Ese destino es la dirección de cambio.

Las billeteras modernas guardan esos destinos en una rama separada de su árbol de claves. BIP-44 estableció la estructura como m / purpose' / coin_type' / account' / change / address_index, donde el penúltimo nivel es 0 para las direcciones que usted entrega y 1 para las direcciones que la billetera se guarda para sí. Por tanto, la primera dirección de cambio de una billetera SegWit nativa es m/84'/0'/0'/1/0, derivada de la misma frase semilla que todo lo demás, así que no hay que respaldar nada adicional.

No siempre fue así, y la historia explica por qué existe esa rama. Los primeros clientes de Bitcoin tomaban el cambio de una reserva de claves aleatorias pregeneradas, 100 de ellas por defecto. Al gastar más allá del final de la reserva, un respaldo de wallet.dat hecho antes ya no contenía la clave en la que estaba bloqueado su cambio, y así fue como hubo personas que restauraron un respaldo y descubrieron que faltaba dinero. Bitcoin Core solo crea billeteras deterministas jerárquicas desde la versión 0.16.0, y la reserva de claves derivadas por adelantado tiene ahora 1.000 claves de forma predeterminada.

El monto del cambio es aritmética: entradas menos pagos menos comisión. Nada en la transacción marca una salida como cambio. Un nodo ve dos salidas y las trata de forma idéntica, y precisamente por eso el cambio es un problema de privacidad y no de contabilidad.

Por qué importa cuando compra bitcoin

Su primera salida de cambio suele aparecer la primera vez que gasta monedas retiradas de un exchange, y arrastra todo lo que ese retiro sabe de usted.

Un exchange que verificó su pasaporte registró la dirección a la que pagó. Cuando más adelante usted gasta desde esa dirección, el cambio lo crea la misma transacción, así que cualquiera que siga la salida original sigue también el cambio, incluido cualquier proveedor de análisis al que pague el exchange. Repartir un retiro entre dos billeteras no sirve de nada si después gasta desde ambas en una misma transacción. Mantener las monedas retiradas del exchange en una billetera exclusiva para ellas y pagar desde ella de forma deliberada es lo que limita hasta dónde se extiende la identidad.

Las billeteras de hardware protegen contra un segundo riesgo, más agudo. Una computadora comprometida puede construir una transacción cuya salida de cambio vaya a un atacante en lugar de a usted, con un total que sigue pareciendo correcto, así que nada en la pantalla parece fuera de lugar. Un dispositivo Trezor o Ledger comprueba que cada salida de cambio se deriva de la semilla que guarda y avisa de cualquier salida que no se derive de ella. La comprobación solo funciona si usted confirma los montos en la propia pantalla del dispositivo y no en el navegador.

También hay un costo en el que usted puede influir. Dos salidas cuestan más que una: una salida de cambio SegWit nativa añade 31 bytes a la transacción, alrededor de 465 satoshis a 15 sat/vB, y crea una moneda cuyo gasto posterior costará aproximadamente 68 bytes virtuales. Las billeteras que aplican una selección de monedas por ramificación y acotación (branch and bound) intentan encontrar entradas que se ajusten al pago lo bastante como para prescindir del cambio por completo, y lo consiguen con más frecuencia cuando sus monedas tienen tamaños variados que cuando todas son retiros de montos redondos.

El cambio tampoco es una enajenación. Pagarse a sí mismo el resto de su propia moneda no es una venta, pero los rastreadores de portafolio importan habitualmente las salidas de cambio como compras entrantes o ventas salientes, lo que distorsiona el costo de adquisición. Si su rastreador muestra una transacción que usted no reconoce el día en que pagó una factura, esa suele ser la causa.

Seguir el cambio en un retiro de 0,05 BTC

Si se sigue una moneda desde un exchange hasta un comerciante, cada cifra es visible on-chain. Usted retira 0,05 BTC a una dirección bech32 de su propia billetera, y el monto llega como una sola salida de 5.000.000 satoshis.

Semanas después, usted le debe 1.200.000 satoshis a un comerciante. Su billetera contiene exactamente una moneda, así que tiene que gastar los 5.000.000 completos. La transacción tiene una entrada y dos salidas, aproximadamente 141 bytes virtuales, y a 15 sat/vB la comisión es de 2.115 satoshis. El comerciante recibe 1.200.000. La salida de cambio recibe 5.000.000 menos 1.200.000 menos 2.115, es decir, 3.797.885 satoshis, y va a parar a m/84'/0'/0'/1/0.

Nada en esa transacción anuncia qué salida es cuál. Dos heurísticas suelen delatarlo: el cambio es la salida con el monto sin redondear, y el cambio es a menudo la salida cuyo tipo de script coincide con el de la entrada. Las billeteras que redondean el cambio, o que copian el tipo de script del destinatario, existen precisamente para desbaratar esas conjeturas.

Dirección de cambio frente a dirección única

Una dirección de cambio y una dirección de recepción nueva se usan una sola vez, y la diferencia está en quién debe verlas. Una dirección de recepción sale de la rama externa, con índice de cadena 0, y existe para copiarse en la billetera de otra persona. Una dirección de cambio sale de la rama interna, con índice de cadena 1, y nunca se muestra a un pagador; la mayoría de las interfaces no muestran ninguna a menos que usted abra una pantalla de control de monedas. Ambas se renuevan por el mismo motivo de privacidad, y ambas se restauran a partir de las mismas doce o veinticuatro palabras.

Dirección de cambio frente a polvo

El cambio es lo que sobra; el polvo es un sobrante demasiado pequeño para que valga la pena crearlo. Bitcoin Core se niega a retransmitir una salida cuyo valor quede por debajo de 3 satoshis por byte virtual de su gasto final, lo que equivale a 546 satoshis para una salida heredada (legacy) y 294 para SegWit nativo. Cuando una billetera calcula un cambio por debajo de esa línea, no crea la salida en absoluto y el valor va al minero como comisión adicional. Por eso pagar un monto apenas inferior a todo su saldo puede costar mucho más que la comisión que se le indicó.

No confundir con

Preguntas frecuentes

¿Por qué mi billetera envió bitcoin a una dirección que no reconozco?

Esa salida es, casi con toda seguridad, su propio cambio. Bitcoin gasta monedas completas, así que el sobrante va a una dirección nueva de la rama interna de su billetera. Abra una pantalla de control de monedas o de detalles de la transacción y la billetera indicará que esa salida le pertenece.

¿Está a salvo mi cambio si solo respaldé mi frase semilla?

Sí. Las direcciones de cambio se derivan de la misma semilla según BIP-32, en la rama con el número 1, así que restaurar la frase las recupera junto con todo lo demás. No ocurría así con las billeteras anteriores a 2016, que tomaban el cambio de una reserva fija de claves aleatorias.

¿Puedo impedir que mi billetera cree cambio?

Solo de forma indirecta. Envíe todo su saldo, lo que no produce ninguna salida de cambio, o use el control de monedas para elegir entradas que se ajusten al pago lo bastante como para que la billetera prescinda del cambio. La mayoría de las billeteras ya intentan la segunda opción de forma automática.

¿Adónde fue mi cambio cuando el monto era diminuto?

Por debajo del límite de polvo, 546 satoshis para una salida heredada y 294 para SegWit nativo, las billeteras descartan la salida de cambio y dan ese valor al minero como comisión adicional. Las monedas no se perdieron en ningún sentido que permita recuperarlas: se gastaron en la transacción.

Para seguir leyendo

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés