Conocimiento completo

Jan 16 2023
por James Austgen, Kushal Babel, Vitalik Buterin, Phil Daian, Ari Juels y Mahimna Kelkar 'En esta vida, no queremos nada más que Hechos, señor; ¡nada más que hechos! — Charles Dickens, Hard Times En un artículo que publicamos hoy, presentamos una nueva noción criptográfica que llamamos pruebas de conocimiento completo (CK). También informamos sobre un prototipo que ofrece un camino para hacer que CK sea práctico para usar con teléfonos inteligentes.

por James Austgen, Kushal Babel, Vitalik Buterin, Phil Daian, Ari Juels y Mahimna Kelkar

'En esta vida, no queremos nada más que Hechos, señor; ¡nada más que hechos!

—Charles Dickens, Tiempos difíciles

En un artículo que publicamos hoy , presentamos una nueva noción criptográfica que llamamos pruebas de conocimiento completo (CK). También informamos sobre un prototipo que ofrece un camino para hacer que CK sea práctico para usar con teléfonos inteligentes.

Las pruebas de conocimiento, como sugiere su nombre, permiten que una parte, por ejemplo, Alice, convenza a otra parte, por ejemplo, Bob, de que conoce un secreto en particular, como una clave privada SK . Las firmas digitales son un ejemplo. Considere una transacción de criptomoneda T creada por Alice que gasta fondos de su dirección A . Para que sea válido, T debe estar firmado digitalmente con la clave privada válida SK para A . La firma digital aquí prueba que Alice, como creadora de T , conoce la clave SK . Es esta prueba de conocimiento de SK lo que hace que la transacción sea válida: en un sistema de criptomonedas, el propietario de la dirección Aes por definición quien conoce a SK .

Las pruebas de conocimiento son un pilar del diseño de sistemas criptográficos. Sin embargo, resulta que los sistemas de prueba de conocimiento existentes tienen una seria limitación: Alice puede ser capaz de crear una prueba convincente de que conoce SK , pero es posible que todavía no lo sepa realmente .

Aquí hay una analogía. Supongamos que Mallory quiere aparecer como concursante en Jeopardy . Hace una entrevista con el presentador del programa (Mayim Bialik). Mallory sabe que durante la entrevista le harán preguntas sobre las capitales de los estados de EE. UU., que nunca aprendió en la escuela. (Estaba ocupada volteando NFT durante las lecciones de geografía). Así que decide hacer trampa. Alice, la amiga de Mallory, conoce todas las capitales de los estados de la mitad este de los EE. UU., mientras que su amigo Bob conoce las del oeste. Mallory, por lo tanto, esconde un dispositivo de comunicación inalámbrica en cada oído. El que está en su oreja izquierda se comunica con Alice. El de su oído derecho se comunica con Bob. Gracias al engaño de Mallory, cuando le preguntan las capitales de varios estados de EE. UU. durante su entrevista, siempre responde correctamente.

Pero, ¿Conoce Mallory todas las capitales de los estados de EE. UU.? Claramente no. ¿Alicia o Bob? La respuesta sigue siendo no. Tal vez podamos decir que Alice y Bob juntos conocen todas las capitales de los estados de EE. UU. Pero supongamos que Alice es extrañamente supersticiosa y se niega a responder preguntas sobre la capital del estado los viernes. ¿Todavía podemos decir que Alice y Bob juntos tienen conocimiento de todas las capitales de los estados de EE. UU.? Si y no. El conocimiento existe en las cabezas de Alice y Bob, pero no necesariamente es posible extraerlo como se desea . Si Mallory hace su entrevista de Jeopardy un viernes, está en problemas.

El conocimiento completo aborda una brecha de este tipo en lo que significa tener conocimiento. En nuestra analogía, la negativa de Alicia a responder preguntas un viernes es una restricción en el acceso al conocimiento a la que nos referimos como estorbo. Para explicar dónde se quedan cortas las pruebas de conocimiento existentes en criptografía, es útil comenzar con algunos ejemplos potencialmente problemáticos de gravámenes de claves secretas en particular.

El problema del gravamen

Hay dos tecnologías diferentes que pueden gravar los secretos: los entornos de ejecución de confianza (TEE) y la computación multipartita segura (MPC).

Los TEE son entornos computacionales que se asemejan a cajas negras: su estado interno es opaco y resistente a manipulaciones. Usando hardware o software, hacen cumplir tanto la integridad como la privacidad de las aplicaciones en ejecución, brindando protección contra la manipulación y la observación incluso por parte del propietario de la máquina en la que se ejecuta el código. Los ejemplos de TEE incluyen enclaves (por ejemplo, ARM Trustzone) en dispositivos móviles e Intel Software Guard eXtensions (SGX), que está disponible en algunos servidores en la nube.

Por otro lado, MPC es un enfoque algorítmico para lograr los mismos objetivos de seguridad. Divide los secretos y la computación entre una colección de servidores a menudo llamada comité. La seguridad de MPC depende de un quórum de servidores en el comité (por ejemplo, una mayoría) que se comporte correctamente.

Como los TEE son mucho más prácticos y están más extendidos que el MPC en la actualidad, nos centraremos en los TEE en los siguientes ejemplos, comenzando con un ataque basado en TEE a los sistemas de votación de cadena de bloques. Aquí hay un ejemplo que involucra un ataque a los esquemas de votación.

El problema del soborno fuerte y sigiloso en este ejemplo afecta no solo a los esquemas de votación de blockchain diseñados ingenuamente, sino incluso a los diseñados específicamente para resistir el soborno, como la Infraestructura mínima anticolusión (MACI) .

Peor aún, un TEE puede incentivar sigilosamente y hacer crecer una comunidad de usuarios que montan un ataque unificado contra un protocolo, un concepto que anteriormente hemos denominado Dark DAO . Dichos ataques podrían implicar no solo la manipulación de los votos, sino también la manipulación de los precios de los activos y posiblemente el ataque a los sistemas fuera de la cadena .

Lo que es particularmente pernicioso es que si Alice envía una transacción firmada a un contrato inteligente utilizando una clave SK gravada , no hay forma de que el contrato lo sepa. La transacción de Alice se verá idéntica a una creada con una clave libre de cargas. Así que parece que es simplemente imposible prevenir los ataques de soborno del tipo ilustrado en nuestro ejemplo.

¿Pero es realmente?

Garantizar el conocimiento completo

Resulta que hay una manera de garantizar que una SK clave no esté gravada, específicamente que alguien tenga acceso directo a la SK . Informalmente, esto es lo que queremos decir con Conocimiento Completo. El efecto de CK es que los esquemas de soborno como el de nuestro ejemplo no funcionarán, porque no hay forma de que un usuario malicioso como Mallory evite que un usuario use su clave como quiera.

Hay dos enfoques básicos para hacer cumplir CK. Ambos permiten la generación de lo que llamamos pruebas de conocimiento completo (PoCK), y específicamente aquellas que son de conocimiento cero , es decir, no revelan SK:

  1. El enfoque de lucha contra el fuego

La mayoría de los usuarios tienen TEE en sus teléfonos móviles. Mostramos en nuestro artículo cómo pueden usarlos en un esquema CK para votar o cualquier otra aplicación.

Sin embargo, como discutimos en nuestro documento, existen algunas limitaciones técnicas para los TEE, particularmente los de los teléfonos móviles. Así que también consideramos un segundo enfoque.

2. Un enfoque basado en la prueba de trabajo

Este enfoque es un poco contradictorio. Implica el uso de un ASIC de minería, es decir, una plataforma de hardware de minería de prueba de trabajo, como la que se usa para Bitcoin. Los ASIC tienen dos buenas propiedades para los propósitos de CK. Pueden realizar ciertos cálculos, a saber, hashing , mucho más rápido que las CPU o GPU ordinarias, ¡del orden de un millón de veces más rápido que una CPU de última generación! Y no incluyen TEE.²

Basándonos en y modificando técnicas de la literatura sobre la teoría de las pruebas de conocimiento, hemos diseñado un protocolo que implica el uso de un ASIC para la minería de una manera que involucra a SK (pero lo oculta inteligentemente). Este protocolo genera una prueba de que se ha enviado SK al ASIC, es decir, un PoCK. Dado que el ASIC no tiene un TEE, esto significa que SK está efectivamente expuesto al usuario del ASIC. Esta propiedad es esencialmente equivalente a lo que hace la aplicación TEE especial de RBU: escupir SK directamente al usuario. Debido a que el ASIC es mucho más rápido que las plataformas que admiten TEE, no hay forma de generar un PoCK equivalente usando un TEE.

Nuestro artículo muestra experimentalmente que incluso usando un ASIC barato (aproximadamente $200), anticuado (alrededor de 2017), es posible implementar un PoCK de alta seguridad.

Aplicaciones de CK Más allá de la resistencia al soborno

Si bien inicialmente diseñamos CK para abordar la amenaza del soborno en los esquemas de votación, hay muchas otras aplicaciones. CK puede ayudar a evitar el gravamen de las credenciales de identidad descentralizadas, por ejemplo, la atestación de que un usuario se ha sometido a la diligencia contra el lavado de dinero. Esto es esencial para evitar los muchos tipos de travesuras posibles si los usuarios pueden alquilar sus credenciales, por ejemplo, un mercado de credenciales de identidad para eludir las sanciones.

CK también tiene aplicaciones interesantes en los mercados de NFT. Por ejemplo, puede ayudar a garantizar el cumplimiento de los pagos de regalías para los artistas. Hoy en día, las regalías solo se aplican fuera de la cadena, es decir, voluntariamente , por los mercados de NFT. En cambio, podrían, en principio, aplicarse en cadena en un contrato inteligente, en cuyo caso la aplicación sería obligatoria. Una de las razones por las que los pagos obligatorios de regalías no se consideran una buena práctica es que sería injusto que los usuarios que transfieren NFT entre sus propias direcciones tengan que pagar regalías. El problema es que no hay forma de distinguir entre una dirección de remitente S y una dirección de destinatario R pertenecientes a un solo usuario y las direcciones S y Rpertenecientes a distintos usuarios. Por lo tanto, no hay forma de distinguir entre una transferencia de un solo usuario y un cambio de propiedad de un NFT.

Sin embargo, con CK es posible distinguir. Un contrato de mercado de NFT podría exigir que se aplique un PoCK simultáneamente a R y S para las transferencias libres de regalías , lo que demuestra que una sola entidad conoce ambos . Esta propiedad es una muy buena aproximación a la propiedad individual. Al menos creemos que este enfoque basado en CK podría desincentivar fuertemente la evasión de regalías.³

Otra aplicación interesante de CK a NFT es una noción que llamamos Atomic NFT . Es común fraccionar los costosos NFT, es decir, subdividir su propiedad en partes pequeñas, como sucedió, por ejemplo, con el Doge NFT .

Sin embargo, varios artistas con los que hemos hablado prefieren que sus obras sean propiedad y apreciadas por una sola persona. Los NFT atómicos ofrecen una forma de crear NFT que respetan este deseo y garantizan la propiedad exclusiva. Para demostrar estas capacidades, hemos acuñado nuestra propia pequeña colección de Atomic NFT, que se muestra aquí.

Conclusión

Las pruebas de conocimiento son un concepto criptográfico bien estudiado y con décadas de antigüedad. Pero las poderosas tecnologías nuevas (más o menos) como TEE y MPC amenazan con alterar el panorama clásico de prueba de conocimiento a través de la carga de secretos. CK ofrece una manera de prevenir tal impedimento y restaurar la idea intuitiva de que el conocimiento es atribuible a una sola entidad o individuo. Además de ofrecer una solución a los ataques basados ​​en gravámenes, como el soborno en esquemas de votación, también ofrece una gama de nuevas aplicaciones.

Creemos que CK puede ser práctico. Hemos implementado un sistema basado en ASIC de extremo a extremo con un contrato inteligente que verifica las pruebas de PoCK. Nuestro sistema prototipo incluye un registro de direcciones basado en contratos inteligentes que se ha comprobado que cumplen con CK. También hemos implementado un sistema prototipo utilizando TEE basados ​​en teléfonos móviles. Nuestros prototipos aún no están listos para el horario de máxima audiencia, pero creemos que hay un camino hacia la implementación práctica en producción. Puede encontrar una versión de código abierto de nuestras herramientas aquí . Damos la bienvenida a la colaboración de proyectos interesados ​​en realizarlo.

¹ Afortunadamente, los TEE no se pueden anidar, por lo que Mallory no tiene una forma inteligente de encapsular la aplicación TEE de RBU y, por lo tanto, seguir sobrecargando las claves de los usuarios.

² La mayoría de los ASIC tienen muy poca seguridad a bordo. Ni siquiera admiten redes cifradas, como descubrimos cuando nuestro ASIC aparentemente fue comprometido por un hacker remoto varias veces en el curso de nuestros experimentos.

³ Hay una advertencia aquí. Como discutimos en nuestro artículo, si los mecanismos de recuperación social se vuelven comunes, las pruebas CK de conocimiento simultáneo de claves ya no funcionarían.