Mimblewimble suena a trabalenguas, pero es un concepto que la criptocomunidad lleva tiempo usando. Si eres fan de Harry Potter, lo más probable es que ya conozcas esta palabra. Mimblewimble es un hechizo que impide a la víctima hablar de un tema en concreto. Este hechizo ‘atalenguas’ se ha hecho un hueco en el criptoespacio, dando nombre a un sistema de reglas bastante popular, aunque con una base criptográfica compleja. El protocolo Mimblewimble ofrece un entorno excelente para el desarrollo de blockchains en términos de privacidad, escalabilidad y fungibilidad.
En este artículo, analizaremos este protocolo innovador e intentaremos responder a cuestiones elementales: qué es Mimblewimble, cómo funciona, qué aplicaciones tiene y en qué casos se ha implementado con éxito.
¿Qué Mimblewimble?
Han hecho falta décadas para hacer de Mimblewimble el protocolo que conocemos hoy. Grosso modo, se trata de un protocolo que usa criptografía de curva elíptica, razón por la cual se necesitan claves de menor tamaño que en otro tipo de modelos criptográficos. Esto se traduce en redes que no necesitan direcciones en la blockchain, ofreciendo una eficiencia de almacenamiento de datos altísima.
Comparada con Bitcoin, una red con Mimblewimble necesitaría apenas el 10% de recursos para el almacenamiento de datos. Evidentemente, la escalabilidad en términos de almacenamiento para blockchains es enorme, con una velocidad y una descentralización significativamente mayores. Es más, la naturaleza del protocolo permite un anonimato casi total en transacciones privadas, tal y como veremos después.
El nacimiento de Mimblewimble
Para regocijo de los fans de Harry Potter, aquí va otra referencia. El libro blanco del Mimblewimble vio la luz por primera vez en junio de 2016, firmado bajo el pseudónimo de Tom Elvis Jedusor. Sí, la versión francesa del nombre ‘muggle’ de Voldemort.
A finales de ese mismo año, otro usuario anónimo inició un proyecto en Github con el protocolo Mimblewimble. El seudónimo que usó fue Ignotus Peverell, el primer dueño de la famosa capa de invisibilidad del universo ‘harrypotteriano’. A este proyecto, bautizado como Grin y con una red lanzada en enero de 2019, le han seguido otras implementaciones de Mimblewimble, como Beam. Más tarde hablaremos de estos dos proyectos.
¿Cómo funciona Mimblewimble?
Para entender cómo funciona Mimblewimble, conviene explicar antes qué es el modelo Bitcoin UTXO (del inglés ‘unspent transaction output’). Si usas dinero fíat, presta atención al ejemplo de Alicia y Roberto.
Si Alicia le da un dólar a Roberto, el balance sería:
Alicia: -1 USD
Roberto: +1 USD
En la red de Bitcoin, la transacción no tendría el mismo resultado, ya que esta se lleva a cabo a través de múltiples entradas y salidas entre el emisor y el receptor. Comprueba tu última transacción de Bitcoin y verás estos inputs y outputs.
En pocas palabras, Bitcoin funciona de la siguiente manera: Alicia envía 1 BTC a Roberto, pero esta cantidad no se sustrae del wallet de Alicia. La red genera paquetes teniendo en cuenta las transacciones previas hacia el wallet de Alicia para igualarlas a esa cantidad que Alicia le manda a Roberto. Esta transacción podría describirse así:
Alicia: – (0.1+0.25+0.35+0.3) BTC, donde A+B+C+D son inputs que se adicionan
Roberto: +1 BTC
En este ejemplo, bastaron cuatro entradas para igualar el BTC que Alicia ha enviado, pero hay casos en los la red Bitcoin evalúa cientos de inputs. Es más, si la suma de los inputs es mayor que la cantidad que se transfiere, se genera un output adicional. De esta forma, la primera salida incluirá exactamente la cantidad que irá a parar a la cartera del receptor, y el resto va de vuelta al emisor. Esto supone el procesamiento de ingentes cantidades de datos, ya que cada transacción se ‘sella’ por separado con un software específico para los monederos. Obviamente, la eficiencia es una variable determinante en el proceso.
El sistema CT (Confidencial Transactions)
Pero… ¿qué tiene que ver Mimblewimble en todo esto? Ya hemos mencionado que este protocolo propone un modelo mucho más eficiente, eliminando el engorroso proceso de evaluar inputs y outputs. El sistema UTXO se reemplaza por uno que usa el concepto ‘multifirma‘ y que se conoce como CT (del inglés Confidential Transactions). Si Alicia quisiera enviar ese BTC a Roberto, ambos generarían una clave ‘multifirma’ que verificaría la transacción.
El modelo CT usa un esquema llamado PC (del inglés Pedersen Commitment) que no maneja direcciones. En su lugar, las partes comparten una firma criptográfica ‘ciega’, gracias a la cual se encripta las entradas y salidas de la transacción. La firma se comparte exclusivamente entre las partes, sin que nadie más conozca la transacción. Solo el emisor y el receptor saben que se está produciendo la transferencia, lo que equivale a un nivel de privacidad enorme.
Ahora bien, ¿cómo funciona el esquema PC? Los nodos (que no aportan información sobre la cantidad total que se está transfiriendo) sustraen las cantidades encriptadas tanto de las entradas como de las salidas, ajustando la ecuación que prueba que las monedas no se están generando de la nada.
Esta es, de hecho, la única verificación que tiene lugar en el protocolo Mimblewimble: confirmar que no se están creando monedas nuevas y que las partes intervinientes son los legítimos dueños de las claves.
Se trata, pues, de dos procesos de verificación. Ambos usan la firma ‘ciega’ para mantener la privacidad intacta, y funciona de la siguiente manera:
1 – 5+5=10 — 5+5-10=0
Este sencillo ejemplo muestra que no se han creado monedas nuevas, por lo que el balance final es cero.
2 – 5(10)+5(10)=10(10)
El número secreto ‘10’ (que es la firma ‘ciega’) se añade al cálculo, multiplicando todas las variables. Con este paso, se enmascara la cantidad real que se está transfiriendo.
3 – 50+50=100
En esta ecuación, tanto la firma ‘ciega’ (‘10’ en el ejemplo anterior) y el valor permanecen ocultos, aunque permite comprobar que, en efecto, no se están generando nuevas monedas durante la transacción.
Esto quiere decir que, en el protocolo Mimblewimble, existe una combinación de claves públicas y privadas. De esta forma, las partes pueden probar que son los dueños de las claves, al mismo tiempo que se comprueba que no se están creando monedas.
Al finalizar la transacción, ambas partes reciben una suerte de ’ con todos los inputs y outputs de la transacción.
Cut-Through
Una de las características más relevantes del protocolo Mimblewimble en relación a la escalabilidad es la técnica cut-through. Un bloque se compone de cientos de transacciones, además de una elevada cantidad de información que necesita ser almacenada en la blockchain. El cut-through de Mimblewimble permite eliminar gran parte de esta información contenida en los bloques sin poner en peligro la seguridad.
Veamos un ejemplo:
- Alicia manda un BTC a Roberto.
- Roberto envía un BTC a Carlos.
En esta situación, un bloque estándar tendría dos UTXOs. El primero tendría un input relacionado con la transacción gracias a la cual Alicia obtuvo es cantidad y un output vinculado a la transferencia desde el wallet de Alicia al de Roberto, confirmando que ese BTC pertenece ahora a Roberto. En cuanto al segundo UTXO, su entrada se corresponde con la salida del primer UTXO y su salida con la transacción entre Roberto y Carlos.
Sí, la eficiencia de Mimblewimble está ahí mismo, en el momento en el que fusiona la salida de la primera operación y la entrada de la segunda. Es decir, solo tenemos una entrada y una salida para todo el proceso entre, confirmando que un BTC sale de la cartera de Alicia y va a parar al wallet de Carlos.
Obviamente, en términos de almacenaje, Mimblewimble aporta mucha más ligereza al reducir significativamente el tamaño de la cadena de bloques.
Grin y Beam vs. Zcash y Monero
A comienzos de 2019, Grin saltaba a la criptoescena como una de las primeras criptos que implementaba el protocolo Mimblewimble (aunque llevaba en desarrollo desde finales de 2016). Algo parecido pasa con Beam, que cuenta con un entorno totalmente funcional.
Ambas criptos usan el mismo protocolo, pero eso no significa que Mimblewimble las convierta en monedas similares. De hecho, hay grandes diferencias entre ellas. Por una lado, el peso de Beam reside sobre una estructura corporativa. La compañía se financió con capital de riesgo y pueso en nómina a un equipo de desarrolladores. El objetivo era ganarle la carrera a Grin. De todas formas, parece que Beam tiene la intención de experimentar una transición desde esta fase corporativa a una compañía sin ánimo de lucro. Mientras tanto, el desarrollo de Grin ha tenido un tinte más independiente con cierta filosofía ciberpunk de fondo. Su enfoque es claramente descentralizado, con un objetivo centrado en el empoderamiento de su comunidad. Es más, Grin no ha tenido ICO y sus desarrolladores son voluntarios.
Además de en su filosofía, ambas monedas se diferencian en aspectos prácticos como la usabilidad. Beam está enfocado a contextos más ‘profesionales’, con una cartera de uso bastante intuitivo que es compatible con diversos sistemas operativos (incluyendo Windows, Linux y Mac). Digamos que Beam facilita que cualquiera pueda acceder a su blockchain. Todo lo contrario de lo que ocurre con Grin, con un entorno mucho menos amigable para el usuario, dirigido a perfiles más ‘techie’.
En cuanto a los lenguajes de programación, Grin usa Rust ; Beam, C++. No hay mucho que discutir al respecto, ya que las diferencias no son destacables. Eso nos deja en el campo meramente económico, donde los objetivos de ambos proyectos sí que muestran diferencias significativas. Mientras el modelo económico de Beam está centrado en su uso como valor reserva, el de Grin se define por su uso como divisa. Está claro que a la comunidad que da soporte a Grin no le interesa recompensar a los especuladores, sino que se generalice el uso de su cripto.
Comparemos estas dos monedas con las tres criptos más famosas por su privacidad: Zcash, Monero y Dash. Existen bastantes comentarios al respecto del protocolo de anillo que usa Zcash, especialmente sobre la lentitud y el alto coste de las transacciones en comparación con Grin o Beam.
Monero usa un lenguaje orientado a objetos para posibilitar las transacciones privadas, aunque, según los criptoexpertos, no hay rastro de mixins en el 64% de los inputs. Es decir, no se puede hablar de privacidad total en las transacciones de Monero. De hecho, hay analistas que aseguran que es posible rastrear ocho de cada diez transacciones realizadas con Monero.
Por su parte, Dash, considerada como la más centralizada de las criptos ‘privadas’, es quizá la que menos privacidad garantiza de las tres. En cualquier caso, Dash ofrece otras ventajas, como una mayor escalabilidad. Eso sí, si tu intención es realizar transacciones de forma absolutamente anónima, Dash no es tu cripto (principalmente por su excesiva centralización).
Conclusión
Puede que Monero y Zcash sean criptos populares por su privacidad, pero queda patente que sus entornos se podrían actualizar con las nuevas herramientas tecnológicas disponibles, tales como Mimblewimble.
Estas mejoras, principalmente relacionadas con la privacidad, ya se incluyen en criptos novedosas como Grin o Beam. El desarrollo de ambas debería estar presente a la hora de crear las criptos que están por venir, al menos si la descentralización y el anonimato siguen siendo los pilares fundamentales del criptouniverso.