Documento original:
https://www.rob.tech/polkadot-blockspace-over-blockchains/
El panorama de la tecnología Blockchain y de las criptomonedas ha evolucionado bastante en los últimos 5 años. Ocupamos un mundo diferente de cuando nos propusimos construir Polkadot. Aunque mucho se ha desviado de nuestra visión original, muchas de nuestras tesis iniciales se han convertido en canon. Por ejemplo, nuestra apuesta inicial por la interoperabilidad y la integración entre cadenas ha pasado de la teoría a la práctica, y de la especulación a la realidad.
Además, las Parachains (tal y como se describieron originalmente, eran esencialmente rollups optimistas), la Seguridad Compartida y la Disponibilidad de Datos, tal y como se expuso en el documento de visión del año 2016, han enviado ondas a través del mundo de las ideas desde entonces, y han sido una fuente de inspiración arquitectónica para proyectos tanto nuevos como antiguos. Hemos pasado de un universo de pocas cadenas a uno con abundancia de cadenas. Pero nuestro objetivo nunca fue maximizar la cantidad de cadenas de bloques porque sí, sino maximizar la cantidad de trabajo que una red descentralizada puede hacer, o en otras palabras, resolver la escalabilidad. El número de blockchains está relacionado con la escalabilidad pero no es idéntico, y las diferencias entre ambos se aclararán aquí.
Cuando iniciamos Polkadot, nos propusimos crear un sistema que maximizara el rendimiento de las transacciones sin comprometer las garantías de seguridad y la resistencia a la censura. Este objetivo no ha cambiado, pero los avances en la capa de aplicación nos permiten ahora dar más color y matices a esta visión. Tanto los desarrolladores de aplicaciones como los de protocolos se enfrentan a nuevos retos en un mundo multicadena. Deben equilibrar los requisitos de ejecución segura, resistencia a la censura, utilidad, costes e integración. El concepto emergente de Blockspace sirve como abstracción y primitiva que engloba estos requisitos y objetivos.
En este artículo, profundizaré en la definición y las cualidades de Blockspace y en cómo evaluar las diferentes ofertas para ello en el mercado. Además, defiendo por qué estamos cambiando nuestra perspectiva de las Blockchains a Blockspace y por qué Polkadot está bien adaptado arquitectónicamente como el productor de espacios de bloques más fuerte y generalizado.
¿Qué es Blockspace?
“Blockspace es el mejor producto para vender en la década de 2020”.
Chris Dixon, a16z, en el podcast Bankless
El Blockspace es la capacidad de una Blockchain para finalizar y confirmar operaciones. Es un término que ha cobrado importancia últimamente. Requiere un poco de desenvolvimiento. En cierto sentido, es el principal producto de los sistemas de consenso descentralizados que funcionan hoy en día. Es una abstracción para razonar sobre lo que las Blockchains realmente producen: si se asigna a las transferencias de saldo, a los contratos inteligentes o a la computación, eso una preocupación para la capa de aplicación. A alto nivel, el Blockspace es un ingrediente clave para las aplicaciones imparables. Las aplicaciones imparables dependen de sistemas descentralizados para el pago, el consenso o la liquidación. Como tal, la capa de aplicación es un consumidor principal de Blockspace como un bien. Como en cualquier negocio, tanto las aplicaciones como sus desarrolladores deben preocuparse tanto por la calidad como por la disponibilidad de los bienes en su cadena de suministro.
Blockspace es un bien efímero. Cuando se pretende consignar una operación en una cadena se necesita espacio de bloque en el momento: no el de ayer, ni el de mañana. El espacio de bloques se utiliza o no se utiliza. Cuando una cadena funciona por debajo de su capacidad, los recursos de consenso se desperdician en la producción de espacio de bloque no utilizado.
Ethereum fue el primer gran innovador en la oferta de Blockspace. Al introducir una máquina virtual en el protocolo y medir el espacio de bloques disponible a través del “gas”, permitió que el espacio de bloques de un solo bloque se repartiera cuantitativamente entre los programas en función de la cantidad de cálculos realizados y del almacenamiento utilizado. Desde entonces, muchos proyectos se han embarcado en un viaje para ampliar los tipos de espacio de bloques. Esta perspectiva proporciona una visión de los diferenciadores clave entre Polkadot, Ethereum, Avalanche, Cosmos, Solana y proyectos más recientes como EigenLayer o AltLayer.
El trilema de la escalabilidad de la Blockchain nos dice que de la seguridad, la latencia y el rendimiento, sólo se pueden elegir dos bajo una gran carga. En Polkadot, nuestro enfoque en la capa base siempre ha sido maximizar tanto la seguridad como el rendimiento cuando nos vemos obligados a elegir. Aunque el trilema es útil para evaluar la utilidad teórica de un protocolo de la capa base, la noción de espacio de bloques nos permite razonar mejor sobre cómo se asignan ese rendimiento y esa seguridad a la capa de aplicación.
El Blockspace no es un commodity, sino una clase de commodities. El espacio de bloques producido por diferentes sistemas variará en calidad, disponibilidad y flexibilidad. La calidad del espacio de bloques puede juzgarse por las garantías de seguridad que ofrece la cadena de bloques: cuanto más segura sea, mayor será la calidad. Sin un suministro de espacio de bloques, las aplicaciones se ven congestionadas o con tiempos de inactividad, lo que lleva a los usuarios a experimentar tarifas elevadas, largos tiempos de espera o a hacer uso de los servicios de los usuarios. Sin un espacio de bloques de alta calidad, las aplicaciones son hackeadas y vaciadas: el Blockspace de baja calidad es vulnerable al 51% de los ataques y al shock tóxico. Ambos tipos de sucesos resultarán familiares a los lectores que hayan pasado tiempo observando el ecosistema de Blockchain. Estas características del espacio de bloques son los factores clave que los desarrolladores de aplicaciones deben tener en cuenta a la hora de elegir dónde desplegarlo.
Características de Blockspace
Profundicemos en las 3 características principales de Blockspace como un bien: Calidad, Disponibilidad y Flexibilidad.
Calidad – Al igual que con cualquier bien, la calidad es un factor importante que deben tener en cuenta los consumidores de Blockspace. Los bienes de alta calidad cumplen su propósito, y el propósito del espacio de bloques es convertirse en un registro permanente de la ejecución del “estado de la máquina”. Dentro de este marco, la calidad es equivalente a la seguridad, en el lenguaje cripto-económico. En adelante, utilizaré las dos descripciones indistintamente. Un espacio de bloques inseguro o de baja calidad es vulnerable al 51% de los ataques y a los fallos de consenso. Bajo el capó, la seguridad viene determinada por dos factores: el protocolo de consenso que se utiliza para asegurarlo, y la cantidad de seguridad económica real (es decir, la potencia minera o la participación) utilizada en la producción y el compromiso del espacio de bloques.
Disponibilidad – La disponibilidad de Blockspace viene determinada por la oferta y la demanda. La oferta de espacio de bloques depende del rendimiento y la capacidad de respuesta del sistema que lo produce: las Blockchains que se detienen o requieren intervención y operación manual tendrán un suministro intermitente de espacio de bloques. Las Blockchains que no maximizan el rendimiento, limitarán su suministro a escalas inferiores. Las Blockchains que funcionan con mecanismos de consenso inseguros suministrarán espacio de bloques sin fuertes garantías de permanencia.
Flexibilidad – La flexibilidad es la capacidad del Blockspace para ser utilizado en diferentes tipos de operaciones. El espacio de bloques de Bitcoin y Ethereum es algo flexible, en el sentido de que el espacio de bloques puede asignarse a transacciones enviadas por el usuario. Sin embargo, Bitcoin y Ethereum tienen un mecanismo de espacio de bloques completamente transaccional que sólo puede actuar en transacciones enviadas por el usuario. No puede utilizarse en operaciones proactivas que se realicen sin la intervención del usuario. La mayoría de los blockchains no han avanzado más allá de este modelo reactivo. Incluso la mayoría de los protocolos de rollups se centran principalmente en las transferencias de saldo impulsadas por el usuario y en las invocaciones de contratos inteligentes. Los formatos de transacción, los modelos de cuenta y los lenguajes de scripting soportados por la mayoría de las blockchains son limitados.
El Blockspace altamente flexible se centra por completo en la ejecución, el almacenamiento y el consumo de datos y deja en manos del consumidor del Blockspace la forma de asignar esos recursos básicos a las operaciones reactivas y proactivas. Los consumidores de Blockspace deben ser capaces de priorizar la lógica de la aplicación de primera clase en relación con las transacciones enviadas por el usuario, de modo que puedan hacer un progreso significativo incluso en ausencia o sobreabundancia de transacciones enviadas por el usuario. Esto no quiere decir que los modelos transaccionales sean malos. De hecho, es lo contrario: los modelos de ejecución transaccional pueden utilizarse con buenos resultados en interoperación con los modelos de ejecución autónomos. El producto subyacente detrás de ambos es el espacio de bloques, y éste sólo puede soportar ambos modelos cuando es lo más flexible posible. El Blockspace flexible es un pre-requisito para los mercados profundos de Blockspace.
Para añadir más matices, debemos reconocer el hecho de que las aplicaciones modernas de Blockchain se basan en la interoperabilidad entre las máquinas de estado que utilizan el espacio de bloques. Mezclar el espacio de bloques de baja calidad con el de alta calidad estropea aplicaciones enteras y expone a los usuarios a riesgos de cola catastróficos. Si estuviéramos construyendo un restaurante, no serviríamos a nuestros clientes una comida preparada principalmente con ingredientes de alta calidad mezclados con una pequeña cantidad de basura. Del mismo modo, los desarrolladores de aplicaciones no deberían servir a sus clientes y usuarios aplicaciones compuestas en su mayor parte por espacio de bloques de alta seguridad y en parte por espacio de bloques de baja seguridad. El ingrediente de baja calidad arruina el resto del plato. En el mundo interoperable, las aplicaciones que buscan minimizar el riesgo para sus usuarios deberían utilizar sólo espacio de bloques de alta seguridad para ofrecer un producto final.
Las aplicaciones modernas necesitan un Blockspace paralelo con una alta calidad predecible y consistente. Además, una clase de Blockspace se adapta mejor a las aplicaciones interoperables cuando todas las Blockspace de la clase ofrecen garantías de seguridad homogéneas. En esencia, la interoperabilidad es la integración de las máquinas de estado asíncronas. Una red fiable de máquinas de estado compuestas asíncronamente desbloquea un valor supe adicional, y las clases de Blockspace más adecuadas para esta tesis son las que proporcionan garantías de seguridad estándar y sólida: crean valor sin incurrir en riesgos adicionales. Se dice que estas clases de Blockspace proporcionan una seguridad compartida para todos los demás.
Las soluciones de escalabilidad responden al problema del suministro de espacio de bloques. Los sharding y los rollups, por ejemplo, utilizan la cripto-economía para escalar introduciendo protocolos de prueba o disputa en los que, en el caso por defecto, no es necesario que cada validador compruebe cada transición de estado. Las soluciones de escalado pueden combinarse con arquitecturas de seguridad compartidas para abordar tanto la necesidad de suministro como la de calidad.
Algunos ecosistemas reconocen ahora la necesidad de arquitecturas de seguridad compartidas, pero utilizan la opción voluntaria de los validadores para determinar el grado de seguridad que reciben los distintos productos del Blockspace bajo el paraguas de la seguridad compartida. Se trata de una arquitectura deficiente, porque consagra a los validadores particulares como un grupo de intereses especiales que buscan rentas y al que los solicitantes deben apelar para que su proyecto se inicie o se asegure adecuadamente. Las barreras de entrada entre la oferta y la demanda tienen el potencial de reducir tanto la disponibilidad como la calidad del Blockspace.
Los desarrolladores de aplicaciones y protocolos deben prestar especial atención a estas tres características, y estructurar su aplicación más en torno al Blockspace que a las Blockchains o los contratos inteligentes. Las aplicaciones y los protocolos descentralizados pueden operar a un coste menor para sus usuarios o titulares de tokens adquiriendo Blockspace bajo demanda en lugar de hacer funcionar una cadena las 24 horas del día. Es bastante común que las Blockchains en su fase inicial filtren una gran cantidad de tokens a los validadores que producen bloques con un uso mínimo subyacente. Este es un efecto secundario de la asignación ineficiente del espacio de bloques, que beneficia principalmente a los validadores a expensas de los desarrolladores de aplicaciones y los titulares de tokens. La computación en nube superó al espacio de servidor dedicado porque asignó recursos físicos de forma más granular y adaptable. Del mismo modo, las arquitecturas centradas en el Blockspace para las capas base de Web3 superarán a las arquitecturas centradas en la Blockchain.
Polkadot: Una arquitectura centrada en el Blockspace
El sistema de consenso de Polkadot es, en esencia, un generador de espacio de bloques eficiente y flexible. Al igual que las CPUs modernas, la red Polkadot es una máquina multi-hilos. Este sistema se basa en una única primitiva: el núcleo de ejecución. Cada núcleo puede ejecutar un bloque de una máquina de estado a la vez. La red hace uso de sus recursos en forma de validadores y stake vinculado para exponer el máximo número de núcleos en cualquier momento. Debido a las ganancias de eficiencia de la arquitectura de Polkadot, los validadores de Polkadot son capaces de transformar los recursos reales que consumen en más espacio de bloques que simplemente ejecutando más blockchains independientes con el mismo valor en stake. La seguridad compartida por sí sola no es suficiente para construir un productor de Blockspace eficaz. La seguridad compartida garantiza una calidad homogénea del espacio de bloques. Debe ir acompañada de un mecanismo de escalado para garantizar el suministro.
Como productor de Blockspace, Polkadot se esfuerza por abrir sus servicios al máximo número de usuarios posible. Dado que Polkadot utiliza WebAssembly y una arquitectura de máquina virtual, las cadenas de bloques de Polkadot no necesitan convencer a los validadores para que ejecuten su software. Al igual que los contratos inteligentes, el único requisito es publicar el código en la cadena y adquirir espacio en el bloque.
Los validadores de Polkadot no pueden elegir en qué Blockchain están obligados a trabajar en un momento dado – lo único que les importa es el núcleo al que están asignados en cualquier momento, y la correspondiente Blockchain programada en ese núcleo. Los validadores de Polkadot son puros proveedores de servicios. No tienen opinión. Trabajan en lo que el mercado les dice que trabajen. Los compradores de Blockspace en Polkadot tienen la garantía de que los validadores cumplirán su parte del trato sin ninguna intervención humana, y los validadores que no lo hagan se perderán las recompensas.
Es justo considerar a Polkadot como un protocolo de rollups. Sin embargo, a diferencia de los protocolos de rollups basados en sistemas de contratos inteligentes, los rollups están integrados en la lógica de la capa base a través de los núcleos de ejecución. Cuando los rollups se construyen sobre una capa de contratos inteligentes, el sistema, hasta cierto punto, se convierte en “cada rollups para sí mismo”, ya que compiten por el gas, los validadores, la inclusión y la programación. El Blockspace transaccional basado en el gas en la capa base no es el más adecuado para asignar espacio de bloques a los rollups. Para ofrecer garantías coherentes sobre la programación, la seguridad y el suministro, estamos construyendo un sistema específico que es modular, allí donde la modularidad cuenta: en la capa de aplicación.
La distinción arquitectónica entre los núcleos de ejecución y las Blockchains o máquinas de estado que se ejecutan sobre ellos es de crucial importancia. Vemos poco valor en maximizar el número de cadenas de bloques; esto es sólo un sustituto de lo que más importa: maximizar un Blockspace seguro. Los núcleos de ejecución son el motor de la producción del Blockspace y los derechos de programación de esos núcleos abren un espacio de diseño para los productos de asignación de Blockspace.
Mecanismos de asignación de Blockspace
La asignación eficiente del Blockspace es fundamental. Los patrones de uso de las Blockchains no son consistentes. Las cadenas de bloques experimentan períodos de gran carga y congestión, así como períodos de infrautilización y vacío. Por un lado, las aplicaciones deben ser capaces de adaptarse a los períodos de gran carga. Por otro lado, las aplicaciones no deberían pagar por el espacio de bloques que no utilizan. El espacio de diseño de los productos en este caso está poco explorado, pero la arquitectura de Polkadot es la única que puede mejorar la oferta del mercado.
Un paralelismo para pensar en el diseño de productos de asignación de Blockspace es el mercado de la computación en nube. Los modelos de negocio de la computación en nube suelen tener dos características clave: instancias reservadas e instancias puntuales. Las instancias reservadas son más baratas, pero están garantizadas durante un periodo de tiempo prolongado. Las instancias puntuales son más costosas, están disponibles bajo demanda y son efímeras. Las aplicaciones con una carga predecible ahorrarán dinero comprando instancias reservadas, pero pueden escalar para satisfacer la demanda sin cortes de servicio utilizando instancias puntuales. Sin embargo, las instancias reservadas también representan un compromiso: el operador de la aplicación está perdiendo dinero si la demanda real de la aplicación cae por debajo de la oferta reservada de recursos informáticos en la nube.
Vamos a concretar esto. Los Slots a largo plazo son el único mecanismo actual para asignar los Núcleos de Ejecución de Polkadot. Son similares a las instancias reservadas, asignadas por gobernanza o por subastas de Slots: los ganadores acceden a un Núcleo de Ejecución dedicado durante un tiempo predeterminado de 6, 12, 18 o 24 meses. Los Parathreads, que presentamos por primera vez como concepto en 2019, son blockchains de pago por uso. Los Parathreads son como instancias al contado. Nuestra idea actual es que este precio al contado se establezca utilizando un controlador óptimo: en términos simples, el precio subirá cuando los núcleos expuestos por Polkadot para los Parathreads estén saturados y el precio bajará cuando haya núcleos vacíos. Este es sólo un ejemplo más de cómo se puede asignar el espacio de los bloques.
Podemos llevar este concepto de asignación de núcleos de ejecución más allá. La arquitectura de Polkadot es tal, que una misma cadena puede tener varios núcleos asignados simultáneamente – imagina una Blockchain que en lugar de avanzar de a un bloque por vez, avanza de a dos o tres. Esto es posible, y se debe a las particularidades del diseño de Polkadot que permiten validar las transiciones de estado secuenciales en paralelo. En términos prácticos, el número de núcleos que puede ocupar eficientemente una cadena está limitado únicamente por el número de núcleos que puede adquirir a la vez y el ritmo al que la cadena puede producir bloques. Esperamos que a medida que este mercado madure se produzca una ola de innovación en la generación de bloques para las cadenas Polkadot con el fin de maximizar la utilidad de esta característica. Esperamos que incluso las cadenas con un método simple de creación de bloques secuenciales, como el que está disponible actualmente, puedan hacer un buen uso de 2 o 3 núcleos.
Como ejemplo de cómo una cadena podría utilizar varios núcleos, podríamos introducir otro tipo de producto de asignación de Blockspace: las subastas a corto plazo. Estas subastas estarían a medio camino entre la asignación pura de espacios y la asignación reservada a largo plazo. Es ciertamente posible diseñar un mecanismo de subasta para asignar espacios para duraciones cortas – como una hora, un día o un mes. Esto podría utilizarse para algo que he denominado “Parachain Boost”: la capacidad de las cadenas de bloques de ampliar su rendimiento durante períodos de gran carga, como una autopista que se ensancha durante la hora pico.
Además, si cambiamos nuestra perspectiva de centrarnos en la Blockchain a centrarnos en el Blockspace, queda claro que no hay ninguna razón para que una Blockchain o una máquina de estado funcionen eternamente. Las Blockchains efímeras son un caso de uso interesante que creo que está muy poco explorado: los procesos que se ejecutan durante más tiempo deberían poder descargar sus cálculos o protocolos a las cadenas de corta duración, al igual que los programas que se ejecutan en un PC pueden descargar los cálculos o el trabajo a los hilos de fondo.
Una última vía que podemos seguir para la asignación de núcleos de ejecución es la capacidad de transferir pedidos sobre núcleos de ejecución. Esto creará un mercado secundario para el Blockspace de Polkadot: las cadenas podrán intercambiar capacidad extra entre sí y actuar como revendedores de Blockspace. Las cadenas que experimenten una demanda menor o mayor de la prevista podrán adaptarse en consecuencia o incluso especular sobre la futura demanda.
Reformulando el significado de Blockchain
En mi opinión, el ecosistema de las Blockchains ha estado pensando demasiado en el mundo de las cadenas múltiples. Las blockchains que arrancan y funcionan indefinidamente con un pulso constante son un mecanismo evidentemente ineficiente. La multicadena del mañana está formada por cadenas de bloques que escalan y se reducen según la demanda. Contiene cadenas efímeras concebidas por las fábricas on-chain, hilvanadas por contratos e implícitas en un propósito automatizado, para completar su trabajo unas horas más tarde y desaparecer. Nuestro objetivo en Web3 no es maximizar el número de cadenas de bloques. Maximizar el número de blockchains es algo que yo declararía explícitamente como un no-objetivo, ya que beneficia principalmente a los cárteles de validadores que buscan extraer valor. Nuestro objetivo en Web3 es maximizar la cantidad de espacio de bloques que existe y asegurar que se asigna a las máquinas de estado que más lo necesitan en cada momento: una generación y asignación constante de recursos de consenso global a quienes más lo necesitan. Una empresa sin desperdicio. En otras palabras: el productor de Blockspace más eficaz del mundo.