Um dos recursos mais básicos do Bitcoin (e também mais útil) é a capacidade de assinar e verificar uma mensagem usando as chaves públicas e privadas dos endereços do Bitcoin, algo que ensinaremos a você como usar no próximo artigo.
UUma das funções mais interessantes de Bitcoin, e talvez menos conhecido por aqueles que estão começando no mundo da criptografia, é sua capacidade de assinar uma mensagem com o seu endereço bitcoine até criptografar e verificar com segurança a autenticidade das mensagens. Um processo que é possível graças ao fato de que o Bitcoin usa criptografia assimétrica.
Por exemplo, é possível que uma pessoa assine uma mensagem com seu endereço bitcoin, para mostrar ao mundo que o criador de um determinado texto é o dono do chave privada de um endereço Bitcoin específico. E não é algo exclusivo do Bitcoin, muitas outras criptomoedas têm essa capacidade, porque seus fundamentos criptográficos de chave pública / private são iguais. Tudo sem expor informações confidenciais.
Mas como podemos fazer isso a partir desta função? Bem, você descobrirá isso neste interessante artigo, onde mostraremos como realizar este procedimento.
Utilidade de assinar mensagens usando seu endereço Bitcoin
Contudo Qual é a real utilidade de assinar mensagens usando seu endereço Bitcoin? Conforme discutimos no início, realizar este procedimento permite que você torne públicas certas informações que podem ser verificadas por qualquer pessoa sem maiores problemas e com total segurança.
Há uma grande variedade de casos de uso em que esse recurso pode ser útil. Aqui estão alguns desses casos de uso:
- Verificação da origem dos fundos. Por exemplo, se decidimos fazer uma compra usando bitcoins de um endereço, mas eles nos pedem para verificar se esse endereço e os fundos são nossos, então assinar uma mensagem com esse endereço resolve o problema.
- Ser capaz de fazer pagamentos para um endereço específico com segurança. Por exemplo, eles nos enviam uma mensagem, e precisamos saber se a mensagem não foi interceptada e modificada (ex: alteração do endereço para pagamento). Para isso, o texto completo seria assinado (onde também aparece o endereço de pagamento) e adicionaremos a assinatura digital. Assim, o destinatário pode levar a mensagem, o endereço e a assinatura e verificar se tudo está correto.
- Como uma preliminar para a configuração de porta-moedas multi-sig ou multi-assinaturas. Se um grupo de pessoas decidiu criar uma carteira multisig, uma etapa anterior poderia ser verificar se realmente temos o controle do endereço que nos corresponde e para isso podemos assinar uma mensagem usando esse endereço.
- Provar que você é o proprietário de um endereço. Isso é algo que foi pedido Craig Wright, porque ele grita aos 4 ventos que ele é Satoshi Nakamoto, mas ele não é capaz de demonstrar que tem controle sobre as direções atribuídas a Satoshi Nakamoto. Basta assinar uma mensagem com qualquer um dos endereços para provar isso. Mais uma razão pela qual ele é conhecido como scammer.
A esta altura, fica claro que é uma função bastante útil e que pode ser adaptada às necessidades de quem vai utilizá-la e, com um pouco de criatividade, encontrar novos e revolucionários cenários.
Ferramentas para assinar e verificar mensagens usando seu endereço Bitcoin
Contudo O que precisamos para poder usar esta função? Bem, a verdade é que qualquer carteira de Bitcoin com a função "Assinar e verificar mensagens" permite que você use esta função. Entre as carteiras com esta capacidade podemos citar:
- Bitcoin Core, o software oficial Bitcoin permite que você use esta função perfeitamente.
- Carteira electrum, é outra carteira famosa que permite usar esta função sem complicações.
- Carteira Trezoré carteira de hardware também tem a função de assinar e verificar mensagens em sua interface.
- Ferramentas online Ferramenta de Assinatura Bitcoin, ele permite que você faça isso perfeitamente com esta função.
- Bibliotecas de código aberto, como bitcoins, para criar seus próprios programas e ideias.
Assinatura e verificação de informações usando Bitcoin Core
Para saber como lidar com esta função, optamos por usar como exemplo Bitcoin Core, o software Bitcoin oficial. A razão para isto é que esta é a carteira Bitcoin mais completa e segura que existe no momento, e usar esta opção com esta carteira é bastante simples.
A primeira coisa que você deve fazer é baixar e instalar a carteira Bitcoin Core em seu computador. Para fazer isso, recomendamos que você vá ao site oficial e baixe a versão do Bitcoin Core para o seu sistema operacional. Assim que a instalação for concluída, podemos começar a usar as opções Verificar e Assinar mensagens.
Assine uma mensagem usando Bitcoin Core
Para assinar uma mensagem usando o Bitcoin Core, a primeira coisa que você terá que fazer é executar o programa principal, que lhe deixará com uma interface como esta.
Nesse ponto, antes de começar, a primeira coisa que você deve fazer é fazer uma ligeira configuração da carteira. Isso é necessário porque no momento a assinatura da mensagem só é suportada usando um endereço legado (aqueles endereços que começam com "1"), aguardando a ativação do BIP-322 para habilitar a assinatura de mensagens usando todos os endereços suportados pelo Bitcoin.
Nesse sentido, a primeira coisa que você deve fazer é ir ao menu "Configuração" e clique "Opções".
Uma vez lá, você deve clicar em "Abrir arquivo de configuração" e, uma vez que o arquivo for aberto, você deve incluir a seguinte linha:
addresstype = legado
Salve a configuração e reinicie o programa para que as alterações tenham efeito. O que essa mudança faz é ordenar que o Bitcoin Core use endereços legados por padrão para gerar nossos endereços, para que possamos usar a assinatura da mensagem usando o Bitcoin Core sem problemas.
Agora, depois de fazer essas alterações e reiniciar o Bitcoin Core, o próximo passo será gerar um novo endereço para ser nossa base de assinatura de mensagem. Este endereço é o que permitirá que você use a função de assinar uma mensagem. Para gerar este endereço, você deve ir até a opção "Receber" e clique no botão "Criar novo endereço para recepção".
AVISO!
Tenha muito cuidado ao modificar os valores no arquivo de configuração Bitcoin Core. Nesse caso, nossa recomendação é válida e reconhecida pela comunidade Bitcoin e desenvolvedores, mas pode haver casos em que pessoas mal-intencionadas podem instruí-lo a obter acesso à sua carteira sem perceber. Sempre tome cuidado, pesquise o que você faz antes de fazer.
Portanto, nosso endereço a ser usado para assinar a mensagem é 18FgxNdGSemUZNybpdrgdr1rbdRFbuAwL9
Agora, para assinar uma mensagem, a primeira coisa que você deve fazer é ir ao menu «Arquivo, Arquivo" e selecionando "assinar mensagem", então a seguinte nova janela será exibida antes de você.
Neste ponto, deve-se pegar o endereço já gerado e colocá-lo no campo onde o endereço é solicitado. Feito isso, você deve escrever a mensagem para assinar, no nosso caso a mensagem é:
Esta é uma prova de assinatura da mensagem usando um endereço Bitcoin, para a Bit2Me Academy.
Uma vez que esses dois pontos são feitos, você deve ter algo assim:
Para finalizar o processo de assinatura, basta clicar no botão "assinar mensagem", o resultado é exibido como segue.
O resultado é uma assinatura digital que é o seguinte:
IJQ9jOGl5ZdjmsUNDYmAwUlFqfjp/FfAi5dzdgiQTfjheDYmBxfBq40URLPOoggonqRYtGydTdwmiRn8ZElcSjc=
Como você pode ver, o processo é bastante simples, e não esconde nenhuma dificuldade maior do que fazer alguns passos corretamente.
Verifique uma mensagem usando Bitcoin Core
Para verificar uma mensagem usando o Bitcoin Core, o processo é bastante semelhante. Primeiro, você deve ir ao menu "Arquivo" e selecione a opção "Verificar mensagem", com a qual a seguinte janela aparecerá.
Neste ponto, para realizar a verificação deve-se copiar o endereço Bitcoin ao qual a mensagem está atribuída, neste caso utilizaremos o endereço do exemplo anterior, que é: 18FgxNdGSemUZNybpdrgdr1rbdRFbuAwL9.
A segunda etapa é pegar a mensagem original e copiá-la na seguinte área:
Esta é uma prova de assinatura da mensagem usando um endereço Bitcoin, para a Bit2Me Academy.
E, por fim, colocamos a mensagem codificada e assinada que é atribuída a esse endereço, que no nosso caso é:
IJQ9jOGl5ZdjmsUNDYmAwUlFqfjp/FfAi5dzdgiQTfjheDYmBxfBq40URLPOoggonqRYtGydTdwmiRn8ZElcSjc=
Ao colocar todos esses textos, teremos o seguinte:
Para finalizar, basta apertar o botão "Verificar mensagem" e assim podemos verificar a autenticidade da mensagem e que certamente foi emitida por quem controla aquele endereço.
Segurança deste sistema
Você certamente se perguntará se este sistema é realmente seguro e não pode ser quebrado de alguma forma. Se essa for uma de suas preocupações, você pode gostar de saber que não tem nada com que se preocupar: esta função é segura; na verdade, é altamente segura.
Isso é possível graças ao fato de que o Bitcoin usa o algoritmo de assinatura digital ECDSA para realizar todas essas operações e, por enquanto, o referido algoritmo próximo à curva secp256k1, é considerado altamente seguro. Resumindo, a segurança do Bitcoin e desta função é protegida por uma criptografia muito poderosa que não foi quebrada no momento. Para se ter uma ideia da sua segurança, deve saber que este processo se baseia numa segurança superior a quase toda a gente que utiliza no seu dia a dia em alguns processos com banca online, mensagens, telefonia, ...
Por outro lado, e como você pode ver, é um processo muito simples, de fato, se você conhece os sistemas de criptografia e descriptografia de mensagens como PGP (ou GPG), perceberá que funciona usando os mesmos princípios.
O objetivo de tudo isso é fornecer a você uma ferramenta para enviar e verificar informações com segurança e sem qualquer tipo de intermediário para isso. Como sempre, o Bitcoin tem como objetivo a descentralização desde o seu início e recursos como esses apenas atestam esse esforço.