Reverso del conocimiento cero: una puerta trasera en zk-SNARK que no se puede detectar

Usando el protocolo de evidencia de divulgación cero de la familia SNARK, nunca se conocen las reglas del juego. Los participantes establecen estas reglas en el procedimiento para generar parámetros confiables del sistema, pero después de su finalización no es posible verificar estas reglas. Puede creer en la corrección de la generación, pero si no participó en ella, no tiene garantías al cien por cien.



Recientemente, se han mencionado varios protocolos de conocimiento cero en la comunidad blockchain (para tener una idea general sobre ellos, recomiendo este artículo ): principalmente en el contexto de la privacidad, con menos frecuencia en el contexto de la escalabilidad y otros.

Uno de los más estudiados, y lo que es más importante, implementado es la familia de protocolos zk-SNARK (argumento de conocimiento no interactivo sucinto de conocimiento cero). Tal protocolo se usa, en particular, en la criptomoneda Zcash. La popularidad de SNARK está justificada: el protocolo nos permite probar hechos con cero revelaciones, la evidencia es relativamente pequeña y todo esto con las garantías de seguridad que nos brinda la criptografía moderna en curvas elípticas.

Sin embargo, no estuvo exento de inconvenientes, como de costumbre: el principal inconveniente de esta familia de protocolos zk es la necesidad de generar parámetros iniciales (confiables) del sistema; este proceso también se denomina ceremonia. Después de todo, los parámetros secretos que se deben destruir se usan para la generación, se denominan tóxicos. El principal problema es que si se preservan los parámetros tóxicos, la persona que los posee podrá probar hechos falsos (en el caso de Zcash, generar criptomonedas desde el aire).

Generación inicial de parámetros


Además, las matemáticas subyacentes a los protocolos SNARK solo se verán afectadas superficialmente. Si está interesado en resolverlo, le sugiero una serie de artículos de Vitalik Buterin sobre este tema.

Veamos el proceso de generar parámetros confiables. Entonces, tenemos una declaración del problema, el hecho de la solución que queremos probar con cero divulgación. Por ejemplo, queremos probar el conocimiento de la raíz de una ecuación cuadrática:


Según el protocolo, debemos llevar esta ecuación a la forma QAP (Programas aritméticos cuadráticos). Además, para generar y verificar evidencia, es necesario obtener los parámetros iniciales. Dejemos fuera de paréntesis cómo se obtienen los parámetros confiables de QAP, cuáles son estos parámetros y cómo, con su ayuda, se puede verificar la evidencia para no profundizar en las matemáticas pesadas. Solo notamos que los parámetros se presentan como puntos en una curva elíptica:


Se obtienen del enunciado del problema en forma de QAP utilizando la operación irreversible de multiplicación en una curva elíptica utilizando parámetros tóxicos.

Ahora que se crean los parámetros iniciales, podemos comenzar a trabajar con la evidencia. En nuestro caso, podemos generar y verificar la prueba de que se conoce la raíz de la ecuación (por ejemplo, ) Además, la prueba no revelará el valor del secreto (la raíz de la ecuación) y consistirá en varios puntos de la curva elíptica.

Sin embargo, en virtud de las matemáticas subyacentes al protocolo, si alguien conserva los parámetros tóxicos después de la ceremonia, esta persona podrá probar hechos falsos. Volviendo a nuestro ejemplo, podemos demostrar que 2 es la raíz de la ecuación, aunque obviamente este no es el caso.

La ceremonia


Los proyectos serios que utilizan protocolos SNARK conocen bien el problema de los parámetros tóxicos y toman en serio la corrección del procedimiento para generar los parámetros iniciales. El ejemplo más famoso es la ceremonia de Zcash .

La primera ceremonia se celebró en octubre de 2016, 6 desarrolladores famosos de la comunidad de criptomonedas participaron en ella. El protocolo de la ceremonia ofrece suficientes garantías de seguridad. Es decir, si al menos un participante en la ceremonia es honesto (destruye correctamente su parte de los parámetros tóxicos) y no es pirateado, entonces la ceremonia será segura.

La segunda ceremonia, más avanzada, de generar parámetros confiables se llevó a cabo en 2017-2018. Ya constaba de dos etapas, en la primera parte (Powers of Tau) participaron 87 personas, y en la parte final (Sapling MPC) más de 90 personas. Como en el caso de la ceremonia original, con la honestidad de al menos un participante, la ceremonia puede considerarse segura. Una característica importante de la segunda ceremonia fue que cualquiera podía participar. Por lo tanto, todos tuvieron la oportunidad de obtener el 100% de garantías de la corrección del protocolo.

En conclusión, vale la pena señalar que la criticidad de la ceremonia y las amenazas derivadas de ella deben considerarse por separado para cada sistema específico. Y al mismo tiempo, para todos los sistemas que utilizan protocolos SNARK, se requiere un procedimiento confiable para generar parámetros iniciales con garantías para la destrucción de parámetros tóxicos.

Source: https://habr.com/ru/post/es434720/


All Articles