Introducción a la Ceremonia KZG

🕯Introducción

Muchos  protocolos y en especial aquellos que manejan datos y ZK-SNARKs dependen de trusted setups, también llamadas ceremonias. Estas ceremonias son un procedimiento que se realiza una vez para generar un dato o datos que luego debe usarse cada vez que se ejecuta algún protocolo.

La generación de estos datos requiere cierta información secreta; la "confianza" proviene del hecho de que alguna persona o algún grupo de personas tiene que generar estos secretos, usarlos para generar los datos, luego publicar los datos y olvidar los secretos. Pero una vez que se generan los datos y se olvidan los secretos, no se requiere más participación de los creadores de la ceremonia. Este tipo de eventos fueron diseñados para poner en marcha las funciones de privacidad de la cadena. Sin embargo, también pueden utilizarse para respaldar mecanismos de escalabilidad, como planea hacer Ethereum.


📄KZG Commitments

Las “KZG commitments” (llamada así por sus creadores Kate, Zaverucha y Goldberg) son un esquema matemático (sí, criptografía muy avanzada) que permite generar “pruebas de disponibilidad de datos” tal y como las pruebas de validez en ZK Rollups para verificar que ciertos datos han sido publicados y están disponibles. A partir de esto, los nodos completos pueden comprobar que los datos de la blockchain están disponibles sin tener que ser descargados completamente, solamente satisfasiendose con una porción aleatoria de datos de un determinado bloque más la prueba KZG generada en dicho momento.

Funcionamiento del compromiso KZG
Funcionamiento del compromiso KZG

✅Importancia de Proto-Danksharding y KZG

Ethereum, en busca de mejorar la escalabilidad de la red, planeó su propia ceremonia, la KZG ceremony, con el objetivo de proporcionar una base para una mejor escalabilidad mediante la implementación del EIP-4844 (también conocido como proto-danksharding).

La principal característica introducida por proto-danksharding es un nuevo tipo de transacción, que llamamos transacción con blob. Una transacción con blob es como una transacción normal, con la diferencia de que también transporta un fragmento adicional de datos llamado blob. Los blobs son extremadamente grandes (~125 kB), y pueden ser mucho más baratos que cantidades similares de calldata. Sin embargo, los datos blob no son accesibles para la ejecución de la EVM; la EVM sólo puede ver un compromiso con el blob. En consecuencia, la escalabilidad de la red aumenta, porque estos datos no compiten con el uso de gas de las transacciones Ethereum existentes.

Entre los demás beneficios que traerá la integración del proto-danksharding se tienen:

  • Futuro de los Rollups: Los rollups han demostrado ser la única solución de escalado fiable para Ethereum. Los fees de transacción L1 son un obstáculo importante para los nuevos usuarios y aplicaciones. El proto-danksharding  ayudará a facilitar el paso de todo el ecosistema a los rollups.

  • Reducción de fees:  El proto-danksharding  puede reducir los fees de los rollups en magnitud y permitir que Ethereum siga siendo competitivo sin sacrificar la descentralización.

  • Compatibilidad futura: Los blobs se comprometen con KZG: un esquema de compromiso vectorial eficiente. Estos compromisos se utilizan en el mismo andamiaje que la propuesta completa de "danksharding".

  • Beacon Node: Los blobs se mantienen en los Beacon Nodes, no en la execution layer (por ejemplo, en prysm, no en geth). Para futuros trabajos de sharding sólo requiere cambios en el Beacon Node, permitiendo a la execution layer trabajar en otras iniciativas en paralelo.

  • Uso manejable del disco: Los blobs son 4096 elementos de 32 bytes cada uno, con un máximo a largo plazo de 16 blobs por bloque. 4096 * 32 bytes * 16 por bloque = 2 MiB por bloque como máximo. El tope de blobs por bloque puede empezar siendo bajo y crecer a lo largo de varias actualizaciones de la red.

  • Vida corta: Los blobs se eliminan después de ~2 semanas. Disponibles el tiempo suficiente para que todos los actores de una L2 puedan recuperarlos, pero lo suficientemente cortos como para que el uso del disco sea manejable. Esto permite que los blobs tengan un precio más barato que los CALLDATA, que se almacenan en el historial para siempre.


🔴¿En qué consiste la ceremonia KZG?

La ceremonia KZG es un ritual público coordinado que proporciona la base criptográfica para las mejoras de escalabilidad de Ethereum, como por ejemplo, el proto-danksharding. En esencia el objetivo de este evento es la creación de la estructura principal  que será utilizada para las implementaciones futuras.

Esquema de Trusted Setup
Esquema de Trusted Setup

💡¿Cómo participar en la ceremonia KZG?

El primer paso es ingresar al link oficial de la ceremonia: https://ceremony.ethereum.org/

para poder observar el siguiente interfaz. Para iniciar la contribución a la ceremonia solo es necesario dar click en empezar.

Interfaz inicial de la ceremonia KZG
Interfaz inicial de la ceremonia KZG
  1. Estado actual del Secuenciador.

  2. Número total de direcciones que han contribuido a la ceremonia y número total de usuarios en espera para participar.

  3. Lista de lenguajes disponibles para el portal.

  4. Tiempo restante para participar en la ceremonia.

  5. Botón de inicio para la participación.

  6. Interfaz IPFS: Diseñada para aquellos usuarios que desean usar sus builds personalizadas.

  7. Otros clientes: son scripts escritos en diferentes lenguajes tales como rust, go, python, etc; para aquellos usuarios que buscan usar otra web.

  8. ¡Escriba su propio!: Ethereum foundation organizó un concurso para que los participantes construyan y sugieran su propio método de recolectar la entropía. Las reglas y criterios para participar los puedes entrar aquí. (Válido hasta el 15 de Marzo)

    El paso siguiente consiste en la ingresar la entropía, el cual es un conjunto de datos aleatorios que se utilizaran para generar la contribución que será implementada por el secuenciador.

Interfaz de ingreso de entropía
Interfaz de ingreso de entropía

En este paso es importante tener en cuenta que además de ingresar un “secreto” (cualquier texto) y una “muestra” (generada por el navegador de forma aleatoria), es necesario ingresar un “símbolo”, el cual será tomado del movimiento del cursor en la interfaz. A medida que se mueva el cursor, la  barra de color verde en forma de serpiente empezará a crecer hasta dar toda la vuelta. Una vez hecho esto podremos avanzar al siguiente paso.

Interfaz de entropía cargada
Interfaz de entropía cargada

Luego de ingresar los datos, se requerirá que el usuario desbloquee con una wallet de ethereum o Github para continuar.

Nota: Con el fin de evitar sybil attacks, Ethereum Foundation puso la condición de que sólo direcciones de Ethereum que haya enviado al menos 4 transacciones antes del 13 de enero de 2023 son elegibles para participar en la ceremonia.

Interfaz de desbloqueo de Ethereum wallet o Github
Interfaz de desbloqueo de Ethereum wallet o Github

Una vez hecho esto, la página solicitará que el usuario firme con la wallet o Github. (en este caso se usará una wallet de ethereum).

Interfaz de vinculación de wallet
Interfaz de vinculación de wallet
Solicitud de firma de wallet
Solicitud de firma de wallet

A continuación el portal nos redireccionará a una nueva página, con el objetivo de volver a firmar. Esto se hace así con el objetivo de minimizar el spam y prevenir la presencia de bots.

Segunda interfaz de solicitud de firma
Segunda interfaz de solicitud de firma

En esta nueva página tendremos la posibilidad de usar cualquiera de las wallets que se muestran. Cabe destacar que se debe usar una wallet que tenga la misma dirección de ethereum que en la firma anterior.

Opciones de wallets disponibles para firmar
Opciones de wallets disponibles para firmar

Una vez seleccionada la wallet a usar, la wallet pedirá autorización para conectarse al portal.

Solicitud de conexión a la interfaz
Solicitud de conexión a la interfaz

Luego de esto, es tan simple como darle a “firmar” para continuar.

Solicitud de segunda firma anti sybil attack
Solicitud de segunda firma anti sybil attack

Una vez completado este paso, el portal nos redireccionará a la interfaz del principio. y nos mostrará el mensaje, “ ESPERANDO PARA SER ENVIADO”. En ese momento nuestra contribución está en el lobby para ser tomada por el secuenciador.

Ahora bien, el secuenciador toma una contribución que está en el lobby de forma aleatoria y la procesa, esto sucede cada hora, por lo que es necesario tener un poco de paciencia (y quizás algo de suerte) para ser seleccionado. El tiempo de espera para esto puede variar en gran medida debido a la aleatoriedad, sin embargo el promedio de tiempo por usuario es de aproximadamente 4 a 7 días.

interfaz de espera
interfaz de espera

Una vez seleccionado será procesada tu contribución y LISTO!

Interfaz de contribución completada
Interfaz de contribución completada

La interfaz te dará la oportunidad de compartir tu experiencia en Twitter y Lenster.

Al final podrás compartir tu contribución en Twitter y Lenster
Al final podrás compartir tu contribución en Twitter y Lenster

De igual forma también podremos ver y descargar los detalles de la contribución tales como las firmas, el ID del participante, etc. Al darle en “Ver su contribución”.

Este archivo descargable es el receipt lo cual certifica que participó en la ceremonia.

¡Es la prueba irrefutable de que estas formado parte de la historia de Ethereum!

¡Que no se te olvide guardarlo bien!

Receipt que comprueba tu participación en la ceremonia
Receipt que comprueba tu participación en la ceremonia

Nota: Las firmas BLS son aquellas es un esquema de firma criptográfica que permite al usuario verificar que un firmante es auténtico . Por otro lado, la firma ECDSA, es un algoritmo de cifrado de clave pública que, como ya sabemos, se utiliza para generar una firma digital única y verificar la autenticidad de un mensaje o transacción en línea.

Otra forma de validar que participamos es ingresando nuestra dirección usada en la ceremonia en el siguiente link: https://ceremony.ethereum.org/#/record

lista de direcciones que contribuyeron a la ceremonia
lista de direcciones que contribuyeron a la ceremonia

y listo! tu contribución a la ceremonia KZG ha sido completada!


💥Problemas comunes

❌Dirección no elegible

La ceremonia sólo admite a aquellas direcciones con un mínimo de 4 transacciones completadas antes del 13 de Enero del 2023, con el fin de evitar sybil attacks. Al usar una dirección que viole dicha regla aparecerá lo siguiente:

Mensaje de dirección no elegible
Mensaje de dirección no elegible

👨🏻‍🤝‍👨🏻Participación doble

Una vez que una dirección contribuya a la ceremonia no es posible usarla para participar de nuevo, sin importar que el secreto o otra entropía sea diferente, al intentarlo saldrá el siguiente mensaje:

Mensaje de participación doble
Mensaje de participación doble

Una vez que se acabe el tiempo del contador, todas las direcciones que participaron recibirán un POAP conmemorativo probando así, que son parte de la historia de Ethereum para siempre!


💯Agradecemos profundamente a Nico, por su guía y conocimiento para la elaboración de este artículo.

Que curioso que la descentralización sea capaz de unir a tanta gente bonita.


🎉 ¡Gracias por leer hasta el final! En L2 en Español estamos avocados en educar, aprender y estudiar juntos, sigue nuestras redes sociales y unete 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.