Blockchain
La cadena de bloques (o Blockchain) es una base de datos pública de todas las que se hayan producido alguna vez en la red de la Bitcoin. Al utilizar esta base, cada usuario puede averiguar qué cantidad de bitcoin ha pertenecido alguna vez a una determinada dirección en un determinado período de tiempo. El Blockchain se apoya en los esfuerzos descentralizados de muchos mineros. Con esta información, se puede averiguar cuánto valor pertenecía a cada dirección en cualquier momento de la historia.
El Blockchain es la principal innovación de Bitcoin.
Principios de la construcción
Cada bloque minado contiene hash del anterior. De esta forma, se crea una cadena de bloques que se origina en el llamado (el primer bloque en el sistema de Bitcoin) hasta el bloque más reciente encontrado por la red. Editar datos en un bloque que ha sido parte de la cadena durante mucho tiempo no es práctico porque uno tendría que editar los datos en todos los bloques siguientes. Gracias a estas propiedades, el ataque de doble gasto (gasto repetido de dinero ya gastado) es casi imposible de realizar en la red de Bitcoin.
Los mineros honestos siempre están construyendo su bloque sobre la última mina, haciendo referencia a ella. La “longitud” de la cadena se calcula en función de la complejidad total de la cadena y no de la cantidad de bloques en ella. Una continuación de la cadena solo se considera válida si tiene información sobre todos los enlaces de cadena anteriores y la cadena en sí comienza con el .
Separaciones en el blockchain
Cada bloque en la cadena tiene solo una ruta de regreso al bloque de génesis. Sin embargo, la cadena puede dividirse en varias direcciones desde el bloqueo de génesis formando así un “tenedor” (una variación). Estos “tenedores” que consisten en solo un bloque son bastante comunes pues aparecen cuando varios nodos encuentran un bloqueo con una diferencia de tiempo de un par de segundos. Cuando esto sucede, otros nodos comienzan a construir la cadena de bloques más allá del bloque que recibieron primero. En el momento en que cualquiera de los dos bloques obtiene su continuación, su cadena se considera principal en la cadena de bloque porque se hace más larga.
Los bloques que no son parte de la cadena de bloques principal no se utilizan. También hay una menor recompensa emitida por su descubrimiento. Estos se llaman “bloques huérfanos”. Debido a que un bloque puede vincular a un solo bloque anterior, la combinación de 2 cadenas diferentes es imposible.
Los bloques en cadenas más cortas (o cadenas no válidas) no se usan. Cuando el cambia a otra cadena más larga, todas las transacciones válidas de los bloques dentro de la cadena más corta se vuelven a agregar al grupo de transacciones en cola y se incluirán en otro bloque. La recompensa por los bloques en la cadena más corta no estará presente en la cadena más larga, por lo que prácticamente se perderán, razón por la cual existe un tiempo de maduración de 100 bloques para generaciones reforzado por la red.
Estos bloques en las cadenas más cortas a menudo se llaman bloques “huérfanos”. Esto se debe a que las transacciones de generación no tienen un bloque primario en la cadena más larga, por lo que estas transacciones aparecen como huérfanas en la lista de transacciones con RPC (llamadas a procedimiento remoto, según sus siglas en inglés). Varias agrupaciones han malinterpretado estos mensajes y han comenzado a llamar a sus bloques “huérfanos”. En realidad, estos bloques tienen un bloque “padre” e incluso pueden tener “hijos”.
Como un bloque solo puede hacer referencia a un bloque anterior, es imposible que dos cadenas bifurcadas se fusionen.
Es posible utilizar el algoritmo blockchain para fines no financieros: ver la .
La cadena de bloques o blockchain se transmite a todos los nodos de la red mediante un protocolo de inundación.