Saltar al contenido
0%

¿Qué es danksharding?

Escrito por John Favole

Publicado el 22 de junio de 20226 min de lectura

Se ha introducido un nuevo diseño de sharding llamado proto-danksharding como parte de la hoja de ruta hacia el sharding completo de blockchain. Debido a que es tan reciente, muchas personas aún no lo comprenden bien.

Este resumen ofrece un análisis completo y fácil de entender sobre todo lo que necesitas saber sobre proto-danksharding y cómo ayudaría a los Layer 2 a escalar. Empecemos.

¿Qué es el sharding?

El sharding se refiere a dividir una blockchain en partes más pequeñas para mejorar la eficiencia general.

Por ejemplo: en lugar de procesar una transacción de $100,000 en la Ethereum Mainnet, la transacción puede dividirse en diez shards, cada uno con los datos de $10,000 en transacciones. Esto tiene como fin reducir la congestión de la red.

Además de la velocidad, las shard chains ofrecen mayor almacenamiento y reducen las comisiones.

Es importante notar que el sharding es una implementación que pasará por varias fases antes de llegar a su etapa final.

¿Qué es el danksharding?

Danksharding es un diseño de sharding que implementa el concepto de un mercado de comisiones combinado; a diferencia del sharding regular, en el que los shards tienen tanto bloques como proponentes de bloques distintos, en danksharding solo existe un proponente.

Los block builders tienen la función de elegir los datos y las transacciones que van en cada slot de un bloque.

Danksharding y sharding están relacionados, pero son distintos. Mientras que el sharding es el diseño general para la división de redes en un esfuerzo por escalar Ethereum, danksharding es un paso hacia la concreción de ese objetivo.

Tim Beiko —uno de los principales investigadores de Ethereum— explicó en el podcast Bankless el origen del nombre Danksharding, que se llama así en honor a otro investigador veterano de Ethereum, Dankrad Feist.

¿Cómo funciona el danksharding?

Los block builders envían una solicitud para determinar qué va en cada slot que luego formará un bloque, y después queda en manos del proponente seleccionar al mejor postor. Una vez que se elige a un builder para supervisar un slot, este tiene la responsabilidad de procesar todo el bloque.

En algunos casos, es posible que los oráculos cumplan el rol de un block builder. Según el equipo de Ethereum, la razón principal detrás de este diseño es frenar los dos controles injustos que actualmente tienen los mineros: el Maximum Extractable Value, o MEV.

Primero, los mineros pueden mostrar preferencia injusta al elegir sus propias transacciones o las de personas conocidas. Segundo, los mineros pueden elegir manualmente las transacciones con el mejor postor, dejando así millones de otras transacciones en el mempool durante horas o días.

Con danksharding, sin embargo, nadie conoce el contenido de la lista ordenada de transacciones que envía un builder. Por lo tanto, el poder de los proposers se ve limitado.

¿Cuál es la diferencia entre los block builders y los proposers?

Los block builders cumplen la función de construir el bloque, mientras que los block proposers seleccionan los encabezados de transacciones que deben agregarse al bloque y los transmiten en consecuencia. Ambos trabajan de la mano.

Los block builders agrupan las transacciones en slots o fragmentos para que puedan agregarse a un bloque, y luego los builders los envían a los proposers para su selección. Después de que el proposer selecciona con éxito un bloque, los block builders lo procesan.

Muestreo de disponibilidad de datos en danksharding

Un principio básico de blockchain es la transparencia. Si se agrega un bloque malicioso o inválido a una cadena, puede ser perjudicial para toda la red.

Por lo general, en el ecosistema de Ethereum, los full nodes pueden presentar pruebas de fraude a los light clients —y a toda la red en general— como evidencia de que una transacción no es válida. Pero esto solo funciona bien con roll-ups y podría no funcionar del todo bien con danksharding.

Los mineros pueden verificar los bloques con danksharding cuando muestrean los datos disponibles. Antes que nada, la disponibilidad de datos implica que los datos subyacentes detrás de un hash en particular se han publicado on-chain. En el ETH Dubai de este año, Protolambda explicó que la disponibilidad de datos significa la capacidad sin permisos de reconstruir el estado.

En la práctica, este muestreo de disponibilidad de datos se implementa con códigos de borrado (erasure codes). Estos códigos pueden muestrearse para obtener los datos reales que se agregaron al slot o bloque.

Después de que se procesan las transacciones, puede haber discusiones en curso sobre cuándo se deben eliminar los datos de la blockchain de Ethereum para evitar cuellos de botella en el throughput.

Actualmente, existen planes de que los datos se eliminen después de un mes. Sin embargo, incluso después de la fecha de vencimiento, los datos seguirán siendo accesibles a través de diversos medios, como Graph Protocol y los exploradores de bloques.

¿Qué es el proto-danksharding (EIP-4844)?

Tal como está la situación, todavía quedan muchas cosas por definir en el intento de concretar el danksharding completo. Esto llevó a la creación de la propuesta EIP-4844, que es un formato que implementa proto-danksharding.

Esta propuesta busca implementar cambios centrales —en particular el formato de las transacciones— que serían necesarios para el sharding completo. El nombre proto-danksharding también se acuñó a partir del nombre de otro investigador de Ethereum: Proto Lambda.

El cambio real que Proto Lambda introdujo a danksharding se llama Binary Large Objects, a menudo abreviado como "blobs". De hecho, los blobs no son un concepto nuevo en programación, ya que existen en JavaScript y Python. Lo novedoso, sin embargo, es la posibilidad de que los blobs sean relevantes en los smart contracts. Para entender esto mejor, debemos preguntarnos: "¿Qué son los blobs?"

¿Qué son los blobs (binary large objects)?

Los blobs son propuestos por los block proposers. Se comparan con grandes envoltorios o grandes paquetes portátiles que pueden contener datos más baratos. Cada bloque puede contener un tamaño limitado de estos grandes envoltorios. En cuanto a su estructura, un blob típico tiene un cuerpo y un encabezado.

El cuerpo de un blob siempre almacena las piezas de datos relevantes que se relacionan directamente con las transacciones. Un encabezado, por otro lado, contiene información menos extensa, como la firma del proposer.

En proto-danksharding, cada transacción siempre tiene un blob gemelo, y el objetivo final de esto es abaratar las transacciones. Para mejorar la escalabilidad, cada slot en proto-danksharding tendría, en su mayoría, un ancho de banda de datos de 1 MB.

Nota: la Ethereum Virtual Machine solo puede acceder a los datos más baratos que están envueltos en un blob, y no a los blobs en sí, porque las transacciones en danksharding no estarán en el mempool habitual, sino en uno diferente.

¿Cuál es la diferencia entre EIP-4844 y EIP-4488?

Esta es la diferencia: EIP-4844 ofrece soluciones que se alinean con la hoja de ruta completa del sharding —e incluso la aceleran—, mientras que EIP-4488 solo intenta resolver problemas de manera temporal.

En esencia, EIP-4488 intenta reducir drásticamente el costo de gas de los call data. Aunque eso puede ayudar por ahora, sería irrelevante si existiera el sharding completo, ya que los shards usarían blobs. Por otro lado, EIP-4844 planea usar blobs en su formato transaccional.

Sin embargo, también debemos tener en cuenta que estas dos propuestas no necesitan percibirse como competitivas o como una disyuntiva. Si bien el proto-danksharding podría tomar tiempo debido a algunos detalles técnicos de ingeniería, EIP-4488 puede implementarse para resolver problemas de costos a corto plazo mediante roll-ups.

¿El proto-danksharding reducirá las comisiones de gas?

La respuesta a esto es un claro "No". El proto-danksharding no reducirá las comisiones de gas de Ethereum, pero sí reducirá los costos de transacción de los protocolos Layer 2.

De hecho, esta pregunta surge mucho en las conversaciones sobre proto-danksharding. Este malentendido es comprensible porque el proto-danksharding introducirá blobs.

Aun así, los blobs solo reemplazarán los call data que suelen usar los roll-ups. Por lo tanto, las comisiones de gas en el protocolo de Ethereum seguirán siendo las mismas.

De hecho, los desarrolladores que han seguido las actualizaciones del ecosistema de Ethereum durante años coincidirán en que la mayoría de las propuestas actuales no afectarán directamente ni reducirán de manera significativa las comisiones de gas del protocolo principal de Ethereum, ni siquiera The Merge.

El estado actual del proto-danksharding

Desde que se creó la propuesta de mejora de proto-danksharding a principios de febrero, ha habido expectativas sobre si se está avanzando o no.

Mientras el equipo de investigación de Ethereum aún está resolviendo un par de temas fundamentales, el proto-danksharding todavía tiene un largo camino por recorrer en su intento de ser el precursor del sharding completo.

Ante todo, el muestreo de disponibilidad de datos sigue siendo teórico y aún no se ha implementado. Parte de la razón de esto es que los desarrolladores todavía están decidiendo si la Ethereum Improvement Proposal debería implementar únicamente el point evaluation precompile y descartar la idea de combinarlo con el blob verification precompile.

De hecho, la precompilación de verificación de blobs es autoalcanzable entre los Layer 2. Como resultado, la comunidad de Ethereum está evaluando si todavía es necesario incluirla oficialmente.

El equipo de Ethereum está estudiando la arquitectura más realista para los blobs y las medidas de seguridad más inteligentes que se deben implementar.

El futuro del proto-danksharding

La red de Ethereum ha estado lidiando durante años con los problemas de un throughput relativamente lento y comisiones de gas altas, y los investigadores de Ethereum han propuesto varias soluciones técnicas, incluido el sharding.

El proto-danksharding es una vía para implementar la hoja de ruta completa del sharding, y su principal objetivo es reducir los costos de transacción de los protocolos de layer 2 mediante un formato de transacciones centrado en blobs.

La comunidad de Ethereum ha estado enfocada en mejorar su objetivo de modularidad, proporcionando a las blockchains Layer 2 la arquitectura necesaria para construir de manera más escalable sobre el protocolo de Ethereum.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.