Zerocoin es un protocolo de privacidad propuesto en 2013 por el profesor de la Universidad Johns Hopkins Matthew D. Green y sus estudiantes de posgrado, Ian Miers y Christina Garman. Fue diseñado como una extensión del protocolo Bitcoin que mejoraría el anonimato de las transacciones de Bitcoin al tener capacidades de mezcla de monedas integradas de forma nativa en el protocolo. [ cita requerida ] Zerocoin actualmente no es compatible con Bitcoin.
Debido a la naturaleza pública de la cadena de bloques , los usuarios pueden ver comprometida su privacidad mientras interactúan con la red. Para abordar este problema, se puede utilizar un servicio de mezcla de monedas de terceros para ocultar el rastro de las transacciones de criptomonedas. En mayo de 2013, Matthew D. Green y sus estudiantes de posgrado (Ian Miers y Christina Garman) propusieron el protocolo Zerocoin, en el que las transacciones de criptomonedas se pueden anonimizar sin pasar por un tercero de confianza, mediante el cual se destruye una moneda y luego se vuelve a acuñar para borrar su historial. [1]
Mientras se gasta una moneda, no hay información disponible que revele exactamente qué moneda se está gastando. [2] Inicialmente, se planeó integrar el protocolo Zerocoin en la red Bitcoin . [3] Sin embargo, la propuesta no fue aceptada por la comunidad Bitcoin. Por lo tanto, los desarrolladores de Zerocoin decidieron lanzar el protocolo como una criptomoneda independiente. [4] El proyecto para crear una criptomoneda independiente que implemente el protocolo Zerocoin se denominó "Moneta". [5] En septiembre de 2016, Poramin Insom y su equipo lanzaron Zcoin (XZC), la primera criptomoneda en implementar el protocolo Zerocoin. [6] En enero de 2018, se publicó un artículo académico parcialmente financiado por Zcoin sobre la sustitución del sistema de prueba de trabajo por un algoritmo de prueba de árbol de Merkle con uso intensivo de memoria para garantizar una minería más equitativa entre los usuarios comunes. [7] En abril de 2018, se encontró una falla criptográfica en el protocolo Zerocoin que permite a un atacante destruir las monedas propiedad de usuarios honestos, crear monedas de la nada y robar las monedas de los usuarios. [8] El equipo de criptomonedas de Zcoin, si bien reconoció la falla, afirmó la alta dificultad para realizar tales ataques y la baja probabilidad de otorgar un beneficio económico al atacante. [9] En diciembre de 2018, Zcoin publicó un artículo académico que propone el protocolo Lelantus que elimina la necesidad de una configuración confiable y oculta el origen y la cantidad de monedas en una transacción cuando se usa el protocolo Zerocoin. [10] [11]
Las transacciones que utilizan la función Zerocoin se extraen de un fondo de depósito en garantía , donde el historial de transacciones de cada moneda se borra cuando surge. [12] Las transacciones se verifican mediante pruebas de conocimiento cero , una forma matemática de demostrar que una afirmación es verdadera sin revelar ningún otro detalle sobre la pregunta. [13]
El 16 de noviembre de 2013, Matthew D. Green anunció el protocolo Zerocash, que proporciona anonimato adicional al proteger el monto de la transacción. [14] Zerocash reduce el tamaño de las transacciones en un 98%, sin embargo, era significativamente más costoso computacionalmente, ya que requería hasta 3,2 GB de memoria para generarse. [15] [16] Los desarrollos más recientes del protocolo han reducido esto a 40 MB.
Zerocash utiliza argumentos de conocimiento cero no interactivos y concisos (también conocidos como zk-SNARKs ), un tipo especial de método de conocimiento cero para demostrar la integridad de los cálculos. [17] Estas pruebas tienen menos de 300 bytes de longitud y se pueden verificar en solo unos pocos milisegundos, y contienen la ventaja adicional de ocultar también el monto de la transacción. Sin embargo, a diferencia de Zerocoin, Zerocash requiere una configuración inicial por parte de una entidad confiable. [18]
Desarrollado por Matthew D. Green , el profesor asistente detrás del protocolo Zerocoin, Zcash fue la primera criptomoneda basada en Zerocash que comenzó a desarrollarse en 2013. [19]
A finales de 2014, Poramin Insom, un estudiante de maestría en informática de seguridad de la Universidad Johns Hopkins, escribió un artículo sobre la implementación del protocolo zerocoin en una criptomoneda con Matthew Green como miembro de la facultad. [20] [21] Roger Ver [6] y Tim Lee fueron los inversores iniciales de Zcoin. [22] Poramin también creó una bolsa llamada "Satang" que puede convertir baht tailandeses a Zcoin directamente. [21]
El 20 de febrero de 2017, un ataque de código malicioso al protocolo Zerocoin creó 370.000 tokens falsos que los perpetradores vendieron por más de 400 bitcoins (440.000 dólares). El equipo de Zcoin anunció que un error de un solo símbolo en un fragmento de código "permitió a un atacante crear transacciones de gasto de Zerocoin sin una acuñación correspondiente". [23] A diferencia de Ethereum durante el evento DAO , los desarrolladores han optado por no destruir ninguna moneda ni intentar revertir lo que sucedió con las recién generadas. [24]
En septiembre de 2018, Zcoin introdujo el protocolo Dandelion, que oculta la dirección IP de origen de un remitente sin utilizar un enrutador The Onion (Tor) o una red privada virtual (VPN). [25] [26] En noviembre de 2018, Zcoin llevó a cabo las primeras elecciones partidarias a gran escala del mundo en el Partido Demócrata de Tailandia utilizando el Sistema de Archivos Interplanetarios (IPFS). [27] En diciembre de 2018, Zcoin implementó la prueba del árbol de Merkle , un algoritmo de minería que disuade el uso del circuito integrado específico de la aplicación (ASIC) en la minería de monedas al ser más intensivo en memoria para los mineros. Esto permite a los usuarios comunes utilizar la unidad central de procesamiento (CPU) y la tarjeta gráfica para la minería, a fin de permitir el igualitarismo en la minería de monedas. [28] El 30 de julio de 2019, Zcoin se apartó formalmente del protocolo Zerocoin al adoptar un nuevo protocolo llamado "Sigma" que evita que las monedas de privacidad falsificadas inflen el suministro de monedas. Esto se logra eliminando una función llamada "configuración confiable" del protocolo Zerocoin. [29]
Una crítica a Zerocoin es el tiempo de cálculo adicional que requiere el proceso, que debería haber sido realizado principalmente por mineros de bitcoin. Si las pruebas se publicaran en la cadena de bloques, esto también aumentaría drásticamente el tamaño de la cadena de bloques. Sin embargo, como afirma el autor original, las pruebas podrían almacenarse fuera de la cadena de bloques. [30]
Dado que una zerocoin tendrá la misma denominación que el bitcoin utilizado para acuñar la zerocoin, el anonimato se vería comprometido si no hay otras zerocoins (o pocas zerocoins) con la misma denominación acuñadas pero sin gastar. Una posible solución a este problema sería permitir solo zerocoins de denominaciones específicas, sin embargo, esto aumentaría el tiempo de cálculo necesario ya que podrían necesitarse múltiples zerocoins para una transacción. [ cita requerida ]
Dependiendo de la implementación específica, Zerocoin requiere dos números primos muy grandes para generar un parámetro que no se puede factorizar fácilmente. Por lo tanto, estos valores deben ser generados por partes confiables o depender de objetos RSA no factorizables para evitar el requisito de una parte confiable. [1] Sin embargo, tal configuración no es posible con el protocolo Zerocash .