Intercambio de bitcoins Intercambio de bitcoins
Ctrl+D Intercambio de bitcoins
ads

Por qué no puedo entender la prueba de conocimiento cero: análisis de malentendidos comunes de ZKP

Author:

Time:

"He dado vueltas innumerables veces en el campo de la prueba de conocimiento cero. La razón por la que he tomado muchos desvíos es que tengo malentendidos preconcebidos sobre la prueba de conocimiento cero desde el principio. El marco, porque el marco es incorrecto, es imposible construir una casa que no se derrumbe sobre sus cimientos. En este artículo, intentaré corregir estos conceptos erróneos. Si estás aprendiendo pruebas de conocimiento cero y te sientes confundido, espero que los errores que cometí puedan iluminarte; si recién estás comenzando a entender las pruebas de conocimiento cero, espero que este artículo le ayudará a construir un marco básico. En mi opinión, estos puntos discutidos en este artículo son exactamente el misterio de las pruebas de conocimiento cero, y revelan por qué funcionan las pruebas de conocimiento cero. Cabe señalar que los siguientes supuestos entendimientos corregidos aún pueden ser entendimientos inexactos, solo puede usarlos como referencia y seguir cuestionándolos. 1. La prueba de conocimiento cero es un método de prueba Si conocemos el algoritmo de la evolución del universo, pero no conocemos el valor inicial del universo, en ese momento Alicia dijo que conocía el valor inicial, pero nosotros no. créalo, así que tomó un conjunto de datos como entrada del algoritmo, cálculo de un solo paso, obtenemos un universo que es exactamente igual al universo en el que vivimos. En este momento, ¿creeremos que el conjunto de datos de Alice Cuál es el valor inicial del universo? Lo creeremos. Esta es una prueba de conocimiento cero, para ser exactos, debería llamarse prueba de conocimiento cero. A través de este método de prueba, Alice puede demostrar que tiene conocimiento (el valor inicial del universo) sin filtrar el conocimiento. Si observa el proceso de prueba de Alice, encontrará que solo involucra tres objetos: valor inicial, algoritmo evolutivo y resultado evolutivo (status quo). Podemos resumirlo en: la entrada del algoritmo, la salida del algoritmo y la prueba de conocimiento cero Es necesario poder demostrar que la salida es efectivamente calculada por la entrada a través de un cierto algoritmo. De esta manera, si el verificador ve que la salida es correcta y la prueba muestra que la salida se calculó usando la entrada, entonces el verificador puede confiar en la entrada sin conocer la entrada. La pregunta resultante es: ¿cómo probar que la salida es calculada por la entrada a través de un cierto algoritmo? ¿En lugar de otras entradas, otras salidas u otros algoritmos? Este es el problema que pretende resolver el protocolo de prueba de conocimiento cero. En la serie de protocolos zk-SNARK, el método adoptado es convertir la entrada, el algoritmo y la salida en un polinomio y vincular los tres a través del polinomio. Si se puede demostrar que Alice conoce el polinomio, se puede considerar que el algoritmo de entrada calcula la salida de Alice. Con todo, debido a que las pruebas de conocimiento cero se usan ampliamente para lograr la protección de la privacidad, y la protección de la privacidad significa no filtrar datos, es más fácil para nosotros pensar en cómo oculta los datos desde el principio. Pero si usa "cómo logra el conocimiento cero" como pista para entenderlo, será un desastre, y si usa "cómo logra la prueba" como pista, una línea lo atravesará claramente. 2. La prueba de conocimiento cero solo puede realizar el "conocimiento cero" del conocimiento específico. Las herramientas criptográficas, como las funciones hash y los algoritmos de cifrado basados ​​en curvas elípticas, pueden ocultar cualquier dato bajo cualquier circunstancia. (Desde un punto de vista práctico punto de vista, si el espacio de entrada es demasiado pequeño, no se puede ocultar); cuando sabemos que la prueba de conocimiento cero no puede filtrar conocimiento, a menudo pensamos que podemos entregarle cualquier conocimiento para su procesamiento, pero de hecho, La prueba de conocimiento cero solo puede "Conocimiento cero" que puede realizar conocimientos específicos en escenarios específicos. La plataforma de negociación descentralizada Hashflow anunció que lanzará Token HFT el 7 de noviembre: El 29 de septiembre, la plataforma de negociación descentralizada Hashflow anunció que lanzará Token HFT el 7 de noviembre y lanzó un concepto de gobernanza de gamificación y marco de trabajo DAO llamado "Hashverse". , los jugadores obtienen NFT veHFT apostando HFT, y los titulares de veHFT tendrán la oportunidad de completar tareas en Hashverse para obtener recompensas, incluidos NFT negociables y Token HFT. Según los informes, Hashverse planea estar en línea en los próximos meses y Hashflow anunciará las historias, personajes y otros elementos de Hashverse en las próximas semanas. [2022/9/30 6:03:11] Volviendo al ejemplo de Alice, en su proceso de prueba de conocimiento cero, están involucradas al menos tres cosas que pueden llamarse conocimiento: 1. El valor inicial del universo; universo 3. El resultado de la evolución del universo. ¿No se pueden revelar estos diferentes tipos de conocimiento a través de pruebas de conocimiento cero? No, incluso debemos conocer el algoritmo de evolución y el resultado de la evolución del universo para probar si Alice conoce el valor inicial del universo. En otras palabras, la prueba de conocimiento cero solo puede probar pero no filtrar el conocimiento de la posición de "entrada". Al pensar o utilizar un protocolo de prueba de conocimiento cero para resolver un problema, es necesario ver si el conocimiento que no se quiere filtrar se puede colocar en la posición de entrada y una salida que se puede juzgar como verdadera o falso se puede generar a través de un algoritmo definido (más precisamente, puede ser No para construir una relación NP).  Por ejemplo, si Alicia afirma conocer un número x sin ninguna condición adjunta, es difícil para nosotros usar la prueba de conocimiento cero para demostrar que conoce el número x sin revelar x; pero si Alicia afirma conocer un número x Si x satisface cierta condición a, entonces puede haber un algoritmo primero, la salida del algoritmo debe satisfacer la condición a (se puede convertir a la salida debe ser verdadera), y luego, si la entrada x puede satisfacer este algoritmo , se puede creer que el número x satisface la condición a. Esto también significa que Alice puede usar los datos sin filtrarlos. Sin embargo, hay otro lugar confuso aquí, es decir, la prueba de conocimiento cero no prueba directamente que alguien tiene la capacidad de resolver un determinado problema, como la capacidad de resolver el problema de los tres colores del mapa, prueba que alguien sabe un conjunto del problema desatar. (Nota: puede probar que el probador tiene el poder de cómputo para resolver el problema de los tres colores pidiéndole al probador que resuelva varias instancias diferentes del problema de los tres colores). Esto está relacionado con la construcción del protocolo de prueba de conocimiento cero Como se mencionó anteriormente, prueba que lo que se quiere decir es un polinomio que une la entrada, el algoritmo y la salida, en lugar de un polinomio que resuelve un algoritmo. Demostrar que este polinomio es verdadero es en realidad probar que existe una relación definida entre la entrada, el algoritmo y la salida, en lugar de Probar otra cosa.  Por un lado, esta estructura limita la aplicación de pruebas de conocimiento cero. Solo puede realizar pruebas de entrada de conocimiento cero cuando la entrada, el algoritmo y la salida están completos. Si la salida es verdadera, se puede creer en la entrada. ser verdadero; pero por otro lado, esta construcción extiende otras aplicaciones de pruebas de conocimiento cero, es decir, si la entrada es verdadera, también podemos confiar en que la salida sea verdadera. 3. ¿Por qué la prueba de conocimiento cero encaja tan bien con blockchain? Blockchain activa la aplicación de prueba de conocimiento cero, y la prueba de conocimiento cero proporciona una excelente solución para blockchain. La razón principal por la que los dos pueden promoverse entre sí radica en la las características del sistema de la cadena de bloques y las características del método de prueba de la prueba de conocimiento cero, no solo porque la prueba de conocimiento cero puede proteger la privacidad. Recordemos que en matemáticas hacemos el gran problema de la prueba, que es una especie de prueba inferencial, con un proceso de derivación estricto y verificable; pero existe otro tipo de prueba llamada prueba interactiva, que no pasa la derivación, pero con la ayuda de el probador En la interacción con el verificador, el verificador hace preguntas al probador, y si el probador puede dar la respuesta correcta, se considera que la proposición afirmada por el probador es correcta. Para dar un ejemplo que no es particularmente preciso: Alice afirma que cuando la entrada del universo es x, la salida es 42, y la prueba inferencial significa que necesita sustituir x en el cálculo paso a paso, calcular 42 y mostrar el proceso de cálculo para la verificación; interactivo La fórmula de prueba parece ser: dale al verificador un transbordador de universo paralelo, el verificador viaja aleatoriamente al universo con salida (la entrada es x), y luego juzga si la afirmación de Alice es creíble de acuerdo con si la la salida del universo es 42. En comparación con la prueba de razonamiento, el verificador de prueba interactiva solo necesita verificar uno o varios puntos, lo cual es una razón importante por la que la prueba de conocimiento cero encaja con blockchain: blockchain es un sistema distribuido y cada Nodo tiene que repetir el trabajo de verificación. , beneficiándose de solo necesitar verificar el punto de desafío, el sistema de prueba de conocimiento cero sucinto (Sucinto) puede reducir el trabajo de verificación, y lo que proporciona al verificador es una prueba que es mucho más pequeña que la proposición original. Hablando visualmente: en un sistema sin cadena de bloques, la prueba de conocimiento cero reduce el trabajo de un verificador y puede aumentar el trabajo de un probador al mismo tiempo (no necesariamente una relación 1: 1), lo que puede no considerarse. , en el sistema blockchain, si hay 100 nodos, la carga de trabajo total se puede reducir en 100, y solo se agrega un certificador en este momento, los beneficios son obvios. Además, desde la perspectiva del uso de la prueba de conocimiento cero para resolver problemas, los recursos de espacio y tiempo en la cadena de bloques son extremadamente escasos, y la prueba de conocimiento cero simple produce pruebas pequeñas y un tiempo de verificación corto, lo cual es adecuado como una -Cadena de prueba.s solución. Sin embargo, debe tenerse en cuenta que la prueba interactiva solo necesita verificar los puntos de desafío.Otra diferencia entre la prueba inferencial que la acompaña y la prueba interactiva es: la prueba inferencial puede probar si una proposición es verdadera, pero la prueba interactiva solo puede probar que una proposición es verdadera. si es probable. Es decir, si la proposición reclamada por el probador es incorrecta, pero el probador obtiene la respuesta correcta cuando el verificador hace la pregunta, el verificador pensará que la proposición es correcta. Por lo tanto, en el diseño del protocolo de prueba de conocimiento cero, una parte muy importante del trabajo es usar métodos matemáticos para que sea casi imposible que el probador obtenga la respuesta correcta (basado en ciertas suposiciones sobre el poder de cómputo del probador). , el probador usa pruebas falsas para convencer al verificador de que es cierto) La probabilidad de es una función despreciable). Volvamos a zk-SNARK. zk-SNARK convierte la relación entre la entrada de prueba, el algoritmo y la salida en un polinomio que une la relación entre los tres y puede proporcionar al verificador un transbordador de universo paralelo. En el protocolo de Pinocho (un tipo de zk-SNARK), la demostración interactiva es la siguiente: el probador afirma conocer un polinomio p(x), que se puede descomponer en t(x) y h(x) Es decir, p (x)=t(x) h(x); el verificador selecciona aleatoriamente un punto de desafío s, y al cifrar s, el probador solo puede calcular p(s) y h(s), pero no puede calcular t(s); el probador le da p(s) y h(s) al verificador, y el verificador puede calcular si t(s) h(s) es igual a p(s) si tiene t(s) en su mano, si es igual , confiar en el demostrador para conocer un polinomio. Conocer un polinomio significa que existe una relación definida entre la entrada, el algoritmo y la salida. Si la salida es verdadera, podemos creer que la entrada es verdadera sin conocer la entrada, es decir, realizar una prueba de conocimiento cero. Así que ahora, no solo sabemos que la prueba de conocimiento cero es un método de prueba, sino también cómo se prueba. 4. No se deje engañar por "no se requiere interacción" La prueba de conocimiento cero es un sistema de prueba interactivo, que se basa en dos elementos importantes: la interacción y la aleatoriedad. Interacción significa que una parte propone un desafío y la otra parte da una prueba, sin esta interacción no se puede realizar una prueba de conocimiento cero, aleatorio significa que el punto de desafío debe ser aleatorio, es decir, no puede ser predicho por el probador. , de lo contrario, el probador puede Construir una prueba falsa en el punto de desafío. Si Alicia sabe de antemano que el verificador irá al universo paralelo No. 73, puede cambiar la respuesta del No. 73 a 42 por adelantado.  Entonces, ¿por qué zk-SNARK se llama a sí mismo no interactivo (Non-interactive)? En la llamada prueba interactiva, el verificador primero debe dar un punto aleatorio y luego el probador construye la prueba; en la llamada prueba no interactiva, como el protocolo de Pinocho, ya no se requiere que el verificador dé un punto aleatorio. En cambio, un tercero de confianza otorga puntos aleatorios durante la fase de inicialización, de modo que el probador puede dar la prueba directamente, y el verificador solo necesita verificar la prueba, y no hay necesidad de interacción entre el verificador y el probador El punto aleatorio proporcionado por un tercero de confianza es la configuración de confianza (Configuración de confianza) del protocolo Pinocho. En comparación con la interacción directa, la configuración de confianza debe proporcionar t(s) adicionales además del punto aleatorio s ), porque el verificador necesita verificar con t(s). Pero el problema es que el probador no puede conocer t(s), de lo contrario, puede construir fácilmente una prueba falsa, por lo que se necesita usar un método para transformar t(s), de modo que se pueda usar la t(s) transformada para verificación, pero no disponible para cálculos probadores. El protocolo de Pinocho elige una operación de emparejamiento bilineal para hacer esto. Por lo tanto, ninguna necesidad de interacción es más un proceso técnico. Para las pruebas de conocimiento cero, la verificación siempre se realiza en puntos de desafío aleatorios. La diferencia es de dónde proviene este punto de desafío. Para diferentes protocolos específicos, el método elegido al reemplazar la interacción por la no interacción será bastante diferente, incluso si todos se llaman protocolos zk-SNARK, esta es una atención adicional. 5. Modularización y disciplinas jóvenes Espero que los cuatro puntos anteriores puedan ayudarlo a comprender las pruebas de conocimiento cero Al final del artículo, hay dos pequeños entendimientos que pueden salir mal. Primero, el protocolo de prueba de conocimiento cero, como zk-SNARK, no se desarrolla en torno a una determinada fórmula central, es modular y cada módulo es responsable de completar su propio trabajo, y luego todos se combinan. Entonces, si desea comprender la prueba de conocimiento cero captando un punto central, será más difícil. Una mejor manera es comprenderlo a través de una pista. Al mismo tiempo, zk-SNARK no se refiere a un protocolo específico. Es un término general para una clase de métodos. Los módulos que lo componen generalmente permanecerán sin cambios, pero los métodos específicos seleccionados por estos módulos son variables. Entonces, cuando vea diferentes zk-SNARK, no se confunda, salte y mírelo a la altura del módulo, en lugar de quedarse atascado en métodos específicos. En segundo lugar, tal vez debido a que la prueba de conocimiento cero se trata de matemáticas, a menudo le da a la gente la sensación de un tema antiguo, pero de hecho, la investigación sobre la prueba de conocimiento cero aún es muy temprana y la aplicación de la prueba de conocimiento cero acaba de comenzar. . Al elegir usar pruebas de conocimiento cero, los desarrolladores no solo necesitan diseñar un conjunto de teorías maduras, sino también aplicar métodos mientras encuentran/inventan métodos. Entonces, tal vez podamos darle más paciencia a la prueba de conocimiento cero, puede ser una parte importante del futuro mundo digital, no solo es una herramienta para usar los datos que constituyen el mundo digital, sino también una herramienta para ahorrar los recursos más escasos. en el mundo digital..{ }

Tags:

Binance Apps
7.Mercado matutino de 15: BTC fluctúa mucho en el rango, tenga cuidado con tal movimiento en la perspectiva del mercado

Anoche, el mercado tocó fondo a $ 9100 por segunda vez e inmediatamente se recuperó a casi $ 150 después de que el soporte fuera efectivo. Esta ola de segundo fondo y rebote rápido ocurrió en diez minutos.

7.Mercado vespertino del día 9: Continúa el mercado de compensación.

El artículo es una contribución de Biquan Beiming, columnista de Jinse Finance and Economics, y sus comentarios solo representan sus puntos de vista personales.

Por qué no puedo entender la prueba de conocimiento cero: análisis de malentendidos comunes de ZKP

"He dado vueltas innumerables veces en el campo de la prueba de conocimiento cero.

La tasa de hash de Bitcoin se eleva a máximos históricos, ¿qué dice?

Después de que la recompensa del bloque se reduzca a la mitad, muchos analistas en el espacio de Bitcoin esperan una "espiral de la muerte".Entonces.

Últimas noticias de Bitmain: Ketuan Zhan crea un nuevo sitio web y lo convierte en una empresa de pago

¿Qué pasó con Bitmain ayer? Después de una pausa, apareció algo nuevo.En la noche del 6 de julio.

ads