La red Cardano se prepara nuevamente para la llegada del hard fork Vasil. Esta es una actualización que promete grandes cambios que le acerquen a una infraestructura de smart contracts con gran flexibilidad para crear dApps aún más potentes y donde la escalabilidad de la red será tan amplia como para permitir el doble de su capacidad actual. Pero, ¿qué sorpresas trae Vasil Cardano? ¿Cómo mejorará a una de las grandes redes blockchain de la actualidad? Eso lo veremos a continuación.

Vasil, un homenaje y una esperada optimización

En primer lugar, el nombre del hard fork Vasil ha sido elegido como homenaje a un amigo personal de Charles Hoskinson: Vasil Stoyanov Davov, quien fuera Embajador Global de Cardano, fallecido en diciembre de 2021. La elección de Vasil como nombre de este hard fork rompe con la tradición de usar nombres de personalidades científicas históricas, pero demuestra también la estima a Vasil, quien promoviera la adopción de Cardano en el mundo.

Más allá de eso, vasil cardano llega con varias mejoras que buscan brindar un óptimo rendimiento a la red con el fin de dar capacidad para atender a la creciente cantidad de usuarios que llegan a la red. Desde la activación de los smart contracts y la llegada de los tokens, NFTs y dApps a Cardano el uso de la red se ha multiplicado.

Con eso en mente, los desarrolladores de Cardano se han puesto manos a la obra para mantener un ecosistema de coste justo y alta escalabilidad. En ese panorama, Vasil es un paso adelante en ese sentido, uno que se da dentro de la era Goguen, la actual era de desarrollo de la red, y que permite a los desarrolladores comenzar a trabajar en Basho, la próxima era de Cardano, que promete duplicar la escalabilidad on-chain  y al mismo tiempo crear las infraestructuras necesarias para lateralizar muchas funciones y capacidades on-chain de Cardano, incrementando aún más su escalabilidad.

Ahora bien, ¿exactamente de qué mejoras y optimizaciones hablamos? Pues veamos todo lo nuevo que Vasil ofrecerá a la comunidad que hace vida en Cardano.

Mejoras en la difusión de información en la red

Una de las principales mejoras de Vasil viene en el sistema de difusión de transacciones y bloques dentro de la red. Uno de los principales retos de las redes blockchain es que a medida que sus redes crecen y se hacen más descentralizadas terminan requiriendo más y más tiempo para difundir y propagar la información a todos los nodos de la red para poder alcanzar el consenso. Durante este tiempo, no solo se retrasa el consenso, sino que al mismo tiempo se abre la puerta para realizar ataques al mismo, pudiendo suceder que terceros maliciosos puedan alterar y romper la red de forma temporal o permanente.

Así, la primera línea de defensa es tener tiempos de difusión de información cortos y hacer muy eficiente este sistema. Y eso es algo en lo que Vasil trae una gran mejora para la red de Cardano. Recordemos que la red Cardano ha crecido en tamaño y uso, lo cual genera más información que debe transmitirse y al mismo tiempo consume ancho de banda. De esta manera, hacer uso de este recurso limitado es fundamental, y para lograr mejorar su eficiencia y capacidad Vasil activará una mejora conocida como “Diffusion Pipeling”, un proceso que ayuda a que la propagación de información se haga de forma mucho más rápida y eficiente, con el fin de que este proceso se realice en un máximo de 5 segundos.

Para lograr esto, el Diffusion Pipeling propaga los bloques antes de su completa validación, con lo que se “solapa” el tiempo dedicado a la difusión con el necesario para la validación. De esta manera, la difusión se hace asincrónica con respecto a la validación, permitiendo:

  1. Que los bloques se propaguen de forma rápida y dentro de los tiempos de validación.
  2. Que la red reconozca el nuevo bloque y su bloque anterior, manteniendo la seguridad y la “cadena de bloques” correcta en todo momento, evitando ataques del tipo DDoS o de split-network que actores maliciosos puedan llevar sobre la red.

Esto es perfecto si tenemos en cuenta que el sistema de Cardano para su comunicación de red está asentado sobre dos grandes sistemas:

  1. Un sistema derivado del protocolo Gossip que permite usar de forma eficiente los recursos de la red. Esta parte está diseñada sobre tecnologías como TCP, HTTP y técnicas como CBOR (puedes leer más en el RFC 7049 – Concise Binary Object Representation).
  2. Un conjunto de mini-protocolos que trabajan en conjunto para llevar las distintas tareas de comunicación de la forma más eficiente y que se encarga de encontrar peers, de mantener la comunicación y de diversas tareas de sincronización de la red.

Mejoras en el script Plutus

Otra gran mejora en Vasil se puede ver en Plutus, la plataforma de smart contracts de Cardano. Con Vasil los desarrolladores ahora podrán crear dApps más rápidas y eficientes, gracias a la optimización de los smart contracts que vendrá en Vasil, junto con las primitivas de Plutus V2, lo que ayudará a aprovechar de mejor manera  el modelo EUTXO de Cardano.

CIP o Cardano Improvements Proposals para Plutus

Todas estas mejoras en Plutus vienen en forma de CIP o Cardano Improvements Proposals, que en español significa, Propuesta de Mejora para Cardano. Estos CIPs son documentos técnicos en los que se explica de forma clara y detallada las motivaciones, objetivos y formulaciones de una mejora introducida a Cardano, con el fin de hacer evolucionar este ecosistema.

Al igual que las BIP (Bitcoin Improvements Proposals) o las EIP (Ethereum Improvements Proposal), las CIPs se discuten abiertamente y se desarrollan con el fin de estudiar a fondo su alcance, aprobandose e implementandosé como parte de oficial del proyecto una vez que han sido pulidas y bien probadas todas ellas. Los desarrolladores mantienen todas estas propuestas accesibles al público en esta web, para que así puedan participar tanto en su desarrollo, como en su revisión y uso para el desarrollo de otras propuestas o proyectos.

En este caso, Vasil presenta las siguientes CIPs para mejorar Plutus:

  1. Adición de entradas de referencia (CIP-31). Esta actualización permite compartir datos en la cadena. Anteriormente, los datos se llevaban en las salidas de las transacciones; almacenaban y proporcionaban acceso a la información en la blockchain. Sin embargo, para acceder a la información de este dato, había que gastar la salida a la que se adjuntaba el dato. Esto requería la recreación de una salida gastada. La adición de entradas de referencia permite ahora a los desarrolladores consultar el dato sin pasos adicionales. Esto facilita el acceso a la información almacenada en la cadena de bloques sin necesidad de gastar y recrear UTXOs. Esto será útil para los oráculos, por ejemplo.
  2. Adición de datos en línea (CIP-32). Los datos de las transacciones se adjuntan anteriormente a las salidas como hashes. Con la implementación de los datos en línea, los desarrolladores pueden ahora crear scripts y adjuntar los datos directamente a las salidas en lugar de utilizar sus hashes. Esto simplifica el uso de los datos, ya que el usuario puede ver el dato real en lugar de suministrarlo para que coincida con el hash dado.
  3. Implementación de scripts de referencia (CIP-33). En Alonzo, al gastar una salida bloqueada dentro de un script de Plutus, había que incluir el script en la transacción de gasto. Esto aumentaba el tamaño del script provocando también ciertos retrasos en su procesamiento. La actualización de los scripts de referencia permite a los desarrolladores referenciar un script sin incluirlo en cada transacción. Esto reduce significativamente el tamaño de la transacción, mejora el rendimiento y reduce los costes de ejecución de los scripts (ya que el script sólo necesita ser pagado una vez).

Mejoras en criptografía

Además, Vasil también incluirá mejoras en las primitivas criptográficas de Cardano (lo que permitirá mayores opciones de interoperabilidad para otros blockchains). Por ejemplo, Vasil activará funciones especiales que permitirán el uso de ECDSA con la curva secp256k1 (la misma configuración usada en Bitcoin) para la realización de firmas digitales dentro de los smart contracts de Plutus.

Asimismo, el equipo de Cardano también ha decidido aprovechar otro avance realizado en Bitcoin para agregarlo a su pila criptográfica: Schnorr. Con la llegada Schnorr a Cardano la red se podrá beneficiar, no solo de operaciones criptográficas más avanzadas, seguras y optimizadas, sino también de la capacidad de comunicarse mediante bridges con redes como Bitcoin y Ethereum sin que ello complique especialmente la generación de tales infraestructura ni requiera de cambios significativos en la pila criptográfica.

Mejoras en el manejo de garantías de los smart contracts

Otra gran mejora de Vasil viene sobre el sistema de garantías usado en Plutus V2. Bajo el CIP-40 conocido como Ajuste de la garantía de los scripts, este sistema no solo ayudará a mejorar la validación de las transacciones, sino que  solucionará un problema actual de los scripts Plutus V1.

Anteriormente el importe de la garantía se fijaba en el 150% de la tarifa de la transacción y no se realizaba ningún cambio en el UTXO de la garantía. Esto significaba que si un script fallaba la validación de la fase 2 un usuario de DApp perdería todos los fondos almacenados en el UTXO elegido para la garantía, un hecho inaceptable.

Después de Vasil, los desarrolladores de DApp tendrán la posibilidad de especificar una dirección de cambio para la garantía del script. Si el script falla la validación de la fase 2 sólo se tomará la cantidad de la garantía, y los fondos restantes se enviarán a la dirección de cambio.

Por último, Vasil optimiza el proceso de función aleatoria verificable (VRF) de Ouroboros. Antes de Vasil la validación de bloques requería dos funciones VRF en cada salto de la red. Vasil prescinde de una de estas funciones, lo que se traduce en tiempos de validación de bloques y de sincronización de la red más rápidos en general. Los usuarios experimentarán un mayor rendimiento sin comprometer la configuración de seguridad.

La puesta en marcha de Vasil

Pese a todo el trabajo puesto en vasil cardano, el hard fork aún no se ha aplicado sobre la mainnet debido a una serie de retrasos sucedidos por la necesidad de los desarrolladores de pulir todos los puntos necesarios para evitar problemas en su despliegue sobre la misma. El mismo Charles Hoskinson ha dicho que los retrasos han sido para garantizar un proceso libre de problemas y actualmente, el software cardano-node en su version 1.35.3 ya se encuentra desplegado y listo para ser el que permita el despliegue de Vasil dentro de la mainnet.

Si bien la versión del software está lista, aún no hay una fecha clara para iniciar el despliegue en mainnet y continúan las pruebas en testnet, con el fin de cerrar los errores que bloquean el proceso (bugs blockers), los cuales puedes revisar en este enlace.

En todo caso, una vez todos estos problemas estén solventados, seguramente tendremos la fecha final del despliegue de Vasil y disfrutaremos de sus bondades sobre la mainnet de Cardano.