Uma das maiores inseguranças de quem ouve falar em bitcoin ou qualquer outra criptomoeda é em relação a segurança. Para muitas pessoas, a idéia de um dinheiro digital é associada automaticamente a algo inerentemente inseguro, cujo sistema pode ser invadido e alterado a qualquer momento.
A realidade, entretanto, felizmente não é assim. O Bitcoin possui um sistema muito mais robusto e resistente a tentativas de ataque externo do que o sistema de muitos bancos gigantescos por aí com atuação global, o que, junto com a descentralização e privacidade proporcionadas por essa moeda digital, é uma dos grandes motivos para o seu crescimento acelerado ao longo dos últimos anos, pois de nada adiantariam essas qualidades se o sistema que suporta o bitcoin fosse inseguro.
Uma boa parte da segurança do Bitcoin e de sua blockchain vem de um conceito da criptografia chamado de Hash. Em essência, o Hash permite que as informações das transações envolvendo bitcoins permaneçam incorruptíveis, tornando-as confiáveis e antifrágeis a tentativas de ataque.
Mas o que é o Hash? Como o Hash funciona? Como ele esta inserido no sistema Bitcoin? É esse assunto que iremos falar nesse artigo.
O que é Hash?
De modo simplificado, podemos dizer que o Hash é um código de tamanho fixo que resume um conjunto de dados de tamanho variável. Assim, por exemplo, uma transação, ou conjunto de transações de bitcoins e todas as suas informações podem ser resumidas em uma série de número e letras, ao qual chamamos de código hash, ou somente hash, como o seguinte exemplo:
e06c186b309ba7351d4357rh8997a3dcf
Como o Hash Funciona?
Para que um arquivo seja convertido em um Hash, é preciso que ele passe pelo que é chamado de um função hash, que basicamente é uma função matemática que irá fazer cálculos para converter aquela entrada – o arquivo original – em uma saída que será o Hash.
Para ser considerado um Hash, um código precisa atender a quatro propriedades diferentes:
1- Deve ser relativamente fácil que se calcule um hash a partir de uma entrada qualquer
2 – Deve ser muito pouco provável matematicamente que o mesmo hash seja gerado a partir de duas entradas diferentes
3 – Uma leve modificação nas informações contidas no arquivo original gera uma completa mudança no código hash original
4 – Deve ser matematicamente impossível que alguém consiga, a partir do Hash, chegar ao arquivo original, ou seja, é praticamente impossível fazer engenharia reversa em um Hash para chegar a fonte.
Essas propriedades e, em especial, a última, é o que faz com que o hash forneça um grande nível de segurança para o sistema do bitcoin.
Como o Hash se insere no sistema do Bitcoin?
Como já tivemos a oportunidade de falar no artigo sobre mineração de bitcoins, cada bloco dentro do bitcoin, que corresponde mais ou menos a 500 transações, recebe um código Hash, o que, a rigor, já tornaria cada bloco seguro.
No Bitcoin, entretanto, o Hash de um bloco inclui necessariamente o Hash do bloco anterior que, por sua vez, também inclui o Hash do bloco imediatamente anterior, e assim sucessivamente, até o primeiro bloco gerado há mais de 10 anos atrás. Desse modo, o que se tem é um sistema extremamente robusto contra ataques externos, já que, se já seria difícil quebrar um único hash para invadir o sistema, torna-se praticamente impossível com a blockchain, já que todos os hash de todos os blocos precisam ser invadidos e quebrado simultaneamente, pois caso apenas um ou uma parte o sejam, todos os blocos pertencentes a blockchain se fecham a impedem a finalização do ataque imediatamente.
Desse modo, o Bitcoin, através da blockchain, se torna um sistema muito mais seguro do que o próprio sistema bancário que você provavelmente usa diariamente. Assim, não há porque ter medo ou se sentir inseguro quanto a essa moeda digital.
Qual a diferença entre a criptografia tradicional e o Hashing?
Por fim, vale a pena falar sobre a diferença entre a criptografia usual e o Hashing. A grande diferença entre o Hashing e a criptografia tradicional é que esta última é uma via de mão dupla, permitindo tanto a encriptação de um arquivo para um código fixo, como o contrário, ou seja, a desencriptação, podendo-se obter o arquivo original a partir do código fixo.
No Hashing – o processo para se chegar ao hash – , como vimos, isso não é possível, tornando-o um meio ainda melhor para a segurança da informação original.