MSTR Cat

Blockchain/Nivel II · Mecánica/2.2 Transacciones/Lección 4

Cambiar salidas

El resto que revela al remitente y los algoritmos que intentan ocultarlo

MaterialesUn explorador de bloques (p. ej., mempool.space o blockchain.com)Una billetera de Bitcoin con al menos dos UTXOUna hoja de cálculo para registrar los ID de las transacciones, los valores de entrada y las estructuras de salida.

Curiosidad

  1. ¿Por qué una transacción que paga una cantidad exacta suele verse diferente de una que requiere cambio?
  2. ¿Cómo puede un analista determinar cuál salida es el pago y cuál es el cambio sin ver el estado interno de la billetera?
  3. ¿Qué hace que un algoritmo de selección de monedas prefiera una comisión ligeramente más alta a una más baja?

Explorar

  1. Las entradas de las transacciones en Bitcoin funcionan como billetes físicos indivisibles. Si Alice pretende pagar 5 BTC pero solo posee un UTXO de 20 BTC, no puede dividir esa cantidad. Debe gastar los 20 BTC completos y recibir 15 BTC de vuelta como cambio, una vez deducidas las comisiones. Por lo tanto, la mayoría de las transacciones incluyen dos salidas: una para el destinatario y otra para el cambio.
  2. A nivel de protocolo, no existe distinción entre una salida de ‘pago’ y una salida de ‘devolución’. Ambas son scripts de bloqueo estándar, como P2PKH o P2WPKH, que esperan las condiciones para ser gastados. Solo el creador de la transacción identifica su propiedad. Esta falta de diferenciación es un mecanismo fundamental de privacidad: si una dirección de devolución y una dirección de pago parecen idénticas, los observadores externos no pueden distinguirlas con certeza.
  3. Las billeteras utilizan algoritmos de selección de monedas para determinar qué entradas gastar. Si Alice posee dos UTXO de 50,000 satoshi y desea pagarle a Bob 85,000 satoshi, gasta ambas entradas (100,000 sats) y crea dos salidas: una para Bob (85,000 sats) y otra para ella misma (15,000 sats menos la comisión). Esta estructura, con una o más entradas y exactamente dos salidas, es una de las más comunes en la cadena.
  4. Por cuestiones de privacidad, es habitual asignar el cambio a una dirección nueva, nunca utilizada antes, del conjunto de claves de la billetera. Reutilizar una dirección antigua para el cambio permite a los analistas de cadena conectar la actividad transaccional anterior con la nueva. En los casos óptimos, tanto las salidas de pago como las de cambio se asignan a direcciones nuevas, lo que garantiza que parezcan idénticas para los observadores externos.
  5. No todos los pagos necesitan cambio. Los algoritmos de selección de monedas como Branch and Bound, descritos por Mark Erhardt en 2016 y utilizados en Bitcoin Core, buscan un conjunto de entradas cuyo total coincida lo suficientemente bien con el pago más la comisión, de modo que el pequeño remanente pueda destinarse simplemente a dicha comisión. Una transacción sin cambio es más económica, no genera nuevas salidas pequeñas y le brinda a los analistas una pista menos.
  6. Las salidas muy pequeñas generan su propio problema. Por debajo del umbral de polvo (por defecto, unos 546 satoshis para las salidas P2PKH y 294 para las P2WPKH), gastar una salida cuesta más de lo que vale, y los nodos no retransmitirán transacciones que generen dichas salidas. Los analistas también buscan patrones de cambio característicos: la salida con número redondo suele ser el pago, mientras que una salida cuyo tipo de dirección coincide con las entradas a menudo corresponde al cambio.

Datos clave

  • Las entradas de la transacción son indivisibles; el remanente que excede al pago y la comisión se devuelve como cambio, a menos que sea lo suficientemente pequeño para sumarse a la comisión.
  • A nivel de protocolo, no existe diferencia técnica entre una salida de cambio y una salida de pago; solo quien crea la transacción sabe cuál es cuál.
  • La selección de monedas mediante Branch and Bound (Erhardt, 2016) busca conjuntos de entradas que no necesiten una salida de cambio.
  • Las transacciones sin cambio no tienen ninguna salida que devuelva fondos al remitente; cualquier pequeño remanente se destina a la comisión.
  • Usar una dirección nueva, nunca antes vista, para el cambio impide que terceros la distingan fácilmente de una salida de pago.
  • El umbral por defecto de dust en Bitcoin Core es de aproximadamente 546 satoshis para salidas P2PKH y 294 para P2WPKH.

Ejercicio nueve, seis, tres, uno

9ReunirEnumera 9 transacciones recientes de Bitcoin que hayas observado o creado. Anota el número de entradas y salidas de cada una, y si había una salida de cambio.
6AgruparAgrupa las 9 transacciones en 6 categorías según su estructura: entrada única/salida única, múltiples entradas/dos salidas (cambio), múltiples entradas/salida única (sin cambio), coinbase, OP_RETURN u otras estructuras complejas.
3DestilarReduce los 6 grupos a 3 implicaciones de privacidad distintas en relación con la facilidad con que un analista puede vincular los resultados a una identidad de usuario específica.
1CristalizarEscribe una oración que explique por qué la ausencia de una distinción técnica entre las salidas de pago y las de cambio es al mismo tiempo una característica para la fungibilidad y un desafío para la privacidad individual.

Verificación de hechos

Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.

Abrir en la academia interactiva →

EN PT ZH JA KO RU DE FR MS