This article has been translated from English to Spanish.

¿Cómo funcionan las transacciones de Bitcoin?

Una transacción de Bitcoin es una transferencia de una cierta cantidad de bitcoins de una dirección a otra dirección que se registra en la cadena de bloques.

Pero, ¿cómo funciona realmente este proceso de «transferencia»?

En esta lección, te mostraré cómo funciona una transacción de Bitcoin de principio a fin.

Primero, veremos cómo funciona una transacción de Bitcoin desde la perspectiva de un usuario. Y después, veremos cómo funciona una transacción de Bitcoin a vista de pájaro.

Esto te ayudará a recordar todos los nuevos conceptos que has aprendido en las lecciones anteriores.

¿Estás listo?

Start Bitcoin Transaction

Digamos que Ironman tiene 1 bitcoin que quiere enviar a Batman.

Ironman sends 1 BTC to Batman

Desde la perspectiva de Ironman

Lo primero que haría Ironman sería abrir su monedero de Bitcoin.

Podría ser cualquier tipo de cartera, pero en este ejemplo, está utilizando una cartera de software que ha instalado en su ordenador portátil.

Ironman initiates Bitcoin transaction

Lo siguiente que hace es pedirle a Batman su dirección de Bitcoin.

Aquí es donde Batman quiere recibir su bitcoin. Batman le envía por correo electrónico una dirección de Bitcoin e Ironman la copia y pega.

Ironman asks for Batman's address

A continuación, Ironman introduce la cantidad de bitcoins que quiere enviar a Batman.

Batman enters 1 BTC

Como sus enormes dedos de aleación de oro y titanio son propensos a los errores tipográficos, comprueba dos veces que ha introducido el número correcto.

Y pulsa Enviar.

Batman sends 1 BTC

A continuación, el software de la cartera solicita la contraseña para confirmar la transacción.

Para enviar bitcoins, Ironman necesita demostrar a la red Bitcoin que es él quien envía el dinero y que es el propietario de los bitcoins.

Ahí es donde entra en juego su clave privada (que está almacenada en el monedero).

Después de que Ironman introduce la contraseña correcta, el software de la cartera«firma» la transacción utilizando la clave privada de Batman, creando un dato independiente conocido como«firma digital». (Todo esto se hace entre bastidores).

Bitcoin wallet signs transaction

Transacción de Bitcoin entre bastidores

A partir de aquí, la participación de Batman se da por terminada.

El software de la cartera se conecta a un nodo de Bitcoin y envía el mensaje de transacción, junto conla «firma digital» y la clave pública.

El nodo comprueba si la transacción es válida:

  • ¿Tiene el remitente suficientes BTC vinculados a su dirección para realizar la transacción?
  • ¿Está autorizado el remitente a enviar el BTC?

Por ejemplo, comprueba que Batman tenga realmente 1 BTC para enviar. Si la transacción supera todas las comprobaciones, el nodo la transmite a otros nodos.

Por defecto, los nodos no confían entre sí, por lo que validarán la transacción de nuevo por sí mismos.

Y solo si consideran que la transacción es válida, la compartirán con los nodos a los que estén conectados.

Bitcoin transaction sent to nodes

Si una transacción se considera válida, se almacena en un área de almacenamiento temporal conocida como «grupo de memoria» o«mempool».

En este punto, una transacción se considera «sin confirmar» o«pendiente».

Bitconi transaction stored in mempool

Nodos especiales conocidos como«mineros» empaquetarán esta transacción junto con otras transacciones válidas de su mempool enun «bloque».

Bitcoin miners bundle transactions into a block

Los mineros competirán entonces por ser los primeros en «minar» su bloque. Esto implica tratar de encontrar un número que comience con un número específico de ceros.

La única forma de encontrar este número es mediante prueba y error. En otras palabras, haciendo tantas conjeturas como sea posible.

Bitcoin miners compete

El primer minero que adivine un número correcto será el primero en «extraer» su bloque.

En el momento en que el minero acierta, comparte su bloque junto con el «número ganador» con otros nodos de la red Bitcoin.

First Bitcoin miner to guess correct nonce wins

Los nodos de la red Bitcoin verifican que el minero haya adivinado el número correcto y, si es correcto, añaden el bloque del minero ganador a su copia de la cadena de bloques. Y también envían este bloque a otros nodos.

Dado que el bloque (que contiene la transacción) se ha añadido a la versión «oficial» de la cadena de bloques, la transacción se considera ahora«confirmada».

Una vez que se crea ese bloque y se verifica e incluye la nueva transacción en ese bloque, se dice que la transacción tiene«una confirmación».

Bitcoin nodes validate new block

Desde la perspectiva de Batman

Batman ve que la transacción ha sido confirmada y comprueba su cartera de Bitcoin para ver si el bitcoin ha sido transferido.

Bitcoin transaction confirmed

Cuantos más bloques se hayan construido sobre el bloque con la transacción de Ironman, más «confirmada» estará la transacción en la cadena de bloques.

Básicamente, cada bloque añadido se considerauna «confirmación adicional». Esperar seis confirmaciones es el estándar actual para que la mayoría de las transacciones se consideren seguras.

¡Y con tres ya lo tienes!

Un bitcoin ha sido transferido de una dirección propiedad de Ironman a una nueva dirección propiedad de Batman.

Y a menos que Ironman o Batman compartan públicamente su dirección de monedero Bitcoin, nadie sabrá que dos famosos superhéroes participaron en una transacción Bitcoin.

Todo lo que vería la gente es que se envía 1 BTC de una dirección a otra, pero no sabrían quién está detrás de las direcciones.

Como puedes ver, muchos de los pasos de una transacción de Bitcoin se realizan entre bastidores.

Una vez que Batman compartió su dirección con Ironman, e Ironman inició la transacción utilizando su cartera de Bitcoin, el resto fue manejado por computadoras y código de software.

Vista panorámica de una transacción de Bitcoin

Ahora echemos un vistazo a cómo funciona una transacción de Bitcoin.

Supongamos que Ironman ya ha introducido la dirección de Batman y la cantidad de bitcoins que quiere enviar.

Bitcoin has been sent

La cartera de Ironman se conecta a un nodo que transmite un mensaje a todos los ordenadores («la red Bitcoin») que ejecutan una copia de la base de datos actualizada («la cadena de bloques de Bitcoin») que dice, efectivamente:«Quiero enviar 1 bitcoin a Batman».

Ironman tiene una cadena única de letras y números llamada«clave privada». Con esta clave privada, el software de la cartera de Batman generauna «firma digital» que garantiza que el mensaje procede de él y no de nadie más.

Las computadoras(«nodos completos») de la red Bitcoin pueden confirmar fácilmente si Ironman es quien realmente envió el mensaje utilizando una cadena diferente de letras y números que Ironman proporciona, llamada«clave pública» para verificar esta «firma digital».

También pueden confirmar fácilmente que Ironman tiene 1 bitcoin para enviar porque todos tienen una copia de la base de datos actual.

Todos los nodos se actualizan constantemente entre sí con la información más reciente(«transacciones») que se añade a la red Bitcoin.

Una transacción existe como registro de la transferencia de bitcoin de una dirección a otra. Las transacciones no se registran individualmente en la cadena de bloques, sino que primero se agrupan en bloques.

Es importante destacar que, en este punto, la transacción solo se ha propuesto. Ningún ordenador ha actualizado aún su copia del libro mayor(«cadena de bloques»).

Las transacciones se colocan inicialmente en lo que equivale a una sala de espera(«mempool»), donde permanecen a la espera de confirmación.

El mempool (grupo de memoria) es una base de datos más pequeña de transacciones no confirmadas (pendientes) que mantiene cada nodo. Todas las transacciones en el mempool están pendientes y no se debe confiar en ellas hasta que se incluyan en un bloque.

Dado que la transacción solo se está proponiendo y no se ha liquidado, el sistema puede transmitir rápidamente el mensaje para asegurarse de que todos los participantes estén al tanto.

En el diagrama siguiente, Ironman y Batman están representados como carteras moradas.

Los círculos grises representan los ordenadores («nodos completos») que forman parte de la red Bitcoin peer-to-peer (P2P).

Los cuadrados negros representan la «cadena de bloques», copias actualizadas secuencialmente del libro de contabilidad, en el momento en que Ironman propone su transacción a la red.

Como puedes ver, copias idénticas de la cadena de bloques se almacenan en ordenadores de todo el mundo(«nodos completos») que ejecutan el software Bitcoin. Este diseño garantiza que ninguna entidad tenga el control del libro de contabilidad y hace que Bitcoin sea resistente al control (o cierre) por parte de cualquier gobierno o autoridad central.

Todos los nodos que mantienen una copia completa de la cadena de bloques, conocidos como«nodos completos», tendrían que ser destruidos para borrar el libro de contabilidad. Mientras el libro de contabilidad completo exista en al menos un nodo completo, habrá un registro de todas las transacciones de Bitcoin a lo largo de la historia.

Ironman and Batman as purple wallets

Por supuesto, Ironman no es el único que crea una transacción. Hay otros miembros de los Vengadores que envían sus bitcoins a otros destinatarios. Por ejemplo, el Capitán América podría estar enviando algunos bitcoins al Soldado de Invierno.

Aquí es donde entra un participante especial en la red:los «mineros».

Los mineros son ordenadores repartidos por todo el mundo que forman una parte fundamental de la red Bitcoin. Su trabajo consiste en agrupar nuevas transacciones válidas, como la de Ironman, y proponerlas para su liquidación.

Estos grupos de transacciones se denominan«bloques», de ahí el término «blockchain».

Un bloque es una colección de transacciones. Los bloques se enlazan cronológicamente para formar una «cadena de bloques» o blockchain.

En un momento dado, miles de estos ordenadores compiten entre sí por el derecho a crear el siguiente bloque. La competición consiste en resolver un «rompecabezas», y los mineros solo pueden proponer un nuevo bloque si resuelven el rompecabezas actual.

Este «rompecabezas» se reduce básicamente a tratar de adivinar un número correcto. Las probabilidades de adivinar un número correcto son de aproximadamente 1 entre 6 billones.

Así que el truco para ser el primero en encontrar un número "ganador" es adivinar tantos números como sea posible. Esto requiere mucha potencia informática, que utiliza enormes cantidades de energía.

Quien encuentre la solución primero tiene derecho a una recompensa, conocida como«recompensa de bloque».

La recompensa por bloque se diseñó para incentivar a los nodos a participar en la minería. De lo contrario, no habría mineros, ya que no podrían recuperar el alto coste de los ordenadores y el coste de la electricidad para hacerlos funcionar.

La recompensa por bloque consta de DOS componentes:

  1. Bitcoins recién acuñados
  2. Las tarifas de transacción (que paga la persona que inicia la transacción, como Ironman).

Los bitcoins recién acuñados «ganados» por el minero se conocen comoel «subsidio de bloque» y representan la mayor parte de la recompensa. Actualmente, cada nuevo bloque viene con una recompensa de 6,25 bitcoins recién acuñados.

Cada bloque contiene múltiples transacciones, y todas las transacciones incluyen una tarifa, que los mineros cobran.

En resumen:

Recompensa por bloque = subsidio por bloque + tarifas de transacción

La recompensa por bloque es lo que incentiva a los mineros a realizar el trabajo necesario para verificar las transacciones y mantener la base de datos.

Cada 210 000 bloques, o aproximadamente cada cuatro años, la subvención por bloque se reduce a la mitad en un evento conocido como«halving». Este proceso continuará hasta que la subvención por bloque sea cero. En ese momento, los mineros solo cobrarán comisiones por transacción.

Los nuevos bloques se liquidan en la red Bitcoin aproximadamente cada 10 minutos, aunque el tiempo exacto depende de la rapidez con la que se resuelva el «rompecabezas».

Hoy en día, la mayor parte de la minería se realiza mediante «grupos de minería», grupos de mineros que combinan su potencia de procesamiento y comparten la recompensa del bloque entre ellos.

Este proceso se muestra en el diagrama a continuación.

Bitcoin Network with Miners

Los mineros ahora están representados como círculos naranjas.

El cuadrado azul muestra el libro de contabilidad actualizado que incluye una serie de nuevas transacciones, incluida la de Ironman.

Por ahora, solo un participante de la red (el minero que propuso el nuevo bloque de transacciones ) puede ver el libro de contabilidad totalmente actualizado.

Todos los demás participantes siguen viendo solo los bloques más antiguos, que se muestran en negro.

Debido a que la recompensa es significativa, muchos mineros compiten para resolver cada bloque de transacciones.

Por diseño, resolver el «rompecabezas» es una tarea costosa, ya que requiere una importante potencia informática y mucha electricidad. Y es imposible saber cuál de los miles de mineros resolverá primero el «rompecabezas».

Una vez que un minero resuelve el «rompecabezas» (adivina un número correcto), puede publicar la solución y proponer su bloque de transacciones a la red.

Lo bueno de este enfoque es que, aunque resolver el rompecabezas es difícil y costoso, comprobar el resultado es muy fácil. Y cuando un minero publica una solución y su bloque de transacciones, otros miembros de la red comprueban el trabajo.

Si las transacciones son válidas y la solución al «rompecabezas» es correcta, los participantes de la red actualizan su copia de la base de datos para reflejar las nuevas transacciones.

En ese momento, la transacción de Ironman se considera resuelta o «confirmada». El bitcoin se ha movido de la dirección de Ironman a la dirección de Batman y se ha registrado oficialmente en la cadena de bloques.

Este«mecanismo de consenso» para determinar qué transacciones se registran de forma permanente y se «confirman» es el núcleo del diseño de la cadena de bloques de Bitcoin.

Este proceso se muestra a continuación.

Bitcoin Network syncs blockchain

Todos los participantes de la red han aceptado el nuevo bloque de transacciones propuesto (cuadradoazul ). Como resultado, sus libros de contabilidad se actualizan y sincronizan.

Es importante destacar que la competencia para liquidar el siguiente bloque de transacciones depende de la inclusión de la información del bloque anterior, lo que hace que los mineros actualicen rápidamente su copia de la base de datos y garantiza que sea muy difícil manipular un bloque liquidado.

Este «encadenamiento de bloques» es la razón por la que esta arquitectura de base de datos se denomina«cadena de bloques».

La cadena de bloques de Bitcoin contiene todos los bloques desde su creación, remontándose hasta el primer bloque conocido comoel «Bloque Génesis».

¿Qué pasa si el minero de Bitcoin desconocido que envía un bloque es un mal actor y propone un bloque de transacciones no válido que de alguna manera lo beneficia?

¿O qué pasa si Ironman es malintencionado y está intentando enviar el mismo bitcoin a Spider-Man y a Wonder Woman al mismo tiempo sin que nadie se dé cuenta?

Los participantes de la red examinan cada transacción en cada bloque propuesto y rechazan los bloques con transacciones no válidas. Hoy en día, ¡más de 100 000 nodos verifican de forma independiente cada transacción de Bitcoin!

Debido a que el trabajo de validar transacciones y garantizar que solo se liquiden transacciones válidas es trivialmente fácil para los participantes de la red, pero intentar liquidar transacciones es costoso, el incentivo para siquiera intentar defraudar el sistema es mínimo.

Resumen

Resumamos todas las interacciones en la red Bitcoin:

  • Si quieres enviar bitcoins a otra persona, debes proporcionar la dirección Bitcoin del destinatario y tu monedero se conectará a un nodo para iniciar una transacción.
  • El nodo verificará la transacción, la validará y luego transmitirá y retransmitirá la transacción válida a otros nodos y mineros. Si una transacción viola una de las reglas de Bitcoin, los nodos la rechazarán automáticamente.
  • Los mineros agrupan estas transacciones en un «bloque candidato» (bloque temporal) y compiten para ser los que publiquen su bloque en la cadena de bloques al ser los primeros en adivinar correctamente la solución a un «rompecabezas» matemático.
  • El minero «ganador» puede publicar este bloque temporal como un bloque permanente en la cadena de bloques, confirmando la transacción (y otras transacciones en el lote).
  • Los nodos reciben este bloque y verifican que el minero esté siguiendo las reglas de la red. (Si el bloque infringe una de las reglas de Bitcoin, los nodos lo rechazarán automáticamente).
  • Cada vez que un nodo recibe un nuevo bloque y lo considera válido, lo transmite a otros nodos, de modo que todos los nodos (incluidos los mineros) puedan permanecer sincronizados y mantener blockchains idénticos.
  • Todos los demás mineros eliminan el bloque temporal en el que estaban trabajando y comienzan un nuevo «bloque candidato» con un nuevo «rompecabezas» matemático.
  • Una vez que el nodo al que se conecta el monedero del destinatario haya recibido el nuevo bloque, el monedero del destinatario mostrará un saldo actualizado con los bitcoins recién recibidos.