MSTR Cat

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

El modelo UTXO

Por qué Bitcoin no tiene cuentas, y cómo el registro sabe qué se ha gastado

MaterialesUn navegador web con acceso a un explorador de bloques (p. ej., mempool.space)Una dirección pública de Bitcoin con múltiples UTXOUn cuaderno para registrar los ID y valores de salida

Curiosidad

  1. ¿Qué sucede con un saldo cuando no hay cuentas que actualizar?
  2. ¿Cómo verifica un nodo que una entrada aún no se ha gastado sin revisar todas las transacciones anteriores?
  3. ¿Por qué llevar toda la historia de una moneda hace más difícil mantenerse anónimo?

Explorar

  1. Bitcoin no utiliza el modelo de cuentas de los libros contables bancarios ni el de Ethereum. En esos sistemas, los saldos se almacenan en direcciones y se actualizan en su lugar; enviar fondos disminuye un saldo y aumenta otro. Bitcoin no cuenta con este tipo de almacenamiento. En cambio, utiliza una estructura similar al efectivo, donde el valor existe únicamente como unidades discretas y no gastadas. No existe un libro contable central que registre el “saldo total de Alice”; solo hay un conjunto de salidas individuales que están disponibles actualmente para ser gastadas.
  2. Estas unidades se denominan Unspent Transaction Outputs (UTXO). Cada UTXO contiene una cantidad específica en satoshis y un script de bloqueo que define quién puede gastarlo. Cuando ocurre una transacción, esta consume UTXOs completos como entradas y crea nuevos UTXO como salidas. Las salidas que gasta dejan de formar parte del conjunto de monedas disponibles para gastar (las transacciones permanecen en el historial de la cadena), mientras que las nuevas salidas se unen a él. El “saldo” de una billetera no es un número almacenado, sino la suma de todos los UTXO cuyos scripts de bloqueo sus claves privadas pueden satisfacer.
  3. Esta estructura simplifica la validación de los nodos de red. Dado que cada entrada hace referencia a una salida específica y no utilizada anteriormente, un nodo solo necesita comprobar que dicha salida exista en el estado actual y que no haya sido usada antes. No es necesario recalcular los saldos globales ni verificar historiales complejos de cuentas. Cada nodo completo mantiene el “chainstate”, que es esencialmente el conjunto completo de todas las UTXO activas en un momento dado. Esto permite una verificación rápida y determinista de los intentos de gasto doble.
  4. El contraste con Ethereum resalta una elección de diseño clave. Ethereum utiliza un modelo de cuentas en el que cada dirección tiene un saldo almacenado y un nonce (un contador de transacciones) para evitar ataques de retransmisión. Actualizar una cuenta requiere cambiar el árbol de estado a nivel global. Bitcoin crea nuevas salidas en lugar de editar los saldos directamente, lo que significa que las monedas conservan su historial, vinculando las transacciones pasadas con las posesiones actuales.
  5. Esta conexión histórica tiene implicaciones significativas para la privacidad y la fungibilidad. Dado que cada entrada remite a una salida anterior, los analistas pueden rastrear el flujo de fondos a través de cadenas de UTXO. Aunque existen servicios de mezcla y otras técnicas, la estructura fundamental dificulta cortar por completo el vínculo entre el origen de una moneda y su titular actual. Esta transparencia se menciona con frecuencia en los debates sobre si las monedas de Bitcoin son realmente fungibles, ya que algunos participantes del mercado prefieren monedas “limpias” con un historial menos rastreable.
  6. Para ver esto en acción, abra la vista de control de monedas (o ‘UTXO’) de una billetera que haya recibido varios pagos: muestra cada salida por separado, con su propio valor e ID de transacción. En un explorador de bloques, la página de direcciones muestra lo mismo que una lista de salidas recibidas, algunas gastadas y otras no. Esta lista de salidas individuales es la verdadera representación en la cadena de la propiedad; el ‘saldo’ que se muestra en la interfaz es simplemente un cálculo del lado del cliente derivado de este conjunto.

Datos clave

  • Bitcoin no tiene cuentas ni saldos almacenados en la cadena; la propiedad consiste únicamente en Salidas de Transacciones No Gastadas (UTXO).
  • Cada UTXO contiene una cantidad en satoshis y un script de bloqueo que especifica las condiciones requeridas para gastarlo.
  • Una transacción consume todos los UTXO como entradas y crea nuevos UTXO como salidas; las salidas que utiliza dejan el conjunto de UTXO.
  • Cada nodo completo mantiene el ‘chainstate’, que es el conjunto completo de todas las salidas actualmente no gastadas utilizadas para la validación.
  • El saldo mostrado en la billetera es un cálculo local que suma los valores de las UTXO controladas por sus claves privadas, y no un valor almacenado en la cadena de bloques.
  • A diferencia del modelo de cuentas de Ethereum con nonces y saldos mutables, el modelo UTXO de Bitcoin trata las monedas como unidades discretas que conservan su historial y se reemplazan en lugar de actualizarse.

Ejercicio nueve, seis, tres, uno

9ReunirEnumera 9 activos o monedas digitales diferentes. Indica si cada una utiliza un sistema de saldo basado en cuentas (como Ethereum) o un sistema de salidas basado en UTXO (como Bitcoin).
6AgruparAgrupa los 9 en 6 categorías según cómo manejan el estado: saldos mutables, salidas inmutables, modelos híbridos, registros centralizados u otros.
3DestilarReduce los 6 grupos a 3 razones fundamentales por las cuales un protocolo podría elegir UTXO en lugar de cuentas para su estructura de libro mayor.
1CristalizarEscribe una oración que explique cómo la ausencia de saldos almacenados cambia la forma en que se previene el doble gasto en Bitcoin en comparación con los sistemas bancarios tradicionales.

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