Uma assinatura digital é uma ferramenta criptográfica utilizada em campos como cibersegurança, comércio eletrônico e distribuição de software. Elas fornecem um método para verificar a origem e integridade de mensagens ou documentos digitais.
No entanto, a tecnologia blockchain popularizou o uso de assinaturas digitais como parte integrante de seu processo descentralizado e de verificação de transações. Este artigo examina de perto como a assinatura digital funciona, vários algoritmos usados pelas blockchains e suas aplicações no espaço Web3.
Fonte: CoinGeek
Uma assinatura digital é uma técnica criptográfica usada para verificar a autenticidade e integridade de mensagens digitais, documentos ou transações. As assinaturas digitais são consideradas mais seguras do que assinaturas eletrônicas.
Tradicionalmente, as assinaturas garantem que os acordos sejam legalmente vinculativos, validem as identidades das partes envolvidas e tenham aceitação definitiva dos termos do contrato. As assinaturas digitais vão um passo adiante para resolver o problema da alteração e falsificação, o que as torna uma forma mais segura de assinatura.
As principais características de uma assinatura digital são:
Fonte: WikiBooks
A criptografia assimétrica é um método de criptografar e descriptografar dados com duas chaves diferentes, tornando assim uma das chaves (essa é a chave pública) compartilhada abertamente com qualquer pessoa. A outra chave, conhecida como chave privada, é uma chave confidencial e armazenada com segurança, conhecida apenas pelo signatário. Os dados criptografados com uma só podem ser descriptografados com a outra.
Em criptografia, uma chave é frequentemente uma sequência de números e letras, usada para embaralhar dados de forma que pareçam aleatórios. No entanto, qualquer pessoa com a chave certa para descriptografar os dados pode desembaralhá-los de volta à sua forma original.
Por exemplo, suponha que pegamos uma imagem e a criptografamos com uma chave; vamos dizer que a chave é 28j932d8kd8. Criptografada com essa chave, nossa imagem é vista como “X5CSycg14=xJ”. No entanto, ao descriptografá-la com a chave correta, podemos recuperar nossa imagem.
Hashing é o processo de converter dados (textos, arquivos), uma entrada de tamanho variável em uma saída de letras e números de comprimento fixo, usando funções de hash. É um processo unidirecional, onde os valores de hash não podem ser revertidos para a entrada original, mas o mesmo pedaço de entrada sempre gerará o mesmo valor de hash.
Fonte: CyberHoot
Na imagem acima, um pedaço de texto (um enigma) passa por uma função de hash (SHA-256) e é convertido em um hash (um comprimento fixo de números e letras).
Um algoritmo que processa os dados a serem assinados, produzindo um valor de hash de tamanho fixo. A função de hash garante que a assinatura permaneça com um comprimento fixo, independentemente do tamanho dos dados originais.
A saída final da função hash é o valor de hash, também conhecido como digest, que é único para cada entrada. O tamanho do valor de hash varia de 32 bits a 256 bits, dependendo da função hash utilizada. Os valores de hash são necessários apenas para um único uso em processos como autenticação de dados ou a criação de assinaturas digitais. Portanto, uma assinatura digital é única por transação.
Para executar uma assinatura digital, você precisaria do seguinte:
Um Par de Chaves: O par de chaves consiste em um par de chaves pública/privada. A chave privada é usada para criar uma assinatura, e a chave pública correspondente é usada para verificar a assinatura.
Os Dados a Serem Assinados: O conteúdo ou mensagem que você deseja assinar. Isso pode ser um documento, uma transação ou qualquer dado digital.
Função de hash: Uma função de hash é aplicada aos dados para criar um valor de hash de tamanho fixo. Este valor de hash é então criptografado com a chave privada para gerar a assinatura digital.
Algoritmo de assinatura digital: Um algoritmo que combina a chave privada com os dados a serem assinados, geralmente envolvendo uma função de hash. Esse algoritmo gera a assinatura digital.
Mecanismo de Verificação: Qualquer pessoa que queira verificar a assinatura digital precisa ter acesso à chave pública e ao mesmo algoritmo de assinatura digital. A chave pública é usada para descriptografar a assinatura digital e revelar o valor de hash, que é então comparado com o valor de hash calculado a partir dos dados originais.
Origem: CamCert — O remetente assina (criptografa) o valor de hash com sua chave privada, e o destinatário verifica a autenticidade da mensagem comparando os valores de hash
Passo 1: Crie um valor de resumo/hash passando os dados originais por meio de uma função de hash
Passo 2: Assine o resumo com a chave privada do remetente para criar uma criptografia.
Etapa 3: Envie o arquivo criptografado para o destinatário, que pode descriptografá-lo usando a chave pública do remetente para gerar um resumo.
Etapa 4: Após a descriptografia, execute os dados através da mesma função de hash para gerar um resumo equivalente.
Passo 5: Valide a integridade dos dados comparando o hash recém-gerado com o valor do hash recebido juntamente com os dados. Uma correspondência confirma a integridade dos dados.
Vamos usar esta ilustração de uma transferência de um documento entre Mark, o remetente, e Karen, a destinatária.
A escolha dos algoritmos de Assinatura digital depende de fatores como requisitos de segurança, tamanho da chave e considerações de desempenho. Cada algoritmo tem suas forças e fraquezas, e seu uso pode evoluir com base nos avanços em criptografia e nos desafios emergentes de segurança.
Esta seção discute os algoritmos de assinatura digital mais comumente utilizados na tecnologia blockchain.
ECDSA (Algoritmo de Assinatura Digital de Curva Elíptica): Isso usa chaves mais curtas e exige menos recursos computacionais e utiliza chaves de criptografia de curva elíptica que são grupos finitos de pontos em uma curva onde certas operações são facilmente executadas em uma direção, mas desafiadoras na direção reversa. Para segurança, ECDSA depende do problema do log discreto. É o algoritmo de assinatura mais popular usado na tecnologia blockchain.
EdDSA (Edwards-curve Digital Signature Algorithm): Este é um algoritmo de assinatura digital moderno e eficiente baseado na criptografia de curva elíptica. Foi introduzido para abordar certas preocupações e melhorar o desempenho em comparação com outros esquemas de assinatura como ECDSA. O algoritmo é projetado para fornecer segurança forte com tamanhos de chave relativamente pequenos, tornando-o adequado para várias aplicações, incluindo tecnologia blockchain como Cardano e Solana.
O Algoritmo de Schnorr: Uma assinatura de Schnorr é um tipo de algoritmo de assinatura digital que permite a agregação, ou seja, várias assinaturas na mesma mensagem podem ser agrupadas em uma única assinatura. Esta assinatura não é apenas mais eficiente em termos de espaço, mas também facilita um processo de verificação mais eficiente.
Isso se mostra eficaz em cenários envolvendo várias partes assinando uma mensagem comum, como autorizar uma transação a partir de um endereço de múltiplas assinaturas (multisig). Em tais casos, cada participante deve fornecer sua chave pública e assinatura. Consequentemente, se três partes pretendem assinar a mesma mensagem, a prova abrangerá três chaves públicas e três assinaturas. Isso parece ser ineficiente em termos de computação e armazenamento, uma vez que cada nó precisa executar a função de verificação de assinatura três vezes e armazenar três conjuntos distintos de assinaturas e chaves públicas.
O algoritmo de Schnorr simplesmente produz uma assinatura que é válida para a soma de suas chaves públicas. A agregação de chaves pode reduzir as taxas de gás e melhorar a escalabilidade da camada base, já que as assinaturas provenientes de uma transação de múltiplas assinaturas ocupam o mesmo espaço em um bloco que as assinaturas provenientes de uma transação de uma única parte.
A Assinatura BLS: O algoritmo criptográfico BLS (Boneh-Lynn-Shacham) é baseado em emparelhamentos bilineares sobre grupos de curvas elípticas. Foi introduzido por Dan Boneh, Ben Lynn e Hovav Shacham em 2001. O foco principal da criptografia BLS é em esquemas de assinatura eficientes e seguros que suportam propriedades únicas como agregação. Além disso, a Assinatura BLS é usada no Ethereum 2.0 e no Chia.
Bitcoin (BTC):
Algoritmo de hash: SHA-256
Algoritmo de Assinatura Digital: ECDSA, Schnoor (Garfo Suave TapRoot)
Ethereum (ETH):
Algoritmo de hashing: Keccak
Algoritmo de Assinatura Digital: ECDSA
Litecoin (LTC):
Algoritmo de Hash: Scrypt
Algoritmo de Assinatura Digital: ECDSA
Ripple (XRP):
Algoritmo de Hashing: SHA-256
Algoritmo de Assinatura Digital: ECDSA
Cardano (ADA):
Algoritmo de Hash: Keccak
Algoritmo de Assinatura Digital: EdDSA (Algoritmo de Assinatura Digital de Curva de Edwards)
Polkadot (DOT):
Algoritmo de Hashing: Blake2
Algoritmo de Assinatura Digital: EdDSA
Tezos (XTZ):
Algoritmo de Hash: Blake2b
Algoritmo de Assinatura Digital: EdDSA
Cadeia BNB (BNB):
Algoritmo de Hashing: Keccak (usado para tokens BEP-2)
Algoritmo de Assinatura Digital: ECDSA
O Bitcoin utiliza o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA) para gerar uma assinatura única para cada transação. No entanto, com os avanços recentes, o algoritmo de Schnorr foi introduzido por meio do soft fork TapRoot. Esse algoritmo, conhecido por sua eficiência em termos de armazenamento e velocidade de verificação, pode aumentar a escalabilidade do Bitcoin em até 30%, com seu recurso de agregação de transações.
)
Fonte: TimesofIndia — Apenas transações assinadas podem ser propagadas e validadas pelos nós da rede
O mecanismo básico das transações de Bitcoin envolve uma série de etapas que inclui o uso de assinatura digital.
Aqui está uma visão geral:
Agora que entendemos o funcionamento e a importância das assinaturas. Vamos destacar as aplicações práticas das assinaturas digitais na segurança de transações, na autenticação de identidades e na garantia da integridade dos dados no ecossistema Web3.
Por exemplo, Alice quer transferir Ethereum para Bob. Ela assina a transação com sua chave privada, gerando uma assinatura digital. A rede Ethereum verifica a assinatura usando a chave pública de Alice, garantindo que a transação seja autorizada por ela. Isso também é aplicável à transferência de propriedade de um NFT, pois é registrada na blockchain com uma transação assinada, garantindo a legitimidade da mudança de propriedade.
Os contratos inteligentes são construídos para interagir com as assinaturas e podem executar transações após verificação. Por exemplo, em uma plataforma de empréstimo descentralizada, um usuário inicia uma solicitação de empréstimo. A solicitação desencadeia a execução de um contrato inteligente. O usuário assina a transação com sua chave privada, e o contrato inteligente verifica a assinatura para executar o contrato de empréstimo.
Um usuário faz login em um aplicativo descentralizado (dApp) usando sua identidade blockchain, por exemplo, endereço Ethereum. O dApp solicita uma mensagem assinada pelo usuário (chave privada), servindo como prova de propriedade. A assinatura digital autentica a identidade do usuário.
Isso também pode ser uma maneira fácil de integrar novos usuários Web3, pois eles não precisam criar uma conta e armazenar mais uma senha, os usuários podem ocultar sua identidade e não precisam necessariamente revelar detalhes privados como seu endereço de e-mail.
Um artista assina um arquivo de arte digital com sua chave privada antes de cunhá-lo como um NFT. A assinatura digital garante a integridade da obra de arte, e o artista não pode posteriormente negar a autoria.
Em uma plataforma de votação descentralizada, os eleitores lançam seus votos assinando suas escolhas com suas chaves privadas. As assinaturas digitais autenticam os votos e garantem que cada eleitor possa verificar sua contribuição. Esta aplicação é vista em votações de governança e votações de protocolo de consenso.
Um usuário transfere um token de uma blockchain para outra usando um protocolo de ponte. O usuário assina uma transação na cadeia de origem, e a cadeia de destino verifica a assinatura, permitindo a transferência entre cadeias.
As assinaturas digitais continuam sendo uma das maneiras infalíveis de autenticação na blockchain. No entanto, o desenvolvimento de computadores quânticos em larga escala representará uma ameaça à segurança das blockchains, pois algoritmos criptográficos podem ser decifrados rapidamente por computadores quânticos.
Computadores quânticos podem processar tarefas em velocidades incríveis, realizando em segundos o que levaria horas para computadores tradicionais, atores mal-intencionados podem usar um computador quântico para realizar ataques quânticos que poderiam comprometer toda uma blockchain.
No entanto, podem ser evitados por assinaturas pós-quânticas, que já estão em desenvolvimento, embora ocupem um espaço de armazenamento maior na blockchain.
Assinaturas digitais verificam a autenticidade e integridade dos dados, com base nos princípios da criptografia assimétrica e do hashing. Funciona usando a chave privada do remetente para autenticar a forma hash dos dados, e o receptor verifica com a chave pública do remetente. Os algoritmos criptográficos mais comumente usados pelas blockchains são as assinaturas ECDSA, EdDSA, Schnoor e BLS.
Além disso, o uso de assinaturas digitais é principalmente aplicável na autenticação de transações, execução de contratos inteligentes, votação de governança, transferências entre cadeias e integridade de dados de NFTs.
Uma assinatura digital é uma ferramenta criptográfica utilizada em campos como cibersegurança, comércio eletrônico e distribuição de software. Elas fornecem um método para verificar a origem e integridade de mensagens ou documentos digitais.
No entanto, a tecnologia blockchain popularizou o uso de assinaturas digitais como parte integrante de seu processo descentralizado e de verificação de transações. Este artigo examina de perto como a assinatura digital funciona, vários algoritmos usados pelas blockchains e suas aplicações no espaço Web3.
Fonte: CoinGeek
Uma assinatura digital é uma técnica criptográfica usada para verificar a autenticidade e integridade de mensagens digitais, documentos ou transações. As assinaturas digitais são consideradas mais seguras do que assinaturas eletrônicas.
Tradicionalmente, as assinaturas garantem que os acordos sejam legalmente vinculativos, validem as identidades das partes envolvidas e tenham aceitação definitiva dos termos do contrato. As assinaturas digitais vão um passo adiante para resolver o problema da alteração e falsificação, o que as torna uma forma mais segura de assinatura.
As principais características de uma assinatura digital são:
Fonte: WikiBooks
A criptografia assimétrica é um método de criptografar e descriptografar dados com duas chaves diferentes, tornando assim uma das chaves (essa é a chave pública) compartilhada abertamente com qualquer pessoa. A outra chave, conhecida como chave privada, é uma chave confidencial e armazenada com segurança, conhecida apenas pelo signatário. Os dados criptografados com uma só podem ser descriptografados com a outra.
Em criptografia, uma chave é frequentemente uma sequência de números e letras, usada para embaralhar dados de forma que pareçam aleatórios. No entanto, qualquer pessoa com a chave certa para descriptografar os dados pode desembaralhá-los de volta à sua forma original.
Por exemplo, suponha que pegamos uma imagem e a criptografamos com uma chave; vamos dizer que a chave é 28j932d8kd8. Criptografada com essa chave, nossa imagem é vista como “X5CSycg14=xJ”. No entanto, ao descriptografá-la com a chave correta, podemos recuperar nossa imagem.
Hashing é o processo de converter dados (textos, arquivos), uma entrada de tamanho variável em uma saída de letras e números de comprimento fixo, usando funções de hash. É um processo unidirecional, onde os valores de hash não podem ser revertidos para a entrada original, mas o mesmo pedaço de entrada sempre gerará o mesmo valor de hash.
Fonte: CyberHoot
Na imagem acima, um pedaço de texto (um enigma) passa por uma função de hash (SHA-256) e é convertido em um hash (um comprimento fixo de números e letras).
Um algoritmo que processa os dados a serem assinados, produzindo um valor de hash de tamanho fixo. A função de hash garante que a assinatura permaneça com um comprimento fixo, independentemente do tamanho dos dados originais.
A saída final da função hash é o valor de hash, também conhecido como digest, que é único para cada entrada. O tamanho do valor de hash varia de 32 bits a 256 bits, dependendo da função hash utilizada. Os valores de hash são necessários apenas para um único uso em processos como autenticação de dados ou a criação de assinaturas digitais. Portanto, uma assinatura digital é única por transação.
Para executar uma assinatura digital, você precisaria do seguinte:
Um Par de Chaves: O par de chaves consiste em um par de chaves pública/privada. A chave privada é usada para criar uma assinatura, e a chave pública correspondente é usada para verificar a assinatura.
Os Dados a Serem Assinados: O conteúdo ou mensagem que você deseja assinar. Isso pode ser um documento, uma transação ou qualquer dado digital.
Função de hash: Uma função de hash é aplicada aos dados para criar um valor de hash de tamanho fixo. Este valor de hash é então criptografado com a chave privada para gerar a assinatura digital.
Algoritmo de assinatura digital: Um algoritmo que combina a chave privada com os dados a serem assinados, geralmente envolvendo uma função de hash. Esse algoritmo gera a assinatura digital.
Mecanismo de Verificação: Qualquer pessoa que queira verificar a assinatura digital precisa ter acesso à chave pública e ao mesmo algoritmo de assinatura digital. A chave pública é usada para descriptografar a assinatura digital e revelar o valor de hash, que é então comparado com o valor de hash calculado a partir dos dados originais.
Origem: CamCert — O remetente assina (criptografa) o valor de hash com sua chave privada, e o destinatário verifica a autenticidade da mensagem comparando os valores de hash
Passo 1: Crie um valor de resumo/hash passando os dados originais por meio de uma função de hash
Passo 2: Assine o resumo com a chave privada do remetente para criar uma criptografia.
Etapa 3: Envie o arquivo criptografado para o destinatário, que pode descriptografá-lo usando a chave pública do remetente para gerar um resumo.
Etapa 4: Após a descriptografia, execute os dados através da mesma função de hash para gerar um resumo equivalente.
Passo 5: Valide a integridade dos dados comparando o hash recém-gerado com o valor do hash recebido juntamente com os dados. Uma correspondência confirma a integridade dos dados.
Vamos usar esta ilustração de uma transferência de um documento entre Mark, o remetente, e Karen, a destinatária.
A escolha dos algoritmos de Assinatura digital depende de fatores como requisitos de segurança, tamanho da chave e considerações de desempenho. Cada algoritmo tem suas forças e fraquezas, e seu uso pode evoluir com base nos avanços em criptografia e nos desafios emergentes de segurança.
Esta seção discute os algoritmos de assinatura digital mais comumente utilizados na tecnologia blockchain.
ECDSA (Algoritmo de Assinatura Digital de Curva Elíptica): Isso usa chaves mais curtas e exige menos recursos computacionais e utiliza chaves de criptografia de curva elíptica que são grupos finitos de pontos em uma curva onde certas operações são facilmente executadas em uma direção, mas desafiadoras na direção reversa. Para segurança, ECDSA depende do problema do log discreto. É o algoritmo de assinatura mais popular usado na tecnologia blockchain.
EdDSA (Edwards-curve Digital Signature Algorithm): Este é um algoritmo de assinatura digital moderno e eficiente baseado na criptografia de curva elíptica. Foi introduzido para abordar certas preocupações e melhorar o desempenho em comparação com outros esquemas de assinatura como ECDSA. O algoritmo é projetado para fornecer segurança forte com tamanhos de chave relativamente pequenos, tornando-o adequado para várias aplicações, incluindo tecnologia blockchain como Cardano e Solana.
O Algoritmo de Schnorr: Uma assinatura de Schnorr é um tipo de algoritmo de assinatura digital que permite a agregação, ou seja, várias assinaturas na mesma mensagem podem ser agrupadas em uma única assinatura. Esta assinatura não é apenas mais eficiente em termos de espaço, mas também facilita um processo de verificação mais eficiente.
Isso se mostra eficaz em cenários envolvendo várias partes assinando uma mensagem comum, como autorizar uma transação a partir de um endereço de múltiplas assinaturas (multisig). Em tais casos, cada participante deve fornecer sua chave pública e assinatura. Consequentemente, se três partes pretendem assinar a mesma mensagem, a prova abrangerá três chaves públicas e três assinaturas. Isso parece ser ineficiente em termos de computação e armazenamento, uma vez que cada nó precisa executar a função de verificação de assinatura três vezes e armazenar três conjuntos distintos de assinaturas e chaves públicas.
O algoritmo de Schnorr simplesmente produz uma assinatura que é válida para a soma de suas chaves públicas. A agregação de chaves pode reduzir as taxas de gás e melhorar a escalabilidade da camada base, já que as assinaturas provenientes de uma transação de múltiplas assinaturas ocupam o mesmo espaço em um bloco que as assinaturas provenientes de uma transação de uma única parte.
A Assinatura BLS: O algoritmo criptográfico BLS (Boneh-Lynn-Shacham) é baseado em emparelhamentos bilineares sobre grupos de curvas elípticas. Foi introduzido por Dan Boneh, Ben Lynn e Hovav Shacham em 2001. O foco principal da criptografia BLS é em esquemas de assinatura eficientes e seguros que suportam propriedades únicas como agregação. Além disso, a Assinatura BLS é usada no Ethereum 2.0 e no Chia.
Bitcoin (BTC):
Algoritmo de hash: SHA-256
Algoritmo de Assinatura Digital: ECDSA, Schnoor (Garfo Suave TapRoot)
Ethereum (ETH):
Algoritmo de hashing: Keccak
Algoritmo de Assinatura Digital: ECDSA
Litecoin (LTC):
Algoritmo de Hash: Scrypt
Algoritmo de Assinatura Digital: ECDSA
Ripple (XRP):
Algoritmo de Hashing: SHA-256
Algoritmo de Assinatura Digital: ECDSA
Cardano (ADA):
Algoritmo de Hash: Keccak
Algoritmo de Assinatura Digital: EdDSA (Algoritmo de Assinatura Digital de Curva de Edwards)
Polkadot (DOT):
Algoritmo de Hashing: Blake2
Algoritmo de Assinatura Digital: EdDSA
Tezos (XTZ):
Algoritmo de Hash: Blake2b
Algoritmo de Assinatura Digital: EdDSA
Cadeia BNB (BNB):
Algoritmo de Hashing: Keccak (usado para tokens BEP-2)
Algoritmo de Assinatura Digital: ECDSA
O Bitcoin utiliza o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA) para gerar uma assinatura única para cada transação. No entanto, com os avanços recentes, o algoritmo de Schnorr foi introduzido por meio do soft fork TapRoot. Esse algoritmo, conhecido por sua eficiência em termos de armazenamento e velocidade de verificação, pode aumentar a escalabilidade do Bitcoin em até 30%, com seu recurso de agregação de transações.
)
Fonte: TimesofIndia — Apenas transações assinadas podem ser propagadas e validadas pelos nós da rede
O mecanismo básico das transações de Bitcoin envolve uma série de etapas que inclui o uso de assinatura digital.
Aqui está uma visão geral:
Agora que entendemos o funcionamento e a importância das assinaturas. Vamos destacar as aplicações práticas das assinaturas digitais na segurança de transações, na autenticação de identidades e na garantia da integridade dos dados no ecossistema Web3.
Por exemplo, Alice quer transferir Ethereum para Bob. Ela assina a transação com sua chave privada, gerando uma assinatura digital. A rede Ethereum verifica a assinatura usando a chave pública de Alice, garantindo que a transação seja autorizada por ela. Isso também é aplicável à transferência de propriedade de um NFT, pois é registrada na blockchain com uma transação assinada, garantindo a legitimidade da mudança de propriedade.
Os contratos inteligentes são construídos para interagir com as assinaturas e podem executar transações após verificação. Por exemplo, em uma plataforma de empréstimo descentralizada, um usuário inicia uma solicitação de empréstimo. A solicitação desencadeia a execução de um contrato inteligente. O usuário assina a transação com sua chave privada, e o contrato inteligente verifica a assinatura para executar o contrato de empréstimo.
Um usuário faz login em um aplicativo descentralizado (dApp) usando sua identidade blockchain, por exemplo, endereço Ethereum. O dApp solicita uma mensagem assinada pelo usuário (chave privada), servindo como prova de propriedade. A assinatura digital autentica a identidade do usuário.
Isso também pode ser uma maneira fácil de integrar novos usuários Web3, pois eles não precisam criar uma conta e armazenar mais uma senha, os usuários podem ocultar sua identidade e não precisam necessariamente revelar detalhes privados como seu endereço de e-mail.
Um artista assina um arquivo de arte digital com sua chave privada antes de cunhá-lo como um NFT. A assinatura digital garante a integridade da obra de arte, e o artista não pode posteriormente negar a autoria.
Em uma plataforma de votação descentralizada, os eleitores lançam seus votos assinando suas escolhas com suas chaves privadas. As assinaturas digitais autenticam os votos e garantem que cada eleitor possa verificar sua contribuição. Esta aplicação é vista em votações de governança e votações de protocolo de consenso.
Um usuário transfere um token de uma blockchain para outra usando um protocolo de ponte. O usuário assina uma transação na cadeia de origem, e a cadeia de destino verifica a assinatura, permitindo a transferência entre cadeias.
As assinaturas digitais continuam sendo uma das maneiras infalíveis de autenticação na blockchain. No entanto, o desenvolvimento de computadores quânticos em larga escala representará uma ameaça à segurança das blockchains, pois algoritmos criptográficos podem ser decifrados rapidamente por computadores quânticos.
Computadores quânticos podem processar tarefas em velocidades incríveis, realizando em segundos o que levaria horas para computadores tradicionais, atores mal-intencionados podem usar um computador quântico para realizar ataques quânticos que poderiam comprometer toda uma blockchain.
No entanto, podem ser evitados por assinaturas pós-quânticas, que já estão em desenvolvimento, embora ocupem um espaço de armazenamento maior na blockchain.
Assinaturas digitais verificam a autenticidade e integridade dos dados, com base nos princípios da criptografia assimétrica e do hashing. Funciona usando a chave privada do remetente para autenticar a forma hash dos dados, e o receptor verifica com a chave pública do remetente. Os algoritmos criptográficos mais comumente usados pelas blockchains são as assinaturas ECDSA, EdDSA, Schnoor e BLS.
Além disso, o uso de assinaturas digitais é principalmente aplicável na autenticação de transações, execução de contratos inteligentes, votação de governança, transferências entre cadeias e integridade de dados de NFTs.