Bitcoin: Transacciones, Entradas y Salidas

El funcionamiento t茅cnico y la l贸gica de las transacciones en la Blockchain de Bitcoin explican por qu茅 se trata de un excelente sistema de pagos mundial y descentralizado al lograr evitar problemas como el doble gasto.

Composici贸n de una transacci贸n en Bitcoin

Las transacciones son la parte m谩s importante de todo el sistema que permiten la transferencia de valor de forma encriptada entre partes. Una transacci贸n est谩 compuesta por:

  • Entradas (inputs): referencias a salidas de transacciones anteriores. Contienen la direcci贸n de donde provienen los BTC.
  • Sal铆das (outputs): contienen la direcci贸n a donde se enviar谩n los BTC, adem谩s de la direcci贸n a donde se enviar谩 el cambio o retorno. Una transacci贸n puede contener m谩s de una salida.
  • TXid: identificador 煤nico e irrepetible de la transacci贸n en toda la red.
  • Comisi贸n: comisi贸n para el minero que validar谩 el bloque. Como no se conoce de antemano qui茅n ser谩, no est谩 asociado a ninguna cuenta.

El concepto de inputs y outputs es esencial para comprender el funcionamiento de una transacci贸n.

Outputs:

  • Tambi茅n denominados UTXO
  • Fragmentos de BTC representado en Satoshis

Inputs:

  • Identifican qu茅 UTXO utilizar谩n para una transacci贸n y proveen una prueba de propiedad para el uso del mismo.

UTXO o Unspent Transaction Output (transacci贸n de salida no gastada) es otro t茅rmino para los outputs y hacen referencia a fracciones de BTC que solo pueden ser utilizadas una vez y evitar as铆 el problema del doble gasto.

Construcci贸n de una transacci贸n

Las transacciones se preparan y se construyen a partir de las salidas que una wallet posee para formar entradas a otras direcciones.

Alice puede tener en su wallet 1 BTC completo. Para sus ojos, se trata de una sola unidad de bitcoin pero, por dentro, el mismo podr铆a estar compuesto por el 20% de un BTC, el 30% de otro y el restante 50% de un tercer BTC (3 salidas). Las wallets escanean la Blockchain de Bitcoin en b煤squeda de salidas no gastadas o no utilizadas para determinar el saldo de una billetera.

Cuando queremos enviar BTC a otra cuenta, utilizamos las salidas de nuestra billetera como entrada para la transacci贸n. Estas entradas se convierte en salida para la billetera receptora de los BTC.

Fragmentos de bitcoins

Los BTC puede fragmentarse en Satoshis. Un BTC representa 100.000.000 Satoshis.

Si Alice desea enviar 0.6 BTC a Bob, al disponer de tres salidas de 0.2, 0.3 y 0.5, debe agrupar N cantidad de salidas que le permitan igualar o superar el objetivo de transferir 0.6 BTC a Bob. Como no es posible igualar, utilizar谩 las salidas de 0.2 y 0.5, formando 0.7 BTC.

Dichos BTC se dividen en tres partes, 0.6 para la wallet receptora de Bob y concretar el pago, un 0.09 como el vuelto o el retorno a la billetera de Alice y podemos considerar un 0.01 como comisi贸n para el minero.

El vuelto o retorno se convierte en una nueva salida para la wallet de Alice, quedando en ella dos salidas de 0.09 y la de 0.3 (que no fue utilizada) y un saldo total de 0.39 BTC. El restante 0.01 se enviar谩 al minero del bloque convirti茅ndose en una salida para su cuenta.

Flujo de transacciones Input/Output en Bitcoin

En este ejemplo, el output de Alice tiene como destino a Bob, mientras que el input de Bob tiene como emisor a Alice.

Las entradas y salidas dependen del punto de vista de la direcci贸n. Para la direcci贸n de Alice, una transacci贸n puede considerarse output, ya que est谩 enviando valor a la cuenta de Bob, que interpreta como input la misma transacci贸n. Cuando Bob utilice esos BTC como salida, ser谩 la entrada de alguien m谩s.

Los inputs y outputs utilizan mecanismos de encriptaci贸n y comprobaci贸n de las claves para su utilizaci贸n. Es as铆 como una wallet guarda las claves privadas para la utilizaci贸n de un UTXO (de una salida) y la misma es capaz de demostrar ser el owner de fracciones de bitcoin. Todo este complejo mecanismo es posible gracias al lenguaje de programaci贸n llamado Bitcoin Script.

Conclusi贸n

La transferencia de valor en Bitcoin es un mecanismo complejo, que seguramente tengas que leer varias veces y apoyarte de otras fuentes para entender en profundidad sobre c贸mo se construye las transacciones a partir de entradas y salidas.

Es posiblemente la gran innovaci贸n de Satoshi Nakamoto para la construcci贸n de este gran sistema de pagos e intercambio de valor, como lo es la Blockchain de Bitcoin.


Post creado en colaboraci贸n con el Curso de Bitcoin de Platzi.