Uncategorized

Cómo se compara la tecnología de privacidad de Zcoin con la de la competencia

By February 6, 2019 No Comments

Actualización: Este post fue escrito originalmente en noviembre de 2017, pero será actualizado de vez en cuando con eventos recientes e innovaciones criptográficas. Este post fue actualizado por última vez el 6 feb 2019.

Este post te dará una breve visión general de los principales mecanismos de privacidad de la cadena de bloqueo que se implementan en las criptomonedas hoy en día y te mostrará cómo se apila el protocolo Zerocoin utilizado en Zcoin.

La privacidad de blockchain es especialmente difícil de conseguir, ya que las blockchain públicas están diseñadas para que todas las transacciones sean transparentes y el suministro de monedas pueda ser verificado públicamente. Los mecanismos de privacidad deben asegurar que ambos elementos se preserven, aunque exista un conflicto entre la protección de la privacidad y el mantenimiento de la verificabilidad pública. Para entender la innovación detrás de Zerocoin, primero tenemos que examinar la historia de la privacidad de la blockchain.

Mezcladores de Cryptomonedas y CoinJoin

Como se usa en: Dash

Pros:

  • Funciona sobre la mayoría de las criptomonedas sin necesidad de reglas específicas de consenso.
  • Relativamente fácil de implementar
  • Ligero

Contras:

  • Anonimidad básica
  • Requiere que los mezcladores estén en línea
  • Las implementaciones anteriores implican la confianza en un mezclador de terceros

Uno de los primeros métodos que la gente investigó para lograr esto fue a través del uso de mezcladores de criptomonedas. Estos trabajos se basan en el principio de mezclar fondos con otros enviando tus monedas a otras personas y luego dándote las suyas a ti. Una manera fácil de visualizar esto es un grupo de personas que ponen el mismo número de monedas en un bote, lo mezclan y luego cada uno saca la misma cantidad de monedas. La idea es que ahora es difícil demostrar de quién era la moneda que antes pertenecía a quién, proporcionando así cierto grado de privacidad. El mezclar viene con varias desventajas, principalmente que usted necesita confiar en que la mezcladora no se robará sus monedas.

CoinJoin es una mejora de esta idea de mezclar y elimina la posibilidad de que la mezcladora robe las monedas. Fue usado popularmente en Darkcoin (ahora conocido como Dash). Sin embargo, todavía hay muchos inconvenientes para el sistema.

  • Usted necesita confiar en la mezcladora para su anonimato, ya que la mezcladora puede registrar información identificable y sabe cómo está ocurriendo la mezcla, junto con la dirección de entrada de cada usuario y la dirección en la que recibe las monedas. Este problema puede evitarse utilizando firmas digitales ciegas, pero el anonimato de CoinJoin depende en gran medida de la posibilidad de conectarse a la secadora 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 de mezcla. Si nadie quiere mezclar para las denominaciones correctas, su mezcla puede retrasarse.
  • El anonimato está limitado por la cantidad de personas con las que te mezclas. Una ronda típica de mezcla de Dash privatesend involucra a 3 participantes solamente aunque esto puede ser repetido.
  • Incluso con varias rondas de mezclado CoinJoin, investigaciones recientes muestran que la billetera de un usuario puede ser identificada si no tiene cuidado con las cookies del navegador al hacer pagos porque la mezcla sólo oscurece los enlaces de transacción entre direcciones pero no los rompe completamente.
  • Es fácil interrumpir una corrida de CoinJoin y retrasar la finalización de la transacción para los demás participantes.

Es más, la implementación de Dash, llamada PrivateSend, es susceptible a los ataques de intersección de clústeres.

Otras mejoras, como CoinShuffle+++, eliminaron la necesidad de contar con un tercero de confianza, pero siguen estando sujetas a los otros inconvenientes de CoinJoin, específicamente, el anonimato limitado y el requisito de que los participantes estén en línea.

El principal beneficio de los esquemas de tipo mezclador es que son relativamente simples y funcionan sobre la criptomoneda sin necesidad de utilizar reglas específicas de consenso. Con las precauciones adecuadas, CoinJoin puede proporcionar un grado básico de anonimato.

Tumblebit parece ser una mejora muy prometedora con respecto a los esquemas de tipo de mezcla, pero está fuera del alcance de este artículo. TumbleBit, sin embargo, es un esquema de privacidad que no se implementa a nivel de protocolo y que aún requiere que otras personas pongan sus fondos a disposición para mezclar en comparación con los otros esquemas que cubriremos a continuación. Su principal beneficio, al igual que CoinJoin, es que puede implementarse sobre Bitcoin o sobre cualquier otra moneda basada en Bitcoin sin necesidad de cambiar el protocolo.

CryptoNote y Firmas de Circulo

Como se usan en: Monero, Particl

Pros:

  • No hay necesidad de mezclador y la mezcla se realiza automáticamente
  • Puede implementarse con la privacidad activada de forma predeterminada
  • El anonimato aumenta con el paso del tiempo a medida que las salidas se convierten en las nuevas entradas de las nuevas mezclas.
  • Oculta los importes de las transacciones cuando se implementan con RingCT (o a prueba de balas).
  • Criptografía bien investigada

Contras:

  • No rompe los enlaces de transacción, simplemente los oscurece, por lo tanto, es un modelo de “señuelo”.
  • Problemas de escalabilidad debido al gran tamaño de las transacciones y a una blockchain no podable
  • Riesgos de que la blockchain se desclasifique en el futuro o a causa de implementaciones incorrectas
  • No puede aprovechar el ecosistema de Bitcoin existente y requiere un trabajo de integración por separado
  • El tamaño del círculo es prácticamente limitado
  • No puede utilizar la verificación de pago simple (SPV) y por lo tanto siempre tiene que ejecutar un nodo completo o conectarse a uno (sin billeteras ligeras).
  • Es complicado implementar algunas soluciones de capa 2 como Lightning Network
  • No tiene capacidad de auditoría de la oferta, lo que significa que la inflación oculta puede pasar desapercibida.

El siguiente esquema de anonimato que exploraremos es el de las firmas de círculos, tal y como se utiliza en las monedas CryptoNote, como Monero, que mejora significativamente el anonimato en comparación con los esquemas de tipo mezclador regulares. Una firma de anillo funciona al probar que alguien firmó la transacción de un grupo de personas sin revelar quién era. Un caso común de uso propuesto de firmas de anillo es que se utilice para proporcionar una firma anónima de un “funcionario de alto rango de la Casa Blanca” sin revelar qué funcionario firmó el mensaje.

CryptoNote utiliza firmas circulares de manera que un usuario puede crear una transacción y utilizar los resultados de otras transacciones similares en la cadena de bloques automáticamente para formar las entradas de una transacción de firma circular, de modo que no queda claro qué entrada pertenece a la persona que realiza la transacción. Lo hace automáticamente sin necesidad de que otros usuarios especifiquen que desean mezclar y sin necesidad de esperar a que otras personas proporcionen fondos, ya que sólo hay que escanear la cadena de bloques para que esas salidas puedan ser utilizadas. Como no hay mezclador, no hay ningún mezclador en el que deba confiar. Monero también implementó recientemente RingCT (Ring Confidential Transactions) que también oculta los montos de las transacciones.

Las firmas de círculos tal y como se implementan actualmente en las monedas de CryptoNote también tienen limitaciones en cuanto al tamaño práctico del círculo (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 círculo. Es por eso que Monero tiene un tamaño de círculo relativamente pequeño de 11. Esto significa que por transacción, el anonimato está limitado por el número de participantes en el círculo. Los analistas de blockchain, aunque no puedan probar que las transacciones están vinculadas, pueden calcular las probabilidades de que lo estén. Esta es la principal desventaja de Cryptonote es que no rompe los vínculos entre las transacciones, sino que simplemente lo oscurece con las entradas y salidas señuelo.

Además, los investigadores de seguridad han encontrado formas de adivinar con conocimiento de causa qué transacción es la real, vinculándola al momento de las transacciones. En cualquier mezcla de una moneda real y un conjunto de monedas falsas empaquetadas en una transacción, es muy probable que la moneda real sea la 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 identificaba correctamente la moneda real más del 90 por ciento de las veces, anulando virtualmente las salvaguardas de privacidad de Monero. Después de ese cambio en la forma en que Monero elige sus mezclas, ese truco ahora puede detectar la moneda real sólo el 45 por ciento de las veces, pero aún así reduce la moneda real a unas dos posibilidades, mucho menos de lo que a la mayoría de los usuarios de Monero les gustaría.

Otra crítica a CryptoNote es que si hay una debilidad en su implementación de la firma de los círculos o si un ordenador cuántico razonablemente potente se vuelve factible, todo el historial de la cadena de bloques es desanonimizado y expuesto retroactivamente. Esto no se puede arreglar después de los hechos. De hecho, una implementación defectuosa en una moneda de CryptoNote llamada ShadowCash permitió que su cadena de bloques fuera desanonimizada en su totalidad. Sin embargo, un ordenador cuántico práctico todavía está bastante lejos, y se reduce a saber si los datos de transacciones de varios años de antigüedad siguen siendo valiosos, ya que para que estos datos sean útiles, es muy probable que deban combinarse con datos externos.

También cabe señalar que con RingCT, que oculta los importes de las transacciones, se sacrifica la auditabilidad de la oferta. La auditabilidad de la oferta es la capacidad de verificar que no se están generando nuevas monedas en secreto y de saber con precisión cuántas monedas existen en un momento dado. En la implementación de RingCT de Monero, alguien que rompe el logaritmo discreto que sostiene a RingCT puede falsificar monedas sin que nadie lo sepa. Dicho esto, es probablemente sólo una posibilidad teórica, ya que el problema del logaritmo discreto se utiliza ampliamente en criptografía y se espera que los logaritmos discretos sigan siendo viables hasta la era de la computación cuántica. Sin embargo, los errores también pueden afectar esto y la falta de auditabilidad de la oferta puede complicar la detección de la inflación oculta. Se descubrió un error en Cryptonote que permitía una inflación ilimitada, pero fue corregido antes de que alguien pudiera aprovecharlo.

El uso de una base de código totalmente diferente a Bitcoin también significa que los terceros tienen que trabajar más para integrar CryptoNote en sus ecosistemas existentes. La verificación simple de pagos (SPV) tampoco es compatible, lo que dificulta las implementaciones ligeras de la billetera.

A pesar de estos inconvenientes, CryptoNote ha demostrado ser hoy en día una de las mejores y bien reseñadas tecnologías de privacidad del mercado y los únicos casos en los que ha sido desanonimada públicamente surgieron de una implementación inadecuada como el fiasco de ShadowCash o a través del uso de la transacción mixin-0 en Monero, lo que dio como resultado un efecto de cascada que hizo que el 87% de los datos de entrada fueran rastreables (mitigados posteriormente para las transacciones más recientes). Sin embargo, las nuevas técnicas de análisis de cadenas de bloques pueden reducir en gran medida el anonimato de Cryptonote, ya que se trata de un sistema basado en “señuelos”.

Zerocoin y Zcoin

Como se usan en: Zcoin, PIVX

Pros:

  • No hace falta un mezclador
  • Muy alto anonimato en los muchos miles (si no más) con una sola acuñación y transacción de gastos y rompe completamente los vínculos de transacción entre las direcciones.
  • Mantiene la capacidad de auditoría del suministro
  • Utiliza criptografía bien investigada

Contras:

  • Los tamaños de prueba son actualmente grandes (10-25 kB)
  • Requiere una configuración de confianza
  • La implementación incorrecta o la fuga de los parámetros de configuración de confianza pueden conducir a la falsificación de monedas.
  • Se requiere un poco de cuidado al hacer acuñaciones y gastos de Zerocoin. Los usuarios tienen que mantener las monedas acuñadas antes de gastarlas para evitar ataques de tiempo.

Ahora llegamos a Zerocoin tal como se implementó en Zcoin. A diferencia de los anteriores esquemas de anonimato, que implican ocultar las transacciones reales con otros insumos o transacciones, el protocolo Zerocoin rompe por completo los vínculos de transacción entre monedas mediante el uso de pruebas de conocimiento cero.

En términos sencillos, una prueba de conocimiento cero es una prueba de que usted hizo algo o sabe algo sin revelar ninguna otra información. Por ejemplo, probar que usted sabe una contraseña sin decir realmente la contraseña.

Zerocoin funciona permitiéndote quemar monedas (también conocida como acuñación Zerocoin) y luego redimir un número equivalente de monedas nuevas (conocidas como gastos Zerocoin). Estas monedas aparecen sin historial de transacciones previas y son similares a las monedas recién extraídas. La prueba de conocimiento cero se utiliza para probar que usted realmente quemó monedas sin revelar las monedas específicas que usted quemó. Además, con la prueba 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 anillo, Zerocoin proporcionaría un conjunto de anonimato mayor. Su conjunto de anonimato es con cada persona que ha hecho una acuñación de Zerocoin de una denominación en particular. Este conjunto se crea adjuntado inmediatamente sin esperar. Esto permite que el anonimato se establezca en miles con un solo ciclo de acuñación y gasto de Zerocoin. Además, las monedas realmente tienen sus enlaces de transacción rotos, ya que aparecen como monedas completamente nuevas en vez de ser simplemente oscurecidas 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 los parámetros iniciales. En Zerocoin se trata de 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 utiliza parámetros del RSA Factoring Challenge celebrado en 1991, en el que tomó medidas especiales para destruir los números primos y tuvo una recompensa de 200.000 dólares para factorizarlo con éxito durante 16 años antes de que finalizara el desafío. Hasta el día de hoy, los parámetros RSA-2048 utilizados siguen siendo, según nuestro leal saber y entender, los RSA de 2048 bits siguen siendo ampliamente utilizados en la actualidad, habiendo resistido la prueba del tiempo y serán prácticamente irrompibles, al menos hasta la llegada de la informática cuántica.

Cabe señalar que el conocimiento de estos dos primos o el éxito del factoring no comprometerá el anonimato de Zerocoin, sino que simplemente permitirá la falsificación de monedas. Además, esto se ve mitigado por el hecho de que el suministro de Zcoin es auditable, de modo que se puede detectar la falsificación de monedas. De hecho, debido a un error en la implementación (y no por la ruptura de la RSA), la falsificación de monedas le ocurrió a Zcoin, pero afortunadamente fue detectada y detenida. Esto demuestra que en el caso de las monedas sin conocimiento previo, que implican alguna forma de quema y creación de nuevas monedas, la posibilidad de realizar una auditoría de la oferta es especialmente importante.

También cabe destacar que Bitcoin sufrió un fallo de hiperinflación en 2010, lo que permitió generar 184.400 millones de monedas a partir de la nada, lo que se detectó gracias a la capacidad de auditoría de la oferta. En septiembre de 2018, se detectó otro error de hiperinflación en Bitcoin, pero aún no se ha explotado.

Otra limitación de Zerocoin es que es necesario utilizar denominaciones fijas para la acuñación y el gasto, y los tamaños de prueba sin conocimiento de causa para un gasto en Zerocoin son relativamente grandes a 25 kB (pueden reducirse a unos 10 kB con parámetros más bajos), comparables a una transacción clásica de Cryptonote RingCT. A diferencia de CryptoNote, donde todas las transacciones son de este tamaño, sólo las transacciones de gastos 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 gastos de Zerocoin también requieren una verificación computacional intensiva, lo que lleva alrededor de medio segundo.

Además, el uso incorrecto o el uso predecible de las transacciones de acuñación y gasto de Zerocoin, como por ejemplo, acuñar y gastar siempre a intervalos regulares, o hacer acuñaciones y gastos de forma inmediata o utilizar la misma dirección IP para acuñar y gastar, puede comprometer el anonimato, por lo que se requiere cierto cuidado. Se recomienda que los usuarios acuñen monedas en reserva antes de que quieran gastarlas. Cuanto más tiempo permanezca la moneda en una forma acuñada, 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 enorme conjunto de anonimato sin vinculación de transacciones, pero actualmente requiere una configuración de confianza, almacenamiento adicional en la cadena de bloques y recursos computacionales adicionales para verificar. Estos problemas se están resolviendo con los desarrollos de Zcoin.

Zcoin está desarrollando actualmente el protocolo Sigma para sustituir a Zerocoin, que reduce en gran medida el tamaño de las pruebas y no requiere una configuración de confianza, al tiempo que conserva conjuntos de anonimato similares a los de Zerocoin. Está previsto que se libere en el primer trimestre de 2019.

Lelantus, una innovación de Zcoin es un desarrollo adicional a Sigma que permite acuñar y gastar cantidades arbitrarias y permite la redención parcial de acuñaciones, al tiempo que se ocultan los valores de acuñación. Lelantus se encuentra actualmente en una fase teórica, aunque la codificación ha comenzado en sus bibliotecas criptográficas.

Zerocash y Zcash

Como se usan en: Zcash, Horizen, Komodo, Zclassic, Bitcoin Private

Pros:

  • Potencialmente el mejor conjunto de anonimato que abarca todas las monedas acuñadas y rompe los vínculos de transacción entre las direcciones.
  • Los tamaños de las pruebas son pequeños y fáciles de verificar
  • Oculta los importes de transacción
  • No hay necesidad de conversión a una moneda base y las monedas anonimizadas pueden ser enviadas directamente entre sí.

Contras:

  • Las transacciones privadas son computacionalmente intensivas (aunque han mejorado mucho con la actualización de Sapling).
  • Configuración de confianza complicada que tiene que ser arreglada por el equipo
  • La implementación incorrecta o la fuga de los parámetros de configuración de confianza pueden conducir a la falsificación de monedas.
  • El suministro no puede ser auditado, por lo tanto, si las monedas son falsificadas y salen de la nada, no pueden ser detectadas. Los errores de esta naturaleza se encontraron tanto antes del lanzamiento como en la red principal en vivo.
  • Utiliza una criptografía relativamente nueva y se basa en supuestos criptográficos (KEA) que han sido criticados.
  • Difícil de entender en su totalidad, lo que significa que sólo un puñado de personas puede entender la criptografía y el código.

El último esquema de anonimato que consideraremos es el protocolo Zerocash tal y como se utiliza en ZCash. Zerocash se basa en el trabajo de Zerocoin y trata de abordar las deficiencias percibidas de Zerocoin. Con Zerocash y su uso de zkSNARKs, los tamaños de prueba son ahora de sólo 1 kb y son muy rápidos de verificar. Además, todos los importes de las transacciones están ocultos y ya no es necesario utilizar denominaciones fijas al realizar una transacción de acuñación. Zerocash también permite a las personas transferir el equivalente de Zerocash de’Zerocoins’ entre sí sin necesidad de volver a convertirlo en la moneda base. Su juego de anonimato es también el mayor de todos los esquemas de anonimato anteriores que involucran a todas las monedas acuñadas, independientemente de la denominación en la blockchain.

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

En primer lugar, Zerocash carece de auditabilidad de la oferta. Al igual que Zerocoin, Zerocash requiere una configuración de confianza, pero la configuración de Zerocash es mucho más complicada. Zcash utilizó una ceremonia multipartidaria en la que participaron seis personas y que se configuró de tal manera que la única manera de filtrar estos parámetros era si los seis de la ceremonia se confabularon para conservar las llaves. En otras palabras, hay que confiar en que estas seis personas destruyeron los parámetros iniciales y también que la ceremonia se llevó a cabo correctamente. Este es un problema lo suficientemente grave como para que Zcash esté organizando una nueva ceremonia de configuración de confianza.

 

Si hay un error en el código, o un fallo criptográfico o un problema con la configuración de confianza de múltiples partes, un atacante puede generar Zcash ilimitado y, a diferencia de Zerocoin, este suministro adicional no puede ser detectado. Especialmente en un sistema que funciona con principios similares a los de Zerocoin y que permite la creación de nuevas monedas, la auditabilidad de la oferta es cada vez más importante.

Zcash tuvo uno de estos errores en vivo en su red principal desde su lanzamiento hasta el 28 de octubre de 2018, un período de dos años, antes de que fuera parcheado debido a un fallo criptográfico. No hay forma de saber si este error fue aprovechado antes de ser parcheado y hubo un lapso de 8 meses desde el momento en que se encontró el error hasta que fue parcheado. Esta no era la primera vez que se descubría un error de este tipo. Al principio de su desarrollo, Zerocash también tenía la Vulnerabilidad de Colisión InternalH, que también habría permitido la falsificación de monedas. Aunque este error nunca llegó a la producción, pone de relieve los riesgos potenciales.

BTCP, una fusión de Zcash y Bitcoin también sufrió una inflación oculta que no se detectó durante más de diez meses. Esta inflación sólo se detectó examinando el proceso de importación de UTXO cuando se importaban por encima de los UTXO de Bitcoin. Esto no se debió a una falla en la criptografía, sino a una primicia encubierta y pone de relieve los problemas potenciales de tener un suministro no auditable.

Hay que destacar que incluso un proyecto muy estudiado como Bitcoin sufrió numerosos errores de hiperinflación como el incidente del desbordamiento del valor y el más reciente CVE-2018-17144. El hecho de que Bitcoin conservara la capacidad de auditoría de suministro permitió detectar estos errores o confirmar que no habían sido explotados.

Otra desventaja es el uso de una nueva criptografía experimental llamada zkSNARKs, que en realidad sólo se utilizan en Zerocash. Hay mucho menos escrutinio 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 suposiciones criptográficas que siguen siendo bastante experimentales. A diferencia de la criptografía bien establecida, como la suposición de logaritmo discreto o la dureza de factorización, la seguridad de zkSNARK se basa en variantes de la suposición de Conocimiento del Exponente (KEA) para grupos bilineales (instanciado a través de ciertas curvas elípticas fáciles de emparejar). KEA no ha sido bien investigada o desplegada y también es objeto de críticas.  Algunos expertos creen que la criptografía detrás de zkSNARKs es relativamente débil.

Zerocash es también muy complejo, lo que significa que sólo un puñado de personas puede entenderlo y auditarlo correctamente. De hecho, con el problema de la 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 externos que iniciaron nuevos proyectos basados en el código Zcash.

 

Esto es efectivamente ‘Seguridad por Oscuridad’.

Otra desventaja de Zerocash está en su forma original, la generación de una transacción privada toma significativamente más tiempo que cualquiera de los esquemas de privacidad anteriores, acercándose a un minuto en una computadora poderosa y mucho más tiempo en sistemas más lentos mientras que requiere varios gigabytes de RAM. Esto dio lugar a que muy pocas personas utilicen sus funciones de privacidad y también puede excluir sistemas menos potentes como los dispositivos móviles. Zcash ha realizado mejoras sustanciales en este aspecto en su última actualización de Sapling mediante el uso de nuevas curvas BLS12-381 que reducen el tiempo de generación a varios segundos y requieren alrededor de 40 mb de memoria, lo que lo hace finalmente factible para los dispositivos móviles. Sin embargo, en comparación con otros sistemas de privacidad de este artículo, sigue siendo el proceso más intensivo desde el punto de vista computacional.

Así que aunque Zerocash ofrece potencialmente el mayor anonimato, lo hace a costa de la auditabilidad del suministro combinada con una configuración complicada y fiable, el uso de nueva criptografía experimental y la complejidad computacional a la hora de crear transacciones privadas.

El equipo de Zcash, sin embargo, está llevando a cabo una investigación sobre zkSTARKs (el reemplazo de zkSNARKs) que no requiere una configuración de confianza y utiliza la criptografía con suposiciones criptográficas más simples. Sin embargo, hasta la fecha, zkSTARKS es actualmente poco práctico de usar debido a los grandes tamaños de las pruebas y también los requisitos computacionales para la creación de zkSTARKs sigue siendo alto.

Mimblewimble

Como se usa en: Grin, Beam

Pros:

  • Todas las transacciones son privadas
  • Utiliza criptografía bien establecida
  • Esconde los importes de las transacciones
  • La blockchain puede reducirse en tamaño ya que sólo retiene UTXOs
  • No hay problemas de re utilización de direcciones

Contras:

  • Necesita interacción entre el receptor y el emisor. No se puede enviar la dirección postal y recibir. Las transacciones multilaterales son problemáticas, ya que todas las partes necesitan comunicarse para crear una transacción.
  • No rompe los enlaces de transacción, simplemente los oscurece, por lo tanto, es un modelo “señuelo”.
  • Monitorear 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 depende de otras transacciones para unirse.
  • 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 existe un lenguaje de scripts, pero se pueden realizar algunas funcionalidades a través del desarrollo en “Scripts sin scripts”.
  • En una fase relativamente temprana de desarrollo y no comparte el núcleo de código de Bitcoin, la construcción y la integración en la infraestructura necesitaría un desarrollo independiente.

Tanto Grin como Beam son implementaciones de MimbleWimble. Mimblewimble funciona a través de dos métodos principales, ocultando todos los valores de las transacciones y, en segundo lugar, agregando todas las transacciones en una gran transacción para que en un bloque, aparezca como una transacción gigantesca de muchas entradas con muchas salidas. Con sólo mirarlo desde la cadena de bloques, sólo se puede adivinar qué salidas proceden de qué entradas, siempre y cuando haya unas cuantas transacciones en el mismo bloque. Mimblewimble también permite otra característica llamada cut-through, según la cual si A paga a B, que a su vez paga totalmente a C, la cadena de bloques puede grabar de A a C sin mostrar siquiera a B.

Una manera fácil de imaginar esto es comparar cómo se ven las transacciones en Bitcoin vs. cómo se ven las transacciones una vez que se agregan en Mimblewimble.

Imagine que A envía a B y C. En una transacción separada, D envía a E y F.
En Bitcoin esto se vería 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 de manera que una vez que las transacciones se unen en el bloque se verá como:

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

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

Comparación de las transacciones de Bitcoin y Mimblewimble

Sin embargo, la gran suposición es que nadie está monitoreando la red a medida que estas transacciones se propagan y antes de que se registren en la cadena de bloques. Con la version vainilla de Mimblewimble, alguien podría crear un nodo malicioso que se conecte a todos los demás nodos de la red y registrar las transacciones antes de que se combinen entre sí, lo que permitiría desanonimizarlas, lo que significaría que tendrían la misma privacidad que Bitcoin, a excepción de que las direcciones se utilizan una sola vez y de que los valores de las transacciones queden ocultos.

Para mitigar esto, tanto Grin como Beam utilizan la tecnología Dandelion, que cambia la forma en que se propagan las transacciones. En lugar de transmitir cada transacción a todos los pares, la transacción se envía primero a través de una serie de pares seleccionados al azar (fase de tallo) y sólo entonces se difunde a toda la red (fase de pelusa). Cada nodo siguiente tira un dado para determinar si continuar la fase de vástago (cambio del 90%) o cambiar a la fase de pelusa (10% de probabilidad). Si bien las transacciones se encuentran en fase de tallo, también se unen a otras transacciones antes de ser difundidas ampliamente. Esto hace que sea mucho más difícil para un nodo tener una imagen completa de cómo se unen las operaciones. Sin embargo, no es una solución perfecta y las pistas se pueden seguir recogiendo por la forma en que las transacciones se agrupan antes de que se añadan al bloque.

Esto, combinado con el hecho de que Mimblewimble es también un sistema basado en señuelos similar al Cryptonote (aunque lo logra usando diferentes métodos), todavía sufre los mismos inconvenientes que otros sistemas de privacidad basados en señuelos donde las transacciones repetidas pueden reducir aún más el anonimato, ya que los árboles manchados aún permanecen. Además, si no hay muchas transacciones en un bloque, esto reduce enormemente la privacidad. Como se ha explicado anteriormente, la vigilancia activa de la red puede diluir aún más esta situación.

Image result for mimblewimble transaction

Ejemplo de un gráfico de transacciones que se puede construir trazando las transacciones de MimbleWimble

Un gran inconveniente de MimbleWimble es la necesidad de interacción entre el receptor y el emisor (es decir, el receptor y el emisor necesitan comunicarse directamente para comunicar un factor cegador) y un esquema masivamente diferente que elimina las direcciones. Esto significa que usted no puede simplemente publicar una dirección en un sitio web y tiene que dar un nuevo valor todo el tiempo. Esto también complica las transacciones multipartitas, por ejemplo, el envío de dinero de A a B, C, D, E en una sola transacción requeriría que cada una de estas partes se comunique con A antes de que el envío pueda realizarse.

Además, aunque no hay direcciones, los compromisos de Pedersen siguen siendo únicos y, por lo tanto, por sí solos, MimbleWimble no oculta el gráfico de transacción, lo que significa que todavía se puede ver cómo fluyen los fondos y, por lo tanto, se pueden considerar direcciones “únicas”. Esto significa que sin las soluciones añadidas de Dandelion y Coinjoin, la privacidad de Mimblewimble es equivalente a Bitcoin, excepto que las direcciones sólo se utilizan una vez y los valores de las transacciones se ocultan.

Grin no tiene un lenguaje de programación, por lo que la implementación de contratos inteligentes puede ser un reto, aunque los desarrollos en “Scripts sin scripts” pueden permitir una funcionalidad similar para un conjunto reducido.

Con valores totalmente ocultos, Mimblewimble no tiene capacidad de auditoría de suministro ya que se basa en Bulletproofs/Confidential Transactions para comprobar si se han creado monedas adicionales de la nada. Sin embargo, la criptografía que hay detrás está bien entendida y por lo tanto no es un problema tan grande como con el protocolo Zerocash.

Evaluación de otros esquemas de privacidad y ¿por qué mi moneda de privacidad favorita no aparece en este artículo?

Todos los esquemas de privacidad de la blockchain listados aquí son bien revisados por los investigadores y los conceptos bien entendidos. Sin embargo, hay muchas monedas en el espacio de privacidad, pero sólo un puñado que realmente lo protegen. Estos son los factores clave a la hora de encontrar un nuevo mecanismo de privacidad:

  • ¿Ofrece privacidad en la blockchain? Algunas monedas de privacidad se comercializan a sí mismas como proveedoras de privacidad, pero no ofrecen privacidad alguna en la blockchain (véase también este artículo sobre cómo proteger su dirección IP o usar TOR es insuficiente por si mismo).
  • ¿El mecanismo de privacidad es escrito por expertos y revisado? Lea para ver si su esquema de privacidad fue investigado por los criptógrafos y tiene documentos académicos que hacen referencia a él! Muchos son inventados por desarrolladores o programadores sin ninguna historia 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 hacen pasar por los suyos propios. Esto es aceptable si revelan la tecnología de privacidad original que hay detrás.
  • ¿Implica confianza centralizada? Si un esquema de privacidad que depende de que usted confíe en otra persona para proteger su privacidad, generalmente es un esquema de privacidad deficiente. Esto cubre algunas monedas de pseudo privacidad que utilizan mezcladores centralizados.
  • ¿Comprende el equipo la criptografía que hay detrás de estos esquemas? Esto es difícil de determinar a menos que usted sea un experto. Revise el 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 propias ventajas y desventajas, y creemos que la exploración e investigación continuas de estos esquemas de privacidad sólo puede servir para mejorar la privacidad de la blockchain en su conjunto. En Zcoin creemos firmemente que el protocolo de Zerocoin combinado con mejoras en Sigma se compara muy favorablemente con otros esquemas de anonimato al proporcionar un paquete de anonimato muy completo, que proporciona un anonimato muy fuerte utilizando criptografía probada, a la vez que se mantiene escalable y auditable. Además, estamos comprometidos a buscar constantemente nuevas formas de mejorar Zerocoin.

Esperamos que este artículo le proporcione 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 se publicó aquí.