O que é uma Assinatura digital e como funciona?

intermediário1/19/2024, 6:23:26 PM
As blockchains use assinaturas digitais as an integral part of their decentralized verification process, they create a safe way of authenticating processes without exposing the user’s identity.

Introdução

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.

Compreendendo Assinatura digital

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.

Recursos 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 verificando 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 bem-sucedido, o remetente não pode negar o envio da mensagem.
  • Integridade: A capacidade de verificar o valor de hash/digest 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 (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.

Termos-chave que você precisa entender

Hashing

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

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

Como funcionam as Assinaturas digitais?

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

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

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

  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. Esse algoritmo gera a assinatura digital.

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

Como eles se combinam para fazer isso 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: 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.

  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. Recebimento e Verificação: Karen, a destinatária, utiliza a chave pública de Mark para descriptografar a assinatura digital, obtendo o digest original. Independentemente, Karen aplica o mesmo algoritmo de hash ao documento recebido, gerando outro digest.
  3. Karen compara os dois resumos: um da assinatura descriptografada e outro gerado independentemente. Se 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 emergentes de segurança.

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

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

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

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

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

Blockchains, seu Algoritmo de Hashing e Algoritmo de Assinatura

  1. Bitcoin (BTC):
    Algoritmo de hash: SHA-256
    Algoritmo de Assinatura Digital: ECDSA, Schnoor (Garfo Suave TapRoot)

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

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

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

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

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

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

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

Como o Bitcoin Usa 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 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:

  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 importantes, 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ções não gastas ou UTXOs) sendo usadas como insumos 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 Primitivas de Integridade de Mensagem de Digest de 160 bits). Esse 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 da rede Bitcoin). Nós na rede, incluindo os mineradores, 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 as entradas (UTXOs) utilizadas na transação não foram gastas e são válidas.
  6. Transações válidas são coletadas pelos mineradores, que competem para resolver um problema matemático complexo (prova de trabalho). O primeiro minerador a resolver o problema adiciona um bloco contendo as transações verificadas ao 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 registrada no 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, na autenticação de identidades e na garantia da integridade dos 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 é 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.

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

Identidade e Autenticação Descentralizadas

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.

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

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.

Sistemas de Votação

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.

Interoperabilidade entre cadeias

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.

Desafios e Tendências Futuras

O Desafio dos Ataques Quânticos

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.

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.

著者: Paul
翻訳者: Sonia
レビュアー: Piccolo、Edward、Ashley He
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。

O que é uma Assinatura digital e como funciona?

intermediário1/19/2024, 6:23:26 PM
As blockchains use assinaturas digitais as an integral part of their decentralized verification process, they create a safe way of authenticating processes without exposing the user’s identity.

Introdução

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.

Compreendendo Assinatura digital

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.

Recursos 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 verificando 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 bem-sucedido, o remetente não pode negar o envio da mensagem.
  • Integridade: A capacidade de verificar o valor de hash/digest 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 (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.

Termos-chave que você precisa entender

Hashing

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

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

Como funcionam as Assinaturas digitais?

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

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

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

  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. Esse algoritmo gera a assinatura digital.

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

Como eles se combinam para fazer isso 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: 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.

  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. Recebimento e Verificação: Karen, a destinatária, utiliza a chave pública de Mark para descriptografar a assinatura digital, obtendo o digest original. Independentemente, Karen aplica o mesmo algoritmo de hash ao documento recebido, gerando outro digest.
  3. Karen compara os dois resumos: um da assinatura descriptografada e outro gerado independentemente. Se 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 emergentes de segurança.

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

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

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

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

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

Blockchains, seu Algoritmo de Hashing e Algoritmo de Assinatura

  1. Bitcoin (BTC):
    Algoritmo de hash: SHA-256
    Algoritmo de Assinatura Digital: ECDSA, Schnoor (Garfo Suave TapRoot)

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

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

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

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

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

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

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

Como o Bitcoin Usa 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 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:

  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 importantes, 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ções não gastas ou UTXOs) sendo usadas como insumos 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 Primitivas de Integridade de Mensagem de Digest de 160 bits). Esse 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 da rede Bitcoin). Nós na rede, incluindo os mineradores, 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 as entradas (UTXOs) utilizadas na transação não foram gastas e são válidas.
  6. Transações válidas são coletadas pelos mineradores, que competem para resolver um problema matemático complexo (prova de trabalho). O primeiro minerador a resolver o problema adiciona um bloco contendo as transações verificadas ao 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 registrada no 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, na autenticação de identidades e na garantia da integridade dos 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 é 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.

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

Identidade e Autenticação Descentralizadas

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.

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

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.

Sistemas de Votação

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.

Interoperabilidade entre cadeias

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.

Desafios e Tendências Futuras

O Desafio dos Ataques Quânticos

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.

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.

著者: Paul
翻訳者: Sonia
レビュアー: Piccolo、Edward、Ashley He
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!