Presentación en dos pasos de ZKP

Proceso de presentación en dos pasos

Lumoz ha propuesto un algoritmo de presentación en dos pasos para ZKPs (Pruebas de Conocimiento Cero) con el fin de lograr un trabajo de prueba descentralizado. Este algoritmo puede prevenir ataques de competencia en ZKP mientras permite que más mineros obtengan recompensas, lo que fomenta que más mineros permanezcan en línea y proporciona una potencia computacional estable y continua para ZKP.

El período de presentación (el número +10 aquí) es ajustable según la capacidad de cálculo de la red.

Paso 1: Envío del hash

  • Después de que un probador calcule un ZKP (Prueba de Conocimiento Cero) para una cierta secuencia, primero calcula el hash de (prueba / dirección) y envía el hash y la dirección al contrato inteligente a nivel de cadena. Aquí, la prueba es una prueba de conocimiento cero para una cierta secuencia, y la dirección es la dirección del probador.

  • Suponiendo que el primer probador envía el hash del ZKP en el bloque T, se aceptará hasta el bloque T+10 sin ninguna limitación. A partir del bloque T+11, los nuevos probadores ya no podrán enviar el hash.

Paso 2: Envío del ZKP

  • Después del bloque T+11, cualquier probador puede enviar un ZKP. Siempre que un ZKP pase la verificación, se puede utilizar para verificar todos los hashes enviados. Los probadores validados reciben recompensas de PoW basadas en la proporción de las cantidades apostadas por los mineros.

  • Si ningún ZKP pasa la verificación antes del bloque T+20, todos los probadores que hayan enviado hashes serán penalizados. La secuencia se vuelve a abrir y se pueden enviar nuevos hashes, volviendo al Paso 1.

Un caso simple:

Supongamos que cada bloque tiene una recompensa de PoW de 128 IDE en la red de Lumoz y actualmente hay 64 ranuras de rollup disponibles. A cada secuencia de rollup se le asigna una recompensa de PoW de 2 IDE.

Si tres mineros, A, B y C, envían exitosamente el ZKP correcto para una secuencia en sucesión, y las apuestas de los mineros A, B y C son de 200K, 500K y 300K IDE respectivamente, entonces A, B y C pueden ganar una recompensa de PoW de 0.4 IDE, 1 IDE y 0.6 IDE respectivamente.

Apuesta de tokens del probador y penalizaciones

Para prevenir comportamientos maliciosos relacionados con los probadores, el probador debe registrarse en un contrato especial del sistema y apostar tokens.

Si el probador comete las siguientes acciones, se aplicarán diferentes niveles de penalización:

  • El probador envía un hash incorrecto.

  • Para una determinada secuencia, si no se pasa la verificación correspondiente del ZKP, todos los probadores que hayan enviado hashes serán penalizados.

Los tokens penalizados se quemarán.

Consideraciones

¿Por qué permitir que varios probadores envíen hashes?

  • Si solo se recompensa al primer probador que envía un hash, es posible que otros probadores no tengan incentivos para enviar una prueba después de que el primer probador envíe un hash.

  • Si un atacante malicioso retrasa el envío de la prueba durante mucho tiempo después de enviar un hash, puede ralentizar la verificación de toda la secuencia.

Por lo tanto, es necesario permitir que varios probadores envíen hashes de manera independiente y simultánea para evitar el monopolio de la verificación de ZKP por parte de un solo atacante.

¿Por qué existe una ventana de tiempo (época de presentación)?

  • Si cualquiera puede presentar una prueba inmediatamente después de enviar un hash, la prueba aún puede ser robada. Los atacantes pueden enviar de inmediato un hash asociado con su dirección y luego presentar una prueba para obtener recompensas.

Al establecer una ventana de tiempo, los probadores que han enviado hashes no tienen incentivos para presentar pruebas dentro de la ventana, evitando así la posibilidad de ser superados en velocidad (race conditions).

¿Por qué se asigna la recompensa en función de la apuesta?

  • Varios probadores pueden enviar hashes para la misma secuencia dentro de una ventana de tiempo. De hecho, los mineros pueden enviar múltiples hashes utilizando su prueba generada (solo necesitan múltiples direcciones). Esto puede llevar a que la mayoría o incluso todas las recompensas de PoW sean tomadas por varios mineros.

Para evitar este ataque, la recompensa de una secuencia se asignará en función de la proporción del monto apostado por el minero.

Last updated