Uncategorized

Zcoin vs Mimblewimble (Grin/Beam)

By marzo 31, 2019 No Comments

Zerocoin

Pros:

  • No necesita mezcladores
  • Muy alto anonimato en los muchos miles (si no más) con una sola transacción de acuñar y gastar 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 acuñar y gastar 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.

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.