Checksum é uma função criptográfica simples que nos permite verificar e saber exatamente se um endereço Bitcoin está escrito corretamente. Um utilitário simples que nos permite identificar erros de digitação ou outros. Tudo para evitar a perda de nossos fundos enviando nossos bitcoins para um endereço malformado.
LSoma de Verificação ou CheckSum é uma função simples usada para detectar se uma série de dados ou arquivos não foi modificada. Uma função muito útil para garantir a integridade e proteção da informação quando é armazenada ou compartilhada com outros usuários da rede.
Sua funcionalidade é baseada em um algoritmo de verificação simples que permite criar pequenos hash ou cadeias de caracteres que podem então ser usadas para verificar antes ou depois de uma transmissão de dados, a validade dos dados transmitidos. Esse hash geralmente está localizado no final do arquivo ou string verificado. E, dessa forma, servem de assinatura para ajudar a verificar a integridade das informações.
Muito útil, por exemplo, quando queremos incluir uma verificação automática que nos permite saber se o que escrevemos ou os dados que recebemos representam realmente a informação desejada.
Nesse sentido, a soma de verificação em Bitcoin (e em outras criptomoedas) são amplamente usados, e aqui aprenderemos mais sobre essa função pequena, mas poderosa, e como ela nos ajuda a tornar o Bitcoin um desenvolvimento muito mais seguro para todos.
Origem do CheckSum
O aparecimento das primeiras funções CheckSum remonta ao trabalho inicial de Willian Wesley Peterson, um cientista matemático e computacional que passou vários anos pesquisando, projetando e implementando os primeiros CheckSums do mundo. Mais especificamente, Peterson projetou a primeira função CheckSum ou soma de verificação, em 1961, a conhecida CRC (Verificação por redundância cíclica), que posteriormente daria vida a padrões industriais como o CRC8 ou CRC32C, entre outros derivados de uso muito amplo.
Desde então, as funções CheckSum têm sido uma parte essencial de nossas vidas. Desde um simples CD player, passando por televisores, sistemas de conversão digital-analógicos e vice-versa, transmissões de dados por cabo (como a Ethernet de nossos computadores) ou por rádio (como as feitas por nossos celulares). Resumindo, a utilidade do checksum é gigantesca e certamente está presente em coisas que você nem remotamente pensaria se fosse aplicado.
Por outro lado, William W. Peterson foi um grande desenvolvedor de tecnologias e aprimoramento de linguagens de programação, até seu falecimento em 6 de maio de 2009. Em sua homenagem, as empresas Intel e AMD adicionaram a função CRC32c a seus respectivos processadores. Esta é a função de soma de verificação mais conhecida de Peterson e ainda amplamente utilizada na indústria.
Como funciona o CheckSum?
A função CheckSum foi criada aplicando um algoritmo simples. O objetivo é usar uma série de operações matemáticas e lógicas complexas para converter uma sequência de dados em uma sequência fixa de números conhecida como hash de checksum.
Esse pequeno hash é então usado para verificar rapidamente se certos dados foram danificados. Seja por armazenamento (dados escritos ou lidos incorretamente) ou por transmissão dos mesmos (redes de transmissão sempre apresentam uma perda relacionada a diferentes fatores). Ou mesmo se algum ator malicioso o modificou deliberadamente.
Então, como esta função permite verificar a integridade de uma informação, é amplamente utilizado ao compartilhar ou armazenar dados na rede. Uma vez que os dados, sendo acompanhados pelos valores hash gerados a partir deles mesmos por meio de uma função hash, eles adquirem algumas propriedades extras que permitem que sejam verificados e validados por si próprios quando são compartilhados ou armazenados.
Por exemplo, se um usuário deseja compartilhar um arquivo na rede com outro usuário, ele deve fornecer um valor hash do arquivo para que esse mesmo valor possa ser obtido ao aplicar a função hash naquele arquivo. Garantindo então que o arquivo compartilhado chegue corretamente e sem alterações ao seu destinatário.
Da mesma forma, ao arquivar e armazenar informações, elas podem ser verificadas posteriormente calculando e salvando o resultado do valor hash obtido. Assim, quando for necessária uma verificação, o valor hash salvo pode ser utilizado para saber se a informação foi alterada ou não, por algum motivo.
Casos de uso para a função CheckSum
Os casos de uso das funções CheckSum são amplamente variados. Como já mencionamos, eles são peças muito fundamentais em dispositivos eletrônicos e na computação em geral. Mas para que você possa entender mais claramente seu escopo, veremos a seguir alguns casos de uso reais e muito cotidianos dessas funções:
Tecnologia GSM
A tecnologia GSM que possibilita o uso da maioria de nossos telefones celulares hoje faz uso extensivo de funções de checksum em seus sistemas de transmissão digital de voz e dados. Vale lembrar que a informação digital enviada para a rede celular é codificada, comprimida e modulada de forma que pode chegar de um ponto a outro da rede celular com o mínimo de perda de informação e qualidade.
Mas por ser uma rede de dados do tipo wireless existem vários fatores que alteram a qualidade das informações enviadas. Qualquer tipo de interferência pode causar perda de informações e com isso, perderemos a qualidade dos serviços. As funções de checksum são usadas para lidar com essa situação. Graças a estas funções, a rede pode verificar rapidamente se as informações enviadas e recebidas estão em perfeitas condições e, se não estiverem, se for detectado um erro, a rede consegue tentar corrigi-lo, na maioria das vezes com sucesso. .
Então, sim, graças às funções de checksum, você tem chamadas de voz, mensagens e dados de alta qualidade em nossas redes celulares atuais.
Contas bancárias
Outro uso muito comum das funções de soma de verificação é verificar se as informações de uma conta bancária estão corretas. Cada vez que você vê o número de uma conta bancária, você não vê apenas um grupo de números que o identifica nesse banco. Mas há também uma informação que permite que eles verifiquem se os números que você forneceu são os corretos.
Por exemplo, em contas bancárias do tipo IBAN, esses números de controle ou soma de verificação são os primeiros quatro dígitos. Os dois primeiros indicam o país de origem da conta e os outros dois indicam o número de controle. Este número de controle está relacionado aos últimos 10 números que identificam a conta bancária. E isso nos garante que não cometeremos nenhum erro ao digitar o número de uma conta bancária.
Endereços de criptomoeda
Por meio da função CheckSum ou soma de verificação, você pode verificar de forma rápida e fácil se o endereço que está usando está correto. Ou se pelo contrário, está alterado de alguma forma. Evitar enviar inconscientemente suas criptomoedas para um endereço falso, incorreto ou inexistente.
Embora, em teoria, seja impossível enviar bitcoins para um endereço que não existe ou que está incorreto. Porque esses endereços, quando são gerados, incorporam um código de soma de verificação. Esses dados representam o valor hash do endereço e os dados da soma compõem seu próprio esquema alfanumérico conhecido como Base58Check.
Isso salva a soma de verificação diretamente no endereço. E com isso, se um endereço for inserido incorretamente, as somas de verificação de ambos os endereços não coincidem. Desta forma, a carteira impede uma transação quando os endereços são inseridos incorretamente.
No Bitcoin, a função hash SHA-256 é aplicada duas vezes para gerar um hash de 32 bytes, onde os primeiros 4 bytes (32 bits) são tomados como a soma de verificação para detectar erros tipográficos nos endereços. E, embora as chaves associadas ao endereço não possam ser obtidas através desta soma de verificação, ela permite a verificação das referidas chaves. Com o qual é possível evitar cometer erros ao fazer uma transação.
Este procedimento simples garante que você não errará ao inserir um endereço de Bitcoin. Na verdade, a probabilidade de você estar errado é de 1 em 4.294.967.295.