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.

Diagrama que muestra una transacción como el movimiento de una cantidad de bitcoins de una dirección a otra.

Eso es solo información, así que puede representarse fácilmente en una sola línea de datos:

Diagrama que muestra una transacción como una línea de datos.

Y cuando "haces una transacción", simplemente envías esos datos de transacción a la red bitcoin.

Diagrama que muestra una transacción siendo enviada 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).

Diagrama que muestra una transacción siendo minada dentro de un bloque en la 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.

Diagrama que muestra cómo una transacción no mueve una cantidad exacta de monedas de un tarro (dirección) a otro.

En vez de eso, una dirección lleva el registro de cada pago individual que ha recibido:

Diagrama que muestra una dirección guardando valores de pagos individuales (salidas).

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:

Diagrama que muestra cómo una transacción gasta salidas de una dirección y envía nuevas salidas a una dirección diferente.

Y cuando esa otra persona quiera enviar bitcoins a alguien más, usará valores enteros que recibió de la misma manera:

Diagrama que muestra una transacción posterior gastando salidas y enviándolas a otra dirección.

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:

Diagrama que muestra una salida de cambio en una transacción.

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:

Diagrama que muestra una traba colocada sobre una salida de transacción.

Y si creas una transacción sin desbloquear esas salidas, los nodos de la red bitcoin rechazarán la transacción:

Diagrama que muestra un nodo rechazando una transacción en la que las entradas no fueron desbloqueadas.

Pero, afortunadamente para ti, cada dirección viene con una clave privada única:

Diagrama que muestra una dirección con su clave privada correspondiente.

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.

Diagrama que muestra una clave privada siendo usada para desbloquear salidas bloqueadas a una 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.

Diagrama que muestra una transacción con entradas desbloqueadas siendo aceptada por un nodo y propagada por la red.

Y así funcionan las transacciones de bitcoin.