Traducción al español de “Mithril: a stronger and lighter blockchain for better efficiency”, escrito por Olga Hryniuk, Escritora Técnica de IOHK.io, el 28 de octubre de 2021.
El nuevo protocolo desarrollado por IOG funciona como un esquema de firma de umbral basado en stake permitiendo un aprovechamiento de stake transparente, seguro y ligero
Durante la Cardano Summit 2021 , los investigadores de IOG Pyrros Chaidos y Roman Oliynykov presentaron el diseño y los objetivos de Mithril - nuevo esfuerzo de investigación e ingeniería realizado por IOHK. Con Mithril se obtendrá un esquema de firma de umbral basado en staking que podrá implementarse como protocolo para resolver la sincronización de la cadena, el arranque del estado y los problemas de confianza en las aplicaciones blockchain.
La palabra Mithril es el nombre de un metal ficticio de la Tierra Media: una materia maleable, muy ligera pero fuerte como el “acero triple”, que no se empaña ni se oscurece. Así, el nombre simboliza la fuerza en términos de seguridad y un enfoque ligero con respecto al protocolo desarrollado.
Aprovechamiento del staking para la agregación de firmas
Iniciemos con algunos antecedentes para entender los beneficios de Mithril en el desarrollo de soluciones blockchain.
Al ser Cardano una blockchain proof-of-stake, el algoritmo de consenso selecciona aleatoriamente los nodos que se convertirán en productores de bloques en función del staking que posean. Para ciertos mensajes o acciones, es importante que un número determinado de participantes aporten sus firmas criptográficas. El protocolo de consenso establece la forma en que los nodos individuales evalúan el estado actual del sistema del libro mayor y tiene tres responsabilidades principales:
- ejecutar una comprobación del líder y decidir si debe producirse un bloque
- gestionar la selección de la cadena
- verificar los bloques producidos.
Para conseguir una mayor escalabilidad en un entorno blockchain, es imprescindible hacer frente a la complejidad de las operaciones críticas que dependen logarítmicamente del número de participantes. Es decir, cuanto mayor sea el número de participantes (que se suponen numerosos), más complejo resulta agregar eficientemente sus firmas. En el caso básico, para suponer una firma que hable para la mayoría de los participantes, cada uno de ellos debe firmar el mensaje individual correspondiente. Si bien esto es posible, es ineficiente en términos de escalabilidad y velocidad.
Considerando el tiempo que se tarda en validar un mensaje concreto, así como el uso de recursos durante la sincronización de la cadena, resulta esencial encontrar una solución que haga que la agregación de múltiples firmas sea rápida y eficiente sin comprometer las características de seguridad.
Diseño del protocolo Mithril
Mithril es un protocolo concebido para:
- aprovechar el staking para obtener una mayor eficiencia
- asegurar una configuración transparente sin precisar una mayor configuración de confianza
- aprovechar las compensaciones entre el tamaño y la eficiencia, lo que está garantizado por el diseño de componentes modulares.
Opera en un entorno público en el que los firmantes no tienen que interactuar con otros para producir una firma válida. El agregador combina todas las firmas en una sola y este proceso es logarítmico con respecto al número de firmas, lo cual da como resultado un rendimiento sublineal para la agregación de Mithril. Por ejemplo, aplicado a clientes de nodo completo como Daedalus, Mithril puede potenciar la sincronización de datos de nodo completo asegurando la velocidad y disminuyendo el consumo de recursos.
A fin de representar una fracción significativa del staking total, Mithril utiliza el ajuste de umbral basado en el stake. Esta conducta es diferente de la configuración estándar en la que se requiere un número determinado de participantes para validar un mensaje concreto. Con la configuración del umbral basado en el stake, el protocolo precisa una fracción del stake total para validar un mensaje determinado y generar una firma correcta.
Además, para certificar el consenso, Mithril se basa en un entorno sin confianza. Es decir, no incorpora ningún supuesto adicional de confianza. Se puede conseguir la certificación del consenso sin incluir ninguna suposición adicional, aparte de las que ya están presentes en la prueba de estacionamiento. Por ejemplo, puede funcionar en el marco de wallet-as-a-service [una wallet como servicio] y el cliente móvil utilizará el certificado obtenido de un nodo Mithril. Con una configuración de seguridad avanzada, este procedimiento es potencialmente más eficiente que la verificación de la cadena de bloques SPO.
Por último, para asegurar un rápido arranque del estado de la cadena, el esquema de firma ofrece la posibilidad de que diferentes partes interesadas validen sólo un punto de control determinado de la cadena. No es necesario que los interesados recorran todo el historial de transacciones del estado en cuestión, sino que simplemente tienen que recorrer los puntos de control para verificar que la participación final es válida. Eso resulta beneficioso para las aplicaciones de clientes ligeros, como los wallets ligeros, que necesitan trabajar rápidamente sin una sincronización completa de la cadena. Estas firmas también pueden ser útiles para la verificación de cuentas ligeras, o para la toma de decisiones de gobernanza de la criptomoneda.
Cómo funciona
Las firmas Mithril permiten una firma multipartita manteniendo un número de loterías individuales ( M ) y considerando que un mensaje es válido si ha sido firmado por un número de ganadores diferentes ( K ) sobre esas loterías. Por consiguiente, todo usuario intenta firmar el mensaje y luego pasa su firma a través de lo que se considera una función de lotería. Con esta función, los usuarios individuales pueden comprobar si sus firmas son elegibles como ganadoras de la lotería y emitirlas sin esperar. Esto es diferente de una configuración estándar, en la que los líderes de las ranuras tienen que esperar hasta que su ranura esté activa para participar. Cuando haya firmas de casos sobre diferentes loterías, pueden agregarse en una sola firma de Mithril.
Fases
La concepción de Mithril comprende tres fases:
Figura 1. Fases del funcionamiento de Mithril
Configuración de parámetros
Para establecer un protocolo Mithril, los usuarios han de:
- fijar la configuración del grupo donde se realizará la criptografía
- seleccionar el rango de índices M , que es el número de elecciones que van a realizar
- fijar el tamaño del quórum K , que es el número de ganadores de las elecciones que deben firmar una firma para que sea aceptada.
Es importante también suministrar una cadena de referencia para el sistema de pruebas. Ello es posible de forma transparente y no exige ninguna suposición de alta confianza.
Inicialización
En esta fase, los usuarios deberán actualizar la distribución de estados. Con ello, cada participante sabrá de qué staking es titular. A partir de ahí, cada participante es responsable de registrar sus claves . Esto puede ocurrir tanto dentro como fuera de la cadena.
Por último, los usuarios necesitan distribuir el staking y comprimir sus claves de prueba , lo que se hace utilizando el árbol de Merkle. Esta función permite que las firmas de Mithril se verifiquen contra un único hash que representa ese árbol de Merkle. Así, el tamaño del estado necesario para verificar una firma puede mantenerse bajo.
Operación
Al trabajar con la cadena, los usuarios pueden producir, agregar y verificar firmas Mithril. La producción de firmas requiere que los usuarios comprueben si la firma que han producido es realmente la ganadora de una de las loterías celebradas en paralelo. En caso de ser cierto, los usuarios difundirán sus firmas. Si existen suficientes firmas que respalden un determinado mensaje en diferentes loterías, pueden agregarse en una única firma Mithril. A continuación, puede ser difundida y verificada por cualquier persona utilizando únicamente la cadena de referencia del sistema de pruebas y el brevísimo árbol de Merkle de distribución de estacas.
A modo de ejemplo, un solo usuario podría generar una firma con Mithril de la siguiente manera:
Figura 2. Creación de la firma Mithril
Primero, un usuario comprobará la cantidad de staking que tiene y la pasará por una función de puntuación para obtener su umbral de puntuación T . A continuación, deberá intentar producir una firma candidata S . En cada índice, se evalúa si la firma del candidato que ha producido se corresponde con el mensaje que acaba de firmar. El número de índice de la lotería que están comprobando también debe producir un valor de puntuación que sea menor que su umbral T . Si es así, entonces la firma candidata que han producido ha ganado realmente la lotería en ese número de índice concreto. Si no lo es, harán el siguiente intento.
Tras probar todos los índices posibles, los usuarios tendrán potencialmente uno o más índices para los que su firma S es válida. Por cada uno de esos índices, puede emitir una firma individual consistente en su firma candidata, el número de índice para el que es válida y la prueba que verifica que su puntuación es consistente con la apuesta registrada.
Arquitectura de la red
Implementando Mithril en Cardano, podríamos representar la interacción del software de la siguiente manera:
Figura 3. Arquitectura de red de Mithril
Una representación de alto nivel del software alrededor de un operador de stake pool (SPO) incluye su conexión a la red peer-to-peer (P2P) de Cardano, la red P2P del nodo Mithril, y el cliente Mithril conectado al nodo dirigido por un SPO.
Un nodo Mithril en la plataforma SPO recurre a su blockchain verificada en el almacenamiento local y ejecuta el protocolo para producir certificados Mithril que se guardan en el almacenamiento Mithril. Los certificados Mithril producidos pueden sincronizarse de forma verificable en toda la red. Así, el SPO es capaz de compartir tanto la blockchain completa de Cardano como la lista de certificados Mithril válidos para ella. Cuando el cliente Mithril se conecta a la red, solicita una lista de certificados Mithril y sólo pide la cadena más larga del blockchain de Cardano.
En esta configuración también pueden participar varios SPO. A continuación, el cliente Mithril verificará que los certificados confirman plenamente la blockchain de Cardano obtenida. La totalidad del procedimiento es ligero y no exige la participación de recursos computacionales o de almacenamiento de red significativos. Es más, los procedimientos de sincronización completa de nodos de Cardano y de sincronización rápida con Mithril no son mutuamente excluyentes: pueden ejecutarse en paralelo. La sincronización rápida con Mithril será confirmada posteriormente por la sincronización de nodo completa.
Casos de uso
Veamos los casos de uso en los que resulta muy beneficiosa el uso de Mithril.
Mithril potencia la eficiencia de clientes de nodo completo o software como Daedalus. Asegura una sincronización rápida y segura de los datos del nodo completo, reduciendo significativamente el tiempo y los recursos necesarios, incluyendo la computación, los exchanges de red y el almacenamiento local, manteniendo las garantías de seguridad de alto nivel.
Mithril es también aplicable a los clientes ligeros y a las aplicaciones móviles, asegurando un enfoque sin confianza. Otro beneficio significativo es el uso de firmas Mithril para ejecutar sidechains [cadenas laterales]. La blockchain principal se puede conectar a diferentes sidechains que incluso pueden tener diferentes protocolos de consenso. Mithril tiene ventajas en la verificación ligera del estado de la blockchain por lo que los certificados pueden validar el estado actual de la blockchain específica así como la corrección de las transferencias hacia delante y hacia atrás de forma segura.
Para finalizar, las soluciones de gobierno y las de votación basadas en staking pueden utilizar Mithril independientemente de la complejidad del protocolo de votación. Las firmas de Mithril pueden emplearse para una verificación de recuento segura y ligera. Lo anterior también es útil en la gobernanza cuando las partes interesadas pasan por un proceso de toma de decisiones descentralizado y proporcionan el resultado final de forma fácil y verificable.
Implementaciones
Ya hay varias empresas que se interesan por la implementación de Mithril dentro de sus soluciones blockchain. Galois, una empresa de I+D avanzada centrada en métodos formales, criptografía y hardware, implementará el primer prototipo de Mithril basado en la investigación realizada por IOHK. Galois implementará Mithril en el lenguaje de programación Rust debido a sus rápidas características de creación de prototipos. Planean presentar primero firmas más pequeñas con BulletProofs, seguidas de implementaciones listas para la producción, y finalmente pruebas formales de corrección.
Idyllic Vision es otra compañía enfocada en la construcción de un protocolo de identidad autosuficiente basado en pruebas de conocimiento cero, un sistema de gestión de credenciales para organizaciones y un wallet móvil para usuarios finales que soporta la interoperabilidad entre diversas soluciones de la sociedad. Tienen previsto implementar la prueba de concepto del nodo Mithril. A lo largo de los próximos meses, iniciarán la creación de un proyecto de arquitectura de la solución, definiendo una serie de componentes del sistema que deberán desarrollarse e integrarse orgánicamente en la infraestructura existente. Ello comprende la integración con la criptoteca Mithril y el nodo Cardano, así como una capa de red para la comunicación entre nodos. Los resultados de esta fase deberían integrarse en Cardano para permitir un rápido arranque del nodo y el soporte de funcionalidades adicionales como clientes ligeros, entre otras.
Si desea conocer más detalles, lea el documento de investigación de Mithril y vea la presentación de la Cumbre Cardano.