Cómo funciona una transacción de Bitcoin portada. Descentralización transacción

¿Cómo funciona una transacción de Bitcoin?

Cómo funciona una transacción de Bitcoin desde que realizas un envío hasta que se confirma en la cadena de bloques de Bitcoin.

Si alguna vez has realizado un envío o recibo de Bitcoin, quizás te hayas preguntado cómo funciona una transacción de Bitcoin. En este artículo voy a detallar cuáles son los pasos que ocurren realmente desde que envías Bitcoin desde tu cartera, hasta que te aparece que tu transacción tiene una confirmación en la cadena de bloques.

Creación de la transacción

Cuando decides enviar cierta cantidad de Bitcoin, tu cartera construye una transacción acumulando los Bitcoin necesarios de los que tienes en tu cartera. Le asigna una o varias direcciones que defines de destino y firma esa transacción con tu clave privada.

Tu cartera no escribe la clave privada en la transacción, porque todo el mundo la sabría, sinó que utiliza un “hash” de la misma para demostrar que la tienes, pero no revelar la original.

Hash

Resumiendo, un hash es el resultado de una función donde una entrada da un único resultado de números totalmente diferente. Con la capacidad de computación actual, no se puede obtener el número de entrada a partir del hash. Por tanto, se sabe que siempre se va a obtener ese hash a partir de la misma entrada, pero nunca podrás obtener el valor de entrada con el hash.

Una pequeña variación en el número de entrada varía completamente el resultado de salida. Es muy útil para no revelar una clave privada y para demostrar que un número no se ha falsificado. Se utiliza también para asegurar que no se han modificado documentos o software.

Transmisión de la transacción

Una cartera de Bitcoin se conecta a entre 1 y 8 nodos, los cuales pueden ser carteras, nodos de mineros, nodos que pertenecen a un exchange, a tiendas de e-commerce, o simplemente una persona que tiene un nodo por diversión. Tu cartera emite la transacción construida a uno o varios de los nodos a los que está conectado. Todos estos nodos reciben la transacción de tu nodo. Cada nodo valida todas las transacciones que recibe.

Cuando reciben tu transacción, no saben si tu nodo creó la transacción, o si tu nodo simplemente la está reenviando, porqué reciben transacciones de todos los nodos a los que están conectados continuamente. Las transacciones siguen propagándose hasta que las ha validado toda la red.

En el proceso de validación se revisan:

  • Todas las cantidades son correctas
  • Tiene la comisión necesaria
  • No está gastando una cantidad previamente gastada
  • Firmas válidas
  • Otras reglas de consenso, etc.

Algunos de esos nodos serán mineros.

Base de datos de las transacciones en los nodos o “mempool”

Todos los nodos tienen una base de datos de todas las transacciones que no están confirmadas, es decir, que todavía no están incluidas en la cadena de bloques. Esta base de datos se llama “mempool”, pero no es una única base de datos central, sino que es un registro que tienen todos los nodos. Debido a las diferencias de llegada de cada transacción a cada nodo, estas bases de datos pueden variar ligeramente, pero tienen un 99% de coincidencia entre ellas. Tu transacción se encontrará en la mayoría de mempools de la mayoría de nodos.

Para los mineros, las mempools son las transacciones que pueden añadir al siguiente bloque.

Los mineros y creación de los bloques

Los mineros se encuentran permanentemente en una carrera con todos los otros mineros para construir el siguiente bloque y llevarse su recompensa. Para construir el siguiente bloque, necesitan solucionar la prueba de trabajo (proof-of-work).

  1. Primero construyen un bloque vacío que tiene:
    1. un enlace al bloque previo más reciente para establecer su posición en la cadena
    2. Timestamp o marca de tiempo
    3. La transacción de recompensa por encontrar el bloque hacia él mismo. Siempre es la primera transacción que encuentras en un bloque
    4. Otra información en la cabecera
  2. Envían el bloque a todos los equipos de minado para empezar a buscar una prueba de trabajo.
  3. Buscan en la mempool de transacciones no confirmadas las que pagan la comisión más alta, que ellos cobrarán y así maximizar las ganancias.
  4. Empiezan a realizar pruebas con transacciones dentro del bloque candidato. A medida que añaden más transacciones, los bloques se hacen más grandes (en bytes).
  5. Cambiando unos números aleatorios de la cabecera del bloque que no tienen utilidad para tu transacción, empiezan a realizar hashes sin parar.
  6. Si tienen suerte, después de realizar miles de millones de pruebas, encuentran el hash de un bloque que tiene un número inferior al objetivo de dificultad. Por consiguiente, han encontrado un bloque correcto que puede ser el siguiente en añadirse a la cadena de bloques y así cobrar la recompensa.
  7. Notifican al nodo del minero que ha encontrado un bloque válido y el nodo lo propaga hacia los siguientes nodos, de la misma forma que los nodos envían las transacciones no confirmadas.
  8. Si nadie más ha encontrado otro bloque, o si este bloque lo han aceptado el 51% de los nodos de la red, han ganado la carrera y el bloque pasa a ser añadido a la cadena de bloques.

Cuando otros mineros reciben este bloque, lo validan tan rápido como pueden, paran de buscar el bloque con las especificaciones anteriores y empiezan con las del nuevo bloque recibido.

Los nodos que reciben el nuevo bloque lo verifican y luego revisan qué transacciones de su mempool están incluidas en el bloque, para sacarlos de su mempool.

Propagación del bloque y confirmación de la transacción

El bloque se propaga por todos los nodos de la red hasta que llega otra vez a tu cartera y entonces sabe que tu transacción tiene una confirmación.

Hay diferentes usuarios que dan por buena una transacción a partir de que tiene cierto número de transacciones. Aunque tenga una confirmación, puede ocurrir que haya dos bloques aceptados por diferentes partes de la red, hasta que una cadena pasa a tener más bloques y los que estaban aceptando una más corta rectifican y dan por buena la más larga. Ahora que ya sabes cómo funciona una transacción de Bitcoin, no te asustes si un servicio te pide más confirmaciones de las que tienes, es cuestión de 10 minutos por bloque o confirmación.


Espero que se haya entendido cómo funciona una transacción de Bitcoin para un nivel intermedio de conocimientos. Poco a poco iré entrando en más detalles de diferentes aspectos de Bitcoin más técnicos. Si quieres realizar algún apunte, sugerencia o corrección, no dudes en dejar un comentario o enviar un correo a info@inviertenbitcoin.com.

Referencias

Ciclo de vida de una transacción – Andreas M. Antonopoulos

Bitcoin whitepaper – Satoshi Nakamoto

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.