Blockchain
El archivo permanente de transacciones de 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.
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.
Hash del Bloque
Ajuste de Dificultad
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.