Cómo Funciona una Transacción Bitcoin Típica (P2P)

 

Una transacción BTC típica es la que se da entre dos personas o direcciones (Peer to Peer). En este ejemplo desarrollado en la red de prueba (testnet), enviaremos fondos de:

  • La dirección:
    mhWmofYSHLdwvkA3Y51eARqZM1z9YcCS1C

  • A la dirección:
    n3PUm39rx8SwgFqLmRpKQvCdw997eF7iTp

Como primer paso la dirección que envía debe disponer de fondos, esto lo puedes ver en tu billetera BTC o consultar un explorador blockchain de BTC (una especie de navegador blockchain) en tu computadora o móvil:

Esto equivale a que el protocolo BTC haga una consulta o un request del estado de la dirección mhWmofYSHLdwvkA3Y51eARqZM1z9YcCS1C en el blockchain de BTC testnet.

La respuesta es la información de esa dirección en formato JSON. De la última transacción con hash:

e4a5829dd872187a06d4eaf5e495cc53b51de6ae16fd1f53cf42856661bd270f

En la imagen que sigue, en la línea 24 se indica que dispone de un valor 10,000 microBTC.

 

UTXO fondos disponibles de una dirección BTC

A continuación, el protocolo BTC hace una solicitud o request al blockchain para estructurar un JSON llamado UTXO (Unspent transaction output). Este utxo indica cuales son los fondos disponibles para ser gastados por esa dirección o cuenta.

El blockchain retorna el utxo en código Hexadecimal.

 

Como se construye una transacción BTC sin procesar

(raw transaction).

En la imagen que sigue encontramos que:

  • Con la información del utxo constituye el Input o entrada.

  • Existen dos output o salidas, una salida es a quien se destinan los fondos y otra para devolver el cambio si la cantidad a enviar es menor que la cantidad en el Input.

  • En la línea 40 se firma la transacción con la clave privada.

  • En la línea 44 se pide devolver la raw transaction en código hexadecimal.

Una vez ejecutado el software anterior, obtenemos la raw transaction en formato hexadecimal:

 

Como se incluye una transacción en el blockchain BTC

El protocolo BTC procede a enviar la raw transaction (en la imagen que sigue asignada a la variable tx, en el JSON pushtx) de su billetera o computadora, empujando la tx al blockchain ubicado en los nodos completos de BTC.

Ahora tenemos la transacción procesada y en formato JSON, que nos devuelve el protocolo BTC a nuestra computadora desde el blockchain en el nodo que lo proceso:

Finalmente se puede verificar el saldo de la dirección o cuenta del destinatario de los fondos, en la billetera o en el explorador blockchain de BTC en tu móvil o computadora.

 
Carlos Sampson