Ir al contenido principal

Última actualización de la página: 20 de marzo de 2024

Danksharding

Gracias a Danksharding (es decir, a la fragmentación), Ethereum se convierte en una cadena de bloques realmente escalable, aunque para llegar aquí, hay varias actualizaciones de protocolo necesarias. ProtoDanksharding es un paso intermedio en el camino. Ambas tienen como objetivo hacer que las transacciones a la capa 2 sean tan baratas como sea posible para los usuarios y deben escalar Ethereum a >100.000 transacciones por segundo.

¿Qué es ProtoDanksharding?

ProtoDanksharding, también conocido como EIP-4844(opens in a new tab), es una manera para que las acumulaciones añadan datos más baratos a bloques. El nombre proviene de los investigadores que propusieron la idea: Protolambda y Dankrad Feist. En la actualidad, las acumulaciones no abaratan precisamente el coste de las transacciones para los usuarios, ya que tienen que enviarlas en CALLDATA. Su coste es elevado, ya que requiere del procesamiento de todos los nodos de Ethereum y viven siempre en la cadena, aunque las acumulaciones solo necesitan datos por un tiempo limitado. ProtoDanksharding introduce los blobs de datos que se pueden enviar y adjuntar a los bloques. Los datos en estos blobs no son accesibles a la EVM y se eliminan automáticamente después de un periodo de tiempo fijo (1-3 meses). Esto significa que las acumulaciones pueden enviar datos de forma más barata y repercutir el ahorro al usuario final en la forma de transacciones baratas.

¿Cómo se verifican los datos de una masa?

Las acumulaciones publican las transacciones que ejecutan en las masas de datos. También publican un «compromiso» con los datos. Para ello, ajustan una función polinómica a los datos. Esta función puede evaluarse en varios puntos. Por ejemplo, si definimos una función extremadamente simple f(x) = 2x-1 entonces podemos evaluarla por x = 1, x = 2, x = 3 dando el resultado 1, 3, 5. Un proveedor aplica la misma función a los datos y la evalúa en los mismos puntos. Si cambian los datos originales, la función no será idéntica y, por lo tanto, tampoco se evaluarán los mismos valores en cada punto. En realidad, el compromiso y prueba son más complicados, porque ellos están involucrados en funciones criptográficas.

¿Qué es KZG?

KZG significa Kate-Zaverucha-Goldberg: el nombre de los tres autores originales(opens in a new tab) de un esquema que reduce una masa de datos hasta un pequeño «compromiso» criptográfico(opens in a new tab). Tiene que verificarse la masa de datos enviada por una acumulación para garantizar que la misma no se esté comportando indebidamente. Esto incluye un proveedor que reejecuta las transacciones en la masa para verificar la fiabilidad del compromiso. Es igual que la forma en que los clientes de ejecución comprueban la validez de las transacciones de Ethereum en la capa 1 usando pruebas de Merkle. KZG es una prueba alternativa que ajusta una ecuación polinómica a la información. El compromiso evalúa el polinomio en algún punto secreto de datos. Un proveedor encajaría el mismo polinómico de los datos y lo evaluaría en los mismos valores, asegurándose de que el resultado fuera el mismo. Es una forma de comprobar que los datos son compatibles con las técnicas de conocimiento cero usadas por algunas acumulaciones y eventualmente otras partes del protocolo de Ethereum.

¿Qué es la ceremonia KZG?

Una ceremonia KZG es una forma en la que muchas personas de la comunidad de Ethereum pueden generar en conjunto una cadena aleatoria de números secretos que pueden utilizarse para verificar alguna información. Es muy importante que esta cadena de números no sea conocida y no pueda ser recreada por nadie. Para asegurarnos de ello, cada persona que participa en la ceremonia recibe una cadena del participante previo. Entonces crean nuevos valores aleatorios (por ejemplo, permitiendo que su navegador registre el movimiento de su ratón) y los mezclan con el valor anterior. Luego envían el valor al siguiente participante y lo destruyen de su máquina local. Mientras una persona en la ceremonia haga esto con honestidad, el valor final será desconocido para un atacante. La ceremonia EIP-4844 KZG fue abierta al público y decenas de miles de personas participaron para agregar su propia entropía. Para frustrar la ceremonia, el 100 % de los participantes tendría que actuar de mala fe. Desde la perspectiva de los participantes, si saben que se han comportado mal, no necesitan confiar en nadie más, porque saben que aseguraron la ceremonia (cumplieron individualmente con el requisito de 1-de-N participantes honestos).

Ni el Danksharding ni el ProtoDanksharding siguen el modelo de fragmentación («sharding», en inglés) tradicional que buscaba dividir la cadena de bloques en varias partes. Las cadenas de fragmentación ya no forman parte de la hoja de ruta. En su lugar, Danksharding utiliza el muestreo distribuido de datos en varias masas para escalar Ethereum. Su implementación es mucho más sencilla. A este modelo a veces se le denomina «fragmentación de datos».

¿Qué es Danksharding?

Danksharding es la máxima expresión de la escalabilidad de las acumulaciones, que comenzó con ProtoDanksharding. Danksharding aportará una gran cantidad de espacio en Ethereum para que las acumulaciones depositen sus datos comprimidos de transacciones. Esto significa que Ethereum será compatible con cientos de acumulaciones individuales con facilidad y hará realidad la posibilidad de realizar millones de transacciones por segundo.

Esto funciona mediante la expansión de las masas de datos adjuntos a los bloques, pasando de 1 en ProtoDanksharding a 64 en Danksharding completo. El resto de los cambios necesarios son todas actualizaciones en la forma en que operan los clientes de consenso para permitirles gestionar las grandes masas. La hoja de ruta ya incluye varias de estas modificaciones con otros objetivos independientes del Danksharding. Por ejemplo, Danksharding requiere que se haya implementado la separación entre el generador de propuestas y el constructor de bloques. Esta es una actualización que separa las tareas de construir bloques y proponer bloques entre diferentes validadores. De manera similar, el Danksharding requiere el muestreo de disponibilidad de datos, aunque también es necesario para el desarrollo de clientes muy ligeros que no almacenen mucha información histórica («clientes sin estado»).

Progreso actual

La implementación completa del Danksharding está aún fuera de escena. Sin embargo, ProtoDanksharding debería llegar relativamente pronto. Al cierre de la edición de este documento (febrero de 2023), la ceremonia KZG sigue abierta y hasta el momento ha atraído a más de 50.000 contribuyentes. El EIP(opens in a new tab) para el ProtoDanksharding está maduro, la especificación se ha acordado y los clientes implementaron prototipos que actualmente se están probando y preparando para producción. El siguiente paso es implementar los cambios en una red de prueba pública. Puede estar al tanto con la lista de verificación de preparación del EIP 4844(opens in a new tab).

Más información

¿Le ha resultado útil este artículo?