La blockchain es tanto una red de ordenadores o dispositivos conectados (nodos), como, también y al propio tiempo, un diario o base de datos, organizada en forma de registros de las transacciones que se producen en dicha red y que se ordenan conforme a un criterio temporal, más bien fracciones temporales (los denominados bloques). Esta base de datos es descentralizada o distribuida (lo que se conoce como DTL Distributed ledger technology, en la que cada operador de la red puede tener una copia o réplica íntegra de la base de datos), e inmutable (por la forma en la que los registros se agregan o modifican en la base de datos y la forma en la que los nuevos datos se relacionan con los previamente integrados en dicha base de datos, es decir, a través de la cadena de bloques o blockchain, por medio de técnicas criptográficas), que es objeto de llevanza en una determinada red que es la proporciona el entorno para que esa base de datos pueda cumplir sus propósitos.
No existe una única blockchain sino múltiples blockchains, algunas especializadas en un determinado valor o token, como es el caso de las especializadas en criptomonedas (caso de bitcoin), otras genéricas que operan con una variedad de tokens o valores susceptibles de negociación.
En estas redes no existe una autoridad central que de coherencia al conjunto de registros y dicha coherencia se consigue mediante la distribución de la base de datos (completa o en nodos o partes) a través de los distintos operadores de la red. Dicha red, además, opera bajo el principio de consenso, esto es, lo que la mayoría de nodos de la red tiene por verdadera versión de la base de datos es la que final y autoritativamente se tiene por tal.
La integridad y fiabilidad de la base de datos se consigue a través de determinados protocolos que deben seguirse para añadir registros a dicha base de datos. La denominada minería no es más que la operación, realizada por un determinado operador especializado de la red de blockchain (miner), que no está predeterminado y se selecciona de acuerdo con un sistema competitivo entre todos los posibles operadores (tal como el denominado proof of work, o proof ot stake o proof of importance, entre otros posibles), que valida y escribe un nuevo bloque de datos en la base de datos blockchain, de la que generalmente tiene una copia completa alojada en sus propios medios, utilizando para ello un ordenador-hardware específico (mining rig)[1].
Tras la ejecución de una transacción (smartcontract) el resultado (inicialmente validado por las propias instrucciones del smartcontract, mediante la utilización de sus claves privadas); esta transacción es agregada (generalmente cada 10 minutos en bitcoin, 12 segundos en ethereum) por la red a un denominado memory pool, o transaction pool , donde espera, junto con otras transacciones, con el estado de “no confirmada”.
Cualquier operador de la red puede acceder al memory pool y seleccionar una serie de transacciones para formar con ellas un bloque (que sigue la numeración secuencial dada de la red), o, mejor, a una propuesta de bloque (candidate block), donde se relacionan las distintas trasacciones que se integran en el mismo (en una estructura que se denomina merkle tree[2]) y se conecta de manera únivoca con el bloque anterior de la cadena temporal de transacciones efectuadas en la red (a través de la huella digital o hash del bloque precedente). A esta propuesta de bloque le falta un elemento capital que es el resultado de la prueba con la que el sistema va a elegir, entre todas las propuestas de bloque, cual es aquel que va, finalmente, a integrarse en la blockchain, en la cadena oficial de bloques.
En la competición que se produce entre los distintos miners (a través de los distintos sistemas de desafío que haya establecido la red) se decide quien va a ser el miner que finalmente agregue su candidate block a la base de datos blockchain (el hash resultante de la competición y que valida la escritura del bloque por el referido miner se agrega como uno de los metadatos al bloque). Posteriormente, dicho bloque es diseminado a los distintos nodos de la red, que lo someten a distintos test para validarlo y, en caso afirmativo, lo integran también, uniéndolo al bloque anterior de la cadena, en la base de datos cuya copia tienen alojada en su propio nodo.
[1] Esta operación requiere un uso intensivo de la capacidad de cálculo de los ordenadores, y, en consecuencia, un alto consumo de energía.
[2] Esta estructura se forma combinando un numero determinado de transacciones del bloque y aplicándoles un algoritmo para obtener su hash, ello forma una de las hojas o ramas del árbol de merkle, la combinación de distintas hojas entre sí y la obtención de su hash correspondiente, para volver a combinarse en un nivel superior es lo que finalmente forma el árbol en el que se estructuran las transacciones del mismo bloque.