Mini
Echemos un vistazo más profundo al proceso de creación de bloques y la relación padre-hijo entre cada bloque en una cadena de bloques.
Para los que no la conocen, la tecnología blockchain puede parecer extremadamente complicada. Sin embargo, los principios básicos son bastante simples: las nuevas transacciones se verifican, se agrupan en bloques y se agregan a la cadena de bloques. Todos los bloques en una cadena de bloques siguen una relación padre-hijo y están vinculados entre sí.
Toda esta cadena de datos de transacciones se distribuye y es visible para todos los participantes de la red. De ahí el término tecnología de contabilidad distribuida (DLT). Echemos un vistazo más profundo al proceso de creación de bloques y la relación padre-hijo entre cada bloque en una cadena de bloques.
Cómo se agregan nuevos bloques a una cadena de bloques
Entonces, la gran pregunta es: ¿cómo se crean los bloques? Aprendamos con el ejemplo de Bitcoin. Bitcoin sigue el mecanismo de consenso de prueba de trabajo donde cientos de miles de mineros compiten para resolver un problema matemático que requiere toneladas de poder computacional. Al primer minero que encuentre la respuesta al problema matemático se le permite crear un nuevo bloque y se le recompensa con 6,25 BTC por sus esfuerzos.
Asociación de padres e hijos
Cuando se crea un nuevo bloque, sus datos se codifican y pasan al siguiente bloque. Por lo tanto, cada bloque contiene un enlace a su predecesor, formando una genealogía similar a un árbol genealógico. Cada nuevo bloque es como un hijo que transmite un enlace a su bloque padre.
En el caso de Bitcoin, este vínculo se remonta al Bloque Génesis, el primer bloque creado en la red de Bitcoin. El Bloque Génesis es el único bloque sin padre, como Adán y Eva de la Biblia, lo que podría explicar la razón detrás del nombre Génesis. Cada bloque es un solo hijo nacido de un solo padre sin excepción.
¿Qué son los bloques huérfanos?
Como se mencionó anteriormente, el primer minero que resuelve el problema matemático tiene derecho a agregar un nuevo bloque. A veces, dos mineros resuelven el problema al mismo tiempo y crean dos bloques simultáneamente. Sin embargo, según las pautas de blockchain, un bloque padre solo puede tener un hijo. Esto crea un problema: ¿qué bloque se transfiere y cuál se desautoriza y se elimina?
Los nodos de la red deciden esto. Crean una pequeña bifurcación en la red y comienzan a agregar bloques subsiguientes debajo de los dos bloques duplicados. Por lo tanto, cada uno de los dos bloques termina teniendo un árbol genealógico propio.
La bifurcación también inicia una carrera para ver qué árbol genealógico puede verificar y crear la mayor cantidad de bloques. La bifurcación con más bloques verificados se acepta en la cadena de bloques. Por otro lado, el bloque con la cadena más corta se conoce como bloque huérfano y se descarta. Todos los bloques verificados que se generan a partir del bloque huérfano se envían de vuelta al mempool, donde se validarán una vez más y se agregarán a la nueva cadena.
Sin embargo, el término bloque huérfano se malinterpreta un poco. Un huérfano es un niño sin padres. Solo el bloque Génesis se ajusta a esta descripción, ya que no tiene bloques principales. Es por eso que algunos fieles de blockchain se refieren a estos bloques descartados como bloques obsoletos en lugar de bloques huérfanos. Sin embargo, en aras de la simplicidad, los bloques no aceptados generalmente se denominan bloques huérfanos. Además, el minero que crea un bloque huérfano no suele recibir ninguna recompensa.
Conclusión
Esta relación padre-hijo es válida para la mayoría de las cadenas de bloques. Sin embargo, cuando se trata de lidiar con bloques huérfanos, algunas cadenas de bloques han adoptado diferentes técnicas. Por ejemplo, Polkadot tiene un acuerdo de codificación llamado GRANDPA (acuerdo de prefijo derivado de ancestro recursivo basado en GHOST) que decide qué bloque secundario mantener y cuál descartar.
Por otro lado, Ethereum utiliza el protocolo GHOST (Greedy Heaviest Observed SubTree) para decidir qué sucede con los bloques huérfanos. Pero en cualquier caso, dos bloques creados simultáneamente son un problema que debe resolverse antes de que la cadena de bloques pueda llevarse adelante.