BlockDAG
BlockDAG: ¿cómo puede seguir conectado el trabajo hecho en paralelo?
Un bloque nuevo no llega a cada computadora de la red en el mismo momento.
Un minero puede encontrar un bloque y, antes de que otro minero se entere, ese segundo minero también puede encontrar un bloque construido sobre la misma historia anterior.
Ahora existen dos bloques válidos, y ninguno de los mineros conocía el bloque del otro cuando se creó.
La pregunta es:
¿Qué debería pasar con los dos?
Se pueden crear dos bloques antes de que uno de los mineros sepa del otro
Imagina que dos mineros conocen la misma historia anterior.
Un minero encuentra un bloque nuevo y lo publica.
La información empieza a viajar por la red.
Antes de que llegue a otro minero, ese segundo minero también encuentra un bloque nuevo.
Los dos bloques no tienen que crearse en el mismo segundo exacto.
El segundo bloque solo tiene que encontrarse antes de que la noticia del primer bloque llegue al minero que lo creó.
En una sola cadena, los dos bloques crean dos ramas
En una blockchain tradicional, cada bloque continúa desde un bloque anterior.
Así que, si dos bloques continúan desde el mismo pasado, aparecen dos ramas.
Los mineros pueden construir sobre una rama o sobre la otra.
Con el tiempo, una cadena principal tiene que convertirse en la historia desde la que continúa la red.
En Bitcoin, el trabajo acumulado ayuda a determinar qué rama permanece como cadena principal.
El bloque de la otra rama puede ser completamente válido y aun así quedar fuera de la cadena principal.
Kaspa puede mantener los dos bloques conectados
Kaspa usa una estructura distinta.
Un bloque nuevo puede referirse a más de un bloque anterior.
Eso significa que un bloque posterior puede decir, en la práctica:
«Conozco estos dos bloques, y estoy construyendo a partir de los dos.»
El trabajo hecho en los dos bloques en paralelo no tiene que desaparecer solo porque, desde el punto de vista de la red, se crearon al mismo tiempo.
Puede seguir conectado a la historia.
Esta estructura se llama BlockDAG.
¿Por qué esto ya no es una blockchain tradicional?
Una blockchain tradicional se puede dibujar sobre todo como una línea:
Bloque → Bloque → Bloque → Bloque
Un BlockDAG puede contener varios bloques creados en paralelo, y los bloques posteriores pueden conectarse con varios de ellos.
Así que la historia se parece más a una red de relaciones entre bloques que a una línea recta.
¿Qué significa DAG?
El nombre suena más difícil que la idea.
D - Directed (dirigido)
Cada conexión apunta en una dirección: desde un bloque más nuevo hacia el pasado que conoce.
A - Acyclic (acíclico)
No puedes seguir los enlaces hacia atrás y terminar volviendo al mismo bloque del que partiste.
G - Graph (grafo)
Un conjunto de cosas conectadas entre sí. Aquí, esas cosas son bloques.
Así que:
DAG = Directed Acyclic Graph (grafo acíclico dirigido).
No necesitas memorizar la definición para entender la idea clave:
Los bloques se pueden crear en paralelo y seguir conectados.
¿Por qué es útil?
Cuanto más frecuentemente se crean los bloques, más probable es que un minero encuentre un bloque antes de enterarse de otro bloque que ya se encontró en otro lugar.
Si solo una rama puede permanecer en la estructura principal cada vez que esto pasa, parte del trabajo hecho en paralelo no continúa con la historia principal.
El BlockDAG le permite a Kaspa mantener conectada más de ese trabajo en paralelo.
Esa es una parte importante de funcionar con una tasa alta de bloques.
Pero conservar los dos bloques todavía no resuelve todo
Imagina que un bloque contiene una transacción en la que Emma le paga a Liam.
Un bloque en paralelo contiene una transacción en la que Emma intenta usar el mismo dinero para pagarle a Olivia.
Los dos bloques pueden permanecer en la estructura.
Pero los dos pagos no se pueden aceptar.
Así que queda otra pregunta:
¿En qué orden se deberían comprobar los bloques y sus transacciones?
El BlockDAG nos dice cómo están conectados los bloques.
Por sí solo, todavía no nos dice su orden acordado.
Entonces, ¿qué hace de verdad un BlockDAG?
Conserva las relaciones entre bloques creados en paralelo, en lugar de forzar de inmediato todo a una sola línea recta.
En términos simples:
Blockchain: sobre todo una cadena de bloques.
BlockDAG: puede mantener bloques en paralelo conectados a la misma historia.
Pero una vez que tenemos el grafo, todas las computadoras todavía necesitan una forma de llegar al mismo orden.
Kaspa usa GHOSTDAG para eso.