O que é uma Assinatura digital e como funciona?

Intermediário1/19/2024, 6:23:26 PM
As blockchains usam assinaturas digitais como parte integrante do seu processo de verificação descentralizado, criando uma forma segura de autenticar processos sem expor a identidade do utilizador.

Introdução

Uma assinatura digital é uma ferramenta criptográfica utilizada em áreas como cibersegurança, comércio eletrónico e distribuição de software. 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 do seu processo descentralizado e de verificação de transações. Este artigo examina de perto como funciona a assinatura digital, os vários algoritmos usados pelas blockchains e as suas aplicações no espaço Web3.

Compreender Assinatura digital

Fonte: CoinGeek

Uma assinatura digital é uma técnica criptográfica utilizada para verificar a autenticidade e integridade de mensagens digitais, documentos ou transações. As assinaturas digitais são consideradas mais seguras do que as assinaturas eletrónicas.

Tradicionalmente, as assinaturas garantem que os acordos sejam legalmente vinculativos, validam as identidades das partes envolvidas e têm a aceitação definitiva dos termos do contrato. As assinaturas digitais vão um passo além para resolver o problema da alteração e falsificação, o que as torna uma forma mais segura de assinatura.

Características da Assinatura digital

As principais características de uma assinatura digital são:

  • Autenticação: Uma assinatura digital prova que a mensagem foi enviada pelo remetente alegado ao verificar a mensagem com as chaves públicas do remetente.
  • Não repúdio: As assinaturas digitais usam as chaves públicas do remetente para descriptografar a assinatura, se for bem-sucedida, o remetente não pode negar o envio da mensagem.
  • Integridade: A capacidade de verificar o valor de hash/digestão prova que os dados não foram alterados em trânsito.

Criptografia Assimétrica

Fonte: WikiBooks

A criptografia assimétrica é um método de criptografar e descriptografar dados com duas chaves diferentes, tornando assim uma das chaves, (que é 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.

Na criptografia, uma chave é frequentemente uma sequência de números e letras, usada para embaralhar dados de forma que pareça aleatória. No entanto, qualquer pessoa com a chave certa para descriptografar os dados pode desembaralhá-los de volta para sua forma original.

Por exemplo, suponhamos que pegamos uma imagem e a ciframos com uma chave; vamos dizer que a chave é 28j932d8kd8. Criptografada com esta chave, nossa imagem é vista como “X5CSycg14=xJ”. No entanto, ao descriptografá-la com a chave correta, podemos obter nossa imagem de volta.

Termos-chave que precisa de compreender

Hashing

Hashing é o processo de converter dados (textos, arquivos), uma entrada de tamanho variável em uma saída de comprimento fixo de letras e números, usando funções de hash. É um processo unidirecional, onde os valores de hash não podem ser revertidos para a entrada original, mas a mesma peça 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).

O que são Funções de Hash?

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.

Valor de hash

A saída final da função de 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 de hash usada. Os valores de hash são apenas necessários para um único uso em processos como autenticação de dados ou criação de assinaturas digitais. Portanto, uma assinatura digital é única por transação.

Como funcionam as Assinaturas digitais?

Para executar uma assinatura digital, você precisaria do seguinte:

  1. Um Par de Chaves: O par de chaves consiste num 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.

  2. Os Dados a Serem Assinados: O conteúdo ou mensagem que você deseja assinar. Isso poderia ser um documento, uma transação ou qualquer dado digital.

  3. 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.

  4. Algoritmo de Assinatura Digital: Um algoritmo que combina a chave privada com os dados a serem assinados, geralmente envolvendo uma função de hash. Este algoritmo gera a assinatura digital.

  5. Mecanismo de Verificação: Qualquer pessoa que queira verificar a assinatura digital precisa de 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 do hash, que é então comparado com o valor do hash calculado a partir dos dados originais.

Como é que eles se combinam para fazer isto funcionar?

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: Criar um valor de hash/digest ao passar os dados originais através de uma função de hash

Passo 2: Assine o resumo com a chave privada do remetente para criar uma criptografia.

Passo 3: Envie o ficheiro encriptado para o destinatário, que pode desencriptá-lo utilizando a chave pública do remetente para gerar um resumo.

Passo 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.

  1. Assinatura e Envio: Mark inicia o processo enviando um documento. O documento é passado por um algoritmo de hash, criando um valor de resumo/hash. Este resumo é então criptografado com a chave privada de Mark, finalizando a assinatura digital; uma combinação do documento e sua chave privada.
  2. Recebendo e Verificando: Karen, a destinatária, utiliza a chave pública de Mark para descriptografar a assinatura digital, obtendo o resumo original. Independentemente, Karen aplica o mesmo algoritmo de hash ao documento recebido, gerando outro resumo.
  3. Karen compara os dois resumos: um da assinatura descriptografada e outro gerado independentemente. Se eles coincidirem, Karen tem a certeza da integridade do documento e da autenticidade de Mark como remetente.

Algoritmos de Assinatura Usados em Blockchains

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 de segurança emergentes.

Esta seção discute os algoritmos de assinatura digital mais comumente usados na tecnologia blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm): Isto utiliza chaves mais curtas e exige menos recursos computacionais e utiliza "chaves de criptografia de curva elíptica" que são grupos finitos de pontos numa curva onde certas operações são facilmente executadas numa direção, mas desafiadoras na direção inversa. Para segurança, ECDSA baseia-se no problema do log discreto. É o algoritmo de assinatura mais popular usado na tecnologia blockchain.

  2. EdDSA (Algoritmo de Assinatura Digital da Curva de Edwards): Este é um algoritmo de assinatura digital moderno e eficiente baseado em 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 o ECDSA. O algoritmo é projetado para fornecer uma segurança forte com tamanhos de chave relativamente pequenos, tornando-o adequado para várias aplicações, incluindo tecnologia blockchain como Cardano e Solana.

  3. 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 numa única assinatura. Esta assinatura não só é 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 múltiplas partes assinando uma mensagem comum, como autorizar uma transação a partir de um endereço de múltipla assinatura (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ó é obrigado a 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 Schnorr simplesmente produz uma assinatura 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, uma vez que as assinaturas provenientes de uma transação multi-assinatura ocupam o mesmo espaço em um bloco que as assinaturas provenientes de uma transação de uma única parte.

  4. 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 Chia.

Blockchains, seu Algoritmo de Hashing e Algoritmo de Assinatura

  1. Bitcoin (BTC):
    Algoritmo de hash: SHA-256
    Algoritmo de Assinatura Digital: ECDSA, Schnoor (Bifurcação Suave do TapRoot)

  2. Ethereum (ETH):
    Algoritmo de hash: Keccak
    Algoritmo de Assinatura Digital: ECDSA

  3. Litecoin (LTC):
    Algoritmo de Hashing: Scrypt
    Algoritmo de Assinatura Digital: ECDSA

  4. Ripple (XRP):
    Algoritmo de hash: SHA-256
    Algoritmo de Assinatura Digital: ECDSA

  5. Cardano (ADA):
    Algoritmo de Hashing: Keccak
    Algoritmo de Assinatura Digital: EdDSA (Algoritmo de Assinatura Digital de Curva de Edwards)

  6. Polkadot (DOT):
    Algoritmo de hash: Blake2
    Algoritmo de Assinatura Digital: EdDSA

  7. Tezos (XTZ):
    Algoritmo de hash: Blake2b
    Algoritmo de Assinatura Digital: EdDSA

  8. Cadeia BNB (BNB):
    Algoritmo de hash: Keccak (usado para tokens BEP-2)
    Algoritmo de Assinatura Digital: ECDSA

Como o Bitcoin Utiliza Assinatura Digital

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 através do soft fork TapRoot. Este algoritmo, conhecido pela sua eficiência em termos de eficiência de armazenamento e velocidade de verificação, pode melhorar a escalabilidade do Bitcoin em até 30%, com o 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:

  1. O remetente decide fazer uma transação de bitcoin, isso poderia envolver o envio de bitcoins para outro usuário ou vários usuários.
  2. O remetente cria uma mensagem de transação contendo detalhes chave, como o endereço da carteira do destinatário, a quantidade de BTC sendo enviada, quaisquer taxas associadas e a origem do bitcoin (saídas de transação não gastas ou UTXOs) sendo usadas como entradas para a transação.
  3. O remetente assina a mensagem de transação com sua chave privada usando o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA). Esta assinatura digital fornece a prova de que a transação foi autorizada pelo proprietário legítimo do endereço de envio.
  4. A mensagem da transação é hashada usando o SHA-256 (Algoritmo de Hash Seguro de 256 bits) e depois hashada novamente usando o RIPEMD-160 (Avaliação de Primitivos de Integridade RACE Digest de Mensagem de 160 bits). Este processo gera um hash de comprimento fixo, comumente conhecido como ID da transação ou hash.
  5. A transação assinada é transmitida para a rede Bitcoin, onde se torna visível para todos os nós (computadores que participam na rede Bitcoin). Os nós na rede, incluindo os mineiros, verificam a validade da transação. Esta verificação inclui a verificação da assinatura digital para garantir que corresponde à chave pública do remetente e que os inputs (UTXOs) utilizados na transação não foram gastos e são válidos.
  6. Transações válidas são recolhidas pelos mineiros, que competem para resolver um problema matemático complexo (prova de trabalho). O primeiro mineiro a resolver o problema adiciona um bloco contendo as transações verificadas à blockchain.
  7. O novo bloco adicionado é transmitido para a rede e outros nós verificam a prova de trabalho e a validade das transações dentro do bloco. Uma vez que um consenso é alcançado, o bloco é considerado confirmado e a transação é permanentemente registada na blockchain.
  8. O saldo da carteira do destinatário é atualizado para refletir os bitcoins recebidos, e o saldo da carteira do remetente é ajustado para contabilizar os UTXOs gastos.

Aplicações de Assinaturas digitais em Web3

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, autenticação de identidades e garantia da integridade de dados no ecossistema Web3.

Autenticação de Transação

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 se aplica à transferência de propriedade de um NFT, pois é registrado na blockchain com uma transação assinada, garantindo a legitimidade da mudança de propriedade.

Execução de Contratos Inteligentes

Os contratos inteligentes são construídos para interagir com as assinaturas e podem executar transações após verificação. Por exemplo, numa plataforma de empréstimos descentralizada, um utilizador inicia um pedido de empréstimo. O pedido desencadeia uma execução de contrato inteligente. O utilizador assina a transação com a sua chave privada e o contrato inteligente verifica a assinatura para executar o acordo de empréstimo.

Identidade e Autenticação Descentralizadas

Um usuário entra em um aplicativo descentralizado (dApp) usando sua identidade blockchain, por exemplo, o endereço Ethereum. O dApp solicita uma mensagem assinada do usuário (chave privada), servindo como prova de propriedade. A assinatura digital autentica a identidade do usuário.

Esta também pode ser uma forma fácil de integrar novos utilizadores Web3, uma vez que não precisam de criar uma conta e guardar mais uma senha, os utilizadores podem ocultar a sua identidade e não necessitam de revelar detalhes privados como o seu endereço de email.

Integridade dos Dados e Não Repúdio dos NFTs

Um artista assina um arquivo de arte digital com sua chave privada antes de o cunhar como um NFT. A assinatura digital garante a integridade da obra de arte, e o artista não pode negar a autoria posteriormente.

Sistemas de Votação

Numa plataforma de votação descentralizada, os eleitores lançam os seus votos assinando as suas escolhas com as suas chaves privadas. As assinaturas digitais autenticam os votos e garantem que cada eleitor possa verificar a sua contribuição. Esta aplicação é vista em votações de governação e votações de protocolo de consenso.

Interoperabilidade entre Cadeias

Um utilizador transfere um token de uma blockchain para outra utilizando um protocolo de ponte. O utilizador assina uma transação na cadeia de origem, e a cadeia de destino verifica a assinatura, permitindo a transferência entre cadeias.

Desafios e Tendências Futuras

O Desafio dos Ataques Quânticos

As assinaturas digitais continuam a ser uma das formas infalíveis de autenticação na blockchain. No entanto, o desenvolvimento de computadores quânticos em grande escala representará uma ameaça à segurança das blockchains, uma vez que os algoritmos criptográficos podem ser decifrados rapidamente pelos computadores quânticos.

Os computadores quânticos podem processar tarefas a velocidades incríveis, realizando em segundos o que levaria horas aos computadores tradicionais, os atores mal-intencionados podem usar um computador quântico para liderar ataques quânticos que poderiam comprometer toda uma blockchain.

No entanto, podem ser prevenidos por assinaturas pós-quânticas, que já estão em desenvolvimento, embora ocupem mais espaço de armazenamento na blockchain.

Conclusão

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.

Autor: Paul
Tradutor: Sonia
Revisores: Piccolo、Edward、Ashley He
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.

O que é uma Assinatura digital e como funciona?

Intermediário1/19/2024, 6:23:26 PM
As blockchains usam assinaturas digitais como parte integrante do seu processo de verificação descentralizado, criando uma forma segura de autenticar processos sem expor a identidade do utilizador.

Introdução

Uma assinatura digital é uma ferramenta criptográfica utilizada em áreas como cibersegurança, comércio eletrónico e distribuição de software. 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 do seu processo descentralizado e de verificação de transações. Este artigo examina de perto como funciona a assinatura digital, os vários algoritmos usados pelas blockchains e as suas aplicações no espaço Web3.

Compreender Assinatura digital

Fonte: CoinGeek

Uma assinatura digital é uma técnica criptográfica utilizada para verificar a autenticidade e integridade de mensagens digitais, documentos ou transações. As assinaturas digitais são consideradas mais seguras do que as assinaturas eletrónicas.

Tradicionalmente, as assinaturas garantem que os acordos sejam legalmente vinculativos, validam as identidades das partes envolvidas e têm a aceitação definitiva dos termos do contrato. As assinaturas digitais vão um passo além para resolver o problema da alteração e falsificação, o que as torna uma forma mais segura de assinatura.

Características da Assinatura digital

As principais características de uma assinatura digital são:

  • Autenticação: Uma assinatura digital prova que a mensagem foi enviada pelo remetente alegado ao verificar a mensagem com as chaves públicas do remetente.
  • Não repúdio: As assinaturas digitais usam as chaves públicas do remetente para descriptografar a assinatura, se for bem-sucedida, o remetente não pode negar o envio da mensagem.
  • Integridade: A capacidade de verificar o valor de hash/digestão prova que os dados não foram alterados em trânsito.

Criptografia Assimétrica

Fonte: WikiBooks

A criptografia assimétrica é um método de criptografar e descriptografar dados com duas chaves diferentes, tornando assim uma das chaves, (que é 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.

Na criptografia, uma chave é frequentemente uma sequência de números e letras, usada para embaralhar dados de forma que pareça aleatória. No entanto, qualquer pessoa com a chave certa para descriptografar os dados pode desembaralhá-los de volta para sua forma original.

Por exemplo, suponhamos que pegamos uma imagem e a ciframos com uma chave; vamos dizer que a chave é 28j932d8kd8. Criptografada com esta chave, nossa imagem é vista como “X5CSycg14=xJ”. No entanto, ao descriptografá-la com a chave correta, podemos obter nossa imagem de volta.

Termos-chave que precisa de compreender

Hashing

Hashing é o processo de converter dados (textos, arquivos), uma entrada de tamanho variável em uma saída de comprimento fixo de letras e números, usando funções de hash. É um processo unidirecional, onde os valores de hash não podem ser revertidos para a entrada original, mas a mesma peça 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).

O que são Funções de Hash?

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.

Valor de hash

A saída final da função de 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 de hash usada. Os valores de hash são apenas necessários para um único uso em processos como autenticação de dados ou criação de assinaturas digitais. Portanto, uma assinatura digital é única por transação.

Como funcionam as Assinaturas digitais?

Para executar uma assinatura digital, você precisaria do seguinte:

  1. Um Par de Chaves: O par de chaves consiste num 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.

  2. Os Dados a Serem Assinados: O conteúdo ou mensagem que você deseja assinar. Isso poderia ser um documento, uma transação ou qualquer dado digital.

  3. 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.

  4. Algoritmo de Assinatura Digital: Um algoritmo que combina a chave privada com os dados a serem assinados, geralmente envolvendo uma função de hash. Este algoritmo gera a assinatura digital.

  5. Mecanismo de Verificação: Qualquer pessoa que queira verificar a assinatura digital precisa de 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 do hash, que é então comparado com o valor do hash calculado a partir dos dados originais.

Como é que eles se combinam para fazer isto funcionar?

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: Criar um valor de hash/digest ao passar os dados originais através de uma função de hash

Passo 2: Assine o resumo com a chave privada do remetente para criar uma criptografia.

Passo 3: Envie o ficheiro encriptado para o destinatário, que pode desencriptá-lo utilizando a chave pública do remetente para gerar um resumo.

Passo 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.

  1. Assinatura e Envio: Mark inicia o processo enviando um documento. O documento é passado por um algoritmo de hash, criando um valor de resumo/hash. Este resumo é então criptografado com a chave privada de Mark, finalizando a assinatura digital; uma combinação do documento e sua chave privada.
  2. Recebendo e Verificando: Karen, a destinatária, utiliza a chave pública de Mark para descriptografar a assinatura digital, obtendo o resumo original. Independentemente, Karen aplica o mesmo algoritmo de hash ao documento recebido, gerando outro resumo.
  3. Karen compara os dois resumos: um da assinatura descriptografada e outro gerado independentemente. Se eles coincidirem, Karen tem a certeza da integridade do documento e da autenticidade de Mark como remetente.

Algoritmos de Assinatura Usados em Blockchains

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 de segurança emergentes.

Esta seção discute os algoritmos de assinatura digital mais comumente usados na tecnologia blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm): Isto utiliza chaves mais curtas e exige menos recursos computacionais e utiliza "chaves de criptografia de curva elíptica" que são grupos finitos de pontos numa curva onde certas operações são facilmente executadas numa direção, mas desafiadoras na direção inversa. Para segurança, ECDSA baseia-se no problema do log discreto. É o algoritmo de assinatura mais popular usado na tecnologia blockchain.

  2. EdDSA (Algoritmo de Assinatura Digital da Curva de Edwards): Este é um algoritmo de assinatura digital moderno e eficiente baseado em 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 o ECDSA. O algoritmo é projetado para fornecer uma segurança forte com tamanhos de chave relativamente pequenos, tornando-o adequado para várias aplicações, incluindo tecnologia blockchain como Cardano e Solana.

  3. 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 numa única assinatura. Esta assinatura não só é 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 múltiplas partes assinando uma mensagem comum, como autorizar uma transação a partir de um endereço de múltipla assinatura (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ó é obrigado a 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 Schnorr simplesmente produz uma assinatura 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, uma vez que as assinaturas provenientes de uma transação multi-assinatura ocupam o mesmo espaço em um bloco que as assinaturas provenientes de uma transação de uma única parte.

  4. 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 Chia.

Blockchains, seu Algoritmo de Hashing e Algoritmo de Assinatura

  1. Bitcoin (BTC):
    Algoritmo de hash: SHA-256
    Algoritmo de Assinatura Digital: ECDSA, Schnoor (Bifurcação Suave do TapRoot)

  2. Ethereum (ETH):
    Algoritmo de hash: Keccak
    Algoritmo de Assinatura Digital: ECDSA

  3. Litecoin (LTC):
    Algoritmo de Hashing: Scrypt
    Algoritmo de Assinatura Digital: ECDSA

  4. Ripple (XRP):
    Algoritmo de hash: SHA-256
    Algoritmo de Assinatura Digital: ECDSA

  5. Cardano (ADA):
    Algoritmo de Hashing: Keccak
    Algoritmo de Assinatura Digital: EdDSA (Algoritmo de Assinatura Digital de Curva de Edwards)

  6. Polkadot (DOT):
    Algoritmo de hash: Blake2
    Algoritmo de Assinatura Digital: EdDSA

  7. Tezos (XTZ):
    Algoritmo de hash: Blake2b
    Algoritmo de Assinatura Digital: EdDSA

  8. Cadeia BNB (BNB):
    Algoritmo de hash: Keccak (usado para tokens BEP-2)
    Algoritmo de Assinatura Digital: ECDSA

Como o Bitcoin Utiliza Assinatura Digital

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 através do soft fork TapRoot. Este algoritmo, conhecido pela sua eficiência em termos de eficiência de armazenamento e velocidade de verificação, pode melhorar a escalabilidade do Bitcoin em até 30%, com o 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:

  1. O remetente decide fazer uma transação de bitcoin, isso poderia envolver o envio de bitcoins para outro usuário ou vários usuários.
  2. O remetente cria uma mensagem de transação contendo detalhes chave, como o endereço da carteira do destinatário, a quantidade de BTC sendo enviada, quaisquer taxas associadas e a origem do bitcoin (saídas de transação não gastas ou UTXOs) sendo usadas como entradas para a transação.
  3. O remetente assina a mensagem de transação com sua chave privada usando o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA). Esta assinatura digital fornece a prova de que a transação foi autorizada pelo proprietário legítimo do endereço de envio.
  4. A mensagem da transação é hashada usando o SHA-256 (Algoritmo de Hash Seguro de 256 bits) e depois hashada novamente usando o RIPEMD-160 (Avaliação de Primitivos de Integridade RACE Digest de Mensagem de 160 bits). Este processo gera um hash de comprimento fixo, comumente conhecido como ID da transação ou hash.
  5. A transação assinada é transmitida para a rede Bitcoin, onde se torna visível para todos os nós (computadores que participam na rede Bitcoin). Os nós na rede, incluindo os mineiros, verificam a validade da transação. Esta verificação inclui a verificação da assinatura digital para garantir que corresponde à chave pública do remetente e que os inputs (UTXOs) utilizados na transação não foram gastos e são válidos.
  6. Transações válidas são recolhidas pelos mineiros, que competem para resolver um problema matemático complexo (prova de trabalho). O primeiro mineiro a resolver o problema adiciona um bloco contendo as transações verificadas à blockchain.
  7. O novo bloco adicionado é transmitido para a rede e outros nós verificam a prova de trabalho e a validade das transações dentro do bloco. Uma vez que um consenso é alcançado, o bloco é considerado confirmado e a transação é permanentemente registada na blockchain.
  8. O saldo da carteira do destinatário é atualizado para refletir os bitcoins recebidos, e o saldo da carteira do remetente é ajustado para contabilizar os UTXOs gastos.

Aplicações de Assinaturas digitais em Web3

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, autenticação de identidades e garantia da integridade de dados no ecossistema Web3.

Autenticação de Transação

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 se aplica à transferência de propriedade de um NFT, pois é registrado na blockchain com uma transação assinada, garantindo a legitimidade da mudança de propriedade.

Execução de Contratos Inteligentes

Os contratos inteligentes são construídos para interagir com as assinaturas e podem executar transações após verificação. Por exemplo, numa plataforma de empréstimos descentralizada, um utilizador inicia um pedido de empréstimo. O pedido desencadeia uma execução de contrato inteligente. O utilizador assina a transação com a sua chave privada e o contrato inteligente verifica a assinatura para executar o acordo de empréstimo.

Identidade e Autenticação Descentralizadas

Um usuário entra em um aplicativo descentralizado (dApp) usando sua identidade blockchain, por exemplo, o endereço Ethereum. O dApp solicita uma mensagem assinada do usuário (chave privada), servindo como prova de propriedade. A assinatura digital autentica a identidade do usuário.

Esta também pode ser uma forma fácil de integrar novos utilizadores Web3, uma vez que não precisam de criar uma conta e guardar mais uma senha, os utilizadores podem ocultar a sua identidade e não necessitam de revelar detalhes privados como o seu endereço de email.

Integridade dos Dados e Não Repúdio dos NFTs

Um artista assina um arquivo de arte digital com sua chave privada antes de o cunhar como um NFT. A assinatura digital garante a integridade da obra de arte, e o artista não pode negar a autoria posteriormente.

Sistemas de Votação

Numa plataforma de votação descentralizada, os eleitores lançam os seus votos assinando as suas escolhas com as suas chaves privadas. As assinaturas digitais autenticam os votos e garantem que cada eleitor possa verificar a sua contribuição. Esta aplicação é vista em votações de governação e votações de protocolo de consenso.

Interoperabilidade entre Cadeias

Um utilizador transfere um token de uma blockchain para outra utilizando um protocolo de ponte. O utilizador assina uma transação na cadeia de origem, e a cadeia de destino verifica a assinatura, permitindo a transferência entre cadeias.

Desafios e Tendências Futuras

O Desafio dos Ataques Quânticos

As assinaturas digitais continuam a ser uma das formas infalíveis de autenticação na blockchain. No entanto, o desenvolvimento de computadores quânticos em grande escala representará uma ameaça à segurança das blockchains, uma vez que os algoritmos criptográficos podem ser decifrados rapidamente pelos computadores quânticos.

Os computadores quânticos podem processar tarefas a velocidades incríveis, realizando em segundos o que levaria horas aos computadores tradicionais, os atores mal-intencionados podem usar um computador quântico para liderar ataques quânticos que poderiam comprometer toda uma blockchain.

No entanto, podem ser prevenidos por assinaturas pós-quânticas, que já estão em desenvolvimento, embora ocupem mais espaço de armazenamento na blockchain.

Conclusão

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.

Autor: Paul
Tradutor: Sonia
Revisores: Piccolo、Edward、Ashley He
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!