Volver al inicio
Cinco ideas. Empieza donde quieras.

02 · Bitcoin

¿Cómo permite Bitcoin que muchas computadoras se pongan de acuerdo sobre lo que se registra?

En una red sin una organización que administre el registro, muchas computadoras pueden guardar sus propias copias y comprobar las solicitudes de pago.

Pero las solicitudes viajan por la red y no llegan a cada computadora en el mismo instante. Si dos solicitudes entran en conflicto, computadoras distintas pueden llegar temporalmente a resultados distintos.

Bitcoin usa un método que permite que muchas computadoras lleguen con el tiempo al mismo registro, sin una organización central.

Cada computadora puede comprobar un pago, pero todavía tenemos que decidir qué se agrega al registro

Supón que Emma tiene dinero suficiente solo para un pago.

Intenta usar el mismo dinero una vez para pagarle a Liam y otra vez para pagarle a Olivia.

Cada computadora puede comprobar una solicitud por su cuenta: ¿está autorizada, los fondos siguen disponibles y sigue las reglas?

Pero si las dos solicitudes usan el mismo dinero, solo una se puede agregar al registro.

Así que comprobar una transacción no basta. También necesitamos una forma compartida de decidir qué transacciones se agregan al registro, y en qué orden.

Las transacciones entran en el registro dentro de bloques

Una transacción es una solicitud para cambiar el registro. Por ejemplo: Emma le envía 30 USD a Liam.

Bitcoin no agrega cada transacción al registro una por una. Varias transacciones se reúnen juntas, junto con información que las conecta con lo que ya se registró.

Ese paquete se llama bloque.

Un bloque es un paquete que intenta convertirse en la siguiente actualización del registro.

Pero si no hay un administrador que elija la siguiente actualización, ¿quién la crea?

Los mineros intentan crear el siguiente bloque

Algunos participantes operan computadoras que intentan crear el siguiente bloque. Se llaman mineros.

Cada minero prepara un bloque posible y repite un cálculo conectado con ese bloque.

Cada intento produce un resultado nuevo, y nadie puede saber de antemano qué intento va a cumplir el requisito de Bitcoin.

Un minero que encuentra un resultado que cumple puede publicar su bloque en la red.

Esta búsqueda computacional se llama prueba de trabajo.

Más potencia de cómputo significa más intentos, y eso da una mayor probabilidad de encontrar un resultado que cumpla.

Encontrar el resultado le da al minero una oportunidad de proponer un bloque. No le da autoridad para cambiar las reglas.

Los nodos todavía comprueban cada bloque

Cuando un minero publica un bloque, los nodos de la red lo comprueban por su cuenta.

Comprueban que sus transacciones sigan las reglas, que el dinero ya gastado no se vuelva a gastar y que la prueba de trabajo sea válida.

Si algo no es válido, rechazan el bloque.

Así que hay dos roles distintos:

Los mineros intentan crear y proponer el siguiente bloque.

Los nodos comprueban si el bloque se puede aceptar.

Ni siquiera un minero con muchísima potencia de cómputo puede hacer válida una transacción inválida.

Cada bloque nuevo se conecta con lo que ya se registró

Un bloque nuevo no está solo.

Contiene una referencia al bloque anterior. El siguiente bloque se refiere a ese, y así sucesivamente.

Eso crea una secuencia conectada de bloques.

Esa secuencia se llama blockchain.

En términos simples, cada bloque dice:

«Sigo desde aquí.»

A veces aparecen dos continuaciones válidas casi al mismo tiempo

La información tarda en pasar de una computadora a otra por la red.

Un minero puede encontrar y publicar un bloque.

Antes de que otro minero se entere, ese minero también puede encontrar un bloque válido que continúa desde el mismo bloque anterior.

Durante un momento breve, hay dos continuaciones posibles de la misma cadena.

Los dos bloques pueden ser válidos.

Esta división temporal se llama bifurcación.

Entonces, ¿desde qué rama deberían continuar los nodos?

Los nodos continúan desde la rama más pesada

Cada bloque exige prueba de trabajo.

Cuando se siguen construyendo bloques nuevos sobre una rama, se acumula más trabajo computacional detrás de esa rama.

Entre las ramas válidas, Bitcoin define la cadena preferida como la que tiene más prueba de trabajo acumulada.

Puedes pensarla como la rama más pesada.

«Más pesada» no significa necesariamente que tenga simplemente más bloques. Significa que se acumuló más trabajo detrás de ella.

Un bloque de la otra rama no era necesariamente falso ni inválido. Simplemente no siguió formando parte de la cadena principal desde la que continuó la red.

Una cadena naranja de Bitcoin se divide un momento en dos ramas válidas. Una rama acumula más Proof of Work y sigue en naranja. El otro bloque sigue visible, se pone gris y se aparta. La rama preferida la determina el trabajo acumulado, no simplemente la cantidad de bloques.

Una comparación conceptual del trabajo acumulado, no un conteo de bloques.

A medida que se acumula más trabajo, cambiar el pasado se vuelve más difícil

Supón que el pago de Emma ya está dentro de un bloque de la cadena que la red está siguiendo.

Después se construye más trabajo, y después más otra vez.

Para reemplazar esa historia, no basta con editar un registro viejo. Una historia alternativa necesitaría suficiente prueba de trabajo para superar la historia que la red ya está siguiendo.

Así que, a medida que se acumula más trabajo después de un pago, la confianza en ese pago en general crece.

De aquí sale también la idea de las confirmaciones.

No hay un número mágico que haga que un pago sea 100 % imposible de revertir. La confianza aumenta poco a poco.

Entonces, ¿qué está haciendo Bitcoin?

Los nodos comprueban transacciones y bloques por su cuenta.

Los mineros compiten mediante la prueba de trabajo por la oportunidad de proponer el siguiente bloque.

Los bloques se conectan entre sí para formar una blockchain.

Y si aparecen temporalmente dos continuaciones válidas, los nodos continúan desde la rama con más trabajo acumulado.

Así es como muchas computadoras pueden converger con el tiempo en el mismo registro, sin que una organización lo administre.

¿Y si queremos que la red haga más que registrar quién le pagó a quién?

Hasta ahora, las reglas comprobaron pagos y ayudaron a decidir el orden en el que se registran.

Pero ¿y si también pudiéramos decidir por adelantado qué debería pasar con el dinero cuando se cumple una condición?

Por ejemplo:

Las personas envían dinero a un proyecto. Si se reúnen 10.000 USD para una fecha determinada, el dinero va al proyecto. Si no se alcanza la meta, el dinero se devuelve a las personas que lo enviaron.

¿Y si las computadoras de la red pudieran aplicar esa regla por sí mismas?

Continuar: Ethereum
Profundidad opcional

Un modelo de valor que se puede gastar

Las cantidades en USD son un ejemplo para aprender, no una descripción de enviar dólares en Bitcoin. Por dentro, Bitcoin no guarda saldos de cuenta al estilo de un banco: una transacción usa salidas disponibles de transacciones anteriores.

¿Cómo se comprueba la autorización?

Una firma digital permite que otros comprueben que una solicitud está autorizada sin exponer la clave privada.

Las dos ramas pueden ser válidas

Un bloque que compite no es necesariamente fraudulento. Entre las ramas válidas, la preferencia depende de la prueba de trabajo acumulada, no del número bruto de bloques.

Las confirmaciones construyen confianza poco a poco

Ningún número fijo de confirmaciones hace que un cambio en la historia sea matemáticamente imposible. La confianza también depende de la potencia de cómputo de un atacante y de los supuestos sobre la comunicación.

Fuentes

Las fuentes externas están en inglés.