Laboratorio de Investigación de Monero (MRL)

Monero no está comprometido solamente a hacer una moneda fungible, sino también a una continua investigación en el campo de la privacidad financiera ya que esto involucra a las criptomonedas. A continuación encontrarás el trabajo de nuestro propio Laboratorio de Investigación de Monero, con más trabajos por delante. Para contactar al Laboratorio de Investigación de Monero, por favor envía un correo electrónico a [email protected].

Artículos publicados

NOTA: este artículo ha sido retractado, pero es posible verlo haciendo click en 'Todas las versiones de este informe'.

Abstracto: Las transacciones confidenciales se utilizan en los activos digitales distribuidos para demostrar el equilibrio de los valores ocultos en los compromisos, manteniendo al mismo tiempo la ambigüedad del firmante. En trabajos anteriores se describe una prueba de conocimiento del firmante-ambiguo de la apertura de los compromisos a cero en el mismo índice a través de múltiples conjuntos de compromisos públicos y la evaluación de una función aleatoria verificable utilizada como etiqueta de enlace, y se utiliza para construir una firma en anillo enlazable llamada Triptych que puede utilizarse como base para un modelo de transacción confidencial. En este trabajo, ampliamos el Triptych para construir Arcturus, un sistema de comprobación que demuestra el reconocimiento de las aperturas de múltiples bonos a cero dentro de un único conjunto, la correcta construcción de una función aleatoria verificable evaluada en cada apertura, y el equilibrio de valores a través de una lista separada de bonos dentro de una única prueba. Si bien la solidez depende de un novedoso supuesto de dificultad de doble logaritmo discreto, utilizamos datos de la cadena de bloques Monero para demostrar que Arcturus puede utilizarse en un modelo de transacción confidencial para proporcionar un tiempo total de verificación de lotes más rápido que otras construcciones de última generación sin una configuración de confianza.

Abstracto: Las firmas de anillo son construcciones comunes utilizadas para proporcionar ambigüedad al firmante entre un conjunto de claves no interactivas especificadas al momento de firmar. A diferencia de los acercamientos iniciales, donde la dimensión de la firma es lineal en el tamaño del conjunto anónimo del firmante, las soluciones óptimas actuales requieren tanto de configuraciones de confianza centralizadas o de producir firmas logaritmicas a medida. Sin embargo, la propiedad de ser vinculables, pocos la proporcionan, siendo esta la que se usa para determinar si el firmante ha firmado mensajes previos con posibles restricciones en el conjunto anónimo seleccionado. Aquí introducimos Triptych, una familia de firmas de anillo vinculables basada en pruebas de conocimiento generalizados de zero-knowledge, sin una configuración confiable de aperturas de compromisos a cero. Demostramos los usos de Triptych en los protocolos de la transacción del firmante ambiguo, al extender la construcción hacia aperturas de los compromisos paralelos en conjuntos anónimos independientes. Las firmas son logarítmicas en el tamaño del conjunto anónimo y, mientras que la complejidad en la verificación es lineal, las colecciones de pruebas pueden ser verificadas en lotes de manera eficiente. Mostramos que para los tamaños de los conjuntos anónimos prácticos para su uso en protocolos distribuidos, Triptych ofrece un rendimiento competitivo con una construcción sencilla.

Abstracto: Demostramos que una versión de degradación es una definición natural para evitar la falsificación de firmas de anillos vinculables. Presentamos una construcción de firma en anillos vinculable con firmas concisas y claves multidimensionales que es vinculablemente anónima si una variación del problema decisorio Diffie-Hellman con oráculos aleatorios es compleja; vinculable si la agregación de claves es una función unidireccional, y no degradable si una variación o más del problema del logaritmo discreto es difícil. Observamos algunas aplicaciones en modelos de transacciones confidenciales ambiguas sin configuración de confianza.

Abstracto: Esta nota técnica describe un algoritmo usado para demostrar conocimiento del mismo logaritmo discreto a través de diferentes grupos. El esquema expresa el valor común cómo una representación escalado de bits y usa una serie de firmas de anillo que demuestra que cada bit es un valor legítimo, que es el mismo (hasta una equivalencia) a través de ambos grupos escalados.

Abstracto: Presentamos el límite de las firmas múltiples de anillo (\textit{thring signatures}) para el cálculo colaborativo de firmas de anillo, presentamos un juego de falsificación para las firmas thring y discutimos los usos de las firmas thring en monedas digitales que incluyen cruces de cadena atómicos de gasto-ambiguo para cantidades confidenciales sin un sistema de confianza. Presentamos una implementación de las firmas de thring que nombramos enlaces de firmas grupales espontáneos de límites anónimos y probamos la implementación existencial no falsable.

Abstracto: Este boletín describe la modificación de los esquemas de enlace de las firmas de anillo de Monero que permite salidas de llaves dobles como miembros del anillo. Las llaves de visualización están atadas a ambas salidas únicas de llaves públicas en un duo, evitando que ambas llaves en esa transacción se gasten de manera separada. Éste método tiene aplicaciones a las transacciones reembolsables no interáctivas. Discutimos las implicaciones de seguridad del esquema.

Abstracto: Esta nota técnica generaliza el concepto del gasto de salidas usando la teoría de conjuntos. La definición captura una clase de trabajo inicial identificando esas salidas. Cuantificamos los efectos de este análisis en la cadena de bloques de Monero y damos un pequeño resumen de las mitigaciones.

Abstracto: Los usuarios de la criptomoneda Monero que desean reutilizar direcciones del monedero de una manera no vinculante deben mantener monederos separados, lo que hace necesario escanear las transacciones de entrada para cada uno de ellos. Hemos documentado un nuevo esquema de direcciones que permite al usuario mantener una simple dirección maestra del monedero y generar un número arbitrario de subdirecciones inconexas. Cada transacción debe ser escaneada una sola vez para determinar si está destinada a alguna de las subdirecciones del usuario. Este esquema además admite múltiples salidas a otras subdirecciones y es tan eficiente como las transacciones de un monedero tradicional.

Abstracto: Este artículo introduce un método para ocultar las cantidades en cada transacción dentro de la moneda descentralizada de Monero. Muy parecido a Bitcoin, Monero es una criptomoneda que es distribuida a través del proceso de minería de prueba de trabajo. El protocolo base de Monero fue CryptoNote que utiliza firmas de anillo y llaves de un solo uso o únicas para ocultar el destino y el origen de las transacciones. Recientemente la técnica de utilizar un esquema de compromisos para ocultar las cantidades de una transacción fue discutido e implementado por el desarrollador central de Bitcoin Gregory Maxwell. En este artículo se describe un nuevo tipo de firma, la firma de grupo anónimo multicapa de vinculación espontánea, que le permite a las cantidades ocultas, los origines y el destino de las transacciones con eficiencia razonable y verificable, la creación de monedas sin confiar en nadie en particular. Alguna extensiones del protocolo son dadas, tales como las pruebas de rango agregada de Schnorr (Aggregate Schnorr Range Proofs) y los anillos multifirma. Su autor quiere anotar que los borradores del artículo se hicieron públicos en la comunidad de Monero y el canal IRC de investigación de Bitcoin. Borradores con hashes de verificación están disponibles en [14] mostrando que este trabajo comenzó en el verano del 2015 y se completo a principios de octubre del mismo año. Una impresión electrónica también se encuentra disponible en https://eprint.iacr.org/2015/1098.

Abstracto: Hemos detectado varios ataques de identificación en la cadena de bloques para degradar la trazabilidad del protocolo 2.0 de CryptoNote. Analizamos posibles soluciones discutiendo sus méritos e inconvenientes, y recomendamos mejoras al protocolo que con suerte proveerán resistencia a largo plazo a la criptomoneda en contra de los ataques de identificación a la cadena de bloques. Nuestras mejoras sugeridas a Monero incluyen una política mixta del nivel de protocolo mínimo en toda la red de n = 2 salidas por firma circular, un aumento en el nivel de protocolo de este valor a n = 4 después de dos años, y un valor del nivel de monedero de n = 4 por defecto de manera provisional. También recomendamos un método de envío de Monero estilo torrent. Además, discutimos un método de mezclado no uniforme y dependiente del tiempo para mitigar las demás formas de identificación de la cadena de bloques utilizadas, pero no realizamos recomendaciones formales para implementaciones debido a varias razones. Las ramificaciones resultantes de estas mejoras también son discutidas en detalle. Este boletín de investigación no ha sido revisado más de una vez, y refleja sólo los resultados de investigación interna.

Abstracto: Recientemente, han habido ciertas dudas respecto al código fuente y protocolo de CryptoNote que transita por internet basadas en el hecho de que es un protocolo más complicado que, por ejemplo, el de Bitcoin. El propósito de este artículo es el de intentar clarificar malentendidos, y con suerte, eliminar los misteriosos conceptos de las firmas de anillo de Monero. Comenzaré comparando las matemáticas envueltas en las firmas de anillo de CryptoNote (descritas en [CN]) a las matemáticas en [FS], en la cual CryptoNote está basado. Después de esto, compararé las matemáticas de las firmas de anillo a lo que actualmente existe en el código base de CryptoNote.

Abstracto: El 4 de septiembre del 2014, un ataque inusual y novedoso fue ejecutado en contra de la red de la criptomoneda Monero. Este ataque dividió la red en dos subconjuntos distintos que se negaban a aceptar la legitimidad del otro subconjunto. Esto tuvo efectos gigantescos, los cuales se desconocen en su totalidad. Por ejemplo, el agresor tuvo un periodo corto de tiempo en el cual una falsificación pudo haber ocurrido. Este boletín de investigación describe deficiencias en el código de referencia CryptoNote que permitieron este ataque, describe la solución inicial propuesta por Rafal Freeman de Tigusoft.pl y posteriormente por el equipo de CryptoNote, así como el arreglo que se realizó en el código base de Monero, y elabora exactamente lo que el bloque ofensor hizo a la red. Este boletín de investigación no ha sido sometido a revisión, y refleja solo los resultados de la investigación interna.

Abstracto: Este boletín de investigación describe un ataque plausible en un sistema de anonimato basado en firma de anillo. Utilizamos como motivación el protocolo de criptomoneda CryptoNote 2.0 aparentemente publicado por Nicolas van Saberhagen en 2012. Ha sido previamente demostrado que la imposibilidad de rastrear un par de llaves de un solo uso puede ser dependiente sobre la imposibilidad de rastrear toda llave utilizada en componer esa firma de anillo. Esto permite la posibilidad de reacciones en cadena en trazabilidad entre firmas de anillo, causando una pérdida crítica en imposibilidad de rastreo a través de la red entera si los parámetros son mal seleccionados y si un agresor posee un porcentaje suficiente de la red. La firma es todavía de un solo uso, no obstante, cualquier ataque de este tipo no necesariamente violará el anonimato de los usuarios. Además, tal ataque podría debilitar plausiblemente la resistencia que CryptoNote ha demostrado en contra de análisis a la blockchain. Este boletín de investigación no ha sido revisado más de una vez, y refleja sólo los resultados de investigación interna.

En resumen: Monero usa una función de hash única que transforma los escalares a puntos de curva elíptica. En particular, son útiles para crear claves de imagen. Este documento, escrito por Shen Noether, traduce la implementación del código (the ge_fromfe_frombytes_vartime() function) a expresiones matemáticas.