¿Entiendes realmente lo que es la computación en la nube basada en Blockchain?

Lucioliu
Phala Español

--

En los últimos años de desarrollo de las redes de criptomonedas, ha habido muchos proyectos que buscaban mejoras en la escalabilidad, pero ninguno que se haya elevado al nivel de las soluciones estándar de la industria. Ejemplos de estas soluciones a la escalabilidad incluyen la fragmentación homogénea de Ethereum 2.0, la fragmentación heterogénea construida por Polkadot, las cadenas laterales de Plasma, zkSync, Optimistic Rollup, la estructura de cadenas cruzadas de COSMOS (con expansión de la capacidad de las cadenas cruzadas), y soluciones de capa 2 como StarkWare.

Estos proyectos buscan constantemente la mejor solución de escalabilidad basada en la estructura de blockchain de Ethereum y Bitcoin. De estos proyectos, Ethereum 2.0 es el que más ha llamado la atención para construir aplicaciones y servicios financieros. La solución de escalabilidad de Ethereum 2.0 se centra en la transición de Prueba de Trabajo (PoW) a Prueba de stake (PoS), la agregación de transacciones (rollup) y la configuración de la estructura de fragmentación (blockchain de fragmentación). La aplicación de este método de mejora de la escalabilidad requiere mucho tiempo. Sin embargo, no se puede negar que se trata de un camino esencial a largo plazo para Ethereum, ya que busca el santo grial de la escalabilidad de la blockchain.

Sencillamente, las ventajas de la estructura de la cadena de bloques son obvias, pero el techo que imponen sus limitaciones también es extremadamente evidente. Así que es difícil que la industria continúe innovando sin romper el techo de rendimiento impuesto por la estructura blockchain. En consecuencia, creo que la innovación en la industria de blockchain debe tomar como referencia ideas de otras industrias y sistemas tecnológicos maduros.

Podemos tomar como referencia el diseño de las plataformas de computación en la nube como forma de romper el techo de rendimiento.

El cuello de botella de la blockchain es evidente

El cuello de botella de la blockchain proviene de su mayor ventaja: el consenso.

El consenso es un proceso en el que múltiples partes (nodos) ponen en cola y ejecutan las transacciones, y luego se ponen de acuerdo sobre los resultados de la ejecución. Tomemos como ejemplo el proceso de consenso de Bitcoin: un nodo produce un bloque después de validar todas las transacciones en él y lo difunde a todos sus pares para que persista en la red descentralizada, y todos esos pares también validan todas esas transacciones y el bloque.

Incluso después de que Ethereum 1.0 haga la transición a 2.0, en la que el mecanismo de consenso se cambia de PoW a PoS, la única mejora en su proceso de consenso es la reducción del tiempo para que se complete una sola ronda de consenso, con el fin de aumentar la capacidad de computación en una unidad de tiempo. Frente a las necesidades masivas de cómputo, el techo (límites de procesamiento) del consenso en PoS sigue siendo demasiado evidente. Estamos renunciando a la eficiencia en aras de la resiliencia.

Visualización de la restricción del nodo único de la blockchain

El modelo de la figura anterior aparecerá bajo altas demandas de cómputo. Si la única mejora para la escalabilidad es reducir el tiempo para que se complete una única ronda de consenso en cada bloque de la cadena, entonces bajo altas demandas de cómputo, las tareas de cómputo seguirán abrumando los recursos de cómputo de un nodo de cómputo. Por lo tanto, varias tareas se quedarán atascadas en el cuello de botella, formando una acumulación de transacciones en espera. (En Bitcoin y Ethereum, esto se muestra como un gran mempool).

Si el procesamiento muy rápido no es crítico para algunas aplicaciones (como las aplicaciones no exigentes en recursos como DeFi), se puede acelerar todo el proceso de confirmación mejorando la potencia media de cómputo de los nodos, cambiando a un algoritmo de consenso más rápido, y programando el orden de ejecución y el tiempo para las tareas que necesitan prioridad en el uso urgente de recursos.

Desgraciadamente, en muchos escenarios de alta concurrencia seguirá habiendo retrasos en el tráfico, ralentizaciones, bloqueos completos u otros problemas causados por la congestión (como los problemas de seguridad). El desarrollo de blockchain no puede limitarse a ser aplicable a DeFi y a las aplicaciones que pueden funcionar con baja concurrencia. Queremos ser capaces de soportar escenarios de alta concurrencia, como Web3 Analytics (similar a Google analytics), donde son necesarios rendimientos muy altos para que un gran número de usuarios globales tengan una experiencia de alta calidad.

Para resolver este problema, debemos aumentar el cómputo a rendimientos tan altos en la red que no pueden lograrse simplemente haciendo el proceso más rápido; necesitamos elevar el nivel de capacidad de cómputo para poder hacer suficientes cálculos en un tiempo determinado.

¿Cómo se puede realizar la escalabilidad y el cómputo paralelo en la red de blockchain si tomamos prestadas las ideas del cómputo en la nube?

En la computación tradicional en la nube, el rendimiento de la red es igual a la suma de los servidores conectados. Añadir más servidores aumenta el rendimiento de la red de computación en la nube. Sin embargo, en el contexto de la blockchain, cada nodo repite todo el cómputo, lo que proporciona redundancia en lugar de aumentar el rendimiento del cómputo (eficiencia), por lo que en la blockchain tradicional, añadir más nodos (análogo a añadir servidores) simplemente no aumentará el rendimiento del cómputo. Sólo aumentamos la redundancia y la confianza, mientras que el rendimiento permanece inalterado.

Sin embargo, aumentar el rendimiento es exactamente lo que necesitan las blockchains en esta fase de desarrollo: el tipo de aumento masivo necesario para realizar tareas con alta simultaneidad. Las redes tradicionales de blockchain han sacrificado la eficiencia en aras de la redundancia, pero aún podemos tomar prestadas ideas del cómputo en la nube para aumentar la eficiencia mientras se mantiene la redundancia necesaria para la seguridad.

Veamos algunas innovaciones desarrolladas en la computación en la nube. En las plataformas de computación en la nube hay un scaling-out (escalado horizontal) y otro scaling-up(escalado vertical). El escalado horizontal es el cómputo paralelo, que procesa las tareas dividiéndolas en carriles y particiones que pueden procesarse de forma independiente. Por el contrario, el escalado vertical aumenta la capacidad de procesamiento de un único dispositivo, lo que es similar a intentar aumentar el tamaño de los bloques para resolver el problema de la escalabilidad.

Un ejemplo de paralelismo en la computación en la nube. La generación de datos es adecuada para la estructura paralela, y luego se procesa rápidamente aprovechando el alto rendimiento de las GPUs.

Sin embargo, la estructura de las redes de blockchain no puede cambiarse fácilmente, por lo que la idea de implementar el cómputo paralelo ha evolucionado en dos enfoques generales.

En este artículo, tomaremos seis proyectos de blockchain, Oasis, Phala, PlatON, Dfinity, IOTA y Filecoin , como ejemplos para ilustrar dos escuelas principales de pensamiento para la implementación paralela. Primero consideraremos el paralelismo de hardware seguro, y luego las mejoras en el paralelismo de algoritmos.

En el futuro, este tipo de redes de blockchain podrán resolver muchos de los problemas que quedan en Internet una vez que logren la capacidad de realizar un procesamiento paralelo.

Desglosando las dos principales ideas de cómputo paralelo

Los proyectos anteriores pueden desglosarse en dos escuelas de pensamiento para resolver el problema de la escalabilidad utilizando el cómputo paralelo.

Una escuela de pensamiento está representada por Oasis, Phala y PlatON. Estos tres proyectos intentan resolver el problema del escalado aprovechando la tecnología de cómputo confiable basada en hardware para proporcionar recursos de cómputo adicionales. Este hardware suele proporcionar seguridad sin perjudicar el rendimiento, lo que permite escalar la blockchain en cuanto a cómputo y almacenamiento. Además, como esta seguridad no depende del algoritmo de consenso (que necesita ser coordinado), estos dispositivos pueden realizar el cómputo de forma independiente, de modo que el cómputo paralelo puede implementarse de forma segura fuera de la capa de consenso. Podemos resumir esto como cómputo paralelo de confianza.

La segunda escuela de pensamiento está representada por Dfinity, IOTA y Filecoin. Mediante el desarrollo de novedosos algoritmos para la capa de consenso, se mejora el proceso de confirmación de las transacciones en bloque para conseguir una ejecución paralela, lo que puede mejorar la capacidad de ejecución de las transacciones en la cadena. A continuación, gracias al mayor nivel de simultaneidad que permiten los algoritmos de consenso avanzados, se puede maximizar la capacidad de cálculo de cada dispositivo de cómputo, lo que supone un escalado vertical efectivo para la computación en la nube.

A continuación se presentan algunos detalles de estos dos enfoques diferentes.

I. Diseños de red basados en un enfoque asistido por hardware para lograr la simultaneidad.

1. Construir primero una capa de consenso de alta calidad.

Cualquier criptomoneda necesita un libro mayor que existe en la capa de consenso. Oasis, Phala, y PlatON separan la capa de consenso y la capa de cómputo. Existe una capa de consenso independiente sobre los dispositivos de cómputo, es decir, una red blockchain de algoritmos de consenso de alta velocidad construida sobre los nodos de cómputo (o nube).

Sin embargo, cabe destacar que Oasis y PlatON tienen conceptos claros de estratificación, el concepto de estratificación de Phala’s no es obvio. Los detalles de su diseño residen en reglas independientes para los dispositivos de cómputo bajo la cadena.

Para garantizar la estabilidad de la capa de consenso, Oasis optó por construir nodos a través de organizaciones y empresas de gran confianza en la industria, y los nodos se comunican entre sí a través del algoritmo tendermint para formar rápidamente el libro mayor.

Los nodos de PlatON también están construidos por una federación, y utiliza el algoritmo BFT-like y el algoritmo CBFT-like para optimizar la eficiencia sobre el algoritmo BFT corriente.

En Phala, una red de nodos trabajadores con Entornos de Ejecución de Confianza (TEE) están conectados a la red de blockchain. Entre los operarios TEE, un grupo de nodos especiales (llamados Guardianes) son responsables de organizar los recursos de cómputo y mantener ese libro mayor. Utilizan el método de consenso denominado prueba de participación nominada (NPoS), el mismo que utiliza Polkadot, que puede producir rápidamente nuevos bloques.

El Guardián de Phala (parte central) manteniendo el libro mayor

Por debajo de la capa de consenso, llevan el cómputo y el almacenamiento fuera de la cadena (lo que algunos podrían llamar una Capa 2) y es donde se hace el cómputo paralelo.

2. Realizan el cómputo paralelo en una capa de cómputo separada.

Veamos Oasis. Su capa de cómputo consiste en múltiples Capas de Paratime, cada una de las cuales es vista como una cadena independiente o un clúster runtime, cuyo consenso final es proporcionado por una Capa de Consenso. Oasis prevé algunos ParaTimes confidenciales habilitados por la seguridad TEE, pero en este punto inicial del despliegue de Oasis Network, el Paratime son principalmente nodos completos regulares desplegados en la nube y no ha desplegado muchos dispositivos equipados con TEE. Con el tiempo, quizás un número suficiente de nodos de Paratime tengan capacidad TEE para ayudar a garantizar la seguridad de algunas capas confidenciales de ParaTime.

La capa de cómputo de Oasis (derecha)

Mientras tanto, en Phala, todo el cómputo se realiza en nodos mineros TEE. El tiempo de ejecución de Phala, pRuntime, se desplegará en cada TEE. La comunicación entre cada pRuntime y la capa de consenso es independiente, por lo que las transacciones procesadas en pRuntime no sufren congestión. Este cómputo paralelo se realiza desde el comienzo, porque cada pRuntime actúa como un fragmento. Cuantos más nodos mineros haya, mejor será el rendimiento de la red.

Por último, PlatON — donde el cómputo se completa en lo que ellos llaman Capa 2. La Capa 2 de PlatON cuenta con un gran número de dispositivos de cómputo, incluidos los dispositivos de cómputo de confianza personalizados, como los circuitos programables para el cómputo multiparte. Además, la privacidad del cálculo también se realiza mediante criptografía, prueba de conocimiento cero y otras tecnologías. PlatON también puede realizar la privacidad del cálculo, pero utiliza pruebas de conocimiento cero, encriptación homomórfica o cómputo multiparte, etc. como tecnología subyacente.

Los módulos y capas de la red PlatON.

Diseñar la capa de cómputo como una red de hardware de computación de confianza es una forma de utilizar la computación paralela para ampliar la capacidad y lograr la escalabilidad. Algunos pueden argumentar que trasladar los cálculos fuera de la capa de consenso no es una verdadera implementación del cómputo paralelo de la blockchain, porque cambia el concepto de seguridad del modelo de amenaza de la blockchain. Sin embargo, en este modelo, los dispositivos se consideran integrados en las capas de consenso porque aportan garantías de seguridad adicionales a través de la tecnología de computación de confianza.

En teoría, para asegurar el cómputo, necesitamos un sistema de libro mayor u otras formas de controlar la seguridad del cómputo fuera de la cadena. Pero con la ayuda del hardware de cómputo de confianza, no necesitamos este libro mayor para proporcionar la seguridad fuera de la cadena.

Podemos contrastar esto con Ethereum 2.0. En ella, la cadena de balizas es el libro mayor total. Si se ha desplegado el sistema de fragmentación, cada fragmento puede procesar tareas independientemente de los demás. En Oasis, Phala y PlatON el cómputo realizado por el fragmento se sustituye por hardware de confianza y cada unidad de hardware probada es efectivamente otro fragmento.

Ahora que hemos desglosado los ejemplos de paralelismo a través de las capas de cómputo, veamos cómo se puede realizar el paralelismo al cambiar los algoritmos.

II. Diseños de red basados en el uso de algoritmos para lograr el procesamiento paralelo

1. Desarrollar un nuevo algoritmo.

Dfinity, IOTA y Filecoin son buenos representantes de este enfoque. Una vez desarrollado un algoritmo que lo permita, las transacciones pueden ejecutarse en paralelo sin afectar al proceso de confirmación de bloques, lo que se traduce en un aumento del rendimiento global.

Es importante recordar que si el paralelismo se implementa a nivel de algoritmo, se cambian las reglas del algoritmo de consenso, lo que también cambia el funcionamiento fundamental de la blockchain. Por ejemplo, si se cambia el algoritmo PoW, también cambiará la lógica para la generación de números aleatorios, la creación de bloques y la difusión en la blockchain.

La optimización en Dfinity reside en el algoritmo de consenso. Dfinity cambia el aspecto del mecanismo de consenso tradicional en el que todos los nodos que participan deben realizar todos los cálculos de consenso, por un mecanismo en el que se generan números aleatorios para seleccionar qué nodo realizará el cálculo de consenso, lo que acelera la verificación de las transacciones. Lo fundamental aquí es que el nodo de consenso seleccionado confirma la transacción a través de un algoritmo BSL no interactivo (el nodo confirma que la respuesta de la firma de los datos es independiente, no combinada), lo que significa que no experimentará un proceso de interacción repetido entre los nodos con el consenso BFT, logrando así el efecto de aceleración “paralelo”.

El proceso de confirmación de consenso de Dfinity, el efecto paralelo es la parte de la firma a la izquierda.

El enfoque que adopta IOTA es completamente diferente. A diferencia de otras cadenas de bloques, IOTA utiliza una estructura de datos Tangle (una especie de DAG) para formar un libro mayor. Tangle requiere que cada transacción esté respaldada por dos transacciones anteriores. En términos de Ciencias de la Computación, dado que sólo hay un ordenamiento parcial de las transacciones, no un ordenamiento completo, esto debe eliminar por completo la dependencia de la marca de tiempo que se encuentra en otras arquitecturas de blockchain. Tangle acaba formando una estructura de confirmación de transacciones de correlación infinita, que puede lograr el paralelismo.

Modelo de confirmación de transacciones del algoritmo Tangle.

Filecoin aplica el paralelismo a las tareas de almacenamiento. Debido al aspecto de almacenamiento de Filecoin, Filecoin hará una verificación y compilación completa de los datos almacenados, que es un proceso computacionalmente exigente (relativamente hablando). Esto significa que el paralelismo y el aumento de la velocidad son muy importantes para el rendimiento general. Actualmente, utiliza el algoritmo NSE actualizado.

Al desglosar el algoritmo NSE podemos ver que al procesar los datos, éstos se dividirán en ventanas (entendidas como unidades) y capas. Después de procesar algunos trozos de datos, se lleva a cabo el almacenamiento de datos y la posterior generación de pruebas. Con NSE, no hay demasiadas dependencias entre las capas, por lo que se puede procesar mucho en paralelo, lo que se puede resumir como aceleración paralela.

El despiece del algoritmo NSE de Filecoin, la parte de las capas es como se ve a la izquierda.

2. Reconfigurar otras partes según lo requerido por el algoritmo.

Son necesarias algunas funciones auxiliares después de que la paralelización se lograda por algoritmos.

Observamos que el Tangle de IOTA no tiene sello de tiempo ni orden como las blockchains normales. Así que, para alcanzar un consenso, necesitamos la ayuda de un verificador de transacciones para confirmar qué transacciones forman parte del consenso.

Los algoritmos utilizados por Dfinity están emparejados con subredes, centros de datos y contenedores. Una subred en Dfinity es similar a un “fragmento” en una blockchain fragmentada. Las subredes están alojadas en las máquinas físicas ubicadas en los centros de datos. Esto significa que la potencia de procesamiento inherente a la red es considerable. En una subred, el contenedor es una unidad de procesamiento independiente, que puede compararse con el contrato inteligente de la blockchain. Las interacciones combinadas del contenedor pueden soportar aplicaciones complejas.

En Filecoin, después del procesamiento paralelo de datos por el algoritmo NSE, Filecoin lleva a cabo la replicación del almacenamiento y el empaquetamiento de la Prueba de Espacio-Tiempo. Estas partes necesarias aseguran la consistencia del libro mayor de Filecoin. Otras partes del desarrollo dependen de las herramientas proporcionadas por el equipo oficial y el ecosistema de Filecoin.

¿Qué sigue después del cómputo paralelo con tecnologías de la nube?

Los seis proyectos de blockchain mencionados anteriormente han superado, en teoría, los límites de rendimiento inherentes al blockchain tradicional mediante el uso de cómputo paralelo. Entonces, ¿cuál es el siguiente paso en su desarrollo?

En mi opinión, el siguiente paso es descubrir cómo poner estas características a disposición de los desarrolladores a través de herramientas para desarrolladores. Después de todo, el objetivo más importante de la red blockchain es desarrollar DAPPs y servicios descentralizados en general.

La infraestructura es inútil si no hay desarrolladores que hagan aplicaciones en ella, incluso si el rendimiento de la infraestructura es muy alto. Los desarrolladores determinan el número de aplicaciones en la cadena. El número de aplicaciones en la cadena determina el valor creado y mantenido por esa cadena.

Los desarrolladores tradicionales de Internet que entraron en la era de la computación en la nube se enfrentaron a algunas dificultades en el desarrollo nativo, pero finalmente las plataformas de computación en la nube proporcionaron a los nuevos desarrolladores herramientas de gran calidad. Como resultado de su arduo trabajo, los desarrolladores posteriores se han liberado de las preocupaciones sobre la escalabilidad que asolaban a los desarrolladores anteriores.

¿Pueden las redes de blockchain de hoy en día tomar la “arquitectura orientada al servicio” de las plataformas de computación en la nube como objetivo hacia el que innovar? Con la competitividad, vemos que las cadenas de bloques pueden superar el techo del rendimiento. ¿Hasta dónde pueden llegar?

--

--