Transacciones
¿Qué es una transacción de bitcoin?
Una transacción de bitcoin es solo un montón de datos.
Contiene información sobre el valor que se está enviando, la cuenta desde dónde se está enviando y la cuenta hacia dónde se está enviando.
Eso es solo información, así que puede representarse fácilmente en una sola línea de datos:
Y cuando "haces una transacción", simplemente envías esos datos de transacción a la red bitcoin.
En algún momento, uno de los nodos de la red minará tu transacción en un bloque, y ese bloque (con tu transacción dentro) se añadirá al archivo permanente de transacciones (llamado blockchain).
Y eso es todo lo que es una transacción de bitcoin: una simple línea de datos que se envía a la red bitcoin para que pueda ser minada en la blockchain.
¿Cómo funciona una transacción de bitcoin?
Una dirección de bitcoin es como un número de cuenta que guarda bitcoins.
Sin embargo, cuando haces una transacción, no es como sacar una cantidad exacta de monedas de un tarro y moverlas a otro.
En vez de eso, una dirección lleva el registro de cada pago individual que ha recibido:
Entonces, cuando quieres enviar bitcoins a otra persona, tomas valores enteros que ya has recibido y los usas para enviar un nuevo valor a una nueva dirección:
Y cuando esa otra persona quiera enviar bitcoins a alguien más, usará valores enteros que recibió de la misma manera:
Así que, en la práctica, recibes bitcoins en lotes, y usas esos lotes para crear nuevos lotes para enviarlos a otras personas.
Así funcionan las transacciones.
¿Y si los lotes suman más de lo que quiero enviar?
Buena pregunta, señor/señora.
En ese caso (que es frecuente), simplemente añades otra salida a la transacción y envías la diferencia de vuelta a ti mismo:
Eso puede parecer raro al principio, lo sé, pero es una forma precisa de hacerlo desde el punto de vista de la programación.
Para más detalles sobre cómo funciona este sistema de salidas, mira salidas.
¿Qué impide que otras personas gasten mis bitcoins?
O, en otras palabras…
Pregunta: "Si hacer una transacción es simplemente alimentar a la red bitcoin con una línea de datos, ¿por qué alguien no puede construir una transacción que incluya mi dirección y usarla para enviar bitcoins a su dirección?"
Respuesta: Porque cada salida de transacción tiene una traba:
Y si creas una transacción sin desbloquear esas salidas, los nodos de la red bitcoin rechazarán la transacción:
Pero, afortunadamente para ti, cada dirección viene con una clave privada única:
Entonces, si quieres enviar bitcoins en una transacción, usas esa clave privada para crear una firma única que puede desbloquear las salidas bloqueadas a tu dirección.
Después de desbloquear todas las salidas que quieres usar, la transacción será aceptada por los nodos y propagada por la red Bitcoin.
Y así funcionan las transacciones de bitcoin.