This article has been translated from English to Brazilian.

Nesta lição, vamos aprender como uma assinatura digital realmente funciona no Bitcoin e em outras criptomoedas.

Para chegarmos a esse ponto, primeiro tivemos de aprender vários conceitos técnicos, pois eles são os "blocos de construção" necessários para criar uma assinatura digital:

Se você NÃO estiver familiarizado com esses conceitos, eles foram explicados de uma forma amigável para iniciantes nas lições anteriores. Explore os links acima para saber mais.

Como é criada uma assinatura digital?

Vamos dar uma olhada passo a passo em como uma assinatura digital é criada:

  1. Quando você deseja enviar bitcoin, sua carteira cria uma mensagem de transação. Essa mensagem contém informações como a quantidade de bitcoins que você deseja enviar e o endereço do destinatário.
  2. Essa mensagem é executada por meio de uma função de hash.
  3. A função hash produz um resultado conhecido como "hash de mensagem" ou apenas "hash".
  4. Esse hash de mensagem é entãocriptografado com sua chave privada.
  5. O hash da mensagem criptografada torna-se a "assinatura digital".

Aqui está um fluxograma desse processo:

How a Digital Signature is Created

Portanto, ao final desse processo, sua carteira criou dois "itens":

  1. Mensagem de transação
  2. Assinatura digital (um hash criptografado da mensagem da transação)

Nesse ponto, nada foi enviado para a rede Bitcoin ainda.

Se você não percebeu, a própria mensagem da transação é necessária como um "ingrediente" para criar a assinatura digital.

Portanto, você não usa apenas sua chave privada para criar uma assinatura digital... você usa sua chave privada E o hash da mensagem da transação.

Isso significa que você não pode usar essa assinatura digital para outra transação. Se você tentasse usar essa assinatura digital em uma segunda transação, ela seria rejeitada pela rede Bitcoin porque a assinatura digital baseia-se exclusivamente nos dados da primeira transação.

Cada assinatura digital é exclusiva de uma transação específica.

Como uma assinatura digital é verificada?

Para gastar bitcoins de um determinado endereço de Bitcoin, você precisa comprovar a "propriedade" (ou conhecimento) da chave privada que está emparelhada com a chave pública associada a esse endereço.

Mas você quer fazer isso sem ter que revelar sua chave privada.

Uma assinatura digital é algo que você pode usar para PROVAR que conhece a chave privada que está conectada a uma chave pública, sem precisar revelar a chave privada real.

Vejamos como isso funciona:

  1. Quando você inicia uma transação de Bitcoin, o software da sua carteira fornece três "itens" à rede Bitcoin: a mensagem original da transação, a assinatura digital e a sua chave pública (que está vinculada ao endereço onde o bitcoin que você deseja enviar está armazenado no momento).
  2. Quando um nó do Bitcoin recebe esses "itens", ele os separa.
  3. Ele pegará a mensagem original da transação e a executará por meio da mesma função de hash que você usou anteriormente. (Todo o software Bitcoin usa a mesma função de hash.) Quanto à assinatura digital, ele usará a chave pública que você forneceu para descriptografá-la.
  4. Em seguida, os dois hashes serão comparados.
  5. Os dois hashes são exatamente iguais?
  6. Se os dois hashes forem iguais, isso prova que você é o proprietário real do bitcoin que deseja enviar.

Aqui está um fluxograma desse processo:

How a Digital Signature is Verified

Há dois aspectos a serem destacados aqui:

1. A capacidade de descriptografar com a chave pública prova a identidade do remetente.

Na etapa 3, quando um nó consegue descriptografar a assinatura digital, isso prova a sua "identidade".

Lembre-se de que, como uma chave privada e uma chave pública estão matematicamente ligadas, se você conseguir descriptografar uma mensagem com minha chave pública, isso significa que eu a criptografei com minha chave privada.

Se você não conseguiu descriptografar a mensagem, isso significa que ela foi criptografada pela chave privada de outra pessoa. E isso significa que a mensagem não veio de mim.

2. Os hashes que são uma correspondência exata provam que a mensagem não foi alterada.

Na etapa 6, verificar se os dois hashes são exatamente iguais garante que a mensagem original não foi alterada.

É importante que você saiba disso porque, ao contrário da assinatura digital, que é criptografada, a mensagem original da transação está em texto simples, pois todas as transações de Bitcoin são públicas e podem ser vistas por todos.

Lembre-se, qualquer pequena alteração produziria um hash totalmente diferente. Portanto, se alguém interceptar a mensagem original da transação a caminho de um nó e modificá-la (por exemplo, enviar o bitcoin para o endereço dele), quando a mensagem passar pela função hash, ela produzirá um hash totalmente diferente da assinatura digital.

Da mesma forma que uma assinatura manuscrita vincula uma pessoa a um documento específico, uma "assinatura digital" usando criptografia....cryptographically....linksidentity to a specific message.

Resumo

Agora que você entende como uma assinatura digital é criada e como ela é verificada, aqui está uma visão geral do que realmente significa "assinar" uma transação e como a "assinatura digital" do remetente é usada para verificar a propriedade dos bitcoins que ele deseja enviar:

Digital Signature Process