Os esquemas de assinatura criptográfica são um componente fundamental das redes de criptomoedas que verificam a integridade e o não repúdio das mensagens de transação na rede. Eles empregam criptografia assimétrica e assumem inúmeras formas.
Os tipos de assinaturas criptográficas (também conhecidas como assinaturas digitais) aplicadas em uma criptomoeda específica são normalmente selecionados por certas vantagens que oferecem. Desde o início, eles têm sido continuamente otimizados para melhorar sua eficiência e segurança.
As criptomoedas geraram uma nova e vibrante aplicação de assinaturas digitais, e seu desenvolvimento futuro certamente acompanhará mais avanços no campo da criptografia.
Contents
Uma breve história
A primeira concepção de algoritmos de assinatura digital é creditada a Whitfield Diffie e Martin Hellman com base em unidirecional funções de alçapão que eles cunharam em seu 1976 papel. Funções de alçapão são amplamente utilizadas em criptografia e são matematicamente compostas de forma que sejam fáceis de calcular em uma direção e extremamente difíceis de computar na direção reversa.
Rivest, Shamir e Adleman posteriormente criaram o primeiro algoritmo de assinatura digital primitivo conhecido como RSA. RSA é o algoritmo criptográfico mais onipresente usado hoje e domina a transmissão segura de dados pela Internet. Logo depois, esquemas de assinatura digital proeminentes, como a assinatura de Lamport e Árvores Merkle foram desenvolvidos, com Merkle Trees funcionando de forma semelhante como um componente central de redes blockchain.
Leia: O que é uma árvore Merkle?
As assinaturas digitais usam criptografia de chave pública / privada, onde um par de chaves é usado como parte de um algoritmo para enviar mensagens privadas por canais não seguros. O objetivo é obter a autenticidade da mensagem por meio da chave pública, verificando se a mensagem veio da chave privada correspondente. A criptografia é onde apenas o detentor da chave privada pode descriptografar a mensagem enviada e criptografada com a chave pública. O não repúdio é outro componente vital, o que significa que um signatário não pode negar que assinou uma transação e é matematicamente impossível para um terceiro falsificar uma assinatura.
Normalmente, existem três componentes para um algoritmo de assinatura digital:
- Geração de Chave
- Algoritmo de Assinatura
- Algoritmo de verificação de assinatura
A geração de chaves é vital para a integridade da assinatura digital, uma vez que produz a chave privada e a chave pública correspondente. Em criptomoedas, a chave privada precisa ser gerada aleatoriamente para garantir que ninguém mais tenha acesso à carteira correspondente além do usuário.
O algoritmo de assinatura produz uma assinatura dada uma mensagem (ou seja, transação) e a chave privada.
O algoritmo de verificação de assinatura verifica a autenticidade da assinatura quando recebe a mensagem, a chave pública e a assinatura digital
Depois que o destinatário de uma transação verifica a autenticidade de uma mensagem, ele pode verificar a integridade executando a mensagem por meio do mesmo algoritmo de hash que o remetente. Existem inúmeros esquemas de assinatura criptográfica disponíveis hoje, então vamos dar uma olhada em alguns dos esquemas mais comuns e alguns dos mais avançados no horizonte.
Assinaturas Lamport
Assinaturas Lamport foram uma das primeiras assinaturas digitais e são especificamente chaves de uso único que não podem ser reutilizadas. Inventado por Leslie Lamport em 1979, as assinaturas Lamport podem ser protegidas usando qualquer função de alçapão unilateral, tornando-os extremamente flexíveis em seu design. Normalmente, eles usam funções hash, e sua segurança depende diretamente da segurança da função hash.
As assinaturas Lamport podem ser construídas a partir de funções hash criptográficas avançadas, como o hash Skein ou Keccack resistente ao quantum. Uma vez que podem acomodar grandes funções hash como Skein e Keccack, os Lamports são ideais para a resistência quântica de estágio inicial, embora o potencial dinâmico dos computadores quânticos e os avanços resultantes de seu surgimento sejam quase impossíveis de prever.
Algoritmo de assinatura digital RSA
O padrão atual da Internet para criptografia de mensagens, quebrando o algoritmo RSA, é conhecido como o Problema RSA. Sua função de alçapão unilateral é baseada no conceito de fatoração primária.
Leia: O que é criptografia RSA?
RSA é mais complicado do que outros algoritmos de assinatura digital e é usado para criptografia em massa, em vez de criptografar diretamente os dados do usuário. No entanto, continua sendo de longe o algoritmo de assinatura digital mais popular usado hoje.
Algoritmo de assinatura digital de curva elíptica (ECDSA)
ECDSA é usado em muitas criptomoedas e é o algoritmo de assinatura digital de escolha para Bitcoin até sua transição pendente para assinaturas Schnorr. ECDSA é mais eficiente do que a criptografia RSA devido ao seu tamanho de chave muito menor. Esta é uma escolha ideal para blockchains que precisam reduzir o inchaço do blockchain e têm lutado com tamanhos crescentes de clientes completos.
Leia: O que é criptografia de curva elíptica?
ECDSA se baseia na noção de multiplicação de pontos para fornecer a funcionalidade de alçapão unilateral necessária para uma assinatura digital. A criptografia para ECDSA é baseada em uma função algébrica e sua curva sobre um gráfico finito. Boa aleatoriedade é essencial para qualquer algoritmo de assinatura digital, mas é particularmente crucial com ECDSA.
Uma chave ECDSA de 384 bits é considerada segura o suficiente para a maioria das informações confidenciais do governo pela NSA.
Assinatura do Anel
Uma assinatura de anel é um tipo de assinatura digital que ofusca o assinante real de uma transação misturando sua assinatura em um grupo (anel) de outras assinaturas válidas. O design deve torná-lo de forma que seja computacionalmente inviável determinar quem é o verdadeiro signatário da transação.
Leia: O que são assinaturas de anel?
As assinaturas de anel são usadas nas moedas CryptoNote, incluindo Monero. Monero usa assinaturas de anel pegando uma chave da conta do remetente da transação e misturando-a com outras chaves públicas para que todos os membros do anel sejam iguais e válidos. As chaves públicas podem ser usadas várias vezes para várias assinaturas de anel na rede. No Monero, eles são projetados para aumentar a fungibilidade do token XMR, garantindo que as saídas da transação não sejam rastreáveis.
Existem vários tipos de assinaturas de anel. As assinaturas de anel em Monero são baseadas em assinaturas de anel rastreáveis antes de ser otimizado para se tornar Transações confidenciais de anel, que é a sua iteração atual em Monero.
Assinaturas Schnorr
Amplamente consideradas as melhores assinaturas digitais pelos criptógrafos, as assinaturas Schnorr têm inúmeras vantagens sobre outros métodos. As assinaturas Schnorr foram possibilitadas para integração no Bitcoin com Testemunha segregada e há muito tempo é uma das principais prioridades entre os desenvolvedores de Bitcoin para substituir o ECDSA.
As assinaturas Schnorr são conhecidas por sua elegante simplicidade e eficiência. A função de alçapão que protege assinaturas Schnorr é baseada em problemas de logaritmo discreto. Como outras funções de alçapão, como fatoração principal em RSA, esses problemas são intratáveis, tornando-os funções unilaterais.
Uma das vantagens mais críticas das assinaturas Schnorr é seu suporte a assinaturas múltiplas. No Bitcoin, todas as entradas de transação exigem sua própria assinatura, levando a uma quantidade ineficiente de assinaturas incluídas em cada bloco. Com as assinaturas Schnorr, todas essas entradas podem ser agregadas em uma assinatura, economizando muito espaço em cada bloco. Além disso, as assinaturas Schnorr podem aumentar a privacidade, incentivando os usuários a usar CoinJoin, a técnica de mistura de moedas que era tradicionalmente muito inconveniente para usar regularmente. As assinaturas Schnorr reduzem o tamanho das transações no CoinJoin, reduzindo a taxa de mineração e tornando mais viável a integração de serviços de carteira como um recurso.
Por fim, as assinaturas Schnorr podem ajudar a aumentar a capacidade de transações multisig. Transações multisig muito mais complexas, como vinte de cem ou cinquenta de mil, são possíveis com o mesmo tamanho de assinatura digital de uma transação tradicional. As consequências disso são uma funcionalidade de contrato inteligente mais complexa e melhor escalabilidade da rede.
Conclusão
As assinaturas criptográficas têm sido um campo de estudo fascinante desde o seu início. As criptomoedas aceleraram o ritmo de desenvolvimento no campo da criptografia desde sua proliferação e entrada no mercado principal. Esquemas de assinatura mais avançados irão certamente evoluir conforme o progresso da indústria.
Por enquanto, ECDSA parece dominar como a escolha principal para a maioria das redes de criptomoedas, enquanto as assinaturas de anel são populares entre as criptomoedas mais voltadas para a privacidade. Tem havido um grande entusiasmo em torno das assinaturas Schnorr por um tempo, e sua integração pendente no Bitcoin deve fornecer alguns benefícios excelentes para a criptomoeda legada.