Adición de compatibilidad con la curva elíptica BLS12–381 equipada con emparejamiento a Tezos

En caso de que se lo haya perdido, aquí está el enlace de la Parte 1: Mejora de las cuentas de repostería .

El propósito de esta serie es compartir detalles con la comunidad de Tezos sobre una de las características que nuestro equipo está explorando: agregar soporte para la curva elíptica equipada con emparejamiento BLS12–381 a Tezos .

Debido a la complejidad de este campo, este artículo está estructurado de la siguiente manera: Primero, proporcionamos antecedentes sobre esquemas de pruebas de conocimiento de conocimiento cero (zkPoK), con especial énfasis en una de las variantes: SNARKs , con ejemplos de tecnologías que las han implementado en redes principales o redes de prueba. En segundo lugar, recapitulamos sobre el estado actual de los zkPoK y la criptografía de curva elíptica (ECC) en Tezos. En tercer lugar, navegamos a través de los antecedentes y las motivaciones detrás del enfoque en la curva EC equipada con emparejamiento BLS12-381 específico. Finalmente, describimos algunas de las características conocidas o casos de uso que la adición de esta curva podría habilitar en Tezos.

Antecedentes de los esquemas de pruebas de conocimiento de conocimiento cero (zkPoK)

Los esquemas de pruebas de conocimiento de conocimiento cero (zkPoK) son una primitiva criptográfica que permite a una parte, el probador , demostrar a otra parte, el verificador, que conoce un valor X que satisface algún predicado, sin revelar ninguna información sobre X mismo. Además, estas primitivas criptográficas permiten una verificación más rápida de que X cumple una propiedad, que calcular la propiedad:

Debido a las propiedades de estos métodos, los esquemas zkPoK han atraído cada vez más el interés de muchos investigadores e ingenieros en el espacio de contabilidad descentralizada pública. Aunque hay muchas variantes y tipos de zkPoK, en este artículo nos centramos en sucinto (pruebas breves) no interactivos argumentos (una parte con suficiente potencia informática podría forjar pruebas falsas) del conocimiento (descrito anteriormente): SNARK.

Los SNARK han tenido una importancia particular debido a su capacidad no solo para brindar o aumentar las garantías de privacidad, sino también su aplicabilidad potencial para resolver otros problemas difíciles en el ámbito de las redes públicas descentralizadas, como la Capa 1, a través de SNARK recursivos y Layer 2 a través de ZK-Rollups.

Aunque las publicaciones de investigación y los prototipos son abundantes, los ejemplos de redes que han implementado SNARK en mainnet o redes de prueba son escasos:

Aparte de los SNARK, estos son otros tipos de esquemas zkPoK que se han implementado hasta una determinada capacidad:

* Estas son las redes, ya sea en la fase de red de prueba pública o en la red principal, que implementan estas tecnologías, de las que tengo conocimiento en el momento de escribir este artículo. Si conoce otros, no dude en dejar un comentario con el nombre y los enlaces a la fuente (por ejemplo, código fuente).

El estado de las pruebas de conocimiento de conocimiento cero en Tezos

En el momento de escribir este artículo, teóricamente es posible implementar una curva elíptica equipada con emparejamiento (como BLS12-381) en un contrato inteligente de Tezos. No obstante, es prácticamente inviable dentro de las restricciones actuales de los contratos inteligentes (límites de gas), ya que requeriría la implementación de un número no trivial de operaciones aritméticas.

El protocolo Tezos 006 o mainnet no admite ninguna curva elíptica equipada con emparejamiento que pueda habilitar zk-SNARKs ni zkPoK. Más específicamente, Tezos no admite los componentes necesarios en el protocolo base para habilitar verificadores en cadena para esquemas zkPoK. Sin embargo, hay muchos equipos y colaboradores individuales en el ecosistema que están investigando y desarrollando activamente sobre el tema, como Nomadic Labs (ver Integración de Sapling en Tezos – Tech Preview) o nuestro equipo.

El estado de la criptografía de curva elíptica en Tezos

Las curvas elípticas equipadas con emparejamiento son un componente crucial en los protocolos zk-SNARK existentes y emergentes.

Actualmente, el protocolo Tezos admite tres curvas elípticas: Curve25519 , secp256k1 y P-256 . El uso de ECC en Tezos es generalizado. Por ejemplo, la criptografía de curva elíptica se utiliza en el proceso de generación de claves o cuentas implícitas ( tz1 , tz2 , tz3 respectivamente); en algoritmos que permiten a los usuarios producir firmas con sus respectivas claves (panaderos, usuarios, etc), o en el proceso de verificación de que un mensaje (por ejemplo una transacción) ha sido firmado con la clave válida, realizado por el código de operación Michelson CHECK_SIGNATURE .

Todos los casos de uso anteriores forman parte de los esquemas de firma digital que actualmente admite el protocolo, como Ed25519 (EdDSA con Curve25519 ).

Sin embargo, las implementaciones maduras de los protocolos zk-SNARK, como Sprout y Sapling de ZCash, se basan en curvas equipadas con emparejamiento, como bn128 y BLS12–381 respectivamente, que actualmente no son compatibles con Tezos.

Adición de soporte para la curva elíptica BLS12–381 equipada con emparejamiento a Tezos

Fondo en la curva BLS12–381

BLS12–381 es una curva elíptica equipada con emparejamiento. Concretamente, es una instanciación de la familia de curvas Barreto Lynn Scott, que fue desarrollada por Electric Coin Company (equipo de I + D que desarrolla el protocolo ZCash) que proporciona un mejor rendimiento y seguridad que su predecesor bn128 ( consulte Reducción del tiempo de prueba protegido en árboles jóvenes).

En el momento de escribir este artículo, aunque hay muchas implementaciones de código abierto de la curva, la implementación más ampliamente adoptada es la de Electric Coin Company en Rust (consulte librustzcash / bls12_381, que es la que utiliza la red principal de ZCash confía).

Otras curvas favorables al emparejamiento en el radar de nuestro equipo son: BLS12–377 de cLabs, que es parte de la arquitectura de esquema de firma digital del protocolo Celo (aún no está en producción); MNT4 / 6, que es un requisito del diseño distintivo del protocolo Coda debido a la recursividad cíclica; anteriormente conocido como bn128 (también denominado BN254), aunque está en desuso en favor de BLS12–381 debido a una mejor seguridad y rendimiento. Una variante de bn128 , alt-bn128 , es compatible con redes como Ethereum e iniciativas de configuración de confianza como el del equipo AZTEC (que aún no está en producción).

¿Por qué admitir la curva BLS12–381 equipada con emparejamiento en Tezos?

Como se mencionó anteriormente, los SNARK y, en general, los esquemas zkPoK han demostrado un potencial no trivial para resolver algunos de los problemas más difíciles en el ámbito de las redes descentralizadas, resistentes a la censura y sin permisos. Por lo tanto, nuestro objetivo de alto nivel es asegurarnos de que Tezos admita gradualmente los bloques de construcción o componentes básicos necesarios para habilitar no solo SNARK, STARK y esquemas publicados recientemente, como SHARK, (consulte la charla de nuestro fundador Christopher Goes sobre las variantes de zkPoK en TQ Tezos Global Summit), sino también los próximos diseños y construcciones mejorados y novedosos de zkPoK que aún no han aparecido.

Aunque agregar el soporte para la curva BLS12–381 no habilita per se ningún esquema zkPoK en Tezos, sí permitiría el despliegue de verificadores zkPoK en cadena en Tezos, que son componentes esenciales de cualquier zkPoK existente y emergente. Además, nuestro equipo está trabajando en contratos inteligentes de verificador zkPoK de ejemplo que aprovechan los códigos de operación Michelson correspondientes que habilita el soporte para la curva BLS12–381.

Esto allanaría el camino para que el protocolo habilite más fácilmente nuevos zkPoK en el futuro, en caso de que la comunidad decida adoptar alguna característica en el protocolo Tezos que se base en SNARK u otras variantes de zkPoK.

¿Qué podría habilitar potencialmente la compatibilidad con BLS12–381?

En términos generales, agregar soporte para la curva BLS12–381 equipada con emparejamiento en el protocolo de capa base de Tezos permite desarrollar e implementar contratos inteligentes de verificadores en cadena. Estos contratos inteligentes de verificadores podrán interactuar con otros componentes de los esquemas zkPoK que se basan en esta curva en particular. Los ejemplos incluyen, pero no se limitan a los siguientes:

Resumen & amp; Comentarios finales

En este artículo de Mientras tanto en Cryptium Labs, exploramos una de las características que nuestro equipo está explorando: agregar soporte para la curva elíptica BLS12–381 equipada con emparejamiento a Tezos.

Primero, con el fin de proporcionar un contexto más amplio a la comunidad de Tezos, compartimos un trasfondo sobre esquemas de pruebas de conocimiento de conocimiento cero (zkPoK), con un enfoque particular en una de las variantes: SNARK, con ejemplos de tecnologías que los aprovechan en redes en vivo o de prueba. En segundo lugar, recapitulamos el estado actual de zkPoKs y la criptografía de curva elíptica en Tezos, que actualmente no admite ninguna curva elíptica equipada con emparejamiento en la capa base. En tercer lugar, navegamos a través de las motivaciones y los antecedentes de la elección de la curva elíptica equipada con emparejamiento BLS12-381 específico. Finalmente, describimos algunas de las aplicaciones conocidas que esta curva podría habilitar en Tezos.

Con el fin de facilitar una mayor participación de la comunidad en el proceso de desarrollo del protocolo, nos gustaría utilizar este artículo y la serie Mientras tanto como síntesis de investigación y referencia de discusión, además de abrir este tema para la discusión en múltiples plataformas. Para discutir el tema de agregar soporte para la curva elíptica BLS12–381 equipada con emparejamiento a Tezos, lo invitamos a participar en Tezos Agora (este tema).

Más recursos

Agradecimientos

En nombre de nuestro equipo, me gustaría agradecer a Electric Coin Company, no solo por ser pionera en el campo de las ZKP aplicadas a los libros de contabilidad descentralizados, sino también por las vastas contribuciones realizadas hasta ahora a través de publicaciones de investigación y bibliotecas de código abierto. . También me gustaría agradecer al equipo de Nomadic Labs y a los miembros de mi equipo por el tiempo dedicado a revisar y proporcionar comentarios constructivos sobre este artículo.

Para comentarios o preguntas, no dude en contactarnos: [email protected]

¡Síganos en Medium y Twitter para estar al tanto! 🐫