Zerocoin

Zerocoin es un protocolo criptográfico que rompe el vínculo público entre la acuñación y el posterior canje de una moneda. Ian Miers, Christina Garman, Matthew Green y Aviel D. Rubin, de Johns Hopkins, lo presentaron en 2013 como extensión propuesta para Bitcoin. Usa compromisos criptográficos, un acumulador y pruebas de conocimiento cero.[1]
El nombre designa el protocolo y las monedas temporales que crea. Se distingue de Zcoin, luego renombrada Firo, y de Zerocash, sistema de investigación posterior asociado a Zcash. Varias criptomonedas independientes implementaron diseños derivados de Zerocoin, con distintos lanzamientos, parámetros y respuestas de seguridad.[2][3][4][5]
Antecedentes y propósito
Bitcoin registra transacciones en un libro mayor público. Las direcciones son seudónimos, no garantía de anonimato: las relaciones entre transacciones y datos externos a la cadena pueden vincular actividad con una persona. Cambiar de dirección no elimina la información del grafo de transacciones.[1]
Un servicio de mezcla con custodia intenta ocultar ese grafo aceptando y devolviendo fondos. El operador puede conocer las conexiones o no devolver depósitos. Zerocoin propuso que las reglas de consenso y las pruebas controlaran el canje, sin banco ni operador de mezcla que emitiera monedas privadas. Así elimina una forma de confianza en la custodia, pero conserva supuestos criptográficos y de configuración.[1][6]
Cómo funcionan la acuñación y el gasto
Acuñación y compromiso de la moneda
Para acuñar, el usuario genera un número de serie secreto S y un valor aleatorio r, y crea un compromiso C. El artículo usa uno tipo Pedersen, C = g^S h^r mod p. El C público oculta S; conocer r permite al dueño vincularlos después. Un compromiso no es cifrado: el gasto prueba algo sobre el valor comprometido, no descifra C para todos.[1][6]
La transacción de acuñación compromete el valor correspondiente en moneda base más comisiones. El prototipo original usaba valor fijo. La integración propuesta con Bitcoin situaba ese valor fuera del gasto ordinario para que solo se canjeara según Zerocoin; el usuario guardaba los datos secretos en una cartera.[6]
El acumulador y la prueba de pertenencia
Los compromisos públicos válidos se combinan en un acumulador criptográfico, valor compacto que representa un conjunto. Una prueba de pertenencia permite demostrar que un compromiso está en él. Quien gasta demuestra tener esa prueba sin revelar el compromiso. El conjunto compacto evita enumerar cada acuñación posible en cada prueba.[1][6]
Gasto y prevención del doble gasto
Un gasto publica S y una prueba de conocimiento cero que lo vincula a una moneda válida acumulada cuya apertura conoce quien gasta. Los nodos verifican la prueba y cotejan S con los números aceptados. Reutilizar S se rechaza como doble gasto. Destino y denominación siguen visibles; se pretende ocultar qué acuñación aportó el valor.[6][3][5]
Varios usuarios pueden acuñar monedas de igual denominación. Un gasto posterior prueba el derecho a canjear una sin nombrar su compromiso original. Publicar el número de serie permite rechazar una reclamación repetida sin revelar la acuñación inicial. Es una descripción conceptual, no una instrucción para enviar transacciones Zerocoin a Bitcoin.[6][5]
Los autores construyeron un prototipo de bitcoind modificado. La propuesta completa requería nuevas reglas de validación, por lo que desplegarla en una cadena existente implicaba cambios de consenso y trabajo criptográfico. libzerocoin aportaba rutinas básicas; las aplicaciones aún debían implementar formatos de transacción, validación de acuñaciones, registro de seriales gastados y canje.[1][7][6]
Garantías y limitaciones de privacidad
Las denominaciones fijas hacen comparables las monedas elegibles, pero limitan pagos. La propuesta permitía varias denominaciones con instancias separadas y parámetros públicos compartidos. Un pago con varias monedas requiere varios gastos y pruebas. Un canje podía crear otra acuñación y mover valor entre instancias.[1][8]
El conjunto acumulado no garantiza siempre ese número de orígenes plausibles. Si se canjearon todas las acuñaciones previas, una nueva puede ser la única fuente posible del siguiente gasto. Los recuentos, denominaciones y tiempos afectan lo que infiere un observador. El anonimato útil depende también de la actividad ajena y de pruebas correctas.[1][8]
La privacidad del libro mayor no oculta el origen de red. El artículo trata aparte el anonimato de red; una cartera comprometida puede revelar datos que vinculan monedas y acuñaciones. Ocultar ese vínculo tampoco oculta todos los destinos y cantidades públicos. La construcción original no ofrece transferencias privadas completas dentro de un libro mayor protegido.[1][6][3]
Parámetros RSA y configuración de confianza
El acumulador usa un módulo RSA N formado por factores primos secretos. Quien los conserve puede debilitar la protección contra pruebas falsas de pertenencia y quizá crear monedas falsas. Generar parámetros de forma segura y destruir factores son cuestiones distintas de evitar un mezclador custodial.[1][8]
El artículo analiza generar parámetros con configuración de confianza y destruir factores, así como la alternativa propuesta RSA UFOs, sin puerta trasera. Hay que evaluar el método real de cada implementación. Que Zerocoin no requiera emisor confiable por transacción no prueba que todos sus despliegues tengan configuración sin confianza.[1][8]
Costes de rendimiento e investigaciones posteriores
Zerocoin logra mayor separación entre acuñación y gasto a cambio de pruebas grandes y más cálculo. Rational Zero describe el diseño de 80 bits con una prueba de unos 25 KB que tardaba 0.5 segundos en verificarse con esos parámetros. Son mediciones históricas, no especificaciones de Bitcoin actual ni de toda implementación posterior.[8]
Los autores de 2013 también probaron bloques en un cliente Bitcoin modificado. Usaron bloques de 200, 400 y 800 transacciones con distintas proporciones de acuñaciones y gastos; verificar uno de 800 transacciones Zerocoin tomó menos de cinco minutos en su entorno. Dependía de hardware, parámetros y carga, y no implica el mismo coste para bloques actuales.[1]
Rational Zero de 2014 estudió garantías más fuertes de anonimato a largo plazo, divisibilidad y pruebas menores. Una optimización reducía parámetros de solidez suponiendo que un falsificador racional no gastaría más en atacar que el valor recuperable. Era un modelo de amenazas específico, limitado ante motivaciones no financieras; no garantizaba en general la seguridad con parámetros reducidos.[8]
Implementaciones y propuestas históricas
ZeroVert
Un anuncio de ZeroVert de noviembre de 2014 describió una criptomoneda basada en Zerocoin y enlazó una cartera. Investigadores posteriores lo llamaron predecesor abandonado de Zcoin; por ello es engañoso decir sin matices que Zcoin fue primero. El lanzamiento histórico no prueba que hoy haya red activa. El anuncio indicó minería combinada Scrypt-N con Vertcoin y suministro previsto de 8.4 millones ZER: especificaciones anunciadas, no datos actuales verificados independientemente.[9][5]
Moneta, Zcoin y Firo
Moneta fue nombre anterior del proyecto que se convirtió en Zcoin. Su versión de diciembre de 2015 fue una etapa testnet; la retrospectiva dice que el nombre cambió antes del lanzamiento en red real. Firo fecha el lanzamiento de Zcoin en 2016-09-28. Poramin Insom fue fundador. Testnet y mainnet son hitos distintos.[10][11][12][13]
La retrospectiva del proyecto 2019 dice que usó Zerocoin de septiembre de 2016 a abril de 2019. Sigma, reemplazo sin configuración de confianza, se activó 2019-07-30. En octubre de 2020 Zcoin anunció el nombre Firo en la misma cadena. Después surgieron otros protocolos; Lelantus Spark se activó en Firo el 2024-01-18. Son hitos de ese proyecto, no migración universal.[14][15][2][16]
PIVX y zPIV
PIVX lanzó la cartera 3.0.0 con zPIV Zerocoin el 2017-10-16, presentándolo como primer despliegue proof-of-stake. Su FAQ posterior dice que la acuñación se deshabilitó el 2019-03-07. Convertir zPIV existente a PIV era asunto separado; una actualización de noviembre de 2020 describió gastos públicos de conversión y fin del soporte con versión 5.0.[17][18][19]
El sistema SHIELD posterior de PIVX usó otra tecnología y, según su informe, se activó el 2021-01-30. La secuencia fue lanzamiento, desactivación de nuevas acuñaciones, período de conversión y reemplazo; no una fecha única para la desaparición de toda función zPIV.[20][19]
SmartCash, Zoin, Hexxcoin y Veil
La divulgación FAU de abril de 2018 identificó Zcoin, PIVX, SmartCash, Zoin y Hexxcoin como usuarios de Zerocoin e indicó que SmartCash había desactivado la función. Veil documentó luego su implementación libzerocoin y respuesta de emergencia de 2019. Estos registros prueban adopción histórica, no disponibilidad actual uniforme.[5][21]
Anoncoin y sistemas relacionados de conocimiento cero
El repositorio Anoncoin tiene un resumen marcado como antiguo y sin editar que describe Zerocoin en desarrollo. Documenta un plan, no prueba que se lanzara una implementación funcional. La afirmación antigua en presente requiere esa precisión histórica.[22]
CredaCash pertenece a la historia amplia de privacidad de conocimiento cero, pero no debe asumirse que implementa el acumulador Zerocoin. Su repositorio describe un sistema distinto para ocultar entradas, salidas y cantidades. Compartir técnicas no hace que dos sistemas implementen el mismo protocolo. Pronósticos antiguos de lanzamiento y rendimiento necesitan fuentes fechadas.[23][3]
Hallazgos e incidentes de seguridad
En febrero de 2017 Zcoin sufrió inflación por un error de implementación. Un estudio académico describe un operador C++ equivocado y creación de monedas adicionales. Fue un fallo de validación de software, distinto de fallos criptográficos posteriores. Las estimaciones de pérdidas varían; el mecanismo está mejor documentado que una cifra única sin matices.[24]
En abril de 2018 investigadores FAU divulgaron una denegación de gasto: bajo las condiciones descritas, un atacante podía impedir que un usuario honesto gastara su moneda. También informaron errores de código capaces de crear o robar monedas. Denegación, inflación y robo son resultados distintos, con remedios e implementaciones afectadas diferentes.[5]
Veil distingue un exploit de marzo de 2019 contra seriales envueltos de otra vulnerabilidad hallada tras un ataque detectado por Zcoin en abril. Esta permitía gastos falsos e inflación. La medida temporal de Veil sacrificó anonimato de acuñación para cerrar el fallo, sin revelar retroactivamente acuñaciones previas, según su informe. Otros proyectos optaron por cierre, conversión o reemplazo.[21][14]
El repositorio libzerocoin califica su código de abandonado, sin mantenimiento y con exploits conocidos. Sirve como evidencia histórica, no como referencia actual de producción. La seguridad de un fork no se deduce del artículo, el nombre o un arreglo aplicado por otro proyecto.[7][24]
Zerocoin, Zerocash y Zcash
El artículo Zerocash de 2014 presentó otro sistema de pagos privados con pruebas sucintas de conocimiento cero. Extendió privacidad al destino y monto y permitió transferencias privadas internas. Sus cifras de rendimiento no corresponden al Zerocoin original. Zcash surgió de esa investigación; no es otro nombre de Zcoin ni Zerocoin.[3][4]
Recursos de investigación y software
Los artículos de Zerocoin y Rational Zero explican la construcción y sus compromisos; el de Zerocash describe el diseño sucesor distinto. El repositorio archivado libzerocoin y notas de integración muestran qué aportaba la biblioteca y qué debía programar la aplicación. Anuncios históricos ayudan a fechar despliegues; divulgaciones posteriores matizan aquellas afirmaciones.[1][8][3][7][6]
Referencias
- ↑ 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 Miers, Garman, Green and Rubin, Zerocoin: Anonymous Distributed E-Cash from Bitcoin (2013)
- ↑ 2,0 2,1 Firo, Zcoin is becoming Firo, 2020-10-27
- ↑ 3,0 3,1 3,2 3,3 3,4 3,5 Ben-Sasson et al., Zerocash: Decentralized Anonymous Payments from Bitcoin (2014)
- ↑ 4,0 4,1 Zcash documentation, Project History
- ↑ 5,0 5,1 5,2 5,3 5,4 5,5 FAU researchers, A Cryptographic Flaw in Zerocoin (and Two Critical Coding Issues), 2018-04-12
- ↑ 6,0 6,1 6,2 6,3 6,4 6,5 6,6 6,7 6,8 Zerocoin authors, Integrating with Bitcoin clients
- ↑ 7,0 7,1 7,2 Zerocoin authors, archived libzerocoin repository and README
- ↑ 8,0 8,1 8,2 8,3 8,4 8,5 8,6 Garman et al., Rational Zero: Economic Security for Zerocoin with Everlasting Anonymity (2014)
- ↑ ZeroVert developer announcement, 2014
- ↑ Firo project, historical account of ZeroVert, Moneta and Zcoin
- ↑ Firo, sixth-anniversary retrospective, 2022-09-28
- ↑ Contemporaneous interview with Moneta founders, December 2015
- ↑ Firo project, founders and team
- ↑ 14,0 14,1 Firo, Zcoin: 2019 in Review, 2020-01-21
- ↑ Firo, Sigma is Live on Zcoin, 2019-07-30
- ↑ Firo, Lelantus Spark is live on Firo, 2024-01-18
- ↑ PIVX, zPIV launch announcement, 2017-10-16
- ↑ PIVX, FAQ on Zerocoin and PIVX, 2019
- ↑ 19,0 19,1 PIVX, development update, November 2020
- ↑ PIVX, development update Q1 2021
- ↑ 21,0 21,1 Veil, The libzerocoin exploit, security measure, and the future, 2019-05-15
- ↑ Anoncoin project repository, historical unedited overview
- ↑ CredaCash project source repository and protocol overview
- ↑ 24,0 24,1 Böhme et al., Responsible Vulnerability Disclosure in Cryptocurrencies