Una cartera de Bitcoin en realidad no contiene bitcoins. En su lugar, contiene registros de transacciones. Cuando envías 'bitcoins' a alguien, en realidad estás enviando pruebas de que has realizado transacciones que ahora constituyen un saldo positivo en tu cuenta.
Una cartera de Bitcoin en realidad no contiene bitcoins. En su lugar, contiene registros de transacciones. Cuando envías 'bitcoins' a alguien, en realidad estás enviando pruebas de que has realizado transacciones que ahora constituyen un saldo positivo en tu cuenta.
Estos registros se conocen como salidas de transacciones previas. Todos ellos juntos constituyen el saldo de tu cuenta. Demuestran que tienes monedas para gastar y permiten a cualquiera verificar de dónde provienen estas monedas. Puedes enviar monedas a otra dirección de blockchain recopilando algunas de estas salidas y transformándolas en una entrada de transacción. La dirección que las recibe las considerará como la salida de esta transacción. Puedes enviar el exceso de vuelta a tu dirección como salida de transacción no gastada (o UTXO).
Ten en cuenta que las entradas y salidas se refieren únicamente a las transacciones. No existe algo como una 'salida de cartera' o 'salida de dirección'. Este método de registro de transacciones es específico solo de Bitcoin y blockchains similares (y no, por ejemplo, de Ethereum). Además, todas las salidas legítimas son técnicamente no gastadas, por lo tanto, se consideran UTXO.
Aspectos esenciales de las entradas, salidas y UTXO
- Los bitcoins existen solo como registros de transacciones.
- Las salidas de transacción son los 'billetes' de bitcoin que recibes en tu dirección.
- Tus salidas se convierten en entradas de transacción cuando envías bitcoins a alguien.
- Las salidas de transacción no gastadas (UTXO) son las salidas que demuestran que tienes un saldo positivo en tu cuenta.
Cómo funciona una transacción
Al preparar una transacción, se deben realizar algunos cálculos. En principio, debes hacer estos cálculos tú mismo, pero la mayoría de las aplicaciones de cartera se encargan de ellos automáticamente. Independientemente de quién lo haga, esto es lo que debe hacerse:
1. PLANIFICAR → Determinar cuánto quieres enviar, la dirección del remitente y la dirección del destinatario (el remitente y el destinatario pueden ser los mismos; así es como se combinan pequeñas UTXO en otras más grandes para limpiar tu cartera del exceso de 'cambio').
2. ENTRADA → Seleccionar qué UTXO utilizar para esto. Cualquier número positivo de UTXO servirá, siempre que la suma total de BTC que representan sea tan grande como la cantidad que deseas enviar. Las salidas seleccionadas representan la entrada de esta transacción.
3. SALIDA → Crear al menos dos salidas de transacción: una salida que va a la dirección del destinatario (puede haber varias de estas salidas, incluso yendo a más de un destinatario) y una salida que devuelve las monedas excedentes, si las hay, a una cartera bajo tu control (que puede ser, y generalmente es, la misma cartera desde la que estás enviando). La suma de todas estas salidas debe ser menor que la entrada. ¿Por qué?
4. COMISIÓN → Porque lo que queda es la comisión de la transacción, una salida que va a la dirección del minero. Si esta salida es demasiado pequeña, la transacción no se procesará. Además, si no asignas el exceso de vuelta a tu dirección, será reclamado por el minero de criptomonedas.
Un ejemplo de transacción
Jamie tiene tres UTXO en su cartera: 3, 4 y 6 BTC (un total de 13 BTC). Quiere enviar 5 BTC a Sandy. No puede simplemente deducir 5 BTC de su saldo total; necesita usar sus salidas.
- Jamie determina a qué dirección enviar 5 BTC.
- Selecciona una combinación de sus UTXO que sume al menos 5 BTC en total. Podría optar por 3 + 4, 4 + 6 o 3 + 6. Pero Jamie quiere deshacerse de tanto cambio como sea posible, así que elige 3 + 4 + 6.
- A Sandy le gusta el cambio, así que quiere la salida en dos partes. Podría dividir una salida de 5 BTC ella misma, pero como son amigos, Jamie organiza su transacción para emitir 2 y 3 BTC a la dirección de Sandy. Quedan 8 BTC: hace una salida de 7 BTC de vuelta a su dirección, y el resto lo deja para el minero (Jamie es generoso, las comisiones suelen ser solo un par de satoshis).
- El minero ve la fabulosa comisión adjunta a esta transacción y la incluye con entusiasmo en el bloque.
La base de datos UTXO
La base de datos UTXO es una base de datos de todas las salidas que representan monedas actualmente gastables. Cuando se verifica una transacción, sus entradas se comparan con las salidas en la base de datos UTXO. Esto debe hacerse para evitar el doble gasto. El verificador debe asegurarse de que una transacción no se gaste dos veces (o, en otras palabras, asegurarse de que solo se utilicen salidas de transacción no gastadas como entrada).
El verificador no necesita mirar más allá de las salidas en la base de datos UTXO. No hay necesidad de navegar hacia atrás por la blockchain para determinar si el historial de una UTXO dada es genuino (aunque esto se puede hacer). Mientras una salida aparezca en la base de datos UTXO, es prueba suficiente de que es producto de transacciones legítimas.
El historial de cada UTXO se puede rastrear hasta su bloque génesis, lo que impide que alguien cree bitcoins de la nada.