La magia poteriana que envuelve a MimbleWimble no es su único atractivo. Este nuevo protocolo, basado en la confidencialidad, fungibilidad y escalabilidad, busca recuperar la privacidad de las transacciones de bitcoin y otras criptomonedas.
Su nombre hace referencia a un hechizo de Harry Potter que evita que las personas se cuenten secretos. Fue lanzado en julio de 2016 en el canal de IRC bitcoin-wizards por el seudónimo Tom Elvis Jedusor (el nombre de Voldemort en la versión francesa de la saga).
El documento propuso una nueva e interesante forma de combinar transacciones para mejorar las características de privacidad en una cadena de bloques pública. Básicamente, evita que la información pueda ser vista por ojos no autorizados.
Además, planteó una solución de escalabilidad distinta a otros protocolos. En lugar de optar por centralización o cadenas laterales, elimina información innecesaria que se almacena en cada uno de los nodos.
El documento de Tom Elvis Jedusor se inspiró en un artículo publicado anónimamente en 2013 y en dos propuestas de privacidad —Confidential Transactions y CoinJoin—, elaboradas por Gregory Maxwell, desarrollador de Bitcoin Core.
La publicación original de MimbleWimble hace referencia a la misma criptografía de curva elíptica (ECDSA, por sus siglas en inglés) que usa Bitcoin. Esto despertó la atención de algunos investigadores de Bitcoin, como Andrew Poelstra, criptógrafico y matemático de Blockstream. Polestra hizo reformas al documento original de MimbleWimble y lanzó una versión mejorada en octubre de 2016.
¿Qué problema de privacidad resuelve Mimble Wimble?
Los días en que se pensaba que las transacciones de bitcoin eran anónimas quedaron atrás. Si bien Satoshi Nakamoto ya anticipó sobre las limitaciones a la privacidad de las transacciones de bitcoin, a medida que las capacidades de rastreo han mejorado, se ha vuelto mucho más fácil identificar a los emisores y receptores de bitcoin.
Esencialmente, Bitcoin muestra tres «secretos» en cada una de las transacciones que se realizan en su red de pagos:
- Dirección del emisor
- Monto de la transacción
- Dirección del receptor
Al igual que cualquier sistema monetario —oro, efectivo, trueque—, Bitcoin debe cumplir con dos requisitos fundamentales para considerarse seguro y confiable:
- Tener la capacidad de verificar fehacientemente que la cantidad recibida equivale a la cantidad enviada; de lo contrario, se crearía dinero de la nada. Para comprobar que no existe un doble gasto de dinero en la red, una transacción de BTC contiene la cantidad y las direcciones del emisor y receptor.
- Verificar que la transacción fue enviada efectivamente por el titular a través de una clave o llave privada. Para asegurar la validez de una transferencia, Bitcoin usa direcciones públicas con sus claves privadas correspondientes. El emisor firma la transacción con su clave privada y libera esos BTC que se encuentran en su dirección pública. Todos los participantes de la red pueden verificar que la firma proviene de la clave privada detrás de la dirección que contiene los bitcoins. De esta forma se sabe que la firma proviene del individuo que tiene autoridad para iniciar la transacción.
Mira también: Soluciones para la privacidad de Bitcoin
El propósito de MimbleWimble es garantizar que las transacciones cumplen con los dos requisitos, pero sin revelar los tres «secretos» de Bitcoin.
Implementaciones de MimbleWimble
Grin
El lanzamiento de Grin fue pocos días después de la publicación del documento de Poelstra. Esta primera implementación casi se ha convertido en sinónimo de MimbleWimble.
El seudónimo Ignotus Peverell (nombre del propietario original de la capa de invisibilidad de Harry Potter), creó el proyecto ignopeverell / grin en GitHub. Allí, proveyó una implementación parcial del protocolo escrito en Rust y compartió su visión del espíritu del proyecto.
En marzo de 2017, Peverell publicó una introducción técnica a Grin y MimbleWimble. Este documento sirve como referencia principal a la especificación del protocolo actual. El primer testnet de Grin se lanzó en noviembre de 2017. Al momento de escribir este artículo, el proyecto se encuentra en su testnet 4.
El proyecto todavía se mantiene por un grupo de desarrolladores en su mayoría anónimos. Algunos de ellos han tomado sus seudónimos de los personajes de Harry Potter —Luna Lovegood, Seamus Finnigan y Percy Weasley—.
BEAM
Es un proyecto que comenzó en marzo de 2018 y se anunció formalmente en el primer aniversario de la publicación original de MimbleWimble. El documento técnico de BEAM tiene una estructura más seria y se presentó con un nodo minero funcional y una billetera. El equipo de BEAM está dirigido por Alexander Zaidelson, un empresario israelí.
Con un equipo de administración e ingeniería definido y una constitución formal, BEAM adoptó un enfoque muy diferente para presentar una alternativa a Grin en el mercado. El equipo de BEAM también hizo diferentes elecciones técnicas a Grin, incluidas las decisiones relacionadas con la política monetaria y el algoritmo de consenso. Este proyecto se lanzó a principios de enero de 2019.
¿Por qué es importante la privacidad?
A la par de las innovaciones y mejoras tecnológicas, los sistemas de vigilancia también se vuelven más sofisticados e intrusivos. Por lo tanto, es indiscutible que la privacidad es clave al momento de diseñar los sistemas monetarios del futuro.
Mira también: Blockchain valora más tu privacidad que Facebook
Por obvias razones , el uso de sistemas transaccionales privados no son del agrado de las autoridades. Sin embargo, a pesar de que su utilización podría “manchar” la reputación de los que cumplen con la ley, las criptomonedas son una herramienta tecnológica para que los usuarios honestos protejan su patrimonio de los deshonestos.
Desde los primeros días de Bitcoin, la privacidad y la fungibilidad han sido las preocupaciones centrales de sus usuarios. Bitcoin ha visto muchos intentos de eliminar el pseudoanonimato a sus transacciones y han surgido criptomonedas —Zcash y Monero, por ejemplo— con mejoras a la privacidad.
Por su parte, Bitcoin también ha visto avances significativos en privacidad y fungibilidad, tanto en la capa de protocolo como en la capa de transacción. De hecho, Grin y BEAM utilizan el mismo modelo de salida de transacción no gastada (UTXO, por sus siglas en inglés) que utiliza Bitcoin, en contraste con otras cadenas de bloques basadas en cuentas, como Ethereum.
¿Qué hace MimbleWimble para otorgar confidencialidad?
MimbleWimble realiza varios cambios en el modelo UTXO de Bitcoin para permitir transacciones privadas —que no revelan los tres «secretos» que mencionamos antes—. Estas modificaciones están basadas en Confidential Transactions y CoinJoin, como veremos enseguida.
Las mejoras en la privacidad de las transacciones propuestas por Mimble Wimble, se fundamentan en tres propiedades:
- Direcciones públicas inexistentes (ConfidentialTransactions)
- Ausencia de montos de las transacciones (ConfidentialTransactions)
- Dos o más transacciones se combinan en un bloque para formar una sola (CoinJoin)
Las dos primeras propiedades hacen que las transacciones no puedan distinguirse unas de otras. Es decir, todas las entradas y salidas parecen fragmentos de datos aleatorios. Adicionalmente, los bloques en la red no enumeran transacciones separadas, sino que se agregan en una sola transacción con entradas y salidas mixtas.
Como resultado, un bloque luce como una única transacción grande, perdiéndose toda pista de las transferencias que contiene. Los nodos pueden verificar la autenticidad de las transacciones sin revelar los valores que se transfieren. Por lo tanto, no hay direcciones ni información identificable en una transacción.
Confidential Transactions
Confidential Transactions, una propuesta implementada en Blockstream Liquid, es una cadena lateral de Bitcoin en producción que utiliza una técnica criptográfica llamada Esquema de compromiso de Pederson para mejorar el modelo UTXO de Bitcoin. Gracias a Confidential Transactions, solo los participantes de una transacción pueden ver el monto de la misma.
El compromiso de Pederson se puede explicar de esta manera: «Estoy probando que sabía algo antes de ‘hashearlo’ porque no puedo revertir el hash para revelar lo que sabía».
Todas las implementaciones de MimbleWimble utilizan Confidential Transactions para garantizar que no haya direcciones o cantidades visibles en el sistema (primera y segunda propiedad).
Direcciones públicas inexistentes
Efectivamente, no hay direcciones. Todas las salidas son únicas y no comparten datos comunes con ninguna salida anterior. En lugar de usar una dirección para enviar criptomonedas, las transacciones deben ser construidas interactivamente con dos o más billeteras que intercambian datos entre sí; esta interacción no requiere que ambas partes estén en línea al mismo tiempo. Solo los participantes pueden ver estos datos y la información no puede ser reutilizada por terceros.
Ausencia de montos de las transacciones
El concepto de validación de transacciones sin conocer ninguno de los valores negociados se asemeja a las Pruebas de Cero Conocimiento (ZKP, siglas en inglés) y RingCT empleados por Zcash y Monero, respectivamente.
En Bitcoin, donde se utilizan funciones hash criptográficas simples para realizar compromisos de transacción, la entrada, la salida y los montos de transacción son esenciales (como vimos previamente). Un compromiso de Pederson mejora esto al garantizar que la suma de las entradas y la suma de las salidas sean iguales.
Las pruebas criptográficas que permiten esta certeza están más allá del alcance de este texto. Sin embargo, esto ya nos revela una idea clave: las entradas y las salidas pueden permanecer en secreto mientras la seguridad del sistema —que puede ser verificada ipso facto— permanece intacta.
CoinJoin
CoinJoin, también creado por Gregory Maxwell, mezcla las transacciones para garantizar que el gráfico de las transacciones sea más difícil de rastrear (tercera propiedad). La combinación de entradas de múltiples usuarios se llama conjunto de anonimato.
El historial de una transacción contiene una importante cantidad de información que permite que alguien con suficientes recursos computacionales pueda visualizar gráficamente e inferir con relativa facilidad las relaciones entre diferentes transacciones en una misma red.
Empresas como Elliptic y Chainalysis utilizan esta forma de análisis forense para detectar fraudes y transacciones ilícitas —lavado de dinero, actividad en el mercado negro, por ejemplo—. En este sentido, debido a la trazabilidad de las transacciones de bitcoin a través del análisis de sus gráficos, es una pésima idea lavar activos utilizando esta criptomoneda.
Wasabi, una billetera de bitcoin, ha implementado CoinJoin para ofrecer privacidad a las transacciones de esta criptodivisa. Sin embargo, este intento no ha sido satisfactorio teniendo en cuenta que el conjunto de anonimato suele ser muy pequeño, con pocos participantes en cada transacción. Esto, a la final, hace fácil rastrear y descubrir a los participantes.
Las implementaciones de MimbleWimble resuelven este problema haciendo de CoinJoin una parte central del protocolo, en lugar de una mejora de la privacidad de la capa de transacción implementada por billeteras y servicios de terceros. En MimbleWimble, todas las transacciones en cada bloque se contraen automáticamente en una sola transacción y la información intermedia se oculta.
Dandelion
¿Hay alguna otra manera de descubrir o rastrear el origen y destino de las transacciones? La respuesta es sí.
Puede haber un punto de falla cuando los nodos de la red revelan las direcciones IP de origen. Cuando se realiza una transacción de bitcoin desde una billetera, esta se transmite a un conjunto de nodos que, a su vez, la transmiten rápidamente a otros nodos, estableciéndose una «red de chismes». Antes de que una transacción se consolide en un bloque, es posible rastrear las direcciones IP de las que se origina, teniendo en cuenta que las transacciones se transmiten por partes.
MimbleWimble propone una solución a este inconveniente, llamada Dandelion. Originalmente diseñada para Bitcoin, fue concebida por un equipo de investigadores de la Universidad de Illinois en Urbana-Champaign. Ha estado en discusión desde 2017 como una propuesta pública de mejora de Bitcoin.
El objetivo de Dandelion es «oscurecer» u «ofuscar» la dirección IP de una transacción de Bitcoin. Los pétalos de una flor de diente de león, Taraxacum officinale, poseen un solo tallo hasta que florecen completamente.
De manera similar, con Dandelion, una transacción de Bitcoin se transmite a la red en dos fases: la fase «raíz» donde se oscurece u ofusca y la fase de «encrespado» donde se transmite. En primer lugar, la transacción se transmite a un solo nodo, luego se transmite a otro igual y así hasta que haya suficientes saltos desde el interlocutor original. En ese momento, la transacción se transmite al resto de la «red de chismes».
En definitiva, la combinación de mejoras como Confidential Transactions, CoinJoin y Dandelion permiten que las implementaciones de MimbleWimble eleven el concepto de privacidad en las transacciones. Además, MimbleWimble es una alternativa a problemas clave que enfrenta la tecnología blockchain que no sacrifica características esenciales de una cadena de bloques pública.