Zero Knowledge Protocols: El Poder de los Secretos
¿Qué son las pruebas de conocimiento cero?
Se refieren a las técnicas criptográficas que permite a un “Probador” comprobar inequívocamente que conoce un dato o una información específica a un “Verificador”, sin revelar nada sobre la información misma.
Dentro de las pruebas de conocimiento cero, se distinguen principalmente dos tipos: los zk-STARKs y los zk-SNARKs. Los zk-STARKs son resistentes a los ataques cuánticos y requieren interacción entre el Verificador y el Probador, lo que les otorga ciertas características de seguridad únicas.
Figura 3: Libro de Cifrado de las comunicaciones digitales: de la cifra clásica a RSA 2ª Edición de 0xWord |
Ejemplo práctico de zero knowledge
Para crear una Zero Knowledge Proof necesitaremos primero un circuito conocido por ambas partes (Probador y Verificador). Este circuito está escrito en un lenguaje especializado como Circom o Zokrates. En este ejemplo vamos a ver como se haría con Zokrates ya que tiene una integración bastante visual en Remix IDE.
En esta imagen anterior observamos el circuito arriba a la derecha, y los pasos a seguir para generar la prueba de conocimiento cero a la izquierda. Vamos a explicar los pasos uno a uno:
1.- Compile: Compilar el circuito escrito en Zokrates
def main(private field a, field b) { assert(a * a == b); return; }
2.- Compute: El Probador pasará los valores válidos para que se cumpla el circuito. En este caso a = 3 y b = 9, siendo “a” la variable privada que no va a conocer el Verificador.
3.- Setup: Se crean llaves de verificación de y de prueba a partir de un número aleatorio.
5.- Export Verifier: Al ser un ejemplo de un zk-SNARK no interactivo, el Verificador será un código generado a partir del circuito que permita saber si el valor de la prueba es correcto sin saber los parámetros privados. En este caso se despliega un SmartContract de Solidity con una función pública para determinar si este valor es correcto.
[["0x109b7a48a253af99694912bdedc2067fcc2795cc6f7f8771bd548d3706ae7eff",
"0x30164869c99abafaa6c020cfa6c7725a46fe6e8d8d144654edb3e665355fce90"],
[["0x261c5b83bd5f59c8f62cb9b53789f34b4a8aabd3eb58cf395159d72f406d2c29",
"0x0e3f97868f33e6809a4434f3e057f40cec38c13d351b72ccb1dbe81a591252ac"],
["0x041bc3604e4864e493ae44ec0ed3873e49849e1f6612e3ce9bc4358905fe0ad4",
"0x00bcbaef597cde379b1e8f4b259dc2cc144df04edac945f8f9b5d70ef877f9e7"]],
["0x2129a223e0c8e321b3e1d832392a017bf8756185e38dead75eb4c369ac8fe97e",
"0x2a0702baf1d41279a46474b5de0e067b2a02e6403bd43bc4ffff1680eab0f7c4"]]
Las variables públicas del circuito:
["0x0000000000000000000000000000000000000000000000000000000000000009"]
El resultado obtenido:
Posibles aplicaciones
En un futuro se prevé que con esta tecnología desbloquearemos un mundo de oportunidades con respecto a la privacidad y la autenticación con usos desde votaciones electrónicas, cumplimiento regulatorio hasta juegos y apuestas en línea. Sin embargo, en el presente, esta tecnología se está utilizando para cadenas de Blockchain y las criptomonedas. Esto se debe a que juntos son como un matrimonio perfecto entre privacidad y transparencia.
Figura 8: Libro dedicado a “Bitcoin: La tecnología Blockchain y su investigación” de Yaiza Rubio y Félix Brezo |
- Privacidad: Protocolos como Zcash o Tornado Cash se benefician de esta oportunidad para ofrecer transacciones completamente anónimas, desvinculando el origen y el destino de los fondos.
Sin embargo, debido a su funcionalidad, también se están utilizando para el lavado de dinero y están siendo sometidas a procesos judiciales tanto a los creadores como a los usuarios de los mismas.
- Zk rollups en cadenas públicas: Los zk-Rollups son una solución de escalado que agrega múltiples transacciones en un solo lote y luego las procesa en la cadena Blockchain principal. Utilizando ZKP, los zk-Rollups pueden validar estas transacciones masivamente agrupadas sin revelar sus contenidos individuales. Esto reduce los costos de transacción manteniendo la integridad.
Cabe aclarar que, pese a su nombre, no deberíamos enviar transacciones privadas en estas redes porque su funcionamiento es de escalado y no privacidad, ya que, en la Layer2 dónde subas tu transacción se podrá acceder al contenido como en cualquier otra cadena Blockchain pública.
Conclusión
Mirando hacia el futuro, los protocolos de conocimiento cero tienen el potencial de transformar radicalmente nuestra forma de interactuar. Así como los alquimistas soñaban con convertir los metales básicos en oro, los protocolos de conocimiento cero buscan transformar nuestra percepción de la seguridad y la privacidad, convirtiéndolos en elementos accesibles y transparentes para todos en la era digital.
Más artículos de Web3, Blockchain & SmartContracts
- Blockchain & SmartContracts: Una serie para aprender
- BlockChain & SmartContrats: Primer SmartContract con Solidity
- Blockchain & SmartContracts: Cómo probar y desplegar un SmartContract en Ethereum
- WWW, Web 1.0, Web 2.0, Web 3.0, Web3 y ¿Web 4.0?
- Metaverso, multiverso y las tierras digitales en que vivimos en forma de avatar
- Los Fan Tokens vs. las Criptomonedas y los NFTs: Level 101
- Tokenomics: Las criptomonedas y las “Proof-of-work”: Level 101
- Los NFTs y el registro mundial de los dueños de activos digitales en el Metaverso
- BitCoin: Blockchain y su investigación
- Criptomonedas & Ciberestafas: Valor y Peligro en la Web3
- BlockChain & SmartContrats: El Internet descentralizado y el almacenamiento off-chain en IPFS
- Reentrancy Attack: Cómo te roban criptomonedas por un bug en tu SmartContract
- BlockChain & SmartContract: Bugs que pueden dejar tu SmartContrat “fuera de juego”
- Blockchain & SmartContracts: Patrones y buenas prácticas de seguridad
- Blockchain & SmartContracts: Herramientas de Auditoría de Seguridad de SmartContracts
- BlockChain & SmartContracts: Ataque de phishing a tx.origin y robo de criptomonedas
- BlockChain & SmartContracts: Ataques de Ice Phishing
- Blockchain & SmartContracts: Herramientas de análisis dinámico
- ZIION: Una distribución Linux para auditar SmartContracts (& BlockChain)
- Dominios Web3 en Etherenum Name Service y la trazabilizad de las transacciones Blockchain
- BlockChain & SmartContracts: Actualizar SmartContracts como los grandes protocolos
- Jumping level up (from) web2 (to) web3: Vulnerabilities & SCAMs – SmartContracts
- 20 millones (Euros) en Tokens de Optimism perdidos por no saber cómo funcionan los Wallets Multifirma
- BlockChain & SmartContracts: Cómo crear una DApp de la Web3 con Python (y Flask)
- Pentesting SmartContracts: From Web2.0 to Web3
- Tokenomics 101: Una explicación con gráficos
- Read-Only Reentrancy Attack: $220k robados y otros +$100M en riesgo
- Como utilizar ChatGPT para encontrar bugs en SmartContracts
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Las voces de Satoshi: Un canal para estar al día en Web3, Blockchain, Criptos & IA
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Bit2Me Academy: Una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos
- Level_Up!: Una plataforma para aprender a hacer pentesting en Web3 (SmartContracts & BlockChain ) a través de retos hacking
- Level_Up!: Web3 Security WarGames para los amantes del Challenge Based Learning
- Level_up!: WriteUp del Reto Questions para comenzar el pentesting en la Web3
- Level_Up! Deny_to_me Challenge activado en la plataforma Level_up! de retos hacking Web3
- Level_Up!: WriteUp del Ownership Challenge para hacer pentesting en Web3
- Nuevo reto Hacking Web3 de Level_UP! -> Forensic Ouch!
- Level_Up!: WriteUp del reto “Safeguarding” para hacer pentesting en Web3
- Reto Web3 en Level_Up! “Replay_me”: La importancia de una correcta validación de firmas
- Level_Up! Configuración paso a paso de la plataforma de pentesting en Web3
- Level_Up! Consigue tus NFTs mientras cuando supera retos Web3
- Telefónica validará nodos de la cadena BlockChain de Celo
- Latch Web3: Un pestillo de seguridad para SmartContract
- Level_Up!: El WriteUp del reto “Origin” y un nuevo reto “Guess my number”
- CrazyToolBox: Una herramienta multifunción de utilidades Web3
- Level_Up!: El WriteUp del reto “ReLottery” y un nuevo reto de agosto llamado “Pay Me!”
- WriteUp: Reto Overworld y nuevo reto DEX Knowledge disponible en Level_Up!
- WriteUp del Reto Hacking Web3 Blockchain Tour & Nuevo Reto Gas Knowledge en Level_Up!
- WriteUp del Reto Hacking Web3 “Snippet Delegated” & Nuevo Reto “Send to me” en Level_Up!
- Una comparativa de Seguridad, Transparencia, Privacidad y Cumplimiento Regulatorio en Exchangers Web3
Autor: Luis García Adán (Intership en el equipo de IdeasLocas)
Powered by WPeMatico