Zerocoin es un protocolo de privacidad propuesto en 2013 por el profesor Matthew D. Green de la Universidad Johns Hopkins 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 necesaria ] Zerocoin actualmente no es compatible con Bitcoin.
Debido a la naturaleza pública de blockchain , los usuarios pueden ver comprometida su privacidad mientras interactúan con la red. Para solucionar 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 donde las transacciones de criptomonedas pueden ser anónimas sin pasar por un tercero confiable, mediante el cual una moneda se destruye y luego se vuelve a acuñar para borrar su historia. [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 en una criptomoneda independiente. [4] El proyecto para crear una criptomoneda independiente que implemente el protocolo Zerocoin se llamó "Moneta". [5] En septiembre de 2016, Poramin Insom y su equipo lanzaron Zcoin (XZC), la primera criptomoneda que implementó 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 con un algoritmo de prueba de árbol 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, declaró la gran dificultad para realizar tales ataques y la baja probabilidad de brindar 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 utiliza el protocolo Zerocoin. [10] [11]
Las transacciones que utilizan la función Zerocoin se extraen de un grupo de depósito en garantía , donde el historial de transacciones de cada moneda se borra cuando emerge. [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 desde el punto de vista computacional y requería hasta 3,2 GB de memoria para generarse. [15] [16] Desarrollos más recientes en el protocolo han reducido esto a 40 MB.
Zerocash utiliza argumentos de conocimiento cero no interactivos y sucintos (también conocidos como zk-SNARK ), 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 pueden verificarse en sólo 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 el baht tailandés en Zcoin directamente. [21]
El 20 de febrero de 2017, un ataque de codificación 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 la correspondiente menta". [23] A diferencia de Ethereum durante el evento DAO , los desarrolladores optaron 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 The Onion Router (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 interplanetario (IPFS). [27] En diciembre de 2018, Zcoin implementó la prueba del árbol Merkle , un algoritmo de minería que disuade el uso de circuitos integrados de aplicaciones específicas (ASIC) en la minería de monedas al consumir más 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 afirmó 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 actualmente no se acuñan otras zerocoins (o unas pocas zerocoins) con la misma denominación pero no se gastan. Una posible solución a este problema sería permitir únicamente zerocoins de denominaciones determinadas; sin embargo, esto aumentaría el tiempo de cálculo necesario, ya que se podrían necesitar múltiples zerocoins para una transacción. [ cita necesaria ]
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. Como tal, estos valores deben ser generados por partes confiables o depender de objetos no factorizables de RSA para evitar el requisito de una parte confiable. [1] Sin embargo, tal configuración no es posible con el protocolo Zerocash .