Si bien el cifrado existe desde hace miles de años, la criptografía programable es una tecnología moderna. Descrito como "criptografía de propósito general... [o] un lenguaje expresivo para afirmaciones", es la idea de que una primitiva criptográfica como una prueba ZK podría hacerse lo suficientemente flexible y adaptable como para que un desarrollador pueda programar casi cualquier función sobre ella. Que puede existir una cadena lógica ininterrumpida desde que alguien hace clic en un botón de un sitio web hasta la prueba matemática que garantiza la seguridad de una operación criptográfica.
https://youtu.be/qAfprVCBhdQ?t=1024
Mientras que la criptografía tradicional se basaba en conjuntos fijos de funcionalidades, lo que requería un criptógrafo capacitado para construir un sistema especializado para cada nuevo mecanismo, la criptografía programable permite a los desarrolladores implementar propiedades y funcionalidades criptográficas en un lenguaje más cercano a lo que ya entienden. Ofrece a los desarrolladores que no son expertos en criptografía una interfaz más familiar.
Las pruebas ZK se concibieron por primera vez en 1989, pero siguieron siendo en su mayoría teóricas hasta 2012, cuando se descubrió un tipo de prueba ZK llamada zk-SNARK. Esta nueva primitiva permitió que las pruebas ZK probaran o autentificaran casi cualquier función o cálculo arbitrario.
Desde que zkSNARKS se hizo posible, se han invertido recursos y talento en la creación de zCash, zkRollups, zkEVM y una serie de otras aplicaciones que comienzan con la letra z. Resultó que los sistemas descentralizados como Ethereum y las cadenas de bloques en general fueron la motivación perfecta para que la gente se interesara en la criptografía, convirtiendo un campo de investigación que alguna vez fue poco práctico en un ecosistema activo con aplicaciones reales para el usuario final.
No hay garantías de que la computación multipartita (MPC), el cifrado totalmente homomórfico (FHE) y la ofuscación indistinguible (iO) sigan el mismo camino que ZK, volviéndose más prácticos, optimizados y de uso general a medida que pasa el tiempo. Pero en esta etapa inicial, ciertamente es posible.
Si pensamos en la criptografía programable como un tipo de computadora digital, construida sobre ciertas suposiciones que permiten ciertas propiedades y garantías, entonces todavía estamos en la etapa del hardware. Todavía estamos descubriendo activamente la mejor manera de construir las puertas o circuitos lógicos para esta nueva computadora.
Para comprender mejor el panorama general de la criptografía programable, comencemos aproximando de manera muy aproximada dónde se encuentran MPC, FHE e IO en relación con ZK y entre sí. En esta sección, y en realidad en todas las secciones siguientes, sacrificaremos matices, precisión y formalidad en favor de la simplicidad y la accesibilidad.
La forma más sencilla de razonar sobre la criptografía es qué información se mantiene oculta o secreta. Y lo que el sistema prueba o revela.
También puedes pensar en cada uno de estos sistemas como si fueran un amigo mutuo imaginario. Wikipedia llama a este amigo "Tony". Tony es infalible, incorruptible y totalmente digno de confianza. El trabajo de Tony es guardar secretos. En la siguiente tabla, piense en los “Elementos privados” como los secretos que se puede confiar en que Tony guarde, los “Casos de uso” como tareas que Tony podría realizar razonablemente bien y la “Practicidad” como la habilidad con la que Tony podría realizar estas tareas hoy.
Las tablas anteriores pretenden dar una idea aproximada de las diferentes áreas de la criptografía programable. Ahora, profundicemos un poco más y revisemos lo que hacen MPC, FHE e iO junto con algunos datos interesantes sobre cada campo.
La computación multipartita (MPC) permite que muchas partes calculen conjuntamente alguna función acordada sin revelar ningún dato a los demás participantes. Con MPC, se aplica el mismo cálculo a los datos de todos, pero la entrada de cada parte se mantiene en secreto. Los valores intermedios también permanecerían en secreto. Sólo el resultado se revela al final.
A diferencia de ZK, MPC es colaborativo. Permite que diferentes partes colaboren en el mismo cálculo, cada una aportando sus propios datos, para obtener el resultado mutuo que todos desean.
Podemos comparar ZK y MPC en el contexto de un sistema de inteligencia artificial para obtener más contexto. ZK sería bueno para autenticar o verificar que un dato provenga de una persona real o del teléfono de una persona. MPC es mejor para entrenar un sistema de IA porque diferentes individuos, grupos u organizaciones podrían compartir datos confidenciales con el sistema de IA pero confiar en que los datos no serán revelados a nadie más.
Andrew Yao pensó en MPC en 1982 para resolver un experimento mental llamado "El problema de los millonarios", en el que dos millonarios quieren saber quién es más rico sin decirse cuánto dinero tienen. La solución fue utilizar circuitos confusos, que según Vitalik Buterin, frecuente explicador de conceptos criptográficos, es también una de las formas más básicas de entender MPC.
[Antes de aprender sobre un circuito confuso, es necesario saber qué es un circuito aritmético en general. Si eres nuevo en la idea de los circuitos, aquí tienes una explicación sencilla.]
MPC es un proceso interactivo de varios pasos en el que el millonario número 1 (Alice the Garbler) primero debe crear el circuito, ingresar su patrimonio neto y luego transformarlo en una forma confusa o cifrada antes de pasárselo al millonario número 2 (Bob el Evaluador). ). Cuando Bob pone sus manos en el circuito, su trabajo es sumar su propio patrimonio neto y luego evaluar o ejecutar el circuito para asegurarse de que sea correcto. Finalmente, Bob descifra el resultado final y, por ejemplo, descubre que Alice es más rica, pero nunca descubre que Alice es, de hecho, mucho más rica y que no debería haber hecho suposiciones.
El problema del millonario y los circuitos confusos como solución fueron cruciales para el desarrollo inicial de MPC. Pero su aplicación fue limitada. Una versión más compleja y matizada del problema, llamada el problema del millonario socialista, comprobaba si los dos millonarios eran igualmente ricos, en lugar de revelar cuál tenía más dinero. Esta sutil diferencia amplió significativamente la funcionalidad MPC, pero requirió soluciones y técnicas criptográficas más complejas más allá del alcance de este artículo.
El cifrado totalmente homomórfico (FHE) permite cálculos sobre datos cifrados. Puede realizar una función sobre datos cifrados como si no estuvieran cifrados. La salida de la función solo la descifra la parte que tiene la clave secreta. Si pensamos en el cifrado como una caja negra que oculta secretos, entonces FHE garantiza que los datos y los cálculos sobre esos datos permanezcan dentro de esa caja negra.
Aunque no existen experimentos mentales famosos como el Problema del Millonario para MPC, FHE resuelve una debilidad de seguridad fundamental: "la necesidad de descifrar antes de procesar datos".
https://www.zama.ai/post/the-revolution-of-fhe
En un contexto de IA, FHE mantendría encriptados todos los datos entre el usuario (titular de la clave secreta) y el sistema de IA. El usuario interactúa con el sistema normalmente, pero puede estar seguro de que la IA nunca "aprendió" nada sobre los datos proporcionados. Toda la interacción estaría cifrada. La IA nunca aprende lo que usted escribió o preguntó, qué imágenes envió o quién las envió, pero aún puede responder como si supiera la información.
Si funciona, FHE será una de las tecnologías disponibles más poderosas para preservar la privacidad. ¿Y quien sabe? En 10 años, es posible que incluso tengamos FHE-EVM.
En comparación con MPC y ZK, FHE se encuentra, por el momento, en el extremo más teórico o menos práctico del espectro. La tecnología no se consideró viable hasta 2009, cuando Craig Gentry descubrió cómo lidiar con el ruido.
Las operaciones FHE son computacionalmente muy intensivas porque se agrega "ruido" durante el proceso de cifrado para mejorar la seguridad. El ruido en FHE es un pequeño valor aleatorio agregado al texto sin formato (datos no cifrados) antes de convertirlo en texto cifrado (datos cifrados). Cada operación aumenta el ruido. Si bien las operaciones de suma y resta causan un crecimiento de ruido insignificante, la multiplicación es más costosa desde el punto de vista computacional, lo que resulta en un crecimiento de ruido significativo. Entonces, a medida que aumenta la complejidad de un programa, se acumula ruido (el espacio necesario para acomodar el ruido y los recursos computacionales necesarios para procesarlo).
El avance de Gentry fue una técnica llamada bootstrapping, que podría reducir el ruido y permitir una mayor computación de datos cifrados en sistemas FHE. Bootstrapping toma el texto cifrado y lo descifra homomórficamente, lo que significa reducir el nivel de ruido en un dato cifrado sin revelar realmente qué es. El resultado es un texto cifrado con un ruido predefinido mucho menor, lo que nos permite realizar más cálculos sobre el texto cifrado. El bootstrapping, en general, nos permite evitar la necesidad de tener mayor espacio para el crecimiento del ruido a medida que aumenta la complejidad del cálculo. Podemos limitar el espacio a unas pocas operaciones y arrancar repetidamente para realizar cálculos arbitrariamente grandes sin comprometer los datos originales.
Dependiendo del esquema FHE, el arranque puede tardar varios minutos o milisegundos. Si el arranque es más lento, el costo computacional se puede distribuir aplicándolo a varios textos cifrados a la vez. Si el arranque es más rápido, generalmente viene con la desventaja de trabajar solo con pequeños fragmentos de texto sin formato (generalmente 8 bits) a la vez para mantener la eficiencia.
Si FHE convierte todos los elementos del cálculo en una caja negra, entonces iO convierte el cálculo en sí en una caja negra.
La ofuscación de indistinguibilidad (iO) se considera el sistema criptográfico más poderoso dentro del ámbito de las posibilidades teóricas. En un artículo, iO se describe como una "herramienta maestra a partir de la cual se podrían construir casi todos los demás protocolos criptográficos" y los expertos en criptografía se refieren a ella como una "joya de la corona" y "una primitiva criptográfica para gobernarlos a todos".
Según Amit Sahai, el profesor conocido por explicar las pruebas de ZK a los niños y uno de los investigadores que ideó una manera de construir iO sobre suposiciones bien fundadas, iO funciona en un paradigma fundamentalmente diferente al de los sistemas criptográficos anteriores. IO asume que el adversario ya puede leer tu mente (una metáfora de tu computadora). Tus secretos ya se conocen, por lo que no se pueden ocultar. Lo único que puedes hacer es ocultar lo que el adversario ya puede ver.
El objetivo de iO es hacer que dos funciones o cálculos sean igualmente oscuros. Si convierte dos cálculos en una forma que no se puede distinguir entre sí, podrá ocultar cómo funciona el programa. Si no puede distinguir entre dos programas, no sabe cuál de los dos programas se está ejecutando y no se puede deducir ninguna información de ninguno de ellos, aparte de que ambos realizan la misma función. Ambos programas toman las mismas entradas y producen los mismos resultados, pero iO lo hace de manera que nadie pueda entender cómo.
Con iO, puede ocultar la estructura de cada tipo de función, incluidas casi todas las funciones que componen la criptografía. En otras palabras, al ocultar casi cualquier cosa, se llega a la criptografía programable de uso más general sobre la cual se pueden programar otras primitivas.
Técnicamente, hay una caja negra más grande que iO. Literalmente se llama ofuscación de caja negra. Pero eso sigue siendo imposible.
Nadie supo cómo construir iO hasta 2013, cuando Garg, Gentry, Halevi, Raykova, Sahai y Waters propusieron mapas multilineales. Un programa de computadora podría dividirse como piezas de un rompecabezas y luego oscurecerse usando mapas multilineales. Las piezas oscurecidas podrían volverse a ensamblar para lograr la misma funcionalidad que el programa original sin revelar su funcionamiento interno.
Los mapas multilineales son una generalización de los mapas bilineales o pares utilizados en criptografía de curvas elípticas (ECC). Si bien los mapas bilineales son fundamentales para los esquemas criptográficos existentes, como las firmas BLS, no son lo suficientemente complejos ni expresivos para iO. Y si bien los mapas multilineales podían manejar iO, esta estructura algebraica recientemente desarrollada era fácilmente atacable y no era segura, por lo que depender de mapas multilineales generalmente no era satisfactorio para los criptógrafos. El campo volvió a quedar estancado.
Luego, en 2020, Jain, Lin y Sahai propusieron una solución que, si bien era inusual y nueva, era lo suficientemente simple como para que los criptógrafos razonaran y, en lugar de depender de suposiciones recientemente desarrolladas como mapas multilineales, esta versión de iO podría construirse sobre más supuestos estándar y bien fundamentados que se han estudiado durante décadas, como el aprendizaje con errores (LWE). Con este último avance, iO volvió a ser factible. El santo grial todavía estaba a nuestro alcance.
Cada sistema criptográfico se compone de diferentes supuestos matemáticos y técnicas criptográficas. Ningún avance por sí solo resuelve todos los problemas de un sistema. En cambio, los descubrimientos siguen una serie impredecible de pequeños pasos y grandes saltos que alteran las suposiciones y técnicas existentes, lo que a su vez conduce a más avances y descubrimientos. Y por cada descubrimiento que funcionó, muchos más no lo hicieron.
En una presentación sobre iO, Sahai describió el campo como si estuviera en un “desierto indómito”, donde ni siquiera estaba claro qué no se entendía y cuáles eran los problemas correctos a resolver.
Equipos como PSE trabajan principalmente en el lado práctico o aplicado de la criptografía programable, centrándose en primitivos como ZK y MPC con suposiciones bien fundadas que han sido probadas en batalla, relativamente optimizadas y consideradas seguras y efectivas. Aunque aún quedan muchas optimizaciones, ZK ahora está firmemente dentro del ámbito de la practicidad. Pero también hubo un tiempo en el que ZK estuvo confinado en la naturaleza salvaje.
Para maximizar la cantidad de herramientas habilitadas para criptografía que preservan la privacidad, garantizan la seguridad, verifican reclamos y permiten que el mundo tenga acceso, debemos mantener, al menos, un ojo entrecerrado hacia el horizonte de lo que está por venir porque nadie puede predecir lo que sucederá. será práctico en 10 años.
La presentación de Sahai incluye una cita de un artículo de 2003 de Steven Weinberg en Nature titulado Cuatro lecciones de oro, que destaca otra razón para trabajar en lo que actualmente no es práctico.
“Cuando estaba enseñando en el Instituto Tecnológico de Massachusetts a fines de la década de 1960, un estudiante me dijo que quería profundizar en la relatividad general en lugar del área en la que yo estaba trabajando, la física de partículas elementales, porque los principios de la primera eran bien conocidos. , mientras que este último le parecía un desastre. Me llamó la atención que acababa de dar una razón perfectamente buena para hacer lo contrario... Mi consejo es ir a por los líos, ahí es donde está la acción”.
La criptografía programable está siendo explorada por una variedad de equipos, incluidos PSE y 0xPARC, coorganizadores de un evento de 2 días llamado Conferencia de Criptografía Programable que se llevará a cabo en Estambul, Turquía, los días 16 y 17 de noviembre de 2023.
¡Ven a saludar!
O busque PSE en línea en Discord.
Si bien el cifrado existe desde hace miles de años, la criptografía programable es una tecnología moderna. Descrito como "criptografía de propósito general... [o] un lenguaje expresivo para afirmaciones", es la idea de que una primitiva criptográfica como una prueba ZK podría hacerse lo suficientemente flexible y adaptable como para que un desarrollador pueda programar casi cualquier función sobre ella. Que puede existir una cadena lógica ininterrumpida desde que alguien hace clic en un botón de un sitio web hasta la prueba matemática que garantiza la seguridad de una operación criptográfica.
https://youtu.be/qAfprVCBhdQ?t=1024
Mientras que la criptografía tradicional se basaba en conjuntos fijos de funcionalidades, lo que requería un criptógrafo capacitado para construir un sistema especializado para cada nuevo mecanismo, la criptografía programable permite a los desarrolladores implementar propiedades y funcionalidades criptográficas en un lenguaje más cercano a lo que ya entienden. Ofrece a los desarrolladores que no son expertos en criptografía una interfaz más familiar.
Las pruebas ZK se concibieron por primera vez en 1989, pero siguieron siendo en su mayoría teóricas hasta 2012, cuando se descubrió un tipo de prueba ZK llamada zk-SNARK. Esta nueva primitiva permitió que las pruebas ZK probaran o autentificaran casi cualquier función o cálculo arbitrario.
Desde que zkSNARKS se hizo posible, se han invertido recursos y talento en la creación de zCash, zkRollups, zkEVM y una serie de otras aplicaciones que comienzan con la letra z. Resultó que los sistemas descentralizados como Ethereum y las cadenas de bloques en general fueron la motivación perfecta para que la gente se interesara en la criptografía, convirtiendo un campo de investigación que alguna vez fue poco práctico en un ecosistema activo con aplicaciones reales para el usuario final.
No hay garantías de que la computación multipartita (MPC), el cifrado totalmente homomórfico (FHE) y la ofuscación indistinguible (iO) sigan el mismo camino que ZK, volviéndose más prácticos, optimizados y de uso general a medida que pasa el tiempo. Pero en esta etapa inicial, ciertamente es posible.
Si pensamos en la criptografía programable como un tipo de computadora digital, construida sobre ciertas suposiciones que permiten ciertas propiedades y garantías, entonces todavía estamos en la etapa del hardware. Todavía estamos descubriendo activamente la mejor manera de construir las puertas o circuitos lógicos para esta nueva computadora.
Para comprender mejor el panorama general de la criptografía programable, comencemos aproximando de manera muy aproximada dónde se encuentran MPC, FHE e IO en relación con ZK y entre sí. En esta sección, y en realidad en todas las secciones siguientes, sacrificaremos matices, precisión y formalidad en favor de la simplicidad y la accesibilidad.
La forma más sencilla de razonar sobre la criptografía es qué información se mantiene oculta o secreta. Y lo que el sistema prueba o revela.
También puedes pensar en cada uno de estos sistemas como si fueran un amigo mutuo imaginario. Wikipedia llama a este amigo "Tony". Tony es infalible, incorruptible y totalmente digno de confianza. El trabajo de Tony es guardar secretos. En la siguiente tabla, piense en los “Elementos privados” como los secretos que se puede confiar en que Tony guarde, los “Casos de uso” como tareas que Tony podría realizar razonablemente bien y la “Practicidad” como la habilidad con la que Tony podría realizar estas tareas hoy.
Las tablas anteriores pretenden dar una idea aproximada de las diferentes áreas de la criptografía programable. Ahora, profundicemos un poco más y revisemos lo que hacen MPC, FHE e iO junto con algunos datos interesantes sobre cada campo.
La computación multipartita (MPC) permite que muchas partes calculen conjuntamente alguna función acordada sin revelar ningún dato a los demás participantes. Con MPC, se aplica el mismo cálculo a los datos de todos, pero la entrada de cada parte se mantiene en secreto. Los valores intermedios también permanecerían en secreto. Sólo el resultado se revela al final.
A diferencia de ZK, MPC es colaborativo. Permite que diferentes partes colaboren en el mismo cálculo, cada una aportando sus propios datos, para obtener el resultado mutuo que todos desean.
Podemos comparar ZK y MPC en el contexto de un sistema de inteligencia artificial para obtener más contexto. ZK sería bueno para autenticar o verificar que un dato provenga de una persona real o del teléfono de una persona. MPC es mejor para entrenar un sistema de IA porque diferentes individuos, grupos u organizaciones podrían compartir datos confidenciales con el sistema de IA pero confiar en que los datos no serán revelados a nadie más.
Andrew Yao pensó en MPC en 1982 para resolver un experimento mental llamado "El problema de los millonarios", en el que dos millonarios quieren saber quién es más rico sin decirse cuánto dinero tienen. La solución fue utilizar circuitos confusos, que según Vitalik Buterin, frecuente explicador de conceptos criptográficos, es también una de las formas más básicas de entender MPC.
[Antes de aprender sobre un circuito confuso, es necesario saber qué es un circuito aritmético en general. Si eres nuevo en la idea de los circuitos, aquí tienes una explicación sencilla.]
MPC es un proceso interactivo de varios pasos en el que el millonario número 1 (Alice the Garbler) primero debe crear el circuito, ingresar su patrimonio neto y luego transformarlo en una forma confusa o cifrada antes de pasárselo al millonario número 2 (Bob el Evaluador). ). Cuando Bob pone sus manos en el circuito, su trabajo es sumar su propio patrimonio neto y luego evaluar o ejecutar el circuito para asegurarse de que sea correcto. Finalmente, Bob descifra el resultado final y, por ejemplo, descubre que Alice es más rica, pero nunca descubre que Alice es, de hecho, mucho más rica y que no debería haber hecho suposiciones.
El problema del millonario y los circuitos confusos como solución fueron cruciales para el desarrollo inicial de MPC. Pero su aplicación fue limitada. Una versión más compleja y matizada del problema, llamada el problema del millonario socialista, comprobaba si los dos millonarios eran igualmente ricos, en lugar de revelar cuál tenía más dinero. Esta sutil diferencia amplió significativamente la funcionalidad MPC, pero requirió soluciones y técnicas criptográficas más complejas más allá del alcance de este artículo.
El cifrado totalmente homomórfico (FHE) permite cálculos sobre datos cifrados. Puede realizar una función sobre datos cifrados como si no estuvieran cifrados. La salida de la función solo la descifra la parte que tiene la clave secreta. Si pensamos en el cifrado como una caja negra que oculta secretos, entonces FHE garantiza que los datos y los cálculos sobre esos datos permanezcan dentro de esa caja negra.
Aunque no existen experimentos mentales famosos como el Problema del Millonario para MPC, FHE resuelve una debilidad de seguridad fundamental: "la necesidad de descifrar antes de procesar datos".
https://www.zama.ai/post/the-revolution-of-fhe
En un contexto de IA, FHE mantendría encriptados todos los datos entre el usuario (titular de la clave secreta) y el sistema de IA. El usuario interactúa con el sistema normalmente, pero puede estar seguro de que la IA nunca "aprendió" nada sobre los datos proporcionados. Toda la interacción estaría cifrada. La IA nunca aprende lo que usted escribió o preguntó, qué imágenes envió o quién las envió, pero aún puede responder como si supiera la información.
Si funciona, FHE será una de las tecnologías disponibles más poderosas para preservar la privacidad. ¿Y quien sabe? En 10 años, es posible que incluso tengamos FHE-EVM.
En comparación con MPC y ZK, FHE se encuentra, por el momento, en el extremo más teórico o menos práctico del espectro. La tecnología no se consideró viable hasta 2009, cuando Craig Gentry descubrió cómo lidiar con el ruido.
Las operaciones FHE son computacionalmente muy intensivas porque se agrega "ruido" durante el proceso de cifrado para mejorar la seguridad. El ruido en FHE es un pequeño valor aleatorio agregado al texto sin formato (datos no cifrados) antes de convertirlo en texto cifrado (datos cifrados). Cada operación aumenta el ruido. Si bien las operaciones de suma y resta causan un crecimiento de ruido insignificante, la multiplicación es más costosa desde el punto de vista computacional, lo que resulta en un crecimiento de ruido significativo. Entonces, a medida que aumenta la complejidad de un programa, se acumula ruido (el espacio necesario para acomodar el ruido y los recursos computacionales necesarios para procesarlo).
El avance de Gentry fue una técnica llamada bootstrapping, que podría reducir el ruido y permitir una mayor computación de datos cifrados en sistemas FHE. Bootstrapping toma el texto cifrado y lo descifra homomórficamente, lo que significa reducir el nivel de ruido en un dato cifrado sin revelar realmente qué es. El resultado es un texto cifrado con un ruido predefinido mucho menor, lo que nos permite realizar más cálculos sobre el texto cifrado. El bootstrapping, en general, nos permite evitar la necesidad de tener mayor espacio para el crecimiento del ruido a medida que aumenta la complejidad del cálculo. Podemos limitar el espacio a unas pocas operaciones y arrancar repetidamente para realizar cálculos arbitrariamente grandes sin comprometer los datos originales.
Dependiendo del esquema FHE, el arranque puede tardar varios minutos o milisegundos. Si el arranque es más lento, el costo computacional se puede distribuir aplicándolo a varios textos cifrados a la vez. Si el arranque es más rápido, generalmente viene con la desventaja de trabajar solo con pequeños fragmentos de texto sin formato (generalmente 8 bits) a la vez para mantener la eficiencia.
Si FHE convierte todos los elementos del cálculo en una caja negra, entonces iO convierte el cálculo en sí en una caja negra.
La ofuscación de indistinguibilidad (iO) se considera el sistema criptográfico más poderoso dentro del ámbito de las posibilidades teóricas. En un artículo, iO se describe como una "herramienta maestra a partir de la cual se podrían construir casi todos los demás protocolos criptográficos" y los expertos en criptografía se refieren a ella como una "joya de la corona" y "una primitiva criptográfica para gobernarlos a todos".
Según Amit Sahai, el profesor conocido por explicar las pruebas de ZK a los niños y uno de los investigadores que ideó una manera de construir iO sobre suposiciones bien fundadas, iO funciona en un paradigma fundamentalmente diferente al de los sistemas criptográficos anteriores. IO asume que el adversario ya puede leer tu mente (una metáfora de tu computadora). Tus secretos ya se conocen, por lo que no se pueden ocultar. Lo único que puedes hacer es ocultar lo que el adversario ya puede ver.
El objetivo de iO es hacer que dos funciones o cálculos sean igualmente oscuros. Si convierte dos cálculos en una forma que no se puede distinguir entre sí, podrá ocultar cómo funciona el programa. Si no puede distinguir entre dos programas, no sabe cuál de los dos programas se está ejecutando y no se puede deducir ninguna información de ninguno de ellos, aparte de que ambos realizan la misma función. Ambos programas toman las mismas entradas y producen los mismos resultados, pero iO lo hace de manera que nadie pueda entender cómo.
Con iO, puede ocultar la estructura de cada tipo de función, incluidas casi todas las funciones que componen la criptografía. En otras palabras, al ocultar casi cualquier cosa, se llega a la criptografía programable de uso más general sobre la cual se pueden programar otras primitivas.
Técnicamente, hay una caja negra más grande que iO. Literalmente se llama ofuscación de caja negra. Pero eso sigue siendo imposible.
Nadie supo cómo construir iO hasta 2013, cuando Garg, Gentry, Halevi, Raykova, Sahai y Waters propusieron mapas multilineales. Un programa de computadora podría dividirse como piezas de un rompecabezas y luego oscurecerse usando mapas multilineales. Las piezas oscurecidas podrían volverse a ensamblar para lograr la misma funcionalidad que el programa original sin revelar su funcionamiento interno.
Los mapas multilineales son una generalización de los mapas bilineales o pares utilizados en criptografía de curvas elípticas (ECC). Si bien los mapas bilineales son fundamentales para los esquemas criptográficos existentes, como las firmas BLS, no son lo suficientemente complejos ni expresivos para iO. Y si bien los mapas multilineales podían manejar iO, esta estructura algebraica recientemente desarrollada era fácilmente atacable y no era segura, por lo que depender de mapas multilineales generalmente no era satisfactorio para los criptógrafos. El campo volvió a quedar estancado.
Luego, en 2020, Jain, Lin y Sahai propusieron una solución que, si bien era inusual y nueva, era lo suficientemente simple como para que los criptógrafos razonaran y, en lugar de depender de suposiciones recientemente desarrolladas como mapas multilineales, esta versión de iO podría construirse sobre más supuestos estándar y bien fundamentados que se han estudiado durante décadas, como el aprendizaje con errores (LWE). Con este último avance, iO volvió a ser factible. El santo grial todavía estaba a nuestro alcance.
Cada sistema criptográfico se compone de diferentes supuestos matemáticos y técnicas criptográficas. Ningún avance por sí solo resuelve todos los problemas de un sistema. En cambio, los descubrimientos siguen una serie impredecible de pequeños pasos y grandes saltos que alteran las suposiciones y técnicas existentes, lo que a su vez conduce a más avances y descubrimientos. Y por cada descubrimiento que funcionó, muchos más no lo hicieron.
En una presentación sobre iO, Sahai describió el campo como si estuviera en un “desierto indómito”, donde ni siquiera estaba claro qué no se entendía y cuáles eran los problemas correctos a resolver.
Equipos como PSE trabajan principalmente en el lado práctico o aplicado de la criptografía programable, centrándose en primitivos como ZK y MPC con suposiciones bien fundadas que han sido probadas en batalla, relativamente optimizadas y consideradas seguras y efectivas. Aunque aún quedan muchas optimizaciones, ZK ahora está firmemente dentro del ámbito de la practicidad. Pero también hubo un tiempo en el que ZK estuvo confinado en la naturaleza salvaje.
Para maximizar la cantidad de herramientas habilitadas para criptografía que preservan la privacidad, garantizan la seguridad, verifican reclamos y permiten que el mundo tenga acceso, debemos mantener, al menos, un ojo entrecerrado hacia el horizonte de lo que está por venir porque nadie puede predecir lo que sucederá. será práctico en 10 años.
La presentación de Sahai incluye una cita de un artículo de 2003 de Steven Weinberg en Nature titulado Cuatro lecciones de oro, que destaca otra razón para trabajar en lo que actualmente no es práctico.
“Cuando estaba enseñando en el Instituto Tecnológico de Massachusetts a fines de la década de 1960, un estudiante me dijo que quería profundizar en la relatividad general en lugar del área en la que yo estaba trabajando, la física de partículas elementales, porque los principios de la primera eran bien conocidos. , mientras que este último le parecía un desastre. Me llamó la atención que acababa de dar una razón perfectamente buena para hacer lo contrario... Mi consejo es ir a por los líos, ahí es donde está la acción”.
La criptografía programable está siendo explorada por una variedad de equipos, incluidos PSE y 0xPARC, coorganizadores de un evento de 2 días llamado Conferencia de Criptografía Programable que se llevará a cabo en Estambul, Turquía, los días 16 y 17 de noviembre de 2023.
¡Ven a saludar!
O busque PSE en línea en Discord.