Uncategorized

Como la tecnología de privacidad de Zcoin se compara con la competencia.

Tabla de Contenidos

Changelog

Actualizacion: Esta publicación se escribió originalmente en noviembre de 2017, pero se actualizara de vez en cuando con eventos recientes e innovaciones criptográficas.

Esta publicación se actualizo por última vez el 15 de julio de 2019, donde incluye informes sobre Sigma y Lelantus, cubriendo la vulnerabilidad de Zerocoin, incluyendo algunas nuevas variantes de zkSNARKs y cierta información adicional sobre la implementación de MimbleWimble en Beam’s.

Mecanismos de Privacidad Blockchain

Esta publicación le brindara una breve descripción general de los principales mecanismos de privacidad blockchain que se implementan en las criptomonedas de hoy y mostrara como el protocolo Sigma se utiliza en Zcoin y también nuestro protocolo de privacidad de próxima generación Lelantus pila.

La privacidad de Blockchain es particularmente difícil de lograr, ya que las blockchain públicas están diseñadas para que todas las transacciones sean transparentes y el suministro de moneda pueda verificarse públicamente. Los mecanismos de privacidad deben garantizar que estos dos elementos se conserven aunque exista  un conflicto entre proteger la privacidad y mantener la verificación pública.  Para comprender la innovación detrás de Sigma y Lelantus, primero debemos examinar la historia de la privacidad de blockchain.

Tumblers de criptomonedas y CoinJoin

Como se usa en: Dash, mezcladores Bitcoin

Pros:

  • Funciona sobre la mayoría de las criptomonedas sin la necesidad de reglas de consenso específica.
  • Relativamente simple de implementar
  • Ligero

Contras:

  • Anonimato básico
  • Requiere mezcladores para estar en línea
  • Las implementaciones anteriores implican confianza en un mezclador de terceros.

 

Uno de los primeros métodos que las personas bucanron para lograrlo fue mediante el uso de tumblers de criptomonedas. Estos trabajos se basan en el principio de mezclar fondos con otros enviando sus monedas a otras personas y luego entregándolas. Una forma facil de visualizar esto es un grupo de personas que ponen el mismo número de monedas en una tumblers, las mezclan y luego sacan la misma cantidad de monedas. La idea es que ahora es difícil probar que moneda pertenecia anteriormente a quien, por lo tanto, pproporciona cierto grado de privacidad. La mezcla de valores tiene varios inconvenientes, principalmente que debe confriar en que el tumblers no robe sus monedas.

CoinJoin es una mejora es mejora de esta idea de mezcla y elimina la posibilidad de que el vaso robe las monedas. Se uso popularmente en Darkcoin (ahora conocido como Dash). Sin embargo, todavía hay muchos incovenientes en el sistema.

Debe confiar en el tumbler para su anonimato, ya que el mezclador puede registrar información identificable y saber cómo estará ocurriendo la mezcla junto con la dirección de entrada de cada usuario y la dirección a la que están recibiendo las monedas. Este problema se puede evitar mediante el uso de firmas digitales ciegas, pero luego el anonimato de CoinJoin se basa en la posibilidad de conectar al tambor de forma anónima, por ejemplo, a través de la red Tor.

  • Requiere que las personas involucradas en la mezcla estén en línea para que ocurra una transacción mezclada. Si nadie quiere mezclar para las denominaciones correctas, su mescla puede retrasarse.
  • El anonimato esta limitado por la cantidad de personas con la que te mezclas. Una ronda típica de la mezcla privada de Dash involucra solo a 3 participantes, aunque esto se puede repetir.
  • incluso con varias rondas de mezclas de CoinJoin, una investigación reciente muestra que la billetera de un usuario puede identificarse si no tiene cuidado con las cookies del navegador cuando realiza los pagos porque la mezcla solo oculta los vínculos de transacción entre las direcciones pero no las rompe por completo.
  • Es fácil interrumpir una ejecución de CoinJoin y retrasar la finalización de la transacción para los demás participantes.

Además, la implementación de Dash, llamada PrivateSend, es susceptible a ataques de intersección de cluster intersection attacks.

Otras mejoras, como CoinShuffle ++ eliminaron la necesidad de un tercero de confianza, pero aún están sujetos a los otros inconvenientes de CoinJoin, a saber, un conjunto de anonimato limitado y el requisito de que los participantes estén en línea.

El principal beneficio de los esquemas de tipos de mezclador es que son relativamente simples y funcionan sobre la criptomoneda sin la necesidad de usar reglas de consenso específicas. Con las precauciones adecuadas, CoinJoin puede proporcionar un grado básico de anonimato y se utiliza en la billetera Wasabi. Sin embargo, incluso el creador de la billetera Wasabi admite que es un pirateo temporal y que la privacidad se descontará de la cadena principal de Bitcoin.

El Tumblebit  más reciente parece ser una mejora muy prometedora con respecto a la combinación de tipo de esquemas, pero está fuera del alcance de este artículo. TumbleBit, sin embargo, es un esquema de privacidad que no se implementó a nivel de protocolo y aún requiere que otras personas pongan a disposición sus fondos para la mezcla en comparación con los otros esquemas que veremos a continuación. Su principal beneficio, lo mismo con CoinJoin es que se puede implementar sobre Bitcoin o cualquier otra moneda basada en Bitcoin sin ningún requisito para cambiar el protocolo.

CryptoNote y Ring Signatures

Como se usa en: Monero, Particl

Pros:

  • No se necesita mezclador y la mezcla se realiza automáticamente
  • Se puede implementar con privacidad activada por defecto
  • El anonimato aumenta a medida que pasa el tiempo a medida que las salidas se convierten en las nuevas entradas de nuevas mezclas
  • Oculta los montos de transacción cuando se implementa con RingCT (or bulletproofs)
  • Criptografía bien investigada.

Contras:

  • No rompe los enlaces de transacción, simplemente los oculta, por lo tanto, un ‘decoy’ model.
  • Problemas de escalabilidad debido a los grandes tamaños de transacción y una cadena de bloques no pasable
  • Riesgos de que la cadena de bloques se desasigne en el futuro o a través de implementaciones incorrectas
  • No se puede aprovechar el ecosistema de Bitcoin existente y requiere un trabajo de integración por separado
  • El tamaño del Ring es prácticamente limitado
  • No se puede usar la verificación de pago simple (SPV) y, por lo tanto, siempre debe ejecutar un nodo completo o conectarse a uno (sin carteras ligeras)
  • Difícil implementar algunas soluciones de capa 2 como Lightning Network

El siguiente esquema de anonimato que exploraremos es el ring signatures que se utilizan en las monedas de CryptoNote, como Monero, que mejora significativamente el anonimato en comparación con los esquemas de tipo de mezclador normales. El ring signatures funciona demostrando que alguien firmó la transacción de un grupo de personas sin revelar qué persona era. Un caso de uso propuesto común de ring signatures es que se use para proporcionar una firma anónima de un «funcionario de alto rango de la Casa Blanca» sin revelar qué funcionario firmó el mensaje.

CryptoNote usa ring signatures de una manera en la que un usuario puede crear una transacción y usar los resultados de otras transacciones similares en el blockchain para formar las entradas de una transacción de ring signatures, de modo que no está claro qué entrada pertenece a la persona que realiza la transacción. Lo hace de forma automática sin requerir que otros usuarios especifiquen que desean mezclarse y no tiene que esperar a que otras personas proporcionen fondos, ya que solo está escaneando la cadena de bloques para el uso de esas salidas. Como no se mezcla, no hay ningún mezclador en el que deba confiar. Monero también implementó recientemente RingCT (Transacciones Confidenciales de Ring) que también oculta los montos de las transacciones.

Ring signatures como se implementa actualmente en las monedas de CryptoNote también tiene limitaciones en cuanto al tamaño práctico del ring (el número de otras salidas que está tomando) ya que el tamaño de una transacción crece linealmente a medida que aumenta el tamaño del ring. Esta es la razón por la cual Monero tiene un tamaño de ring relativamente pequeño de 11. Esto significa que, por transacción, el anonimato está limitado por el número de participantes en el ring. Los analistas de blockchain, aunque no puedan probar que las transacciones están vinculadas, pueden calcular las probabilidades que tienen. Este es el principal inconveniente de Cryptonote, ya que no rompe los vínculos entre transacciones, sino que simplemente lo oculta con entradas y salidas.

Además, los investigadores de seguridad han encontrado formas de hacer suposiciones informadas sobre qué transacción es la real, vinculándola al tiempo de las transacciones. En cualquier combinación de una moneda real y un conjunto de monedas falsas agrupadas en una transacción, es muy probable que la moneda real haya sido la moneda más reciente que se haya movido antes de esa transacción. Antes de un cambio reciente de los desarrolladores de Monero, ese análisis de tiempo identificó correctamente la moneda real en más del 90 por ciento de las veces, anulando virtualmente las garantías de privacidad de Monero. Después de cambiar la forma en que Monero elige sus combinaciones, ese truco ahora puede detectar la moneda real solo el 45 por ciento de las veces, pero aún así reduce la moneda real a aproximadamente dos posibilidades, mucho menos de lo que la mayoría de los usuarios de Monero desearían.

Otra crítica de CryptoNote es que si hay una debilidad en su implementación de la firma de ring o si se hace posible una computadora cuántica razonablemente poderosa, toda la historia de la cadena de bloques se desaonimitará y se expondrá de manera retroactiva. Esto no se puede arreglar después del hecho. De hecho, una implementación defectuosa en una moneda de CryptoNote llamada ShadowCash permitió que su blockchain fuera desononimizado en su totalidad. Sin embargo, una computadora cuántica práctica aun tiene bastante tiempo libre, y se reduce a si los datos de transacciones de varios años son todavía valiosos Para que estos datos sean útiles, lo más probable es que se combinen con datos externos.

También vale la pena señalar que con RingCT, se ocultan los montos de las transacciones, se sacrifica la capacidad de auditoría de suministro. La capacidad de auditoría de suministro es la capacidad de verificar que no se generan secretamente nuevas monedas y saber con precisión cuántas monedas existe en un momento determinado. En la implementación de RingCT de Monero, alguien que rompe el logaritmo discreto que subyace en RingCT puede falsificar monedas sin que nadie lo sepa. Dicho esto, es probable que sea solo una posibilidad teórica, ya que el problema del logaritmo discreto se usa ampliamente en la criptografía y se espera que los logaritmos discretos sigan siendo viables hasta la edad de la computación cuántica. Sin embargo, los errores también pueden afectar esto y la falta de capacidad de auditoría de la fuente puede complicar la detección de la inflación oculta. De hecho, se descubrió un error en Cryptonote que permitía una inflación ilimitada, pero se reparo antes de que alguien pudiera aprovecharlo.

El uso de una base de código completamente diferente a Bitcoin también significa que los terceros tienen que hacer más trabajo para integrar CryptoNote en sus ecosistemas existentes. La verificación de pago simple (SPV) tampoco es compatible, lo que hace que las implementaciones de billeteras livianas sean problemáticas.

A pesar de estos inconvenientes, CryptoNote ha demostrado ser una de las tecnologías de privacidad buena y mejor revisadas que existen y las únicas instancias en las que se des anónimo públicamente provienen de una implementación incorrecta como el fiasco de ShadowCash o mediante el uso de mixin-0 transacción en Monero que resultó en un efecto en cascada que hizo que el 87% de los insumos se pudieran rastrear  (posteriormente, se mitigó para transacciones más nuevas). Sin embargo, las técnicas más nuevas en el análisis de blockchain pueden reducir en gran medida el anonimato de Cryptonote, ya que es un sistema a sistema basado en ‘decoy’ que se demostró recientemente en el documento FloodXMR que muestra que un ataque relativamente barato puede ser montado por las transacciones de inundación para eliminar las combinaciones de las entradas de transacción. Sin embargo, existe un debate en curso sobre el costo y la eficiencia de tales técnicas.

Zerocoin y Zcoin

Como se usa en: Zcoin (antes de abril de 2019), PIVX (deshabilitado), Veil (deshabilitado)

Pros:

  • No hay necesidad de un mezclador
  • Anonimato muy alto en los muchos miles (si no más) con una sola transacción de menta y gasto y rompe completamente los enlaces de transacción entre direcciones.
  • Retiene cierto grado de capacidad de auditoría del suministro, ya que las cantidades no están ocultas y las monedas deben gastarse hasta la capa base.
  • Utiliza criptografía bien investigada.

Contras:

  • Zerocoin está actualmente roto debido a una falla criptografica en una de sus pruebas.  
  • Aunque se puede arreglar, mejores implementaciones como Sigma y Lelantus lo reemplazarán.
  • Los tamaños de prueba son actualmente grandes (10-25 kB)
  • Requiere una configuración confiable
  • La implementación incorrecta o la filtración de parámetros de configuración confiables pueden llevar a la falsificación de monedas.
  • Requiere denominaciones fijas
  • Se requiere un poco de cuidado al hacer acuñación y gastos de Zerocoin. Los usuarios deben mantener las monedas acuñadas antes de gastar para evitar ataques de tiempo.

Ahora llegamos a Zerocoin implementado en Zcoin. A diferencia de los esquemas de anonimato anteriores que implican ocultar las transacciones reales con otras entradas o salidas, el protocolo Zerocoin rompe.

En términos simples, una prueba de conocimiento cero es una prueba de que usted hizo algo o sabe algo sin revelar ninguna otra información que no sea la que hizo. Por ejemplo, demostrando que conoce una contraseña sin decirla realmente.

Zerocoin funciona permitiéndole quemar monedas (también conocido como acuñación de Zerocoin) y luego canjear un número equivalente de monedas nuevas (conocido como gasto de Zerocoin). Estas monedas aparecen sin un historial de transacciones anterior y son similares a las monedas recién extraídas. La prueba de conocimiento cero se utiliza para demostrar que efectivamente quemó monedas sin revelar las monedas específicas que quemó. Si utiliza la prueba, también tiene derecho a canjear un número equivalente de monedas nuevas y limpias.

Esto significa que, a diferencia de CoinJoin y CryptoNote, donde el conjunto de anonimato está limitado por el número de participantes o el tamaño del ring, Zerocoin proporcionaría un conjunto de anonimato mayor. Tu conjunto de anonimato es con todas las demás personas que han hecho una acuñación Zerocoin de una denominación particular. Este conjunto se crea añadido inmediatamente sin esperar. Esto permite que el conjunto de anonimato se amplíe a muchos miles con una sola moneda de Zerocoin y un ciclo de gasto. Además, las monedas realmente tienen sus enlaces de transacción rotos, ya que aparecen como monedas completamente nuevas en comparación con el simple hecho de estar ocultas a través de métodos anteriores.

Este esquema de anonimato no está exento de algunos inconvenientes. A cambio del enorme conjunto de anonimato y la ruptura de los enlaces de transacción, Zerocoin requiere una configuración de confianza única para generar parámetros iniciales. En Zerocoin estos son dos números primos muy grandes que necesitan ser destruidos. El conocimiento de estos dos grandes números primos permitiría a alguien forjar los gastos de Zerocoin y crear monedas de la nada. Para mitigar esto, Zcoin usa los parámetros del RSA Factoring Challenge realizado en 1991, donde tomaron medidas especiales para destruir los números primos y obtuvieron una recompensa de USD 200,000 por los 16 años anteriores a la finalización del desafío. Hasta hoy, los parámetros RSA-2048 utilizados siguen siendo, según nuestro conocimiento, RSA de 2048 bits sin uso y se siguen utilizando hoy en día, han pasado la prueba del tiempo y serán prácticamente irrompibles, al menos hasta la llegada de la computación cuántica.

Vale la pena señalar que el conocimiento de estos dos números primos o el factor exitoso no comprometerán el anonimato de Zerocoin, sino que simplemente permitirán la falsificación de monedas. Además, esto se ve mitigado por el hecho de que el suministro de Zcoin es auditable, por lo que se puede detectar la falsificación de monedas. De hecho, debido a un error en la implementación (y no a partir de la ruptura de RSA), la falsificación de monedas realmente le sucedió a Zcoin, pero afortunadamente se detectó y se detuvo. Esto muestra cómo en las monedas de prueba de conocimiento cero que implican algún tipo de quema y creación de nuevas monedas, la capacidad de auditoría de suministro es particularmente importante.

También vale la pena señalar que Bitcoin sufrió un error de hiperinflación en 2010, lo que permitió que se generen 184,4 mil millones de monedas de la nada, lo que se detectó debido a la capacidad de auditoría del suministro. Tan reciente como septiembre de 2018, se detecto otro error de hiperinflación en Bitcoin, pero permanece sin explotar.

Otra limitación de Zerocoin es que las denominaciones fijas deben usarse para acuñar y gastar, y los tamaños de prueba de conocimiento cero para un gasto de Zerocoin son relativamente grandes a 25 kB (se pueden reducir a alrededor de 10 kB con parámetros reducidos), comparable a una clásica Transacción Cryptonote RingCT. A diferencia de CryptoNote, donde todas las transacciones son de este tamaño, solo las transacciones de gasto de Zerocoin ocupan esta cantidad de espacio. Las transacciones normales siguen ocupando el mismo tamaño que las transacciones de Bitcoin. En comparación con otras transacciones, las transacciones de gasto de Zerocoin también son computacionalmente intensivas de verificar, demorando aproximadamente medio segundo en hacerlo.

Además, el uso incorrecto o predecible de las transacciones de acuñación y gasto de Zerocoin, como siempre acuñando y gastando a intervalos regulares, o haciendo acuñaciones y gastos de forma inmediata o utilizando la misma dirección IP para una acuñacion y gasto, puede comprometer el anonimato, por lo que se requiere cierta atención. Se recomienda que los usuarios acuñen monedas en reserva antes de que incluso quieran gastar. Cuanto más tiempo permanezca la moneda en forma de acuñación, mejor será el anonimato. Esto está siendo aliviado por la próxima GUI de Zcoin, que recomienda al usuario mantener un cierto porcentaje de sus monedas acuñadas.

En resumen, Zerocoin ofrece un anonimato muy fuerte con un gran conjunto de anonimato sin vinculación de transacciones, pero actualmente requiere una configuración confiable, almacenamiento adicional en la cadena de bloques y recursos computacionales adicionales para verificar. Tambien tiene una falla criptografica descubierta por el equipo de Zcoin  que ha hecho de que Zerocoin en su forma actual quede inutilizable hasta que se arregle. A medida que Zcoin avanza con Sigma y Lelantus, no se invertirán más esfuerzos en arreglar Zerocoin.

Sigma

Como se usa en: Zcoin, NIX

Pros:

  • No hay necesidad de un mezclador
  • Anonimato muy alto con conjuntos de anonimato de alrededor de 100.000. Acuñación y transacciones de gasto que rompe completamente enlaces de transacción entre direcciones.
  • Retiene cierto grado de capacidad de auditoría del suministro, ya que las cantidades no están ocultas y las monedas deben gastarse hasta la capa base.
  • Utiliza criptografía bien investigada
  • Tamaños de prueba pequeños de alrededor de 1.5 kB
  • No hay configuración de confianza

Contras:

  • Todavía usa denominaciones fijas como en Zerocoin
  • Se requiere algo de cuidado al hacer las acuñaciones y los gastos de Sigma. Los usuarios deben mantener las monedas acuñadas antes de gastar para evitar los ataques de tiempo
  • Difícil de escalar los conjuntos de anonimato pasados de 100,000 sin avance criptográfico

 

 

Sigma es un protocolo de privacidad desarrollado y pionero por Zcoin y funciona de manera muy similar a Zerocoin. Tiene dos diferenciadores clave: no requiere una configuración confiable y sus tamaños de prueba son significativamente más pequeños, alrededor de 1.5 kB (en comparación con los 25 kB de Zerocoin).

Sigma se basa en el documento académico paper One-Out-Of-Many-Proofs: O como perder un secreto y gastar una moneda (Jens Groth and Markulf Kohlweiss) que reemplaza los acumuladores RSA utilizando los compromisos de Pedersen y otras técnicas que la construcción criptográfica que  no requiere configuración de confianza. Los únicos parámetros del sistema requeridos en la configuración de Sigma son las especificaciones de grupo ECC y los generadores de grupo. Esta construcción se optimizó aún más en el papel de Firmas de Ring Signatures cortos basadas en DDH (Jonathan Bootle, Andrew Cerulli, Pyrros Chaidos, Essam Ghadafi, Jens Groth and Christophe Petit).

Sigma es básicamente es un Zerocoin muy mejorado. Su única debilidad restante es que aún requiere denominaciones fijas, lo que significa que puede ser más fácil discernir patrones de acuñaciones y gastos si uno no es cuidadoso y los conjuntos de anonimato están limitados a aproximadamente 100,000 antes de que se degrade el rendimiento.

Lelantus

Como se usa en: Zcoin (en desarrollo)

Pros:

  • No hay necesidad de un mezclador
  • Anonimato muy alto con conjuntos de anonimato de alrededor de 100.000. Acuñacion y transacciones de gasto que rompe completamente enlaces de transacción entre direcciones.
  • Utiliza criptografía bien investigada y solo requiere supuestos criptográficos DDH
  • Tamaños de prueba pequeños de alrededor de 1.5 kB
  • No hay configuración de confianza
  • No usa denominaciones fijas
  • Puede hacer pagos anónimos directos sin tener que convertir a moneda base.
  • Lo suficientemente escalable para permitir la privacidad de forma predeterminada

Contras:

  • Difícil de escalar los conjuntos de anonimato pasados de 100,000 sin avance criptográfico.
  • Los pagos anónimos directos en la forma actual requieren que el destinatario gaste y vuelva a acuñar la moneda para evitar que el remitente averigüe cuándo se gasta esa moneda
  • Todavía en temprano desarrollo. Zcoin ha completado sus bibliotecas criptográficas y Sarang Noether de Monero también ha completado una prueba de implementación de concepto.

Lelantus amplía aún más en Sigma al eliminar el requisito de denominaciones fijas y también permite pagos directos anónimos que no revelan montos. Lelantus es una creación del criptógrafo de Zcoin, Aram Jivanyan, como parte de nuestros esfuerzos para mejorar continuamente nuestro protocolo de privacidad y su documento completo está disponible para leer aquí.

Lelantus retiene todos los beneficios de Sigma de no requerir una configuración confiable, pero elimina la debilidad restante de requerir denominaciones fijas mediante la utilización de compromisos doble ciego y una modificación de bullet-proofs para ocultar los montos de las transacciones. Los usuarios pueden quemar cantidades arbitrarias y canjear cantidades arbitrarias, lo que hace que sea mucho más difícil atar los gastos a las mentas.

Si hay alguna debilidad en Lelantus es que el conjunto de anonimato todavía está limitado a aproximadamente 100,000 antes de que el rendimiento lo haga impráctico, sin embargo, creemos que el análisis de conjuntos tan grandes de anonimato puede resultar poco práctico. Este conjunto de anonimato sigue siendo magnitudes más altas en comparación con casi todos los demás mecanismos de privacidad, con la excepción de Zerocash con su propio conjunto de concesiones (configuración confiable, construcción complicada, etc.) que exploraremos más adelante.

Los pagos anónimos directos en el estado actual de la investigación también requieren un gasto adicional y un paso retomado para dar anonimato a las monedas del remitente de la moneda original. Seguimos investigando para mejorar y escalar más.


Zerocash y Zcash

Como se usa en: Zcash, Horizen, Komodo

Pros:

  • Potencialmente, el mejor conjunto de anonimato que abarca todas las monedas acuñadas y rompe los enlaces de transacción entre direcciones.
  • Los tamaños de prueba son pequeños y rápidos de verificar
  • Oculta los importes de las transacciones.
  • No se necesita la conversión a una moneda base y las monedas anónimas se pueden enviar directamente entre sí

Contras:

  • Las transacciones privadas son computacionalmente intensivas (aunque mejoradas con la actualización Sapling)
  • Configuración confiada y complicada que debe ser organizada por el equipo
  • La implementación incorrecta o la filtración de parámetros de configuración confiables pueden llevar a la falsificación de monedas.
  • El suministro no puede ser auditado, por lo tanto, si las monedas se falsifican y salen del aire, no se pueden detectar. Se encontraron errores de esta naturaleza antes del lanzamiento  y también en red principal en vivo red principal en vivo.
  • Utiliza criptografía relativamente nueva y basada en supuestos criptográficos (KEA) que han sido criticados.
  • Construcción complicada y difícil de entender con todo el significado de que solo un puñado de personas puede comprender la criptografía y el código y puede ser propenso a errores.

Uno de los esquemas de privacidad líderes es el protocolo Zerocash como se usa en ZCash. Zerocash se basa en el trabajo de Zerocoin y busca abordar las deficiencias percibidas de Zerocoin. Con Zerocash y su uso de zkSNARKs, los tamaños de prueba ahora son solo de 1 kb y su verificación es muy rápida. Además, todos los montos de transacción están ocultos y ya no es necesario utilizar denominaciones fijas cuando se realiza una transacción de acuñación. Zerocash también permite a las personas transferir el equivalente de Zerocash de «Zerocoins» entre sí sin la necesidad de volver a convertirlas en la moneda base. Su conjunto de anonimato es también el más grande entre todos los esquemas de anonimato anteriores que involucran todas las monedas acuñadas, independientemente de la denominación en el blockchain.

Una mirada rápida a esto haría parecer que Zerocash hace que Zerocoin quede obsoleto. Sin embargo, para lograr esto, tuvo que compensar ciertos beneficios que Zerocoin tiene.

En primer lugar, Zerocash carece de capacidad de auditoría de suministro. Al igual que Zerocoin, Zerocash requiere una configuración confiable, pero la configuración de Zerocash es mucho más complicada. Zcash utilizó una ceremonia multipartidista que involucró a seis personas organizadas de manera que la única forma de que estos parámetros se pudieran filtrar es si los seis en la ceremonia se unen para conservar las llaves. En otras palabras, debe confiar en estas seis personas que destruyeron los parámetros iniciales y también que la ceremonia se llevó a cabo correctamente. Este es un problema lo suficientemente serio como para que Zcash esté organizando una nueva ceremonia de instalación confiable nueva ceremonia de instalación confiable.

Si hay un error en el código, o una falla criptográfica o un problema con la configuración confiable de múltiples partes, un atacante puede generar un Zcash ilimitado y, a diferencia de Zerocoin, no se puede detectar este suministro adicional. Especialmente en un sistema que opera con principios similares con Zerocoin que permite la creación de nuevas monedas, la capacidad de auditoría de suministro se vuelve cada vez más importante.

En realidad, Zcash tuvo uno de estos errores en vivo en su red principañ desde su lanzamiento hasta el 28 de octubre de 2018, un periodo de dos años, antes de que se repara debido a una falla criptográfica. No hay forma de saber si este error se aprovechó antes de que se reparara y hubo un lapso de 8 meses desde el momento en que se detectó el error hasta que se reparó. Esta no fue la primera vez que se descubrió tal error. Zerocash al principio de su desarrollo también tenía la Vulnerabilidad de colisión que habría permitido la falsificación de monedas también. Aunque este error nunca llegó a la producción, destaca los riesgos potenciales.

BTCP,  una combinación de bifurcaciones de Zcash y Bitcoin, también sufrió una inflación oculta que no se detectó durante casi diez meses. Esta inflación solo se detectó al examinar el proceso de importación de UTXO cuando se importaban a través de las UTXO de Bitcoin. Esto no se debió a una falla en la criptografía, sino a una premisa encubierta y resalta los problemas potenciales de tener un suministro no auditable.

Destacamos que incluso un proyecto altamente evaluado como Bitcoin sufrió numerosos errores de hiperinflación, como el incidente de desbordamiento de valor y el CVE-2018-17144 más reciente. La capacidad de auditoría de la fuente de retención de Bitcoin permitió detectar estos errores o confirmar que no se produjo ningún exploit.

 

Otra compensación es el uso de una nueva criptografía experimental llamada zkSNARK que efectivamente solo se usa en Zerocash. Hay mucho menos control sobre él y, por lo tanto, no está tan probado en batalla como el RSA, que ha estado en uso y revisado durante muchos años y continúa siendo ampliamente utilizado. zkSNARKs utiliza supuestos criptográficos que siguen siendo bastante experimentales. A diferencia de los partidarios de la criptografía bien establecidos, como el supuesto de registro discreto o la dureza de la factorización, la seguridad de zkSNARK se basa en variantes del supuesto de conocimiento de exponentes (KEA) para grupos bilineales (ejemplificados a través de ciertas curvas elípticas aptas para el emparejamiento). KEA no ha sido bien investigado o implementado y también está sujeto a críticas. Algunos expertos creen que la criptografía detrás de zkSNARKs es relativamente debil.

Zerocash también es muy complejo y ha sido descrito como «matemáticas lunares», lo que significa que solo un puñado de personas puede entenderlo y auditarlo adecuadamente De hecho, con el error de  falsificación de Zcash, se citó lo siguiente:

  • El descubrimiento de la vulnerabilidad habría requerido un alto nivel de sofisticación técnica y criptográfica que muy pocas personas poseen.
  • La vulnerabilidad había existido durante años pero no fue descubierta por numerosos criptógrafos expertos, científicos, auditores externos y equipos de ingeniería de terceros que iniciaron nuevos proyectos basados en el código Zcash.

Esto es efectivamente ‘seguridad a través de la oscuridad‘ Las construcciones de Sigma, Lelantus, RingCT y Mimblewimble en comparación son mucho más fáciles de entender.

Otro inconveniente de Zerocash en su forma original, la generación de una transacción privada lleva mucho más tiempo que cualquiera de los esquemas de privacidad anteriores que se acercan un minuto en una computadora poderosa y mucho más tiempo en sistemas más lentos, mientras que requieren varios gigabytes de RAM. Esto dio como resultado que muy pocas personas usaran sus funciones de privacidad y también podrían excluir sistemas menos potentes, como los dispositivos móviles. Zcash ha realizado mejoras sustanciales en esto en su última actualización de Sapling mediante el uso de las nuevas curvas BLS12-381, lo que reduce el tiempo de generación a varios segundos y requiere alrededor de 40 mb de memoria, lo que lo hace finalmente viable para dispositivos móviles. Sin embargo, en comparación con otros esquemas de privacidad en este artículo, aún representa el proceso más computacionalmente intensivo.

Entonces, aunque Zerocash ofrece potencialmente el mayor anonimato y un excelente rendimiento, lo hace al costo de la capacidad de auditoría del suministro combinado con una construcción criptográfica complicada, el requisito de una configuración confiable, el uso de nueva criptografía experimental y la complejidad computacional al crear transacciones privadas.

Sin embargo, el equipo de Zcash está realizando una investigación en zkSTARKs (el reemplazo de zkSNARKs) que no requiere una configuración confiable y utiliza la criptografía con supuestos criptográficos más simples. Sin embargo, hasta la fecha, zkSTARKS actualmente no es práctico de usar debido a los grandes tamaños de prueba y también los requisitos computacionales para la creación de zkSTARK siguen siendo altos. También hay otras variantes interesantes de zkSNARK que aún no se han implementado, como Sonic y Spartan, que abordan el problema de la configuración de confianza de diferentes maneras, pero con su propio conjunto de compensaciones que está fuera del alcance de este artículo.

Mimblewimble

Como se usa en: Grin, Beam

Pros:

  • Todas las transacciones son privadas
  • Utiliza criptografía bien establecida
  • Oculta los importes de las transacciones
  • Blockchain puede reducir su tamaño ya que solo retiene UTXOs
  • Sin reutilización de problemas de dirección

Contras:

  • Necesita interacción entre el receptor y el remitente. No se puede publicar la dirección y recibir. Las transacciones multi partitas son problemáticas ya que todas las partes deben comunicarse para crear una transacción. Mitigado algo con SBBS.
  • No rompe los enlaces de transacción, simplemente los oculta, por lo tanto, un ‘decoy’ model.
  • El monitoreo de la red puede revelar detalles sobre cómo se unen las transacciones.
  • Si un bloque no tiene muchas transacciones, el anonimato se reduce significativamente, ya que se basa en otras transacciones para unirse. Beam introduce salidas de señuelos adicionales si es necesario si no se realizan transacciones suficientes.
  • El almacenamiento en frío en las carteras de hardware es difícil de implementar
  • Los contratos inteligentes son más difíciles para Mimblewimble ya que no hay lenguaje de scripting, pero se puede realizar alguna funcionalidad a través del desarrollo en «Scriptless Scripts»
  • Relativamente temprano en el desarrollo y no comparte el código del núcleo de Bitcoin para construirlo e integrarlo en la infraestructura necesitaría un desarrollo independiente

Grin y Beam son implementaciones de MimbleWimble. Mimblewimble funciona a través de dos métodos principales, ocultando todos los valores de transacción y, en segundo lugar, agregando todas las transacciones en una transacción grande, de modo que en un bloque aparezca como una transacción gigante de muchas entradas con muchas salidas. Solo mirándolo desde la cadena de bloques solo, solo puede adivinar qué salidas provienen de qué entradas siempre que haya algunas transacciones en el mismo bloque. Mimblewimble también permite otra función llamada corte a través de la cual, si A paga a B, quien luego la paga por completo a C, la cadena de bloques puede grabar de A para C sin siquiera mostrar B.

Una forma fácil de imaginar esto es comparando cómo se ven las transacciones en Bitcoin en comparación con cómo se ve una transacción una vez que se agrega en Mimblewimble.

Imagina que A envía a B y C. En una transacción separada D envía a E y F.
En Bitcoin esto sería visto como
(Entradas) A > (Salidas) B, C
(Entradas) D > (Salidas) E, F

También tendrían valores de transacción que los harían únicos.

En Mimblewimble, todos los valores de las transacciones están ocultos y estas transacciones se agregan, por lo que una vez que las transacciones se unen en el bloque, se verá así:

(Entradas) A, D > (Salidas) B, C, E, F

¡Ahora no está claro quién envió a quién!

Sin embargo, la gran suposición es que nadie está monitoreando la red ya que estas transacciones se propagan y antes de que se registren en la cadena de bloques. Con Vanilla Mimblewimble, alguien podría crear un nodo malicioso que se conecte a los demás nodos de la red y registrar las transacciones antes de que se combinen entre sí, lo que permite des anónimar las transacciones, lo que significa que tendría la misma privacidad que Bitcoin, excepto que las direcciones se usan solo una vez y los valores de transacción están ocultos.

Para mitigar esto, tanto Grin como Beam usan la tecnología Dandelion que cambia la forma en que se propagan las transacciones. En lugar de transmitir cada transacción a todos los interlocutores, la transacción se envía primero a través de una serie de interlocutores seleccionados al azar (fase principal) y luego se difunde a toda la red (fase fluff). Cada nodo subsiguiente tira un dado para determinar si debe continuar la fase del stem (cambio del 90%) o cambiar a la fase de fluff (probabilidad del 10%). Mientras que las transacciones se encuentran en la fase principal, también se unen con otras transacciones antes de ser difundidas ampliamente. Esto hace que sea mucho más difícil para un nodo tener una visión completa de cómo se unen las transacciones. Sin embargo, no es una solución perfecta y aún se pueden obtener pistas por la forma en que se agrupan las transacciones antes de agregarlas al bloque. La implementación de Beam hace esto más difícil al introducir salidas de decoy cuando es necesario en el dandelion stem.

Esto, combinado con el hecho de que Mimblewimble también es un sistema basado en decoy similar a Cryptonote (aunque lo logra utilizando diferentes métodos), todavia tienen los mismos inconvenientes que otros sistemas de privacidad basados en ‘decoy’ las transacciones repetidas pueden reducir aun mas el anonimato si los arboles de la mancha todavía permanecen. Además, si no hay muchas transacciones en un bloque, esto reduce la privacidad en gran medida. Como se explicó anteriormente, el monitoreo activo de la red puede diluir esto aún más.

Un gran inconveniente de MimbleWimble es la necesidad de interacción entre el receptor y el remitente (lo que significa que el receptor y el remitente deben comunicarse directamente para comunicar un factor de cegamiento) y un esquema muy diferente que elimina las direcciones. Esto significa que no puede simplemente publicar una dirección en un sitio web y tiene que dar un valor nuevo todo el tiempo. Esto también complica las transacciones multi partitas, por ejemplo, un envío de dinero a B, C, D, E en una transacción requeriría que cada una de estas partes se comunique con A antes de que se realice el envío. La implementación de Beam aborda esto mediante el uso de un sistema Secure Bulletin Board que permite a las personas publicar sus mensajes en los nodos completos de Beam para que el factor de cegamiento se pueda comunicar una vez que el usuario se conecte, aunque se requiere más investigación si esto compromete la privacidad.

Además, aunque no hay direcciones, los compromisos de Pedersen siguen siendo únicos y, por lo tanto, MimbleWimble no oculta el gráfico de la transacción, lo que significa que aún puede ver cómo fluyen los fondos y, por lo tanto, se pueden considerar direcciones de «una sola vez». Esto significa que sin las soluciones adicionales de Dandelion y Coinjoin, la privacidad de Mimblewimble es equivalente a Bitcoin, excepto que las direcciones solo se usan una vez y los valores de transacción están ocultos.

Grin no tiene un lenguaje de scripting, por lo que la implementación de contratos inteligentes puede ser un desafío, aunque los desarrollos en «Scriptless Scripts» pueden permitir una funcionalidad similar para un conjunto reducido.

Con los valores ocultos completos, Mimblewimble no tiene capacidad de auditoria de suministro ya que se basa en Bulletproofs/ Transacciones Confidenciales  para verificar si se han creado monedas adicionales de la nada. Sin embargo, la criptografía detrás de ella se entiende bien y, por lo tanto, no es un problema tan grande como con el protocolo Zerocash.

¿Cómo evaluar otros esquemas de privacidad y por qué no se incluye mi moneda de privacidad favorita en este artículo?

Todos los esquemas de privacidad de blockchain aquí enumerados están bien revisados por los investigadores y los conceptos bien entendidos. Sin embargo, hay muchas monedas en el espacio de privacidad, pero solo unas pocas que realmente lo protegen. Estos son los factores clave cuando se encuentra con un nuevo mecanismo de privacidad:

  • ¿Ofrece privacidad en la blockchain? Algunas monedas de privacidad se promocionan entre sí, ya que brindan privacidad, pero no ofrecen ninguna privacidad en la cadena de bloques (consulte también este artículo sobre cómo proteger su dirección IP / TOR solo es insuficiente).
  • ¿El mecanismo de privacidad está escrito por expertos y revisado? ¡Lea para ver si su esquema de privacidad fue examinado por criptógrafos y tiene documentos académicos que lo mencionan! Muchos son cocinados por desarrolladores o programadores sin historial en criptografía o seguridad de la información. Las tecnologías que implementan la tecnología de privacidad generalmente no son fáciles e incluso los criptógrafos de clase mundial cometen errores.
  • ¿Es simplemente un cambio de marca de la tecnología existente? Algunos proyectos renombran los esquemas de privacidad existentes con sus propios nombres y los pasan como propios. Esto es aceptable si revelan la tecnología de privacidad original detrás de él.
  • ¿Implica confianza centralizada? Si un esquema de privacidad que confía en usted para confiar en otra persona para proteger su privacidad, generalmente es un esquema de privacidad deficiente. Esto cubre algunas monedas de pseudo privacidad que usan mezcladores centralizados.
  • ¿El equipo entiende la criptografía detrás de estos esquemas? Esto es difícil de determinar a menos que usted mismo sea un experto. Verifique su equipo para ver si hay alguien con credenciales de criptografía en su equipo o en su lista de asesores.

Resumen

Cada esquema de anonimato tiene sus propios conjuntos de beneficios y debilitaciones, y creemos que la exploración e investigación continuas de estos esquemas de privacidad solo pueden servir para mejorar la privacidad de blockchain en su conjunto. En Zcoin, creemos firmemente que Sigma y Lelantus se comparan muy favorablemente con otros esquemas de anonimato al proporcionar un paquete de anonimato muy completo, que otorga un anonimato muy fuerte utilizando criptografía comprobada y al mismo tiempo que sigue siendo escalable y auditable.

A continuación, puede encontrar un cuadro comparativo de las soluciones de Zcoin con otras tecnologías de privacidad líderes.

Esperamos que este artículo le brinde una mejor comprensión de cómo funcionan las distintas tecnologías de privacidad en la cadena de bloques. Una versión anterior de este artículo fue publicada aquí.