Blockchain

El archivo permanente de transacciones de Bitcoin

Diagrama que muestra la blockchain como un archivo almacenado por los nodos de la red bitcoin.

La blockchain es un archivo de transacciones. Es el archivo más importante que mantiene un nodo bitcoin.

Se llama "blockchain" (cadena de bloques) porque las nuevas transacciones se agregan al archivo en bloques, y esos bloques se construyen uno sobre otro para crear una cadena de bloques.

Pero, al final, la blockchain es el almacenamiento permanente de las transacciones de bitcoin.

Blockchain en vivo — el explorador de bloques en tiempo real estará disponible en la Fase 3 (reconstruido sobre una API pública). Por ahora, esto es solo un marcador.

Descarga

¿Cómo obtienes una copia de la blockchain?

La forma más fácil de obtener una copia de la blockchain es ejecutar un nodo Bitcoin. Cuando ejecutas el programa (por ejemplo, Bitcoin Core), tu nodo descarga automáticamente bloques de otros nodos de la red hasta tener una copia actualizada en tu computadora.

Cuando los nodos se conectan, se informan entre sí la altura de su cadena durante el handshake inicial. Si otro nodo tiene más bloques que tú, tu nodo solicita esos bloques hasta tener una copia completa. No existe una versión única o definitiva de la "blockchain": cada nodo mantiene su propia copia local.

Puede tardar un tiempo en descargarse la blockchain completa la primera vez que ejecutas Bitcoin. Esto se llama Initial Block Download (IBD).

Minería

¿Cómo se agregan nuevos bloques a la blockchain?

Los nuevos bloques de transacciones tienen que ser minados en la blockchain. En resumen, la minería consiste en recopilar transacciones del memory pool en un bloque candidato y luego usar poder de procesamiento para producir un hash de bloque por debajo de un valor específico de objetivo. Cualquier nodo puede minar un nuevo bloque, pero tiene que usar energía para hacerlo.

Ícono de herramienta Hash del Bloque

Encabezado de Bloque

Decodifique y codifique un encabezado de bloque.

0 bytes
Encabezado de Bloque (Campos)

Versión

Versión: 0
0d
0d
Ícono de herramienta Ajuste de Dificultad

Ajuste de dificultad

Calcule el nuevo objetivo a partir del objetivo actual y del tiempo real de minería de un período de 2016 bloques.

0x
0 bytes
Tiempo (segundos)
0d
0d

El período de ajuste de dificultad es de 2016 bloques. En promedio, un bloque se mina cada 600 segundos (10 minutos), así que el tiempo esperado es 2016 × 600 = 1.209.600 segundos.

Razón

El tiempo real dividido por el tiempo esperado. Multiplicamos el objetivo actual por esa razón para obtener el nuevo objetivo.

0x
0x
0 bytes

del encabezado del bloque, y es ese objetivo el que realmente se usa en la minería.>Nota: este valor objetivo se trunca levemente para almacenarse en el campo

Cuando un nodo (o "minero") mina con éxito un nuevo bloque, lo comparte con los demás nodos. Al recibir ese nuevo bloque, los demás nodos lo añaden a su blockchain, y los mineros empiezan a intentar minar un nuevo bloque encima de él. Así, nuevos bloques se agregan a la blockchain cada 10 minutos (en promedio).

Reorganizaciones de la Cadena

¿Se pueden minar dos bloques al mismo tiempo?

Mientras se construye la blockchain, es perfectamente normal que dos bloques se minen al mismo tiempo, lo que causa un "fork" temporal en la cadena. En esa situación, los nodos consideran el primer bloque que reciben como parte de su blockchain, pero también guardan el segundo, por si acaso.

Ese desacuerdo se resuelve cuando se mina el siguiente bloque: este se construye sobre uno de esos bloques, creando una nueva cadena más larga, y los nodos siempre adoptan la cadena conocida más larga. Los nodos con la cadena más corta hacen una reorganización de la cadena. Este tipo de fork temporal es raro (ocurre aproximadamente una vez al mes) y normalmente solo afecta al bloque de la cima.

Cadena Más Larga

¿Se pueden reemplazar bloques en la blockchain?

Debido a la forma en que se construye la blockchain, es posible que los bloques en la cima de la cadena sean reemplazados. Los nodos siempre adoptan la cadena más larga como la versión "verdadera", así que podrías intentar construir una nueva cadena más larga para reemplazar una existente.

Sin embargo, todos los mineros están incentivados a construir siempre sobre la cadena conocida más larga, así que el poder de procesamiento combinado de la red protege los bloques (y transacciones) ya minados. La única forma de hacer una reorganización intencional sería tener más poder que todos los demás mineros combinados: el llamado ataque de 51%. Nadie ha realizado un ataque de 51% exitoso en la blockchain de Bitcoin.

Ubicación

¿Dónde se almacena la blockchain?

Si ejecutas un nodo Bitcoin Core, los archivos de la blockchain se encuentran en:

Linux:   ~/.bitcoin/blocks/
Mac:     ~/Library/Application Support/Bitcoin/blocks/
Windows: C:\Users\[usuario]\AppData\Roaming\Bitcoin\blocks\ (v27.2 y anteriores)
         C:\Users\[usuario]\AppData\Local\Bitcoin\blocks\ (v28.0 en adelante)

La blockchain se divide en varios archivos llamados blk00000.dat, blk00001.dat, etc., porque es más fácil trabajar con varios archivos pequeños que con un solo archivo gigante. Consulta blk.dat para más detalles.

Resumen

La blockchain es el almacenamiento permanente de las transacciones de bitcoin. Las nuevas transacciones se agregan en bloques, que se construyen unos sobre otros para crear una cadena.

Los nuevos bloques se agregan mediante la minería, que usa poder de procesamiento. Cuando se mina un nuevo bloque, se retransmite por la red, y los nodos lo verifican y lo agregan a su cadena. Esto convierte a la blockchain en un libro mayor de transacciones en constante crecimiento, distribuido entre varios ordenadores.

Los nodos siempre adoptan la cadena más larga como la versión activa, lo que resuelve desacuerdos y protege los bloques ya existentes. El mecanismo de minería y adopción de la cadena más larga permite que varios ordenadores acuerden el mismo conjunto de bloques y transacciones, al mismo tiempo que dificulta cambiar la historia. Como resultado, la blockchain es un archivo de transacciones seguro, distribuido y actualizado regularmente.

Recursos