¿Cómo funciona Bitcoin?
Una explicación rápida para principiantes
Bitcoin es un sistema de pago electrónico que permite a cualquier persona crear una cuenta y enviar cualquier cantidad de dinero a cualquier parte del mundo.
Quizá quieras leer eso otra vez.
Fue creado como una alternativa al sistema financiero actual. En el sistema actual tenemos un pequeño número de grandes bancos que controlan quién puede crear una cuenta y qué transacciones puedes hacer. Esto centraliza el control del dinero, y no tenemos otra opción que confiar en que esos bancos actúen de forma justa y responsable.
Hay que confiar en que los bancos guarden nuestro dinero y lo transfieran electrónicamente, pero lo prestan en oleadas de burbujas de crédito con apenas una fracción en reserva.
Bitcoin se desarrolló en respuesta a la crisis financiera de 2007-2008 causada por la centralización del sistema actual. Fue diseñado de forma anónima por Satoshi Nakamoto y se lanzó en enero de 2009 como un sistema de pago que funciona sin un punto central de control.
También es un software de código abierto, lo que significa que cualquier persona puede ejecutar el programa e interactuar con el sistema.
Lo que sigue es una explicación sencilla de cómo funciona.
¿Qué es Bitcoin?
Bitcoin es solo un programa de computadora. Puedes descargarlo y ejecutarlo en tu propia computadora.
Cuando ejecutas el programa por primera vez, se conecta a otras computadoras que ejecutan el mismo programa, y empiezan a compartir un archivo contigo. Ese archivo se llama blockchain, que es una gran lista de transacciones.
Cuando una nueva transacción entra en la red, se retransmite de computadora en computadora hasta que todas tienen una copia de ella. En intervalos de aproximadamente 10 minutos, una computadora aleatoria (nodo) de la red añade a la blockchain las transacciones más recientes que ha recibido y comparte las actualizaciones con todas las demás.
Como resultado, el programa Bitcoin crea una gran red de computadoras que se comunican entre sí para compartir un archivo y actualizarlo con nuevas transacciones.
¿Qué problema resuelve Bitcoin?
Bitcoin resuelve el problema de poder tener un sistema de pago que opera sin un punto central de control.
Antes de Bitcoin, ya era posible retransmitir transacciones por una red de computadoras. Sin embargo, el problema es que puedes introducir transacciones en conflicto en una red de computadoras. Por ejemplo, podrías crear dos transacciones separadas que gasten la misma moneda digital y enviar ambas a la red al mismo tiempo.
Esto se llama "doble gasto" (double-spend):
Algunas computadoras recibirán primero la transacción verde, y otras recibirán primero la transacción roja.
Ahora bien, si estás creando un sistema de pago electrónico sin una autoridad central, tienes el problema de averiguar cuál de esas transacciones llegó "primero", y eso es algo difícil de determinar cuando tienes una red de computadoras actuando de forma independiente.
Entonces, ¿quién debe decidir qué transacción llegó "primero" y debe ser la única registrada en el archivo?
Bitcoin resuelve este problema obligando a los nodos a mantener todas las transacciones que reciben en la memoria antes de registrarlas en un archivo. Luego, en intervalos de 10 minutos, un nodo aleatorio de la red añade las transacciones de su memoria al archivo.
Ese archivo actualizado se comparte luego con el resto de la red. Los nodos aceptan las transacciones del archivo actualizado como las "correctas" y eliminan de su memoria cualquier transacción en conflicto.
Como resultado, ninguna transacción de doble gasto se registrará en el archivo, y todos los nodos se actualizan con regularidad a la misma versión del archivo compartido.
Este proceso de añadir transacciones al archivo se llama minería, y es una competencia en toda la red que no puede ser controlada por un único nodo.
¿Cómo funciona la minería?
La minería es el proceso de añadir nuevos bloques de transacciones a la blockchain.
Para empezar, cada nodo almacena las transacciones más recientes que ha recibido en su memory pool, que es solo una memoria temporal en su computadora.
Cualquier nodo puede entonces intentar minar las transacciones de su memory pool en el archivo compartido (la blockchain).
Para hacerlo, un nodo reúne las transacciones de su memory pool en un contenedor llamado bloque y luego usa poder de procesamiento para intentar añadir ese bloque de transacciones a la blockchain.
Entonces, ¿de dónde sale ese poder de procesamiento? Pues bien, para añadir ese bloque a la blockchain, necesitas pasar tu bloque de transacciones por algo llamado función de hash. Una función de hash es básicamente un mini programa de computadora que recibe cualquier cantidad de datos, los mezcla y escupe un número completamente único (e impredecible).
Para que tu bloque se añada con éxito a la blockchain, ese número (o hash del bloque) debe ser igual o inferior al objetivo, que es un límite con el que todos en la red están de acuerdo.
Si tu hash de bloque resultante no está por debajo del objetivo, puedes hacer un pequeño ajuste en los datos dentro del bloque y pasarlo por la función de hash otra vez. Esto producirá un número completamente diferente que, con suerte, estará por debajo del objetivo. Si no, ajustas el bloque y lo intentas de nuevo.
En algún momento, uno de los nodos (o mineros) de la red encontrará un hash de bloque por debajo del objetivo, y ese bloque de transacciones se añadirá a la blockchain.
Entonces el proceso de minería empieza de nuevo para añadir el siguiente bloque a la cadena.
Así que, en resumen, el proceso de minería usa poder de procesamiento para hacer cálculos de hash lo más rápido posible, intentando ser la primera computadora de la red en obtener un hash de bloque por debajo del objetivo. Si lo consigues, puedes añadir tu bloque de transacciones a la blockchain y compartirlo con el resto de la red.
El uso de la función de hash junto con un valor objetivo crea una competencia en toda la red en la que cualquiera puede participar. También significa que ninguna computadora aislada de la red tiene control total sobre la adición de transacciones a la blockchain, lo que crea una red de compartición de archivos sin un punto central de control.
Aunque todavía es posible que cualquiera intente minar bloques, ya no resulta competitivo hacerlo en una computadora doméstica. Los mineros ahora usan hardware especializado, diseñado para realizar cálculos de hash lo más rápido (y de la forma más eficiente) posible, lo que significa que la minería hoy la hacen principalmente quienes tienen acceso a hardware especializado y electricidad barata.
¿De dónde vienen los bitcoins?
Como incentivo para usar poder de procesamiento en el intento de añadir nuevos bloques de transacciones a la blockchain, cada nuevo bloque pone a disposición una cantidad fija de bitcoins que no existían antes. Por lo tanto, si consigues minar un bloque con éxito, puedes "enviarte" a ti mismo esos nuevos bitcoins como recompensa por tu esfuerzo.
Ese lote de nuevos bitcoins se llama recompensa del bloque y es la razón por la que el proceso se llama "minería".
¿Por qué el archivo se llama "blockchain"?
Las transacciones no se añaden al archivo individualmente: se recogen juntas y se añaden en bloques. Cada uno de estos nuevos bloques se construye sobre un bloque existente, y así el archivo se forma a partir de una cadena de bloques; de ahí, blockchain (cadena de bloques).
Además, todo nodo de la red siempre adoptará la cadena más larga de bloques que reciba como la versión "oficial" de la blockchain.
Esto significa que los mineros siempre intentarán construir sobre la "punta" de la cadena de bloques conocida más larga, ya que cualquier transacción que no forme parte de la cadena más larga será inválida.
Por lo tanto, si alguien quisiera reescribir el historial de transacciones, necesitaría reconstruir una cadena de bloques más larga para crear una nueva cadena más larga que los demás nodos adopten. Sin embargo, para lograrlo, un único minero necesitaría tener más poder de procesamiento que el resto de la red en conjunto.
Como resultado, el esfuerzo combinado de la red hace difícil que cualquier individuo "adelante" a la red y reescriba la blockchain.
En otras palabras, todo el historial de transacciones (y tu dinero) está protegido por la energía combinada de la minería.
¿Cómo funcionan las transacciones?
Puedes pensar en la blockchain como un depósito de cajas de seguridad, que llamamos salidas. Estas salidas son solo contenedores que guardan distintas cantidades de bitcoin.
Cuando haces una transacción de bitcoin, seleccionas algunas salidas y las desbloqueas, luego creas nuevas salidas y les pones nuevos candados.
Así que, cuando "envías" bitcoins a alguien, en realidad estás poniendo una cantidad de bitcoins en una nueva caja de seguridad y colocándole un candado que solo la persona a la que estás "enviando" los bitcoins puede abrir.
Por ejemplo, si yo quisiera enviarte algunos bitcoins, seleccionaría algunas salidas de la blockchain que puedo desbloquear y crearía una nueva salida a partir de ellas que solo tú puedes desbloquear. Además, si no quisiera enviarte todos los bitcoins que desbloqueé, crearía una salida extra como mi "cambio" y la bloquearía para mí mismo.
De aquí en adelante, si quieres enviar tus bitcoins a otra persona, repetirías el proceso de seleccionar salidas existentes (que puedes desbloquear) y crear nuevas salidas a partir de ellas. Como resultado, las transacciones de bitcoin forman una estructura parecida a un grafo, donde el movimiento de los bitcoins está conectado por una serie de transacciones.
Por último, cuando una transacción se mina en la blockchain, las salidas que se consumieron (gastaron) en la transacción no pueden usarse en otra transacción, y las salidas recién creadas quedarán disponibles para gastarse en una transacción futura.
¿Cómo posees bitcoins?
Para poder "recibir" bitcoins, necesitas tener tu propio conjunto de claves.
Ese conjunto de claves es como tu número de cuenta y contraseña, solo que en Bitcoin se llaman clave pública y clave privada.
Por ejemplo, si yo quisiera enviarte algunos bitcoins, primero necesitarías darme tu clave pública. Cuando creara mi transacción, pondría tu clave pública dentro del candado de la salida (la caja de seguridad). Y cuando quisieras enviar esos bitcoins a otra persona, usarías tu clave privada para desbloquear esa salida.
Entonces, ¿de dónde sacas una clave pública y una clave privada? Pues bien, con la ayuda de la criptografía, en realidad puedes generarlas tú mismo.
En resumen, tu clave privada es solo un gran número aleatorio, y tu clave pública es un número calculado a partir de esa clave privada. Pero la parte ingeniosa es: puedes darle tu clave pública a otra persona, pero no puede trabajar hacia atrás a partir de ella para descubrir la clave privada.
Ahora, cuando quieres desbloquear bitcoins que están asignados a tu clave pública, usas tu clave privada para crear lo que se llama una firma digital. Esa firma demuestra que eres el dueño de la clave pública (y, por lo tanto, puedes desbloquear los bitcoins), sin tener que revelar tu clave privada. Esa firma además solo es válida para la transacción para la que se creó, así que no puede usarse para desbloquear otros bitcoins bloqueados a la misma clave pública.
Este sistema se conoce como Criptografía de Clave Pública y está disponible desde 1978 (véase RSA). Bitcoin hace uso de este sistema para permitir que cualquiera cree claves para enviar y recibir bitcoins de forma segura, sin necesidad de una autoridad central que emita cuentas y contraseñas.
En Bitcoin, convertimos la clave pública en una dirección más amigable, que es lo que normalmente usarás al enviar y recibir pagos.
Resumen
Para usar Bitcoin, generas tu propia clave privada y clave pública. Tu clave privada es un número aleatorio muy grande, y tu clave pública se calcula a partir de ella. Estas claves pueden generarse fácilmente en tu computadora, o incluso en algo tan simple como una calculadora. La mayoría de las personas, sin embargo, usan una billetera de bitcoin para ayudar a generar y gestionar sus claves.
Para recibir bitcoins, le das a la persona que va a enviártelos tu clave pública. Esa persona crea entonces una transacción en la que desbloquea bitcoins que posee y crea una nueva "caja de seguridad" de bitcoins, colocando tu clave pública dentro del candado.
Esa transacción se envía luego a un nodo, donde se retransmite de computadora en computadora hasta que todos los nodos de la red tienen una copia de ella. A partir de ahí, cada nodo tiene la oportunidad de intentar minar las transacciones más recientes que ha recibido en la blockchain.
El proceso de minería consiste en que un nodo recoge transacciones de su memory pool en un bloque y repetidamente hace el hash del bloque (con un pequeño ajuste cada vez) para intentar obtener un hash de bloque por debajo del valor objetivo actual.
El primer minero en encontrar un hash de bloque por debajo del objetivo añadirá el bloque a su blockchain y transmitirá ese bloque a los demás nodos de la red. Cada nodo verifica entonces y añade ese bloque a su blockchain (eliminando en el proceso cualquier transacción en conflicto de su memory pool) y reinicia el proceso de minería para intentar construir sobre ese nuevo bloque de la cadena.
Por último, el minero que minó ese bloque habrá colocado su propia transacción especial dentro del bloque, lo que le permite recoger una cantidad determinada de bitcoins que aún no existían. Esa recompensa del bloque funciona como un incentivo para que los nodos sigan construyendo la blockchain, al mismo tiempo que distribuye nuevas monedas por la red bitcoin.
Conclusión
Bitcoin es un programa de computadora que comparte un archivo seguro con otras computadoras alrededor del mundo. Ese archivo seguro está formado por transacciones, y esas transacciones usan criptografía para permitir que las personas envíen y reciban cajas de seguridad digitales.
Como resultado, esto crea un sistema de pago electrónico que puede usar cualquier persona y opera sin un punto central de control.
La red Bitcoin funciona ininterrumpidamente desde su lanzamiento en enero de 2009. En 2023, la red Bitcoin procesó más de 153 millones de transacciones, moviendo un total de US$ 12.820.677.140.286 (12,82 billones)1.
El propio programa Bitcoin también está en desarrollo activo, con más de 600 personas contribuyendo al código desde su lanzamiento2. Esto se debe a que el software es de "código abierto", lo que significa que cualquiera puede ver el código y contribuir a mejorarlo.
- bitcoin.pdf – Whitepaper
- github.com/bitcoin/bitcoin/ – Código fuente