Explicación de la tecnología MimbleWimble

0

En la primera parte de este artículo, aprendimos sobre la historia del protocolo MimbleWimble. En esta sección, exploraremos detalles técnicos acerca de su funcionamiento.

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:

  1. Direcciones públicas inexistentes (ConfidentialTransactions)
  2. Ausencia de montos de las transacciones (ConfidentialTransactions)
  3. 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.

¿Te gustó el artículo? ¡Puedes apoyar a Juan Francisco Bolaños en Patreon!

Deje un Comentario

Su correo electrónico no será publicado.