Mastering Bitcoin
9. La Cadena de Bloques » Introducción
Página 59 de 98
9. La Cadena de Bloques
Introducción
La estructura de datos de la cadena de bloques (en inglés, «blockchain») es una lista ordenada, enlazada hacia atrás en el tiempo, de bloques de transacciones. La cadena de bloques se puede almacenar como un archivo plano, o en una base de datos simple. El cliente Bitcoin Core almacena los metadatos de la cadena de bloques usando la base de datos LevelDB de Google. Los bloques están enlazados «hacia atrás en el tiempo», cada uno referenciando al bloque anterior de la cadena. La cadena de bloques a menudo se visualiza como una pila vertical, con los bloques en capas uno encima de otro, sirviendo el primer bloque como la base de la pila. La visualización de bloques apilados unos encima de otros resulta en el uso de términos como «altura» para referirse a la distancia desde el primer bloque, y «arriba» o «punta» para referirse al bloque añadido más recientemente.
Cada bloque dentro de la cadena de bloques se identifica mediante un hash, generado utilizando el algoritmo criptográfico hash SHA256 en la cabecera del bloque. Cada bloque también hace referencia a un bloque anterior, conocido como el bloque padre, a través del campo «hash de bloque anterior» en la cabecera del bloque. En otras palabras, cada bloque contiene el hash de su padre dentro de su propia cabecera. La secuencia de los hashes que unen cada bloque a su padre crea una cadena que se remonta hasta el final del primer bloque jamás creado, conocido como el bloque génesis.
Aunque un bloque solo tiene un padre, puede tener temporalmente varios hijos. Cada uno de los hijos tiene una referencia al mismo bloque, al que consideran su padre, y cada uno de los hijos contiene también el mismo hash (de padre) en el campo «hash de bloque anterior». Los hijos múltiples surgen durante una bifurcación (en inglés, «fork») de la cadena de bloques, una situación temporal que se produce cuando se descubren diferentes bloques casi simultáneamente por diferentes mineros (ver apartado sobre minería). Con el tiempo, un bloque hijo se convierte en parte de la cadena de bloques y la «bifurcación» se resuelve. A pesar de que un bloque puede tener más de un hijo, cada bloque solo puede tener un padre. Esto se debe a que un bloque tiene un solo campo «hash de bloque anterior» que hace referencia a su único padre.
El campo «hash de bloque anterior» está dentro de la cabecera del bloque y por lo tanto afecta al hash del bloque actual. La identidad propia del hijo cambia si la identidad de los padres cambia. Cuando el padre se modifica de alguna manera, los cambios de hash de los padres también cambian. Cuando el hash del padre cambia requiere un cambio en el puntero «hash de bloque anterior» del hijo. Esto a su vez hace que el hash del hijo cambie, lo que requiere un cambio en el puntero del nieto, que a su vez cambia el nieto, y así sucesivamente. Este efecto cascada asegura que, una vez que un bloque tiene muchas generaciones siguientes, no puede ser cambiado sin forzar un nuevo cálculo de todos los bloques siguientes. Debido a que un nuevo cálculo requeriría una computación enorme, la existencia de una larga cadena de bloques hace que la historia profunda de la cadena de bloques sea inmutable, que es una característica clave de la seguridad de bitcoin.
Una forma de pensar en la cadena de bloques es como capas de una formación geológica o como muestras del núcleo glaciar. Las capas superficiales pueden cambiar con las estaciones, o incluso ser destruidas antes de que tengan tiempo para asentarse. Pero una vez que profundizas unas pocas pulgadas, las capas geológicas se vuelven más y más estables. Para cuando nos fijamos en unos pocos cientos de pies abajo, ya estaríamos buscando en una instantánea del pasado que ha permanecido inalterado durante millones de años. En la cadena de bloques, los bloques más recientes pueden ser revisados si hay un nuevo cálculo de la cadena debido a una bifurcación. Los seis bloques más altos son como unas cuantas pulgadas de tierra vegetal. Pero una vez que se mete más profundamente en la cadena de bloques, más allá de seis bloques, es cada vez menos probable que los bloques cambien.
Después de retroceder 100 bloques, hay tanta estabilidad que la transacción coinbase —la transacción que contiene los bitcoins recién minados— ya puede ser gastada. Unos pocos miles de bloques hacia atrás (un mes) y la cadena de bloques es historia inmutable para todos los propósitos prácticos.
Aunque el protocolo siempre permite que una cadena sea deshecha por una cadena más larga, y a pesar de que siempre existe la posibilidad de que cualquier bloque sea revertido, la probabilidad de un evento de ese tipo disminuye a medida que pasa el tiempo hasta que se convierte en infinitesimal.