Una de las innovaciones más definitorias de la cadena de bloques Monad es su modelo de ejecución paralela optimista. Este enfoque replantea cómo se procesan las transacciones a nivel de protocolo, abordando una limitación clave de las cadenas de bloques tradicionales: la ejecución secuencial. En plataformas como Ethereum, las transacciones se ejecutan una por una, lo que garantiza la consistencia del estado pero restringe severamente el rendimiento y el rendimiento general.
La máquina virtual de Monad introduce el paralelismo asumiendo que la mayoría de las transacciones dentro de un bloque son independientes y no interactúan con las mismas partes del estado de la cadena de bloques. Basándose en esta suposición, las transacciones se agrupan y se programan para ejecutarse simultáneamente en múltiples hilos de procesamiento. Esto aumenta significativamente la capacidad de ejecución, especialmente bajo una carga de red alta, aprovechando de manera más efectiva los procesadores multinúcleo modernos que los modelos secuenciales.
Sin embargo, la concurrencia introduce riesgos potenciales de conflicto de datos, como dos transacciones que intentan modificar la misma cuenta o contrato. Monad aborda esto mediante la incorporación de un sistema de detección y resolución de conflictos. Después de que las transacciones se ejecutan en paralelo, el sistema verifica las inconsistencias. Si se detectan conflictos, solo las transacciones afectadas se vuelven a ejecutar o reordenar de forma segura. Esto asegura que la cadena de bloques mantenga la corrección y las transiciones de estado deterministas, al tiempo que se beneficia de la eficiencia del procesamiento concurrente.
Este modelo se asemeja al control de concurrencia optimista en los sistemas de bases de datos modernos, donde se asume que la mayoría de las operaciones no entran en conflicto y se manejan simultáneamente. Solo en casos excepcionales interviene el sistema. El resultado es una capa de ejecución escalable y adaptable adecuada para aplicaciones con un alto volumen de transacciones y cargas de trabajo variadas.
La ejecución paralela optimista es particularmente ventajosa para casos de uso como DeFi, juegos y mercados de NFT, donde muchos usuarios interactúan simultáneamente pero rara vez con los mismos datos. Monad puede manejar estas operaciones en paralelo, reduciendo la congestión y mejorando la capacidad de respuesta de las aplicaciones descentralizadas sin necesidad de capas de escalado fuera de la cadena.
Otro beneficio clave es la simplicidad para los desarrolladores. El entorno compatible con EVM de Monad permite que los contratos inteligentes escritos en Solidity se ejecuten normalmente, sin requerir que los desarrolladores gestionen manualmente la concurrencia. El protocolo maneja la lógica de ejecución en segundo plano, preservando la experiencia del desarrollador mientras mejora el rendimiento de la red.
Complementando su modelo de ejecución paralela, Monad implementa la ejecución asincrónica, una característica arquitectónica que separa la ejecución de transacciones del proceso de consenso. En las blockchains tradicionales, el consenso y la ejecución están estrechamente vinculados: los validadores deben ejecutar todas las transacciones antes de ponerse de acuerdo y finalizar un bloque. Este acoplamiento introduce latencia y limita la rapidez con la que se pueden producir nuevos bloques.
Monad desacopla estas funciones finalizando primero el orden de las transacciones a través del consenso, y luego ejecutándolas posteriormente. Este diseño permite que la capa de consenso opere de forma independiente y continua, mientras que la ejecución se realiza en paralelo en segundo plano. Aumenta la eficiencia del validador y reduce el tiempo de bloqueo, ya que los validadores ya no están limitados por el tiempo que les lleva calcular los resultados de cada transacción.
El sistema mantiene el determinismo y la seguridad al garantizar que todos los nodos ejecuten las mismas transacciones exactas, en el mismo orden acordado, incluso si la ejecución en sí misma ocurre en diferentes momentos. Esto garantiza la consistencia en toda la red y evita la divergencia en el estado de la cadena de bloques.
La ejecución asincrónica también complementa el paralelismo optimista de Monad. Mientras el consenso avanza y los nuevos bloques se finalizan rápidamente, la ejecución tiene lugar simultáneamente en múltiples hilos, resolviendo conflictos solo cuando es necesario. Esta combinación paralela-asíncrona maximiza la concurrencia del sistema y el uso de recursos sin comprometer la corrección.
Desde la perspectiva de un usuario y un desarrollador, esta arquitectura resulta en una inclusión de transacciones más rápida, aplicaciones más receptivas y una mayor escalabilidad. Los validadores también se benefician de la reducción de cuellos de botella, lo que conduce a una red más eficiente y descentralizada.
En Monad, el consenso se logra a través de MonadBFT, una adaptación personalizada del protocolo tolerante a fallas bizantinas (BFT) HotStuff. Este mecanismo de consenso está optimizado tanto para el rendimiento como para la seguridad, apoyando los objetivos de Monad de una finalidad de baja latencia y un alto rendimiento, al mismo tiempo que sigue siendo accesible para los validadores descentralizados.
HotStuff se desarrolló originalmente para reducir el número de rondas de comunicación necesarias para finalizar un bloque. MonadBFT se basa en esto al permitir la finalidad de un solo slot, donde los bloques se finalizan en una sola ronda de consenso sin esperar múltiples confirmaciones. Esto proporciona una finalidad de transacción inmediata, mejorando la previsibilidad para las aplicaciones y reduciendo el riesgo de reorganización de la cadena.
MonadBFT utiliza un modelo basado en líderes. En cada ronda, un validador propone un bloque mientras los demás lo validan y votan sobre él. Si dos tercios del total de participación del validador confirma el bloque, se finaliza. Este proceso optimizado minimiza los costos generales y acelera la producción de bloques, especialmente en condiciones operativas normales.
Para garantizar la vivacidad, MonadBFT incluye estrategias de rotación de líder y de tiempo de espera. Si un líder no logra proponer un bloque, el siguiente validador en línea asume automáticamente el control. Esta resistencia asegura que la cadena continúe progresando incluso si algunos validadores están desconectados o no responden.
Desde el punto de vista de la seguridad, MonadBFT se adhiere al umbral típico de BFT, tolerando hasta un tercio de validadores que se comportan maliciosamente sin comprometer la seguridad. Una vez que se finaliza un bloque, está sellado criptográficamente y no se puede revertir sin la colusión de actores deshonestos que controlen la mayoría del poder de validación.
El protocolo está estrechamente integrado con el modelo de ejecución asincrónico de Monad. Dado que los bloques se finalizan antes de la ejecución, el sistema puede seguir progresando sin retrasos, mientras que la capa de ejecución procesa transacciones de forma independiente. Esta arquitectura reduce la carga de trabajo del validador y permite que el sistema mantenga un alto rendimiento sin depender de servicios de secuenciación centralizados o intermediarios de confianza.
La ejecución eficiente y el consenso dependen de un sistema de gestión de estado de alto rendimiento. En Monad, este papel es desempeñado por MonadDB, la capa de almacenamiento de estado personalizada de la cadena de bloques. MonadDB es responsable de almacenar todos los datos en cadena, incluidos los saldos de cuenta, el almacenamiento de contratos y otras variables de estado persistentes. Está diseñado para ser rápido, concurrente y totalmente compatible con el motor de ejecución paralela de Monad.
MonadDB utiliza un almacén de valores clave persistente y versionado, lo que le permite mantener múltiples instantáneas del estado al mismo tiempo. Esto es esencial para admitir la ejecución especulativa, donde múltiples transacciones se procesan en paralelo y pueden ser revertidas o ajustadas según conflictos. Al almacenar diferentes versiones del estado, MonadDB permite que el motor de ejecución aísle y resuelva conflictos de datos de manera eficiente.
En su núcleo, MonadDB emplea una estructura de datos de árbol de Merkle Patricia Trie, un árbol criptográficamente seguro que permite una verificación rápida del estado de la cadena de bloques. Esta estructura de trie asegura que cualquier cambio en el estado resulte en un nuevo hash raíz, que puede ser validado por todos los nodos. Admite la sincronización sin confianza, clientes ligeros y verificación de estado basada en pruebas, que son fundamentales para un diseño de cadena de bloques seguro y escalable.
Para manejar el volumen de transacciones esperado, MonadDB está diseñado para lecturas y escrituras de baja latencia. Incorpora almacenamiento en caché, controles de acceso seguros para la concurrencia y almacenamiento en disco de alta velocidad para garantizar una recuperación y modificación rápidas de las entradas de estado. Estas optimizaciones permiten que la capa de ejecución funcione a un alto rendimiento sin verse ralentizada por retrasos en el acceso a datos.
Desde el punto de vista del desarrollador, MonadDB está completamente abstraído. Los desarrolladores de contratos inteligentes interactúan con la cadena de bloques a través de constructos familiares de Solidity, sin necesidad de gestionar la mecánica subyacente del estado. MonadDB garantiza que el estado se actualice y se almacene con precisión, incluso bajo una carga alta o durante la ejecución de contratos complejos.
Una de las innovaciones más definitorias de la cadena de bloques Monad es su modelo de ejecución paralela optimista. Este enfoque replantea cómo se procesan las transacciones a nivel de protocolo, abordando una limitación clave de las cadenas de bloques tradicionales: la ejecución secuencial. En plataformas como Ethereum, las transacciones se ejecutan una por una, lo que garantiza la consistencia del estado pero restringe severamente el rendimiento y el rendimiento general.
La máquina virtual de Monad introduce el paralelismo asumiendo que la mayoría de las transacciones dentro de un bloque son independientes y no interactúan con las mismas partes del estado de la cadena de bloques. Basándose en esta suposición, las transacciones se agrupan y se programan para ejecutarse simultáneamente en múltiples hilos de procesamiento. Esto aumenta significativamente la capacidad de ejecución, especialmente bajo una carga de red alta, aprovechando de manera más efectiva los procesadores multinúcleo modernos que los modelos secuenciales.
Sin embargo, la concurrencia introduce riesgos potenciales de conflicto de datos, como dos transacciones que intentan modificar la misma cuenta o contrato. Monad aborda esto mediante la incorporación de un sistema de detección y resolución de conflictos. Después de que las transacciones se ejecutan en paralelo, el sistema verifica las inconsistencias. Si se detectan conflictos, solo las transacciones afectadas se vuelven a ejecutar o reordenar de forma segura. Esto asegura que la cadena de bloques mantenga la corrección y las transiciones de estado deterministas, al tiempo que se beneficia de la eficiencia del procesamiento concurrente.
Este modelo se asemeja al control de concurrencia optimista en los sistemas de bases de datos modernos, donde se asume que la mayoría de las operaciones no entran en conflicto y se manejan simultáneamente. Solo en casos excepcionales interviene el sistema. El resultado es una capa de ejecución escalable y adaptable adecuada para aplicaciones con un alto volumen de transacciones y cargas de trabajo variadas.
La ejecución paralela optimista es particularmente ventajosa para casos de uso como DeFi, juegos y mercados de NFT, donde muchos usuarios interactúan simultáneamente pero rara vez con los mismos datos. Monad puede manejar estas operaciones en paralelo, reduciendo la congestión y mejorando la capacidad de respuesta de las aplicaciones descentralizadas sin necesidad de capas de escalado fuera de la cadena.
Otro beneficio clave es la simplicidad para los desarrolladores. El entorno compatible con EVM de Monad permite que los contratos inteligentes escritos en Solidity se ejecuten normalmente, sin requerir que los desarrolladores gestionen manualmente la concurrencia. El protocolo maneja la lógica de ejecución en segundo plano, preservando la experiencia del desarrollador mientras mejora el rendimiento de la red.
Complementando su modelo de ejecución paralela, Monad implementa la ejecución asincrónica, una característica arquitectónica que separa la ejecución de transacciones del proceso de consenso. En las blockchains tradicionales, el consenso y la ejecución están estrechamente vinculados: los validadores deben ejecutar todas las transacciones antes de ponerse de acuerdo y finalizar un bloque. Este acoplamiento introduce latencia y limita la rapidez con la que se pueden producir nuevos bloques.
Monad desacopla estas funciones finalizando primero el orden de las transacciones a través del consenso, y luego ejecutándolas posteriormente. Este diseño permite que la capa de consenso opere de forma independiente y continua, mientras que la ejecución se realiza en paralelo en segundo plano. Aumenta la eficiencia del validador y reduce el tiempo de bloqueo, ya que los validadores ya no están limitados por el tiempo que les lleva calcular los resultados de cada transacción.
El sistema mantiene el determinismo y la seguridad al garantizar que todos los nodos ejecuten las mismas transacciones exactas, en el mismo orden acordado, incluso si la ejecución en sí misma ocurre en diferentes momentos. Esto garantiza la consistencia en toda la red y evita la divergencia en el estado de la cadena de bloques.
La ejecución asincrónica también complementa el paralelismo optimista de Monad. Mientras el consenso avanza y los nuevos bloques se finalizan rápidamente, la ejecución tiene lugar simultáneamente en múltiples hilos, resolviendo conflictos solo cuando es necesario. Esta combinación paralela-asíncrona maximiza la concurrencia del sistema y el uso de recursos sin comprometer la corrección.
Desde la perspectiva de un usuario y un desarrollador, esta arquitectura resulta en una inclusión de transacciones más rápida, aplicaciones más receptivas y una mayor escalabilidad. Los validadores también se benefician de la reducción de cuellos de botella, lo que conduce a una red más eficiente y descentralizada.
En Monad, el consenso se logra a través de MonadBFT, una adaptación personalizada del protocolo tolerante a fallas bizantinas (BFT) HotStuff. Este mecanismo de consenso está optimizado tanto para el rendimiento como para la seguridad, apoyando los objetivos de Monad de una finalidad de baja latencia y un alto rendimiento, al mismo tiempo que sigue siendo accesible para los validadores descentralizados.
HotStuff se desarrolló originalmente para reducir el número de rondas de comunicación necesarias para finalizar un bloque. MonadBFT se basa en esto al permitir la finalidad de un solo slot, donde los bloques se finalizan en una sola ronda de consenso sin esperar múltiples confirmaciones. Esto proporciona una finalidad de transacción inmediata, mejorando la previsibilidad para las aplicaciones y reduciendo el riesgo de reorganización de la cadena.
MonadBFT utiliza un modelo basado en líderes. En cada ronda, un validador propone un bloque mientras los demás lo validan y votan sobre él. Si dos tercios del total de participación del validador confirma el bloque, se finaliza. Este proceso optimizado minimiza los costos generales y acelera la producción de bloques, especialmente en condiciones operativas normales.
Para garantizar la vivacidad, MonadBFT incluye estrategias de rotación de líder y de tiempo de espera. Si un líder no logra proponer un bloque, el siguiente validador en línea asume automáticamente el control. Esta resistencia asegura que la cadena continúe progresando incluso si algunos validadores están desconectados o no responden.
Desde el punto de vista de la seguridad, MonadBFT se adhiere al umbral típico de BFT, tolerando hasta un tercio de validadores que se comportan maliciosamente sin comprometer la seguridad. Una vez que se finaliza un bloque, está sellado criptográficamente y no se puede revertir sin la colusión de actores deshonestos que controlen la mayoría del poder de validación.
El protocolo está estrechamente integrado con el modelo de ejecución asincrónico de Monad. Dado que los bloques se finalizan antes de la ejecución, el sistema puede seguir progresando sin retrasos, mientras que la capa de ejecución procesa transacciones de forma independiente. Esta arquitectura reduce la carga de trabajo del validador y permite que el sistema mantenga un alto rendimiento sin depender de servicios de secuenciación centralizados o intermediarios de confianza.
La ejecución eficiente y el consenso dependen de un sistema de gestión de estado de alto rendimiento. En Monad, este papel es desempeñado por MonadDB, la capa de almacenamiento de estado personalizada de la cadena de bloques. MonadDB es responsable de almacenar todos los datos en cadena, incluidos los saldos de cuenta, el almacenamiento de contratos y otras variables de estado persistentes. Está diseñado para ser rápido, concurrente y totalmente compatible con el motor de ejecución paralela de Monad.
MonadDB utiliza un almacén de valores clave persistente y versionado, lo que le permite mantener múltiples instantáneas del estado al mismo tiempo. Esto es esencial para admitir la ejecución especulativa, donde múltiples transacciones se procesan en paralelo y pueden ser revertidas o ajustadas según conflictos. Al almacenar diferentes versiones del estado, MonadDB permite que el motor de ejecución aísle y resuelva conflictos de datos de manera eficiente.
En su núcleo, MonadDB emplea una estructura de datos de árbol de Merkle Patricia Trie, un árbol criptográficamente seguro que permite una verificación rápida del estado de la cadena de bloques. Esta estructura de trie asegura que cualquier cambio en el estado resulte en un nuevo hash raíz, que puede ser validado por todos los nodos. Admite la sincronización sin confianza, clientes ligeros y verificación de estado basada en pruebas, que son fundamentales para un diseño de cadena de bloques seguro y escalable.
Para manejar el volumen de transacciones esperado, MonadDB está diseñado para lecturas y escrituras de baja latencia. Incorpora almacenamiento en caché, controles de acceso seguros para la concurrencia y almacenamiento en disco de alta velocidad para garantizar una recuperación y modificación rápidas de las entradas de estado. Estas optimizaciones permiten que la capa de ejecución funcione a un alto rendimiento sin verse ralentizada por retrasos en el acceso a datos.
Desde el punto de vista del desarrollador, MonadDB está completamente abstraído. Los desarrolladores de contratos inteligentes interactúan con la cadena de bloques a través de constructos familiares de Solidity, sin necesidad de gestionar la mecánica subyacente del estado. MonadDB garantiza que el estado se actualice y se almacene con precisión, incluso bajo una carga alta o durante la ejecución de contratos complejos.