Cada vez más a menudo, las bases de datos centralizadas se convierten en el objetivo principal de atacantes externos. Como hemos podido ver en diferentes ocasiones, cuando se encuentra una brecha en un sistema, los ciberdelincuentes pueden robar y exponer los datos de millones de personas o venderlos en la darkweb, lo que puede conllevar a un uso indebido de éstos.
En el caso de España, su población es una de las más expuestas, siendo actualmente uno de los 5 países del mundo más hackeados, donde según un informe de la empresa Surfshark, se producen 15 filtraciones por minuto cada día.
El robo y la venta de datos robados de empresas como Santander, Ticketmaster o Iberdrola deja en evidencia la vulnerabilidad de las bases de datos centralizadas y pone sobre la mesa un problema al que hay que buscarle una solución de manera urgente.
En el artículo de hoy, abordaremos cómo a partir de una identidad descentralizada (DID), junto con pruebas de conocimiento cero (ZKPs) se podría dar respuesta a estos ataques que sufren las bases de datos descentralizadas.
Pruebas de conocimiento cero (ZKPs) e identidad descentralizada
Las pruebas de conocimiento cero permiten demostrar que se posee una información sin revelar la información real. Esto es posible gracias a técnicas criptográficas avanzadas que permiten la verificación de la posesión de una información sin necesidad de revelar el contenido de dicha información.
Este enfoque tiene aplicaciones directas y significativas en el ámbito de la identidad descentralizada, ya que uno de los desafíos principales de este sistema es la verificación de la identidad sin comprometer la privacidad del individuo.
Aquí es donde las pruebas de conocimiento cero entran en juego, puesto que al utilizar ZKPs en la identidad descentralizada, se puede verificar la autenticidad de una identidad o la posesión de atributos específicos sin necesidad de revelar información sensible.
De esta manera, el funcionamiento de las ZKPs permite al probador de la declaración (prover) demostrar a un verificador (verifier) la veracidad de una afirmación, garantizando al mismo tiempo que ninguna información adicional sobre la afirmación sea divulgada.
Un ejemplo de ello sería demostrar que tu saldo bancario es superior a una cantidad determinada sin tener que dar a conocer cuál es el saldo total de tu cuenta. De esta manera, puedes demostrar que tienes la cantidad requerida sin perder la privacidad de tus datos.
Para poder llevar a cabo este proceso, se generarían o bien, la pruebas de conocimiento cero no interactivas y sucintas, también conocidas como zero-knowledge succinct non-interactive argument of knowledge (zk-SNARKs), o a través de los argumentos transparentes y escalables de conocimiento cero, conocidos también como zero-knowledge scalable transparent arguments of knowledge (zk-STARKS).
zk-SNARKs vs zk-STARKs
Aunque ambas son pruebas de conocimiento cero que permiten verificar información sin revelar los datos adicionales, existen diferencias importantes en términos de transparencia, escalabilidad, seguridad y eficiencia.
Transparencia y configuración de confianza
- ZK-STARKs: No requieren una configuración de confianza inicial. Esto significa que no hay necesidad de una fase de configuración secreta que podría comprometer la seguridad del sistema si se viera comprometida. La transparencia en ZK-STARKs elimina riesgos asociados con la configuración inicial.
- ZK-SNARKs: Requieren una configuración de confianza inicial (trusted setup), donde se genera un conjunto de parámetros secretos que, si son comprometidos, pueden poner en peligro la seguridad del sistema. Esto puede representar un riesgo de seguridad si no se maneja correctamente.
Escalabilidad
- ZK-STARKs: Están diseñados para ser altamente escalables, capaces de manejar grandes volúmenes de datos y cálculos complejos de manera eficiente sin un aumento significativo en el tiempo de verificación.
- ZK-SNARKs: Aunque también son eficientes, las ZK-SNARKs pueden tener limitaciones en cuanto a escalabilidad en comparación con las ZK-STARKs, especialmente cuando se trata de grandes conjuntos de datos.
Tamaño de la prueba y eficiencia
- ZK-STARKs: Las pruebas generadas son más grandes en comparación con las ZK-SNARKs, lo que puede resultar en un mayor costo de transmisión y almacenamiento. Sin embargo, estas pruebas son rápidas de generar y verificar.
- ZK-SNARKs: Generan pruebas muy pequeñas y compactas, lo que las hace eficientes en términos de transmisión y almacenamiento. Además, son rápidas de verificar, lo que las hace adecuadas para aplicaciones con limitaciones de ancho de banda y almacenamiento.
Base criptográfica
- ZK-STARKs: Se basan en funciones hash para generar pruebas y desafíos aleatorios que el probador debe responder. Además, usan la aleatorización para asegurar que las pruebas sean únicas y no reutilizables, lo que las hace resistentes a ataques cuánticos.
Por otro lado, utilizan estructuras de datos como los Merkle Trees para permitir que el probador haga compromisos criptográficos con ciertos valores sin revelarlos, lo cual es una parte esencial del proceso de verificación. - ZK-SNARKs: Generalmente se basan en emparejamientos bilineales (bilinear pairings) sobre curvas elípticas para construir pruebas concisas y eficientes. Los emparejamientos bilineales son funciones que permiten mapear dos puntos en una curva elíptica a un tercer punto en un grupo objetivo, manteniendo ciertas propiedades algebraicas que son útiles para la verificación.
También, se usan esquemas de compromiso criptográficos para asegurar que las entradas y las soluciones están fijadas y no pueden ser alteradas una vez que se ha realizado el compromiso. Un esquema comúnmente usado es el compromiso de Pedersen.
En resumen, mientras que ambas tecnologías ofrecen soluciones para la verificación de datos en entornos de conocimiento cero, las zk-STARKs destacan por su transparencia y escalabilidad, y las zk–SNARKs por su eficiencia en términos de tamaño de la prueba y velocidad de verificación. La elección entre una u otra dependerá de las necesidades específicas de la aplicación en términos de seguridad, escalabilidad y eficiencia.
Conclusión
La identidad descentralizada, fortalecida con las pruebas de conocimiento cero, representa un avance en la forma en que gestionamos y protegemos nuestra información personal en la era digital. Al integrar las ZKPs, se puede garantizar una mayor seguridad y privacidad, evitando los problemas asociados con las bases de datos centralizadas. Este enfoque no solo mejora la seguridad y privacidad de los datos, sino que también devuelve el control de la identidad a los individuos.
Si las identidades descentralizadas tienen éxito, no sólo nos permitirán eludir los problemas de privacidad de datos que plagan el espacio Web 2.0, sino que también crearán un estándar más alto para la protección de datos, la privacidad y el empoderamiento del usuario.
Recursos:
[1] Introduction to ZK Proofs
[2] Who verifies the verifier in ZK?
[3] Zero-Knowledge Proof: Applications and Use Cases
¿Quieres seguir leyendo sobre la gestión de la identidad autogestionada? ¡No te pierdas estos recursos!
- Parte I: Adentrándonos en la era de la identidad digital autogestionada
- Parte II: De las bases de datos a la identidad descentralizada
- Parte III: Pruebas de conocimiento cero (ZKPs): El futuro de la gestión de identidades
- Parte IV: zkVMs: Las máquinas virtuales de conocimiento cero
En Block&Capital, nos esforzamos por crear un entorno donde el crecimiento y el éxito sean accesibles para todos. Si estás listo para impulsar tu carrera profesional, te animamos a unirte a nosotros.
Últimos posts