El futuro de Polkadot busca establecer una arquitectura que permite utilizar la computación del blockchain como un recurso a pedido. Esta flexibilidad reduciría las barreras de entrada para el desarrollo de aplicaciones y haría más eficiente el uso de toda la red.
La idea de un computador global
Polkadot, a lo largo de su desarrollo, persigue esta idea de adoptar una forma de computador global, una plataforma que pueda lanzar aplicaciones Web3 resilientes, descentralizadas y resistentes a la censura. En este contexto, los desarrolladores pueden crear sin la necesidad de preocuparse por montar un nuevo blockchain, configurar múltiples nodos o construir una economía desde cero, ya que existe una plataforma lo suficientemente flexible y escalable como para alojar fácilmente sus aplicaciones.
Aspectos que revisar de la propuesta original
Polkadot es un blockchain capa-0 que actúa como estructura base para el desarrollo de otros blockchains, compartiendo la seguridad y facilitando la comunicación entre ellos. Hasta ahora, este diseño ha estado centrado exclusivamente en este servicio, habilitar parachains (blockchains capa-1) que buscan especializarse en diferentes áreas. Sin embargo, este modelo ha presentado una barrera de entrada para el desarrollo de aplicaciones a menor escala o de corto plazo, lo que restringe la innovación y conduce a la falta de potenciales colaboradores. Esto ha llevado a reconsiderar las funciones del relay-chain y su arquitectura hacia una forma más simplificada y modular.
Por otro lado, el sistema de parachains ha puesto en evidencia la necesidad de mejorar el aprovechamiento de los recursos de la red. Incluso cuando la demanda es baja, los blockchains continúan generando bloques constantemente, aunque no estén siendo utilizados en su totalidad, e incluso en algunos casos, se están generando bloques vacíos. Es importante encontrar una manera de utilizar estos recursos de manera más eficiente, ya que el objetivo principal es maximizar la cantidad de blockspace que podemos tener disponible para asignarlos a aquellos que lo necesiten.
Otro aspecto del relay-chain es que se construyó utilizando la herramienta de desarrollo de Polkadot, Substrate. Si bien este tipo de herramientas es fundamental para el crecimiento del ecosistema y, sin duda, proporciona una gran ayuda para el desarrollo en el blockchain, también ha presentado desafíos para otros equipos que deseaban trabajar con sus propios lenguajes de programación.
Escalar el blockchain de forma paralela
Los modelos de los blockchain deben empezar a considerar arquitecturas paralelas y asincrónicas, lo que básicamente implica la capacidad de realizar múltiples tareas simultáneamente mientras otras se completan gradualmente. Esta será la forma en que todos los blockchains escalen en el futuro. En el caso de Polkadot, cada parachain tiene asignado su propio core o núcleo computacional, el cual opera de manera independiente y paralela a los demás. Este núcleo se encarga de procesar y validar la información en el blockchain, pero actualmente está dedicado a un solo servicio, a los parachain. Es aquí donde la nueva propuesta de Polkadot busca realizar mejoras, la idea es compartir estos núcleos para que puedan ser utilizados no solo por los parachains sino por más tipos de servicios, lo que ayudaría a escalar notablemente la red y hacer más eficiente el uso de sus recursos.
Esto se suma a la idea de que no todas las aplicaciones requieren del mismo uso de un núcleo. Algunas pueden necesitar más capacidad de cálculo, otras pueden necesitar acceso rápido a datos y otras pueden necesitar más espacio de almacenamiento. Esta diversidad de necesidades significa que diferentes funciones que un núcleo pueda ofrecer pueden ser aprovechadas de manera simultánea.
Nueva propuesta hacia el JAM-chain
Esta nueva propuesta, denominada JAM, busca ser un sistema más modular y flexible que el actual. El objetivo es ejecutar todo tipo de aplicaciones, independientemente de su tamaño o duración, donde los parachains son solo un tipo más de estas aplicaciones.
Esto abre la posibilidad de realizar operaciones sin necesidad de aprobación ni registro directo en el blockchain (transactionless), las cuales ocurren en una capa que funciona como la memoria de un computador. Se pueden ejecutar procesos de largo plazo que no necesitan actualizarse constantemente y que pueden ser consultados y actualizados más adelante. Además, se pueden crear blockchains que escalen según la demanda o aplicaciones que sean únicamente transitorias.
Servicios
Al contar con un sistema tan simplificado y modular, las funcionalidades más específicas se irán incorporando a través de servicios. De hecho, el primero de estos debería ser aquel que permita agregar nuevos servicios. Las funcionalidades que antes residían en el relay-chain serán migradas a otros servicios, como transferencia de saldos, staking y gobernanza. Además, los parachains también formarán parte de este tipo de servicios.
Polkadot, así como cualquier otra persona, puede introducir nuevos servicios que podrían resultar útiles para el resto de la comunidad. Por ejemplo, podrían ofrecer servicios de almacenamiento descentralizado o, en el caso más reciente de Polkadot, establecer un Asset Hub donde se creen los nuevos tokens que ingresan al ecosistema, entre otros.
Blockspace y Coretime
El recurso proporcionado por un blockchain se conoce como “blockspace”, que se refiere a la capacidad de un blockchain para finalizar y confirmar operaciones. Esta capacidad se mide por la calidad de su seguridad, disponibilidad y flexibilidad. Cada blockchain tiene sus propias características y cualidades, lo que nos permite evaluar y adquirir el blockspace que mejor se adapte a nuestras necesidades para el desarrollo de nuestras aplicaciones.
En el contexto del modelo propuesto por Polkadot, también se menciona el concepto de ”coretime”, que representa el tiempo de uso de los núcleos para llevar a cabo las diversas operaciones en el blockchain.
Acceso al blockspace y un mercado entorno al coretime
En esta nueva propuesta del JAM, cada núcleo puede ser utilizado simultáneamente para diversos tipos de servicios. Estos servicios, a su vez, requieren tiempo de núcleo o coretime para llevar a cabo distintas operaciones. Este recurso computacional está diseñado para adaptarse a diversas necesidades y presupuestos. El coretime puede ser consumido a pedido, lo que permite a las aplicaciones pagar únicamente por el tiempo de núcleo que utilizan.
En un principio, se conciben de la siguiente manera: ventas de coretime al por mayor por un precio fijo mensual o instantáneo a precio al contado, donde la tarifa se ajusta automáticamente según el mercado. Cuando haya coretime sin alquilar, se destinará al mercado instantáneo. Además, aquellos que hayan adquirido coretime al por mayor podrían dividirlo y venderlo por separado.