This article has been translated from English to Portuguese.
Nesta lição, vamos aprender como funciona uma assinatura digital na Bitcoin e noutras criptomoedas.
Para chegarmos a este ponto, tivemos que aprender vários conceitos técnicos primeiro, pois eles são os "blocos de construção" necessários para criar uma assinatura digital:
Se NÃO estás familiarizado com estes conceitos, eles foram explicados de uma forma simples em lições anteriores. Explora as ligações acima para saberes mais.
Como é que uma assinatura digital é criada?
Vamos ver passo a passo como se cria uma assinatura digital:
- Quando queres enviar bitcoin, a tua carteira cria uma mensagem de transação. Esta mensagem contém informações como a quantidade de bitcoins que desejas enviar e o endereço do destinatário.
- Esta mensagem passa por uma função hash.
- A função hash produz um resultado conhecido como "hash de mensagem" ou apenas "hash".
- Este hash de mensagem é entãoencriptado com a tua chave privada.
- O hash da mensagem encriptada torna-se a "assinatura digital".
Vê aqui um fluxograma deste processo:
Assim, no final deste processo, a tua carteira criou dois "itens":
- Mensagem de transação
- Assinatura digital (um hash encriptado da mensagem da transação)
Neste momento, ainda não enviaste nada para a rede Bitcoin.
Se não reparaste, a própria mensagem de transação é necessária como um "ingrediente" para criar a assinatura digital.
Portanto, não usas apenas a tua chave privada para criar uma assinatura digital... usas a tua chave privada E o hash da mensagem da transação.
Isto significa que não podes usar esta assinatura digital para outra transação. Se tentasses usar esta assinatura digital numa segunda transação, ela seria rejeitada pela rede Bitcoin porque a assinatura digital é baseada apenas nos dados da primeira transação.
Cada assinatura digital é única para uma transação específica.
Como é que uma assinatura digital é verificada?
Para gastares bitcoins de um determinado endereço Bitcoin, tens de provar a "propriedade" (ou: conhecimento) da chave privada que está emparelhada com a chave pública associada a esse endereço.
Mas queres fazer isto sem ter de revelar a tua chave privada.
Uma assinatura digital é algo que podes usar para PROVAR que conheces a chave privada que está ligada a uma chave pública, sem teres de revelar a chave privada real.
Vê como isto funciona:
- Quando inicias uma transação Bitcoin, o software da tua carteira fornece três "itens" à rede Bitcoin: a mensagem original da transação, a assinatura digital e a tua chave pública (que está ligada ao endereço onde a bitcoin que desejas enviar está atualmente armazenada).
- Quando um nó Bitcoin recebe estes "itens", separa-os.
- Pega na mensagem original da transação e passa-a pela mesma função hash que usaste anteriormente. (Todo o software Bitcoin usa a mesma função de hash.) Quanto à assinatura digital, usará a chave pública que forneceste para decifrá-la.
- Ambos os hashes serão então comparados.
- Os dois hashes são exatamente iguais?
- Se ambos os hashes corresponderem, isso prova que és o verdadeiro proprietário da bitcoin que pretendes enviar.
Vê aqui um fluxograma deste processo:

Há duas coisas a salientar aqui:
1. Ser capaz de desencriptar com a chave pública prova a identidade do remetente.
No passo 3, quando um nó consegue decifrar a assinatura digital, isso prova a tua "identidade".
Lembra-te, uma vez que uma chave privada e uma chave pública estão matematicamente ligadas, se conseguires desencriptar uma mensagem com a minha chave pública, isso significa que a encriptei com a minha chave privada.
Se não conseguires decifrar a mensagem, significa que foi encriptada 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 exacta provam que a mensagem não foi alterada.
No passo 6, verificar se os dois hashes são exatamente iguais garante que a mensagem original não foi alterada.
É importante que saibas isto porque, ao contrário da assinatura digital que é encriptada, a mensagem original da transação está em texto simples porque todas as transacções Bitcoin são públicas para todos verem.
Lembra-te, qualquer pequena alteração produziria um hash totalmente diferente. Assim, se alguém interceptasse a mensagem original da transação a caminho de um nó e a modificasse (por exemplo, para enviar a bitcoin para o seu endereço), quando a mensagem passasse pela função hash, produziria um hash totalmente diferente da assinatura digital.
Da mesma forma que uma assinatura manuscrita liga uma pessoa a um documento específico, uma "assinatura digital" usando criptografia....cryptographically....ligaa identidade a uma mensagem específica.
Resumo
Agora que entendes como uma assinatura digital é criada e como é verificada, aqui está uma visão geral do que significa "assinar" uma transação e como a "assinatura digital" do remetente é usada para verificar a propriedade dos bitcoins que deseja enviar:

