Mithril: uma blockchain mais forte e mais leve para melhor eficiência
Um novo protocolo desenvolvido pela IOHK atua como um esquema de assinatura de limite baseado em stake, permitindo a alavancagem de uma stake transparente, segura e leve
28 de outubro de 2021 - Olga Hryniuk - 10 minutos de leitura
No Cardano Summit 2021, os pesquisadores da IOHK Pyrros Chaidos e Roman Oliynykov apresentaram o design e os objetivos do Mithril – novo esforço de pesquisa e engenharia realizado pela IOHK. O Mithril fornecerá um esquema de assinatura de limite baseado em participação que pode ser implementado como o protocolo para resolver problemas de sincronização de cadeia, inicialização de estado e confiança em aplicativos blockchain.
Mithril é o nome usado para um metal fictício na Terra-média – um material maleável, muito leve, mas forte como ‘aço triplo’, que não mancha nem escurece. Assim, o nome simboliza força em termos de segurança e uma abordagem leve em relação ao protocolo desenvolvido.
Aproveitando a participação para agregação de assinatura
Vamos começar com algumas informações básicas para entender os benefícios do Mithril para o desenvolvimento de soluções blockchain.
Cardano é uma blockchain de prova de participação, portanto, o algoritmo de consenso seleciona aleatoriamente os nós para se tornarem produtores de blocos de acordo com a participação que eles possuem. Para determinadas mensagens ou ações, é importante que um determinado número de partes interessadas forneça suas assinaturas criptográficas. O protocolo de consenso determina como os nós individuais avaliam o estado atual do sistema de contabilidade e tem três responsabilidades principais:
-
realizar uma verificação de líder e decidir se um bloco deve ser produzido
-
lidar com seleção de cadeia
-
verificar os blocos produzidos.
Para obter maior escalabilidade em uma configuração de blockchain, é essencial abordar a complexidade das operações críticas que dependem logaritmicamente do número de participantes. Isso significa que quanto maior o número de participantes (que se supõe serem numerosos), mais complexo se torna a agregação eficiente de suas assinaturas. Em um cenário básico, para presumir uma assinatura que fale pela maioria das partes interessadas, todas as partes precisam assinar a mensagem individual apropriada. Embora isso seja possível, é ineficiente em termos de escalabilidade e velocidade.
Dado o tempo que leva para validar uma mensagem específica e o uso de recursos durante a sincronização em cadeia, é vital fornecer uma solução que torne a agregação de várias assinaturas rápida e eficiente sem comprometer os recursos de segurança.
Projeto de protocolo do Mithril
Mithril é um protocolo projetado para:
-
alavancar participação para obter maior eficiência
-
garantir uma configuração transparente sem exigir configurações de confiança aumentadas
-
aproveite as compensações entre tamanho e eficiência, o que é garantido pelo design de componentes modulares.
O Mithril funciona em um ambiente público onde os signatários não precisam interagir com outros signatários para produzir uma assinatura válida. O agregador combina todas as assinaturas em uma, e esse processo é logarítmico em relação ao número de assinaturas, o que resulta em um desempenho sublinear para a agregação do Mithril. Por exemplo, quando aplicado a clientes de nó completo como Daedalus, o Mithril pode aumentar a sincronização de dados de nó completo, garantindo velocidade e diminuindo o consumo de recursos.
Para representar uma fração significativa da participação total, o Mithril usa a configuração de limite baseada em participação. Esse comportamento é diferente da configuração padrão em que o número determinado de participantes é necessário para validar uma mensagem específica. Na configuração de limite baseado em stake, o protocolo requer uma fração do stake total para validar uma determinada mensagem para gerar uma assinatura correta.
O Mithril também certifica o consenso em um ambiente sem confiança. Isso significa que não inclui nenhuma suposição de confiança adicional. É possível obter a certificação por consenso sem incluir quaisquer premissas adicionais, além daquelas já presentes na prova de participação. Por exemplo, ele pode funcionar dentro da carteira como serviço, e o cliente móvel usará o certificado obtido de um nó Mithril. Com configurações de segurança avançadas, esse procedimento é potencialmente mais eficiente do que a verificação de blockchain SPO.
Finalmente, para garantir a rápida inicialização do estado da cadeia, o esquema de assinatura permite que diferentes partes interessadas validem apenas um determinado ponto de verificação da cadeia. As partes interessadas não precisam passar por todo o histórico de transações de um determinado estado – elas simplesmente precisam passar pelos pontos de verificação para verificar se a aposta final é válida. Isso é benéfico para aplicativos de clientes leves, como carteiras leves, que precisam trabalhar rapidamente sem uma sincronização de cadeia completa. As assinaturas do mithril também podem ser úteis para verificação leve de contagem ou tomada de decisões de governança de criptomoedas.
Como funciona
O Mithril permite uma assinatura multipartidária mantendo um número de loterias individuais (M) e considerando uma mensagem válida se tiver sido assinada por vários ganhadores diferentes (K) nessas loterias. Cada usuário, portanto, tenta assinar a mensagem e depois passa sua assinatura pelo que é considerado uma função de loteria. Esta função permite que usuários individuais verifiquem se suas assinaturas são elegíveis como ganhadoras da loteria e as imprimam sem esperar. Isso é diferente de uma configuração padrão, em que os líderes de slot precisam esperar até que seu slot esteja ativo para participar. Uma vez que haja assinaturas de casos em diferentes loterias, elas podem ser agregadas em uma única assinatura do Mithril.
Fases
O design do Mithril envolve três fases:
Figura 1. Fases da operação do Mithril
Configuração do parâmetro
Para configurar um protocolo Mithril, os usuários precisam:
-
ajustar a configuração do grupo onde a criptografia ocorrerá
-
selecione o intervalo de índice M, que é o número de eleições que eles realizarão
-
defina o tamanho do quórum K, que é o número de vencedores da eleição que precisam assinar uma assinatura para que ela seja aceita.
Também é importante fornecer uma string de referência para o sistema de prova. Isso é possível de forma transparente e não requer nenhuma suposição de alta confiança.
Inicialização
Durante esta fase, os usuários devem atualizar a distribuição de estado. Isso permite que todos os interessados saibam de qual participação eles estão mantendo. Em seguida, cada stakeholder é responsável por registrar suas chaves. Isso pode acontecer dentro ou fora da cadeia.
Por fim, os usuários precisam distribuir o stake e compactar suas chaves de teste, o que é feito usando a árvore de Merkle. Esta função permite que as assinaturas do Mithril sejam verificadas em relação a um único hash que representa essa árvore Merkle. Assim, o tamanho do estado necessário para verificar uma assinatura pode ser mantido baixo.
Operação
Ao trabalhar com a cadeia, os usuários podem produzir, agregar e verificar as assinaturas do Mithril. A produção de assinaturas envolve a tentativa dos usuários de verificar se a assinatura que eles produziram é realmente um ganhador em uma das loterias realizadas em paralelo. Se verdadeiro, os usuários transmitirão suas assinaturas. Se houver assinaturas suficientes apoiando uma mensagem específica em diferentes loterias, elas podem ser agregadas em uma única assinatura Mithril. Ele pode então ser transmitido e verificado por qualquer pessoa usando apenas a string de referência para o sistema de prova e o hash da árvore Merkle muito curto de distribuição de participação.
Por exemplo, um único usuário pode criar uma assinatura com o Mithril da seguinte forma:
Figura 2. Criação de assinatura do Mithril
Primeiro, um usuário verificará a quantidade de participação que possui e passará por uma função de pontuação para obter seu limite de pontuação T. Em seguida, ele tentará produzir uma assinatura de candidato S. Para cada índice, ele avaliará se a assinatura do candidato produzido emparelhado com a mensagem que acabou de assinar. O número de índice da loteria que eles estão verificando também deve produzir um valor de pontuação menor que o limite T. Se isso for verdade, então a assinatura do candidato que eles produziram realmente ganhou na loteria nesse número de índice específico. Caso contrário, eles farão a próxima tentativa.
Depois de tentar todos os índices possíveis, os usuários terão potencialmente um ou mais índices para os quais sua assinatura S é válida. Para cada um desses índices, eles podem emitir uma assinatura individual que consiste em sua assinatura de candidato, o número do índice para o qual é válido e a prova que verifica se sua pontuação é consistente com a participação registrada.
Arquitetura de rede
Implementando o Mithril na Cardano, podemos representar a interação do software da seguinte forma:
Figura 3. Arquitetura da rede Mithril
Uma representação de alto nível de software em torno de um operador de pool de participação (SPO) inclui sua conexão com a rede ponto a ponto Cardano (P2P), a rede P2P do nó Mithril e o cliente Mithril conectado ao nó executado por um SPO.
O nó Mithril na plataforma SPO acessa seu blockchain verificado no armazenamento local e executa o protocolo para produzir certificados Mithril que são mantidos no armazenamento Mithril. Os certificados Mithril produzidos podem ser sincronizados de forma verificável em toda a rede. Assim, o SPO pode compartilhar o blockchain Cardano completo e a lista de certificados Mithril válidos para ele. Quando o cliente Mithril se conecta à rede, ele solicita uma lista de certificados Mithril e solicita apenas a cadeia mais longa do blockchain Cardano.
Vários SPOs também podem participar de tal configuração. O cliente Mithril verificará então se os certificados confirmam totalmente o blockchain Cardano obtido. Todo o procedimento é leve e não exigirá o envolvimento de armazenamento de rede significativo ou recursos computacionais. Além disso, a sincronização completa do nó Cardano e a sincronização rápida com os procedimentos do Mithril não são mutuamente exclusivas – elas podem ser executadas em paralelo. A sincronização rápida do Mithril será posteriormente confirmada pela sincronização completa do nó.
Casos de uso
Vamos dar uma olhada nos casos de uso em que a aplicabilidade do Mithril é altamente benéfica.
O Mithril aumenta a eficiência de clientes de nó completo ou aplicativos como Daedalus. Ele garante a sincronização rápida e segura de todos os dados do nó, melhorando significativamente o tempo e os recursos necessários, incluindo computação, troca de rede e armazenamento local, mantendo garantias de segurança de alto nível.
O Mithril também é aplicável a clientes leves e aplicativos móveis, garantindo uma abordagem sem confiança. Outra vantagem significativa é usar assinaturas de Mithril para executar sidechains. A blockchain principal pode se conectar a diferentes sidechains que podem até ter diferentes protocolos de consenso. O Mithril tem benefícios na verificação leve do estado do blockchain e, portanto, os certificados podem validar o estado atual da blockchain específico, bem como a correção das transferências para frente e para trás de maneira segura.
Por fim, aplicativos de votação baseados em participação e soluções de governança podem usar o Mithril, independentemente da complexidade do protocolo de votação. Assinaturas de mithril podem ser utilizadas para verificação de contagem segura e leve. Isso também é útil na governança quando as partes interessadas passam por um processo decisório descentralizado e fornecem o resultado final de maneira fácil e verificável.
Implementações
Várias empresas já estão interessadas na implementação do Mithril em suas soluções blockchain. A Galois, uma empresa de pesquisa e desenvolvimento avançada focada em métodos formais, criptografia e hardware, implementará o primeiro protótipo do Mithril com base na pesquisa feita pela IOHK. Galois implementará o Mithril na linguagem de programação Rust devido aos seus recursos de prototipagem rápida. Eles planejam primeiro apresentar assinaturas menores com BulletProofs, seguidas por implementações prontas para produção e, finalmente, provas formais de correção.
A Idyllic Vision é outra empresa focada na construção de um protocolo de identidade auto-soberano baseado em provas de conhecimento zero, um sistema de gerenciamento de credenciais para organizações e uma carteira móvel para usuários finais que suporte a interoperabilidade entre diversas soluções da sociedade. Eles estão planejando implementar a prova de conceito do nó Mithril. Nos meses seguintes, eles começarão a criar um plano de arquitetura de solução, definindo vários componentes do sistema que devem ser desenvolvidos e integrados organicamente à infraestrutura existente. Isso inclui integração com a biblioteca de criptografia Mithril e o nó Cardano e uma camada de rede para comunicação entre nós. O resultado desta fase deve ser integrado ao Cardano para possibilitar o bootstrap rápido do nó e suporte para funcionalidades extras como clientes leves entre outros.
Para saber mais, leia o artigo de pesquisa do Mithril e assista à apresentação da Cardano Summit.