¿Qué es un nodo podado o pruned node?

Los nodos de Bitcoin son la base de su funcionamiento al mantener una copia de la blockchain y realizar las distintas tareas necesarias para el funcionamiento de la red, pero un problema con ellos es que consumen mucho almacenamiento. Esta situación hacía imposible para muchas personas tener un nodo, ya fuera por el propio espacio en disco que ocupaban, así como la velocidad de conexión a Internet necesaria para ponerlo en marcha. Con este problema en mente nacieron los nodos podados.

Los nodos podados o pruned nodes, son un tipo de nodo que cumple casi todas las funciones de un nodo completo. De hecho, su única excepción es que los nodos podados no tienen una copia completa de la blockchain. Es decir, los nodos podados solo mantienen una parte substancial de la blockchain, sirviéndose de esta para realizar sus procesos de verificación como cualquier otro nodo completo.

Ahora bien, ¿Por qué se crearon los nodos podados? ¿Cómo funcionan? Y más importante ¿Es mejor un nodo podado o un nodo completo? Si tienes estas y otras preguntas sigue leyendo y aprendiendo con nosotros para obtener las respuestas que buscas.

Nodos podados ¿Por qué se crearon?

Bitcoin tiene una base de datos llamada blockchain que ocupa en la actualidad ya más de 290 GB, y crece a cada minuto. En esa base de datos, se encuentran todas las transacciones de Bitcoin, desde la primera hasta la última. Estamos hablando de más de una década de transacciones, pues la primera transacción se hizo en enero de 2009, y jamás ha dejado de funcionar la red.

Un problema que ha vivido Bitcoin desde hace varios años es el crecimiento acelerado del tamaño de su blockchain. El registro de la blockchain paso de unas decenas de megabytes en su primer año, a ocupar cientos de Gigabytes en la actualidad.

Además, a medida que más y más personas siguen usando Bitcoin, más operaciones se realizan, y su blockchain sigue aumentando de tamaño.

Gráfica de crecimiento de la blockchain de Bitcoin

La situación derivó rápidamente en un problema al ver que muchas personas no podían simplemente mantener una copia entera de la blockchain en su poder. Y todo porque el espacio de almacenamiento simplemente rebasaba su capacidad. De hecho, en la actualidad la blockchain ocupa tanto espacio de almacenamiento como un disco duro promedio con un valor de unos 35 €. Puede no parecer mucho, pero para millones de usuarios en el mundo, especialmente en países con economías más reducidas eso es mucho dinero.

Frente a esta situación se crearon los nodos podados, con los cuales se puede descargar la blockchain para empezar su proceso de verificación y al finalizar la descarga, simplemente se almacena una parte más pequeña de la misma. Un proceso que por cierto no pone en peligro la capacidad de verificación del nodo y que nos ofrece la posibilidad de tener un nodo completo para realizar nuestras operaciones de forma más segura.

Ahora bien, seguramente te preguntarás si esta situación solo podemos verla en Bitcoin. La realidad es que todas las blockchain e incluso otras tecnologías basadas en DAG y DLT tienen este mismo problema. Por ejemplo, en Ethereum también es posible desplegar nodos podados , algo especialmente útil si tenemos en cuenta que su blockchain crece a pasos más agigantados en comparación con Bitcoin, rozando ya los 5000 GB.

¿Cómo funciona un nodo podado?

Ahora bien ¿Cómo es posible “podar” una blockchain y qué significa exactamente podar? Pues bien, cuando hablamos de “podar” nos referimos a reducir el tamaño de la blockchain en un punto en el que podamos crear un registro fiable con un determinado tamaño.

Imagina que la blockchain es un enorme árbol donde sus ramas y hojas están todas relacionadas unas con las otras desde la más nuevas hasta la más viejas. Esta relación permite que puedas rastrear todas las operaciones de la blockchain de forma temporalmente coordinada desde la más reciente hasta su génesis o raíz. Sin embargo, el este árbol es gigantesco y no puedes almacenarlo en su totalidad.

Frente a este problema decides que solo te interesan las últimas ramas y su información para poder tener una copia reducida pero igualmente válida de todo el árbol original. Así que decides podar sus últimas ramas y usarlas para crear un árbol copia que seguirá con el historial del mismo desde ese punto específico. En pocas palabras, has creado un árbol hijo (una copia de la blockchain), cuyas hojas iniciales corroboran el historial del árbol padre (blockchain original) y continúan su historia desde ese punto (el árbol original y tu copia serán exactamente iguales desde el punto del podado).

Esto es lo que hace precisamente el cliente de Bitcoin. Es decir, descarga todo el árbol (la blockchain original), la verifica para saber que la descarga es correcta y almacena solo la parte que te interesa, desechando el resto. La blockchain que ahora tienes almacenada en tu computador es un árbol hijo, una copia parcial de la blockchain original y desde ese punto, tu copia y la blockchain original serán exactamente iguales e igualmente válidas.

Árboles Merkle y Merkle Root, las tijeras para podar la blockchain

Ahora ¿Por qué nos referimos en este caso a la blockchain como un árbol, cuando siempre hablamos de que es una cadena? La razón está en que la estructura que hace posible “podar” una blockchain son los árboles merkle y el merkle root.

En primer lugar, los Árboles Merkle son una estructura básica en la formación de los bloques y el hash asociado a los mismos. Recordemos que la finalidad de un árbol merkle es sintetizar y relacionar grandes cantidades de información por medio del uso de funciones criptográficas. Este proceso de sintetización criptográfica al final arroja el llamado Merkle Root, un hash único e irrepetible cuyo origen parte de relacionar toda esa información. Gracias a este sistema es posible hacer que las transacciones de una bloque de Bitcoin queden intrínsecamente relacionadas con ese bloque.

Ejemplo de un Árbol merkle

Esta estructuración también mantiene unidos los bloques de un blockchain. Esto gracias a que el Merkle Root es uno de los datos básicos que se usan para enlazar criptográficamente los bloques. De hecho, el Merkle Root de cada nuevo bloque guarda una relación muy estrecha y determinista con los bloques anteriores. Es decir, cada nuevo Merkle Root en un bloque reafirma y valida el historial de bloques anteriores. De esta forma, cualquier alteración por mínima que sea, termina invalidando todo el historial.

Dicho esto podemos ver de forma más sencilla lo que hace un nodo podado en Bitcoin, simplemente descarga la blockchain, verifica que los Merkle Root sean correctos y en el punto especificado corta la blockchain para generar una copia. A partir de ese punto de corte, el Merkle Root sigue su evolución normal, la misma que lleva la blockchain original completa, solo que en nuestro caso tenemos una copia más pequeña y manejable de la misma.

¿Cómo podemos crear nuestro propio nodo podado?

Si buscas crear tu propio nodo podado para tener una wallet a través de un nodo que respalde aún más la seguridad de tus transacciones, esto es sencillo de realizar. La forma más sencilla es usando el software Bitcoin Core el cual cuenta con esta funcionalidad desde la versión 0.11. También puedes usar ElectrumX de spesmilo, el cual es una reimplementación de Electrum Server y que es compatible con pruning (o poda de blockchain). Fuera de estos dos software no te recomendamos usar nada que haga uso de pruning. Esto debido a que muchos desarrollos no tienen cuidado con esta característica.

Finalmente es importante destacar que un nodo podado debe tener como mínimo un almacenamiento de 2 Gigabyte para la copia blockchain, lo que es un espacio razonable y te brindará la capacidad de verificar mucha información con tu nodo sin grandes esfuerzos.