Mithril es la construcción criptográfica que permite a clientes livianos (como las billeteras que no son nodos), obtener datos de la blockchain, sin descargar todo su contenido. Sincronizar la blockchain es una operación intensiva, porque es una base de información que se encuentra en constante crecimiento.
El principal problema, es extraer solo cierta parte de la información de la red, para un cliente liviano (sin descargar toda la blockchain completa).
IOHK se encuentra desarrollando esta innovación para la blockchain de Cardano.
Las siguientes propiedades son cruciales para el esquema:
- Debe contener el comportamiento de umbral de una firma criptográfica, que significa que es posible producir una firma válida, solo si se lee una cierta relación de tenedores de fondos, expresados en términos de delegación.
- Como una multifirma, los fragmentos de la pre-firma pueden ser independientemente verificados, y luego agregados públicamente a la firma final.
- La firma final, de un tamaño constante, es verificable logarítmicamente, dependiente del número total de tenedores de monedas.
¿Cómo funciona?
Los tenedores de criptomonedas incluirán las llaves Mithril juntamente con las llaves criptográficas básicas (en sus billeteras). La blockchain contendrá la información de UTXO (salidas no gastadas), la información de las cuentas registradas, y las llaves Mithril.
En intervalos regulares, los nodos completos colectarán los UTXO, y probarán dónde pueden producir una pre-firma. Esta prueba es esencial, ya que no todos los tenedores son elegibles para emitir la firma en un mensaje determinado, sólo un conjunto será elegido al azar. Solo cuando exista un suficiente número de fragmentos de pre-firmas, que son emitidos por aquellos elegidos, es posible agregar dichos fragmentos a la firma final «Sigma».
Llamaremos a esto un «punto de control», que puede ser verificado con la asignación previa de UTXOs, y así todo el camino hacia atrás, hasta el bloque génesis. Lo importante de este mecanismo es que estos «puntos de control» no necesitan de confianza adicional, más allá del protocolo propio de la blockchain.
En este sentido, el cliente liviano solo debe verificar la secuencia de esos «puntos de control» sin necesidad de confianza. Comenzando por el bloque génesis, existe una secuencia de «puntos de control» que le permiten al cliente liviano verificar las transacciones hasta el momento presente, y así hay solo un pequeño número de bloques que deben ser verificados.