Tesis:

ARCHITech : Advanced Research of Cryptographic Techniques to build efficient blockchains with privacy and security


  • Autor: QUEROL CRUZ, Anais

  • Título: ARCHITech : Advanced Research of Cryptographic Techniques to build efficient blockchains with privacy and security

  • Fecha: 2022

  • Materia: Sin materia definida

  • Escuela: E.T.S DE INGENIEROS INFORMÁTICOS

  • Departamentos: LENGUAJES Y SISTEMAS INFORMATICOS E INGENIERIA DE SOFTWARE

  • Acceso electrónico: https://oa.upm.es/71762/

  • Director/a 1º: FIORE, Dario

  • Resumen: Internet fue concebido hace décadas como un protocolo de intercambio de información telemáticamente a través de redes de máquinas interconectadas. Pero hace tiempo que sufre de problemas estructurales como la centralización de servicios y el alto nivel de confianza que se debe depositar en los servidores; perpetuando cuellos de botella y ciberataques. En este escenario nació blockchain, una tecnología descentralizada y transparente que ha llegado para mejorar la web que conocemos. Las cadenas de bloques, son listas de registros enlazados entre sí, securizados utilizando métodos criptográficos y repartidos a lo largo de los nodos de la red. Su utilidad principal es la de almacenar información de una forma verificable e inmutable; es decir, que un usuario pueda comprobar la integridad de los datos de las mismas. Si bien parece que la transparencia no puede conjugarse con la naturaleza de los datos más sensibles, la criptografía moderna ofrece herramientas como las pruebas de conocimiento cero (ZKPs), que permiten armonizar privacidad y transparencia. Eso es, verificar propiedades de la blockchain sin filtrar información privada. Además, otros mecanismos como los argumentos sucintos (SNARKs), permiten comprobarlo de forma eficiente sin perder seguridad. Junto con metodologías basadas en compromisos criptográficos (CP), es posible combinar estos métodos para construir sistemas para demostrar afirmaciones cada vez más complejas. El objetivo de mi tesis es mejorar estos métodos para que se puedan aplicar a casos de uso realistas. Para ello, propongo unos bloques modulares que respetan la privacidad y se combinan entre sí de forma fácil y segura con un compilador para que los desarrolladores puedan crear blockchains transparentes y descentralizadas con todas las garantías de privacidad y seguridad de forma eficiente. Para ello, propongo una serie de CP-SNARKs eficientes para verificar propiedades frecuentes a la hora de diseñar estos sistemas, como lo son multiplicaciones matriciales, relaciones lineales, chequeo de sumas o autopermutaciones. Estos módulos se pueden interconectar para construir argumentos más complejos. Gracias a nuestro compilador podemos reutilizar SNARKs con conocimiento cero (zkSNARKs) existentes. Combinando nuestros componentes, presentamos el primer zkSNARK universal con clave lineal. Por otra parte, diseñamos una familia de zkSNARKs universales, actualizables y lineales (y sus variantes CP-SNARKs) para un nuevo sistema de restricciones de propósito general llamado R1CS-lite más eficiente que R1CS. Nuestro mecanismo funciona en dos fases: la primera, pruebas para un objeto abstracto llamado PHPs; la segunda, compilación a zkSNARKs mediante CP-SNARKs modulares para tres relaciones principales—apertura de compromisos polinomiales, igualdad de ecuaciones, y grado de polinomios. Las distintas configuraciones derivan en las distintas variantes de nuestros esquemas. Por último, nos interesamos en el estudio de zkSNARKs en entornos distribuidos. Aquí, la prueba se genera de forma fragmentada por los distintos nodos y es agregada por un único coordinador, preservando la privacidad entre entidades. Mostramos un mecanismo para obtener PHPs bivariables, que se compilan a zkSNARKs paralelas. ----------ABSTRACT---------- The Internet was conceived decades ago as a protocol for the telematic interchange of information through networks of interconnected machines. But it has been some time since it suffers from some structural problems such as services centralization and the high level of trust to be deposited on servers; perpetuating bottlenecks and cyberattacks. In this scenario blockchain was born, a decentralized and transparent technology that has arrived to improve the web we all know. Blockchains, as their name suggests, are lists of linked registers, secured using cryptographic methods and disseminated across the nodes of the network. Their main utility is to store data in a verifiable and immutable way: meaning, that users can check the integrity of this information. Even if it looks like transparency cannot marry to the nature of sensitive data, modern cryptography offers tools such as zero-knowledge proofs (ZKPs), which can harmonize privacy and transparency. That is, verifying properties of the blockchain filtering no private information. Moreover, other mechanisms like succinct arguments (SNARKs), allow for checking them efficiently without detriment to security. Together with the commit-and-prove (CP) approach, these methods can be put together to build systems to prove even more complex claims. The goal of my thesis is to enhance these methods so that they can be applied to realistic use cases. To this effect, I propose some privacy-preserving modular blocks (CP-SNARKs) that can be combined with each other easily and in a secure way with a compiler, so as that developers can create transparent and decentralized blockchains with all guarantees of privacy and security in an efficient manner. With this goal in mind, I propose a series of efficient CP-SNARKs to verify frequent properties when designing these systems, such as matrix multiplications, linear relations, sum-checks, or self-permutations. These modules can be interconnected to build more complex arguments. Thanks to our compiler we can also reuse other existing zeroknowledge SNARKs (zkSNARKs). Combining our components, we present the first universal zkSNARK with linear length keys. On the other hand, we design a family of universal and updateable zkSNARKs with linear SRS (and their CP-SNARKs variants) for a new general-purpose constraint system called R1CS-lite which is more efficient than R1CS. Ours is a two-fold mechanism: first, proofs for an abstract object called PHPs; second, compiling to zkSNARKs through modular CP-SNARKs for three main relations—opening of polynomial commitments, equality of equations, and degree of polynomials. Distinct configurations derive from the different variants of our schemes. Lastly, we put our focus on the study of zkSNARKs in distributed environments. Here, the proof is generated in a fragmented way by the independent nodes and is aggregated by an only coordinator, preserving privacy among entities. We show a mechanism to obtain bivariate PHPs, which can be compiled to parallel zkSNARKs using our previous compiler.