MPC e Blockchain: segurança e privacidade em foco
Como MPC soluciona questões de segurança e privacidade em protocolos blockchain? Quais as vantagens de aplicar a tecnologia blockchain nas transações com criptografia de senha mestra?
EM RESUMO: MPC ou SMPC também é conhecida como criptografia de senha mestra, ou simplesmente “computação segura entre várias partes”. O que é Computação Multipartidária [MPC] afinal? Quais os princípios básicos da Computação Multipartidária? Diferenças entre MPC e Multi-Sig. MPC em blockchains. Como a tecnologia blockchain pode ajudar nas transações de MPC? Como funciona um sistema MPC-Blockchain?
O que é Multi-Party Computation (MPC)?
Quando me perguntam o que é MPC, há dois conceitos que gosto de mencionar. O primeiro, mais prático, é:
Pense em MPC como um grupo de pessoas solucionando um quebra-cabeça sem revelar as peças do jogo, onde todos colaboram para o resultado final, sem expor seu conteúdo / dados individuais.
Um segundo conceito de MPC, um pouco mais técnico, é:
Computação Multipartidária é, basicamente, um protocolo criptográfico que garante a distribuição do processo de computação entre várias partes, com recursos de aumento de segurança.
A MPC / SMPC garante que qualquer das partes envolvidas numa transação não consigam acessar os dados umas das outras.
Uma característica marcante da MPC é o fato dele possibilitar a análise conjunta de dados entre um grupo de participantes sem que eles precisem compartilhar seus dados entre si.
Ou seja, a MPC garante que os inputs (entradas) de cada parte sejam mantidas em sigilo, sendo mais simplificado que Zero Knowledge Proof (ZKP) para determinados casos de uso - comentarei sobre as diferenças entre ZKP vs. MPC em outro artigo.
Continue a leitura abaixo.
Princípios básicos da Computação Multipartidária
As soluções de MPC devem aderir a dois princípios principais:
Privacidade da entrada
Os dados privados mantidos pelas partes que colaboram para criar um resultado combinado não podem ser inferidos ou deduzidos.
Correção
O resultado obtido é sempre correto e as partes não devem ser capazes de influenciar um resultado incorreto.
A MPC trabalha com a premissa de que todas as partes envolvidas podem se comunicar em um canal seguro e confiável. Cada parte troca uma versão criptografada de sua entrada privada, que passa por operações computacionais para criar a saída desejada.
Os sistemas MPC também precisam considerar que certas partes podem ser desonestas (adversários) e a complexidade da implementação é diretamente proporcional ao tipo de adversários (parcial ou totalmente desonestos) esperados em um caso de uso específico.
A demanda por MPC
A demanda por MPC tem aumentado profundamente nos últimos tempos em vários setores.
À medida que a onda de transformação digital toma conta do mundo, também crescem os casos em que temos que fornecer dados pessoais para utilizar serviços on-line.
Por isso, a demanda por MPC tem aumentado consideravelmente nos últimos anos em vários setores.
Nesse passo, algumas das principais aplicações de computação multipartidária referem-se à privacidade, ausência de ponto único de falha e segurança.
Privacidade
A MPC soluciona o problema da colaboração entre diferentes partes e, ao mesmo tempo, preserva a privacidade de seus dados individuais.
Um dos exemplos de tais casos de uso fica evidente na comparação do DNA de uma pessoa com um banco de dados de DNA de pacientes com câncer. Tal comparação pode ajudar a descobrir se uma pessoa está em um grupo de alto risco para um tipo específico de câncer – descoberta que pode trazer benefícios consideráveis à saúde e à sociedade.
Contudo, o DNA de uma pessoa é um dado altamente sensível e não deve ser revelado em nenhum lugar.
Neste cenário, a utilização de um protocolo MPC para revelar a categoria de câncer mais próxima do DNA de uma pessoa, também preserva a privacidade, garantindo que as informações relacionadas ao DNA da pessoa permaneçam sigilosas, revelando apenas a categoria do câncer.
Inexistência de um ponto único de falha
A proteção de chaves criptográficas contra o uso indevido e o roubo se qualifica como uma das principais aplicações da Computação Multipartidária.
MPC garante que as chaves criptográficas nunca sejam expostas em nenhuma instância, protegendo-as via recursos de software.
Ora, tal possibilita novas alternativas às soluções de hardware convencionais, que possuem inúmeros desafios operacionais em “multi clouds” modernos e ambientes híbridos.
Segurança
O diferencial da MPC está, em grande parte, na sua capacidade de garantir a integridade e inviolabilidade dos dados pessoais.
Nas redes atuais, os mecanismos de defesa têm o zero-trust (confiança zero) como padrão.
Aqui, zero-trust significa basicamente que os invasores estão presentes na rede e que tudo está associado a possíveis vulnerabilidades.
Neste cenário, a abordagem mais comum de defesa envolve o compartilhamento secreto de dados entre dois ou diferentes sites, introduzindo-se o MPC para garantir o trabalho com os dados sem a necessidade de reuni-los em uma única plataforma.
Dessa forma, o método de compartilhamento secreto usando MPC garante que os invasores não consigam descobrir nada sem reunir todos os compartilhamentos.
Perceba que com MPC, surge uma abordagem completamente nova em relação à segurança. Agora, os invasores precisam violar várias linhas de defesa diferentes para conseguir violar a segurança. Com MPC, não é mais preciso que cada entidade individual proteja seus próprios dados sem precisar desenvolver um mecanismo impenetrável para uma única máquina que abrigue dados confidenciais.
Agora que já vimos as principais aplicações de MPC, muitos podem estar se perguntando se a computação multipartidária é mais segura do que a abordagem de carteiras digitais com várias assinaturas - as famosas Multi-Sigs.
Como a única maneira de descobrir qual é a melhor opção é comparar as duas, abordei aqui as principais diferenças entre a computação multipartidária e as carteiras com várias assinaturas.
Computação Multipartidária em Blockchains
Vivemos em um mundo de incertezas, o que exige a necessidade de nos prepararmos para vários cenários hipotéticos. O mesmo acontece quando tentamos proteger nossas soluções de TI – temos que pensar em diferentes possibilidades e garantir a implementação de mecanismos eficazes.
Blockchain é uma tecnologia que traz alguns recursos de segurança inerentes para garantir a integridade das transações e dos dados relacionados. Cada protocolo blockchain usa um mecanismo de consenso diferente para garantir a inviolabilidade dos dados registrados de forma compartilhada.
No entanto, as soluções blockchain dependem muito da infraestrutura de chaves público-privadas, bem como da criptografia para autenticar e tratar com segurança as transações enviadas por diferentes partes. E isso levanta algumas questões interessantes:
O que acontece se suas chaves privadas forem roubadas e usadas indevidamente para assinar transações de blockchain? E se o hacker se passar por sua identidade e publicar transações no blockchain em seu nome?
E se você quiser participar de uma transação, mas não quiser revelar ou compartilhar informações confidenciais que representem sua identidade?
Neste contexto, a computação multipartidária (MPC) pode ser um dos caminhos para solucionar questões de segurança e privacidade envolvendo protocolos blockchain.
MPC auxilia na proteção e melhoria da privacidade de soluções blockchain
A computação multipartidária (MPC) permite que um grupo de atores combine um conjunto de entradas individuais e privadas para produzir um único resultado público que pode ser usado para uma ação coletiva ou tomada de decisões do grupo.
Assim, podemos utilizar MPC, por exemplo, quando três amigos querem saber o saldo médio de BTC mantido em suas carteiras, sem revelar informações adicionais.
No caso, cada um deles divide suas informações em partes e usa uma função criptográfica para mascarar suas entradas privadas.
A saída pública (output) seria um grupo de somas usadas para calcular a média.
Assim como a tecnologia blockchain transformou o espaço de design para sistemas descentralizados, a MPC cria novos recursos para a computação conjunta. Veja aqui.
Como MPC pode ser aplicada a soluções blockchain?
Alguns dos principais casos de uso em que a MPC pode ajudar a elevar a segurança e a privacidade das soluções baseadas em blockchain são:
Proteção da identidade em wallets
Aprovação de transações de alto valor envolvendo multipartes
Privacidade e confidencialidade das transações
Vejamos um a um destes casos.
Proteção da identidade em wallets
As transações em blockchain são assinadas pelos usuários finais usando suas chaves privadas, que representam a identidade da pessoa ou entidade que está enviando a transação.
Nesse passo, a perda ou o roubo da chave privada pode ter um impacto enorme. E é aí que o MPC pode ajudar, fragmentando as chaves e reconstruindo-as dinamicamente ao combinar a entrada de todas as partes.
Portanto, mesmo que uma das partes seja comprometida, a transação de blockchain não poderá ser executada usando apenas esse fragmento. Essa abordagem é mais segura do que usar o HSM (Hardware Security Module), que é usado para armazenar e proteger chaves privadas.
Aprovação de transações de alto valor envolvendo multipartes
Há inúmeros cenários que envolvem transações de alto valor em que várias partes precisam fornecer seu consentimento/aprovação antes da execução da transação.
Nestes casos, MPC pode ser usada em conjunto com esse fluxo de trabalho de aprovação para garantir que a saída construída a partir da entrada privada de cada participante seja necessária para processar a transação em uma blockchain.
E isto pode ser ampliado ainda mais com uma abordagem “M de N”, onde pelo menos “M participantes” de um total de N precisam fornecer sua entrada privada.
Uma alternativa a esta abordagem “M de N” é usar assinaturas Multisig (vários endereços de assinatura), que estão disponíveis em alguns protocolos blockchain.
Todavia, a Computação Multipartidária (MPC) é uma solução totalmente baseada em software que não depende de uma plataforma.
Privacidade e confidencialidade das transações
Normalmente, os protocolos blockchain dependem da transmissão de transações para todos os nodes participantes para obter consenso e distribuir a cópia do livro-razão (ledger).
Em certos cenários, isso envolve dados e/ou cálculos confidenciais, em que esse modelo pode apresentar desafios. Essas transações podem ser descarregadas da blockchain e processadas por meio do MPC, e o recibo da transação é registrado na blockchain como prova, que pode ser verificada a qualquer momento.
Dessa forma, a MPC fornece um modelo que assegura maior privacidade e segurança às soluções de blockchain.
Benefícios do uso da tecnologia blockchain em Multi-party Computation
A implementação da MPC usando blockchain pode garantir que todas as transações da MPC sejam registradas como fonte de verdade com registro de data e hora na blockchain.
A tecnologia blockchain, por sua vez, também introduz a equidade como o resultado calculado pelo MPC que pode ser publicado no livro-razão (ledger) compartilhado, garantindo que todos os participantes o recebam simultaneamente.
Como nada melhor que um exemplo para compreender algo… Vamos considerar um caso de uso real onde em um leilão com lances sigilosos ou “selados” (lacrados), cada parte licitante pode dar vários lances até o final do leilão.
Imagine agora que cada lance contenha informações confidenciais, como o valor do lance, que não podem ser reveladas aos outros participantes durante, ou mesmo após, o final do leilão.
Pois bem, nos últimos anos, a MPC tem sido utilizada para resolver esse tipo de caso de uso junto com a tecnologia blockchain, para alcançar maior justiça e transparência ao caso de uso.
Agora que você já entendeu como MPC aprimora soluções blockchain e quais são as vantagens de se utilizar a tecnologia blockchain em transações MPC, vejamos como funciona a sinergia entre a Computação segura entre várias partes (MPC) e a tecnologia blockchain.
Como funciona um “sistema MPC-blockchain”
Partindo do exemplo do leilão com lances sigilosos que vimos no tópico anterior, um sistema que utiliza blockchain e MPC funciona da seguinte forma:
Todos os participantes e o módulo MPC serão membros de uma rede blockchain
Seja como nodes individuais, seja interagindo com a plataforma blockchain por meio de seus aplicativos de carteira e identidade dedicados.
O módulo MPC gerará uma série de caracteres aleatória (string) para cada participante
E esta string será criptografada – utilizando a chave pública de cada participante -, registrada na blockchain.
Cada participante recebe a “string” criptografada por meio de eventos de contrato inteligente.
Cada participante poderá descriptografar sua “string” usando sua chave privada e, em nosso exemplo, a utilizará para mascarar o valor do lance.
O valor do lance mascarado será criptografado usando a chave pública da MPC e será registrado na blockchain
Com isto, a ação de envio do lance é marcada com data e hora, e registrada de forma imutável na blockchain.
O módulo MPC recebe os lances criptografados de todos os participantes por meio de eventos de contrato inteligente.
Ele realiza cálculos para determinar o lance mais alto até o horário limite.
O módulo MPC cria uma chave criptografada combinando a cadeia de criptografia de cadaparticipante.
Essa chave de criptografia é usada para codificar o resultado do leilão.
O resultado codificado do leilão será recebido pelos participantes em tempo real por meio de contratos inteligentes.
Todos os participantes que tiverem as cadeias de caracteres criptografadas anteriores publicadas na blockchain poderão decodificar o resultado do leilão.
A sequência de ações acima garante que todas as atividades relacionadas ao leilão sejam registradas na blockchain para total transparência.
O módulo MPC, por sua vez, garante que o valor confidencial do lance não seja revelado, e que somente os participantes autorizados pela blockchain possam fazer transações, evitando fraude e eventual utilização maliciosa.
Takeaway
MPC e blockchain são tecnologias que têm recursos inerentes de suporte a um ecossistema distribuído e multipartidário (multipartes).
A sinergia entre elas pode nos possibilitar um mundo com transações mais seguras, privadas e transparentes.
Enquanto MPC oferece determinados recursos de segurança e privacidade que estão ausentes em alguns dos protocolos de blockchain, a tecnologia blockchain oferece um campo de jogo nivelado no qual as próprias transações de MPC adquirem uma representação imutável.
Conquanto MPC ter evoluído muito nos últimos anos como suporte a cálculos eficientes, e ter sido elogiada em recente relatório da empresa de pesquisa Gartner, a conscientização de seu verdadeiro potencial e adoção em larga escala ainda estão longe de acontecer.
✨Se você encontrou valor neste post, não se esqueça de curtir e / ou compartilhar.
Deseja acompanhar notícias e conceitos sobre Web3, blockchain e sua conexão com novas tecnologias, não deixe de assinar esta newsletter.
Conhecimento é poder!! Nos vemos em breve!