Cero conocimiento frente a computación multiparte (MPC)

Estoy luchando por entender la diferencia entre los dos. Por lo que estoy armando, tienen diferentes modelos adversarios, MPC agrega la condición de colusión entre partidos, es decir, la votación electoral.

O

¿Es Zero Knowledge un requisito previo para MPC?

Apreciaría si alguien pudiera proporcionar una explicación simple y ampliada para esto.

Respuestas (1)

Sería mejor que hiciera esta pregunta en un recurso específico como https://crypto.stackexchange.com . En criptografía, estos son dos conceptos bastante diferentes. También puede buscar en las páginas de Wikipedia.

Intentaré describir estos dos conceptos en pocas palabras, tal vez ayude.

La prueba de conocimiento cero no interactiva (NIZKP) es una cadena especial que prueba alguna declaración sobre algún valor público (como el conocimiento de una clave secreta correspondiente a la clave pública o la estructura oculta de algún mensaje) sin revelar ninguna otra información (por ejemplo, el clave secreta correspondiente). En un contexto de Ethereum, normalmente significa que el autor de la transacción oculta su valor exacto, pero proporciona una prueba de que es una transacción válida.

El cálculo multipartito es una comunicación interactiva entre varias partes para que calculen de forma segura y simultánea alguna función de sus valores secretos, sin revelar esos valores. Puede generar imágenes de MPC entre 3 partes, cada una con un número secreto, y ellas (cada una) evalúan la suma de esos números. Sin embargo, nadie obtiene conocimiento de los números secretos de 2 contrapartes, solo la suma total de 3 de ellos.

En cuanto a los modelos contradictorios, son diferentes, por supuesto, pero es solo una consecuencia de diferentes conceptos (diferentes partes y objetivos).

Por ejemplo, en NIZKP tiene 2 partes: probador, que tiene algún conocimiento secreto, y verificador generalizado (en realidad, cualquiera), que no conoce ningún valor secreto. El objetivo del probador (I) convencer al verificador en algo (típicamente usando el valor secreto) (II) no revela el valor secreto. Los objetivos del adversario: (I) convencer al verificador de algo incorrecto (o sin conocimiento del valor secreto) o (II) usar la prueba del probador honesto para revelar el valor secreto.

En MPC, tienes varios compañeros. Cada uno de ellos tiene el objetivo de (I) evaluar de forma segura la función de los valores secretos de los pares y (II) permitir que otros pares hagan lo mismo, pero sin revelar el valor secreto. Los compañeros deshonestos (adversario) pueden querer (I) engañar a otros compañeros para que el valor del resultado que evalúen sea incorrecto (II) para revelar valores secretos de otros compañeros.