Assinatura digital com Decrediton

2 minutos de leitura

O Decrediton pode ser usado para assinar e verificar mensagens digitalmente assinadas usando o par de chaves do Decred. Essa verificação serve para provar que um endereço (chave pública) pertence a um usuário. Esse processo de assinatura não escreve nenhuma informação na blockchain.

Para saber mais sobre assinaturas digitais, veja o artigo Verificação de assinaturas digitais.

A versão do Decrediton mostrada nesse artigo é a 1.1.3.

1. Objetivo

A assinatura digital é útil nos seguintes casos:

  • Cenário 1: Pessoas que precisam documentar uma proposta de compra e venda e querem garantir que oi endereço que será registrado no documento é um endereço válido e pertencente a outra parte
  • Cenário 2: Um cliente que fez uma compra em um website e precisa agora provar ao vendedor que aquele endereço é seu

Os passos a seguir foram executados em um Decrediton no macOS e outro no Debian Linux, ambos conectados a Testnet. Saiba mais sobre o ambiente de testes em Testando o Decred na Testnet. Os cenários estão conectados aos exercícios realizados em Enviando e recebendo DCRs via Decrediton.

2. Cenário 1: documentar um endereço de recebimento ainda não utilizado

Geração de um endereço público

A primeira etapa é a geração de um endereço público (para recebimento) da mesma carteira que assinará a mensagem.

Figura 1 - Bob gera um endereço de recebimento
Figura 1 - Bob gera um endereço de recebimento

Assinatura no Decrediton

O processo de assinatura requer as seguintes informações:

  • Address: Um endereço público gerado para esta carteira
  • Message: Uma mensagem que tenha sido combinada com a outra parte para provar a quem pertence a carteira
  • Passphrase: A senha da carteira, que será usada para “destravar” a chave privada, usada para criptografar o hash da mensagem

A “assinatura” é o resultado mostrado na caixa de texto azul.

Figura 2 - Bob assina uma mensagem com texto combinado entre as partes
Figura 2 - Bob assina uma mensagem com texto combinado entre as partes

Verificação no Decrediton

Para que a outra parte possa verificar a assinatura gerada no processo acima será necessário enviar:

  • Address: O mesmo endereço usado acima
  • Signature: A assinatura gerada no bloco azul na imagem acima
  • Message: A mesma mensagem usada acima

Figura 3 - Alice verifica que é Bob é o dono do endereço
Figura 3 - Alice verifica que é Bob é o dono do endereço

Se for inserido um endereço inválido o Decrediton avisará que o endereço é invalido por não ser compatível com o formato dos endereços.

Figura 4 - Endereço inválido é usado
Figura 4 - Endereço inválido é usado

Se for inserido um endereço válido mas que não pertença a carteira o Decrediton avisará que o endereço não foi encontrado.

Figura 5 - Um endereço válido é usado, mas não pertence a carteira de Alice
Figura 5 - Um endereço válido é usado, mas não pertence a carteira de Alice

Verificação na web

Também é possível usar um browser para verificar uma mensagem assinada. Com os mesmos parâmetros utilizados acima qualquer usuário em qualquer dispositivo pode verificar que um endereço pertence a um usuário da rede Decred.

Figura 6 - Alice verifica via web que Bob é o dono do endereço
Figura 6 - Alice verifica via web que Bob é o dono do endereço

3. Cenário 2: comprovação de propriedade após envio

Nesse cenário Alice já enviou 0.1 DCR para Bob. Agora ela quer mostra que é a dona do endereço de envio.

Figura 7 - Quem enviou a transação para a carteira de Bob?
Figura 7 - Quem enviou a transação para a carteira de Bob?

Localize a transação

Figura 8 - Alice, que enviou 0.1 DCR para Bob, localiza a transação
Figura 8 - Alice, que enviou 0.1 DCR para Bob, localiza a transação

Abra a transação

Figura 9 - Alice abre a transação
Figura 9 - Alice abre a transação

Localize e copie o endereço de origem

<br>Figura 10 - Alice localiza o endereço de origem na transação
Figura 10 - Alice localiza o endereço de origem na transação

Assine a mensagem

Figura 11 - Alice assina uma mensagem provando que é a dona do endereço de origem
Figura 11 - Alice assina uma mensagem provando que é a dona do endereço de origem

Envie a assinatura para a outra parte.

Verificação da assinatura

Figura 12 - Bob verifica que a mensagem foi assinada por Alice
Figura 12 - Bob verifica que a mensagem foi assinada por Alice