Introducción a la Data Availability

📌Introducción

Uno de los conceptos que más se repiten en la industria cripto es “trustless”, lo cual significa en esencia que no debes confiar en nadie sin validarlo primero.

Es por esto que las blockchains poseen nodos completos, los cuales descargan y ejecutan la data que proporcionan los “bloques” (blocks en inglés) y se aseguran que los cálculos propuestos por el block producer coinciden precisamente con los cálculos hechos por el validador. De esta manera, los nodos verifican que esta nueva información es válida en lugar de tener que confiar ciegamente en que los block producers (en español, productores de bloques) son honestos.

De lo dicho anteriormente podemos decir que no es posible validar cálculos si falta algún dato. Y es allí donde la Data Availability entra en escena.


🤷‍♂️¿Qué es la Data Availability (DA)?

En términos de una blockchain, la Data Availability, o “Disponibilidad de datos” en español, se refiere a la capacidad de los nodos de la red para acceder a la información de los blocks almacenados en la blockchain. Esto incluye la capacidad de leer y verificar los datos, así como la capacidad de escribir y reproducir de nuevo los mismos datos para su verificación.

Asegurar la Data Availability es crucial para el funcionamiento de una blockchain, ya que permite a los nodos participar en el proceso de consenso y garantiza que la blockchain pueda continuar funcionando incluso si algunos nodos fallan o se desconectan.

Podemos decir entonces que la Data Availability depende de la información que contienen los blocks. Por su parte los blocks están conformados por 2 partes:

  • Block Head: este contiene información (metadata) sobre el block. Esto incluye el número del block, el hash del block, la timestamp, etc.

  • Block Body: El cuerpo de block consiste en todos los datos de transacciones procesados como parte del block en cuestión.

Partes de un block. Fuente: www.researchgate.net
Partes de un block. Fuente: www.researchgate.net

🤔¿Cómo funciona la verificación de un block?

En primer lugar, el block producer:

  1. Toma transacciones de la mempool.

    (La mempool es un mecanismo que actúa como una “sala de espera” para las transacciones que aún no han sido incluidas en un block)

  2. Produce un nuevo block con esas transacciones con un orden específico.

  3. Transmite el nuevo block a la red P2P de validadores para que sea agregado a la chain.

    (En una red de “Proof of work” se llama al block producer "miner", mientras que en una red de “Proof of stake” se llama "validator".)

A continuación, los nodos validadores (también conocidos como nodos completos o Full nodes en inglés):

  1. Descargan la data de las transacciones del block recién propuesto.

  2. Reejecutan las transacciones para confirmar su cumplimiento con las reglas de consenso.

  3. Agregan el block a la cabeza de la chain una vez que la red determina que el block es válido.

    La siguiente ilustración se encuentra un como ejemplo de una block verification:

Verificación de un Block. Fuente: www.researchgate.net
Verificación de un Block. Fuente: www.researchgate.net

👊Los desafíos de la Data Availability

Como se mencionó previamente, la Data Availability es esencial para la mayoría de las blockchains. Sin embargo, mantener esta disponibilidad puede ser complicado y está sujeto a problemas. ¿Cuáles son los desafíos comunes asociados a la disponibilidad de datos? Pues tenemos dos grandes desafíos que deben abordarse:

  1. Requerir que los nodos de la blockchain descarguen y verifiquen los datos puede reducir el rendimiento, o sea, la escalabilidad.

  2. El uso de almacenamiento on-chain para una cantidad cada vez mayor de datos limita intrínsecamente el número de entidades que pueden ejecutar nodos.

Las redes blockchain monolíticas (ejemplo: Bitcoin, Solana o Ethereum hoy) garantizan la Data Availability almacenandola en varios nodos para que los participantes de la red que necesiten esta información puedan solicitarla a otro peer (“par” en español) o nodo de la red. Por desgracia, esta implementación de la disponibilidad de datos incluye numerosos problemas.

Requerir que un gran número de nodos descarguen, almacenen y verifiquen los mismos datos reduce significativamente el rendimiento de las blockchains. Esta es la razón por la que la velocidad de procesamiento de las redes blockchain como Ethereum y Bitcoin es relativamente baja.

Por otro lado, el almacenamiento de datos en la chain también conlleva un aumento significativo del tamaño de la blockchain, lo que resulta en un aumento exponencial de los requisitos de hardware para los llamados nodos completos, que necesitan acumular mayores cantidades de states. Además, el aumento de los costes de hardware reduce el número de individuos o entidades con recursos suficientes para correr nodos, lo que contribuye al riesgo de centralización.


🎭Diferencia entre Storage, Data Availability (DA) y Data Availability Committee (DAC)

El término "Storage" se refiere al proceso de almacenamiento de datos en una red. En el contexto de las criptomonedas, se utiliza para hacer referencia al almacenamiento de información de las transacciones en la blockchain. La blockchain es una base de datos distribuida que almacena todos los registros de las transacciones realizadas en la red. El proceso de "Storage" garantiza que los datos se almacenen de manera segura y permanente, lo que asegura la integridad y transparencia de las transacciones en la red.

Almacenamiento Físico. www.malwarebytes.com
Almacenamiento Físico. www.malwarebytes.com

Por otro lado, "Data Availability" hace referencia a la disponibilidad de los datos en la red. Su objetivo es asegurar que los datos almacenados en la blockchain estén disponibles para los nodos de la red en todo momento. Esto es esencial para el correcto funcionamiento de la red, ya que cualquier interrupción o pérdida de datos podría generar graves problemas.

Finalmente, el "Data Availability Committee" es un grupo de personas o entidades que manejan nodos en conjunto para garantizar la disponibilidad de los datos en la red. Este comité está conformado por diferentes nodos y su objetivo principal es asegurar que los datos estén disponibles en todo momento. Los miembros del comité supervisan la disponibilidad de los datos y toman medidas inmediatas en caso de que se produzca alguna interrupción.

Comité. Fuente: https://westsiderc.org/
Comité. Fuente: https://westsiderc.org/

En conclusión, en la industria cripto, el proceso de "Storage" se encarga del almacenamiento de datos en la blockchain, la "Data Availability" garantiza la disponibilidad de los datos en la red y el "Data Availability Committee" son un grupo de nodos que se encargan de supervisar y garantizar que los datos estén siempre disponibles. Estos tres conceptos son fundamentales para asegurar la seguridad y el correcto funcionamiento de la red en la industria cripto.


📊Tipos de sistemas de Data Availability en blockchain

Enfoque Monolítico y Modular. Fuente: https://blog.celestia.org/modular-vs-monolithic-a-beginners-guide/
Enfoque Monolítico y Modular. Fuente: https://blog.celestia.org/modular-vs-monolithic-a-beginners-guide/

⛓On-chain Data Availability

La solución convencional para abordar la Data Availability consiste en exigir a los block producer que publiquen todas las transacciones on-chain y que los nodos de validación las descarguen. Esta On-chain Data Availability es una característica de las "blockchains monolíticas", las cuales se encargan de la Data Availability, la ejecución de transacciones y el consenso en una sola layer. Ethereum, por ejemplo, almacena datos de estado de manera redundante en toda la red para garantizar que los nodos tengan acceso a los datos necesarios para reproducir transacciones, verificar actualizaciones de estado y señalar transiciones de estado no válidas.

No obstante, esta On-chain Data Availability puede representar un obstáculo para la escalabilidad. Las blockchains monolíticas suelen tener velocidades de procesamiento lentas debido a que los nodos deben descargar cada block y reproducir las mismas transacciones. Además, requiere que todos los nodos almacenen cantidades cada vez mayores de estado, lo que puede afectar la descentralización. Si el estado de Ethereum aumenta, los validadores deberán invertir en máquinas más grandes, lo que probablemente reduciría el número de personas dispuestas a ejecutar un nodo validador.

💾Off-chain Data Availability

La Off-chain Data Availability  se refiere a sistemas que trasladan el almacenamiento de datos de la blockchain a otra layer, lo que permite obtener escalabilidad sin aumentar los requisitos de nodos. Este tipo de DA es la utilizada por las blockchains modulares, la chain gestiona algunas tareas como la ejecución de transacciones y el consenso, mientras que otras, como la Data Availability, se descargan en otra layer.

Por ejemplo, las soluciones de escalado como validiums y plasma utilizan el almacenamiento off-chain para separar la Data Availability del consenso y la ejecución. Aunque esta técnica mejora la eficiencia, también tiene implicaciones negativas para la descentralización, la seguridad y la confianza, ya que los participantes deben confiar en los block producers para que no incluyan transacciones no válidas en los blocks propuestos.

Para evitar estos problemas, algunas soluciones de escalado, como los Optimistic Rollups y los ZK Rollups, almacenan los datos de las transacciones en la blockchain matriz, como Ethereum, utilizando esta mainnet como layer de Data Availability. De esta manera, se evita la necesidad de confiar en terceros, garantizando una mayor seguridad y descentralización.


📝Soluciones para los problemas de la Data Availability

Los problemas de Data Availability están asociados a la capacidad de verificar si los datos de una transacción están disponibles para un block recién propuesto. Para resolver este problema, se necesitan mecanismos que garanticen la Data Availability de las transacciones. A continuación, se presentan 4 posibles soluciones:

🧩Data Availability Sampling (DAS)

Es un mecanismo criptográfico que permite a los nodos de la blockchain verificar que los datos están disponibles sin tener que descargar la totalidad de un block. En este sistema, los nodos toman pequeñas muestras aleatorias de diferentes partes del block simultáneamente para verificar la disponibilidad de los datos. Debido a que muchos nodos toman muestras de diferentes partes del bloque, la disponibilidad se puede verificar con gran certeza estadística.

Data Sampling. Fuente: https://hackmd.io/@vbuterin/sharding_proposal
Data Sampling. Fuente: https://hackmd.io/@vbuterin/sharding_proposal

📜Data Availability Proofs

Aunque el mecanismo DAS garantiza estadísticamente la disponibilidad de los datos de un block, los nodos maliciosos pueden ocultar datos. Por lo tanto, para resolver este problema, se puede combinar el DAS con la "codificación de borrado" para crear Data Availability Proofs. La codificación de borrado es un método que permite a las redes duplicar conjuntos de datos añadiendo piezas redundantes conocidas como "códigos de borrado". Si se pierden los datos originales, es posible utilizar códigos de borrado para reconstruir la información original.

👨‍👩‍👧‍👦Data Availability Committees (DAC)

Son grupos de entidades autorizadas encargadas de mantener copias de los datos off-chain de la blockchain. Un DAC está formado por miembros de confianza designados para esta función específica. Los productores de blocks deben enviar los datos de las transacciones a los miembros del DAC cuando realizan transiciones de estado. Aunque este método logra poner la información a disposición de los usuarios, tiene un efecto negativo en la descentralización, ya que se depende de los miembros del comité para disponer de la data.

💰Data Availability Committees basados en Proof of Stake

Si bien los Data Availability Committees son mejores para asegurar la data, aún quedan huecos en la confianza. ¿Qué sucede si el DAC se asocia con el block producer para retener los datos de transacción? Los DAC suelen ser pequeños, lo que aumenta el riesgo de que sean sobornados y la posibilidad de que un actor externo comprometa al grupo.

Algunos validiums reemplazan los DAC con un sistema validador basado en proof of stake (PoS). Aquí, cualquiera puede convertirse en validador y almacenar datos off-chain. Sin embargo, deben proporcionar un "garantía o bond", que se deposita en un smart contract. En caso de comportamiento malintencionado, como la retención de datos por parte del validador, está garantía será tomada como castigo.

Los Data Availability Committees basados en Proof of Stake son considerablemente más seguros que los DAC regulares. No solo son permisivos y trustless, sino que también tienen incentivos bien diseñados para fomentar un comportamiento honesto.


🌌¿Cómo funciona la Data Availability Layer con los rollups?

Los rollups otorgan escalabilidad a  Ethereum moviendo la computación y el almacenamiento del estado fuera del entorno de ejecución de Ethereum: la Máquina Virtual Ethereum (EVM). La EVM solo acepta resultados de la computación off-chain y los aplica a su estado sin tener que volver a ejecutar transacciones, mejorando así la velocidad de procesamiento y reduciendo costos.

Lo que hace que los rollups sean más seguros que otras soluciones de escalado de Ethereum, incluyendo las sidechains o Plasma, es su dependencia de Ethereum para la Data Availability. Además de publicar resultados de transacciones en Ethereum, los Optimistic rollups  y los ZK Rollups también publican datos de transacciones en la Layer 1 como CALLDATA.

Soluciones de Escalabilidad de Ethereum. Fuente: https://twitter.com/MessariCrypto/status/1546886356277891078
Soluciones de Escalabilidad de Ethereum. Fuente: https://twitter.com/MessariCrypto/status/1546886356277891078

Los datos de los blocks publicados desde un rollup a Ethereum están disponibles públicamente, lo que permite a cualquier persona ejecutar transacciones y validar la rollup chain. También promueve la censorship resistance (resistencia a la censura) porque los datos publicados pueden ser utilizados por los futuros productores de blocks para reconstruir el estado de la cadena y comenzar a producir nuevos blocks. Ningún operador de la Layer 2 puede congelar arbitrariamente la chain y censurar a los usuarios en el rollup debido a esta medida.

Con la Data Availability Layer proporcionando seguridad, los rollups pueden optimizar la escalabilidad. Por ejemplo, un rollup puede elegir blocks grandes y tiempos de block más rápidos para acelerar la velocidad de procesamiento. Si bien esto aumenta los requisitos de hardware para los nodos (la mayoría de los rollups tienen algunos "supernodes" que ejecutan transacciones), la Data Availability de estado permite que cualquiera desafíe transiciones de estado inválidas o produzca blocks para evitar la censura.


🗂Ejemplos en el espacio de L2

Los protocolos que utilizan Optimistic Rollups (como Optimism o Arbitrum One) y ZK Rollups (como zkSync Era o Starknet) usan la “Data Availability On-Chain”, ya que todos los datos necesarios para la construcción de Validity proofs y Fraud proofs son publicados en la cadena matriz de Ethereum (L1).

Por otro lado los Validiums como Immutable X, Sorare y rhino.fi , junto a la Optimistic Chain, Arbitrum Nova, usan el esquema de Data Availability Committee, ya que la construcción de validity proofs se basa totalmente en datos que no están publicados on-chain (es decir, Off-chain). Existe un Data Availability Committee (DAC) encargado de proteger y suministrar los datos.

Otro caso es Apex, que almacena sus datos de manera externa, por lo que su Data Availability se encuentra fuera de Ethereum o la red matriz. Por consecuencia la creación de sus validity proofs se basa totalmente en datos que no se publican on-chain.

Por último está Metis, que con la ayuda de uno de sus socios, MemoLabs, es capaz de almacenar y garantizar su Data Availability para operaciones a través del servicio de Storage descentralizado que ofrece MemoLabs. En pocas palabras Metis, utiliza un sistema DAC pero en vez de almacenar su data en su propio Storage, utiliza el de uno de sus partners.


✅Conclusión

La Data Availability en la cripto industria es esencial para entender y mejorar la escalibilidad de las blockchains monolíticas y modulares. La transparencia y la accesibilidad de los datos son clave para tomar decisiones informadas y precisas de cómo mejorar el rendimiento de una blockchain y mantener su seguridad trustless para todos sus usuarios.

Sin embargo, una Data Availability "confiable" sigue siendo un desafío a superar debido a la naturaleza descentralizada y anónima de muchos protocolos o redes que la usan.

A medida que los protocolos y la tecnología blockchain en general vaya madurando, es esencial que los datos estén disponibles para que los developers y/o expertos puedan realizar acciones en pro de crear un mejoramiento continuo de la cripto esfera. Además, es importante que se establezcan estándares claros para la calidad y la veracidad de los datos para garantizar que los inversores tengan acceso a información confiable y precisa. Lo cual podrá contribuir a la adopción masiva de la blockchain que tanto se busca y que quizás ha costado conseguir…


📚Referencias

1️⃣Data Availability in Blockchains - Exploring the Data Availability Layer

2️⃣Data availability | ethereum.org

3️⃣What is the data availability layer?


🎉 ¡Gracias por leer hasta el final! En L2 en Español estamos avocados en educar, aprender y estudiar juntos, sigue nuestras redes sociales y únete a la conversación en nuestra comunidad de Telegram!

Subscribe to L2 en Español
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.