Hashing – Tudo Sobre a Essência das Criptomoedas

O hashing é a razão do “cripto” em “critptomoedas”.

Sem o hashing as criptomoedas seriam só… moedas.

Hashing é uma forma de criptografia, sendo que a Bitcoin foi a primeira moeda digital a recorrer a esta técnica.

Desde o seu surgimento, muitas outras criptomoedas foram lançadas, utilizando diversas formas de hashing. 

Neste artigo explicamos porque é o hashing tão importante para este ecosistema, como funciona no contexto de uma blockchain e qual o futuro da criptografia, numa altura em que a Google assume ter alcançado a supremacia quântica.


1. O Que é o Hashing?

Vamos ao 1º exemplo! Em resumo, hashing é:

c29465b316f83b1947139b8d2b98611d43a1911c

Percebeste?

Não? Talvez seja melhor explicar de uma forma que estejas mais habituado a ver. Vê este 2º exemplo:

e20eee533fccbcd6e073b1b10729eb5de013bba26854c00bcddcfe0db2b9edbb

Também não? Utilizemos então a um 3º exemplo – desta vez em português:

💡 É o processo de converter uma qualquer informação de qualquer tamanho num código de tamanho fixo de texto através de uma função matemática.

Através do hashing podes, por exemplo, transformar um livro inteiro num código como os que viste acima. A esse código chama-se hash.

Como é que isto acontece? O processo é o seguinte:

processo hashing
Conversão de informação num valor alfanumérico através da função hash.

Na verdade, os 3 exemplos que utilizámos no início deste texto são todas representações da mesma informação.

O primeiro em SHA1, o segundo em SHA-256 (a função hash utilizada pela Bitcoin) e o terceiro em português.

Existem inúmeras outras funções hash que podem ser utilizadas para transformar uma qualquer informação num valor hash.

tipos de funções hash
Exemplos de funções hash.

A importância do hashing transcende, no entanto, as criptomoedas.

São inúmeros os usos desta técnica no mundo real. Desde as telecomunicações às passwords, a encriptação é fundamental para assegurar uma maior segurança e a confidencialidade da informação.

2. Como Funciona o Hashing?

Como vimos, a função hash é o motor deste processo.

Mas, para que seja viável, a função hash deve ser capaz de garantir uma série de características.

2.1 Valores hash devem ser únicos

Não podem existir dois valores hash iguais.

Ou seja:

Para que uma função hash seja viável, deve garantir que uma determinada informação tem correspondência apenas com um valor hash; e vice-versa.

Independentemente de executar a função 1 ou 100 vezes, o resultado terá de ser sempre o mesmo.

Se isso não acontecer, existe um problema de colisão.

2.2 Função hash deve ser rápida

Qualquer que seja o nível de complexidade de uma função informática, esperamos que seja rápida.

É a aplicação da velha máxima: “Tempo é dinheiro!”

tempo é dinheiro

Vivemos numa sociedade em constante movimento e em que não há tempo a perder. Queremos comunicar sem interrupções e fazer pagamentos o mais rápido possível.

Por estes motivos, uma função hash deve ser capaz de devolver respostas de forma rápida e sem qualquer dificuldade, de forma a não prejudicar os tempos de reação dos serviços em que é aplicada.

2.3 Segurança deve ser assegurada

Para que um valor hash seja seguro, não pode ser descodificável.

Ou seja:

Não posso conseguir obter a informação original a partir do valor hash gerado pela função.

Além disso, se trocar um apenas 1 dígito na informação ou no valor hash, terei resultados completamente diferentes.

Vejamos um exemplo.

Informação: “Tenho 50 euros para investir em Bitcoin.”
️️Valor hash: 0a18e37ea05d2aa05d48ed67ffb60d8771b34de4661f3a79b170317d63989b78

Agora vamos alterar 1 dígito da informação, nomeadamente o valor a investir.

Informação: “Tenho 51 euros para investir em Bitcoin.”
Valor hash: 42c9f84472538c09635211d99b05a1efccd32db36d99d0f3bd409d2c3b2747ef

Isto assegura que é impossível tentar adivinhar uma informação tendo por base a tentativa e erro.

Se quiseres testar outras informações, fica a saber que estamos a utilizar SHA-256 para obter estes valores hash. Este codificador pode ajudar-te a criptografar mensagens.

3. O Papel do Hashing na Blockchain

A blockchain é formada por uma sequência de blocos que armazenam informação criptografada sobre todas as transações feitas.

Entre os dados guardados estão, por exemplo:

  • O valor da transação;
  • O endereço da pessoa a quem se destinou;
  • A hora a que foi feita.

Tal como nos exemplos que vimos anteriormente, toda essa informação pode ser transformada num TXID (Transaction ID), ou em português ID de transação, que é basicamente uma chave pública que representa cada troca feita.

Os vários IDs de transação, com informação sobre trocas, são depois transformados num novo hash que representa cada bloco da blockchain.

Cada vez que é criado um novo bloco, esse bloco terá informação sobre uma série de novas transações e ainda a hash do bloco anterior, criando assim uma nova hash, única, mas “geneticamente” ligada ao bloco anterior.

hashing na blockchain

Isto faz com que todos os blocos estejam ligados entre si até ao primeiro da cadeia, criando assim uma relação de dependência.

Não é possível manipular a informação de um dos blocos sem afetar toda a cadeia. Qualquer tentativa seria imediatamente notada.

É graças a isso que a blockchain pode ser descentralizada, segura e transparente.

Ou seja:

O hashing está na base de muitas das virtudes da blockchain.

Newsletter

Subscreve e fica a par de todas as novidades das criptomoedas!

4. SHA-256: A Função Hash da Bitcoin

Como já vimos, a Bitcoin utiliza a função SHA-256.

Esta função faz parte do conjunto SHA-2, criado pela NSA (National Security Agency), em português Agência de Segurança Nacional, dos Estados Unidos.

SHA significa Secure Hash Algorithm, ou em português, Algoritmo de Hash Seguro.

No caso da Bitcoin, para além de servir para a criação de chaves públicas e privadas, esta função é ainda utilizada para a mineração de criptomoedas, o processo pelo qual são distribuídas BTC pelos mineiros que suportam a rede.

Hardware utilizado para minerar Bitcoin.

Por ser descentralizada, a blockchain precisa que os mineiros a mantenham “viva”, verificando a legitimidade das transações através destas funções.

Uma vez que, para isso, estão a ceder o poder de processamento dos seus computadores e ainda custos de electricidade e internet, os mineiros são recompensados com uma quantia de BTC por cada vez que uma nova quantidade de transações é armazenada num novo bloco da blockchain.

💡 Atualmente existem já mais de 18 milhões de BTC em circulação, fruto da mineração feita ao longo de mais de 10 anos, o que significa que falta distribuir menos de 3 milhões de BTC através da mineração.

Estas são as principais características da Bitcoin e do seu processo de mineração:

Bitcoin
Supply total21 milhões
Tempo de transação10 minutos
Custos de transação~$3-$32
Recompensas com mining12,5 moedas por bloco. Halving a cada 210.000 blocos
Algoritmo de mineraçãoSHA-256

5. Supremacia Quântica da Google: Fim do Hashing à Vista?

Desde o surgimento da Bitcoin, que promoveu o desenvolvimento da tecnologia blochain nos mais variados setores, a computação quântica tem sido apontada como uma ameaça à segurança da sua rede.

De facto, uma vez que a Bitcoin tem por base a encriptação, o que aconteceria se alguém fosse capaz de descodificar o algoritmo que esta utiliza?

Para além das chaves públicas da Bitcoin, também as chaves privadas (que te dão acesso à conta e que não deves partilhar com ninguém) são encriptadas em SHA-256.

A primeira questão é: uma pessoa seria capaz de descodificar este algoritmo?

Não. A generalidade dos especialistas concorda que seriam necessários ciclos de vida completos para tentar romper este algoritmo e que, mesmo assim, não seria certo.

A segunda questão é: pode um computador descodificar o algoritmo?

Não…até ver.

O anuncio da Google de que alcançou a supremacia quântica pode colocar questões em relação à segurança da blockchain e das criptomoedas, precisamente devido à encriptação de dados.

Proessador Sycamore da Google.

Na realidade, o desenvolvimento de computadores quânticos coloca desafios não só às criptomoedas, mas também a todas as tecnologias que atualmente trabalham com dados encriptados, como as que mencionámos previamente.

Falamos de máquinas que seriam capazes de fazer em 200 segundos (pouco mais de 3 minutos) aquilo que um computador, ainda que potente, demoraria atualmente 10.000 anos a fazer!

Estão então as criptomodas em risco?

Talvez não.

De acordo com o CEO da Qtum, a computação quântica poderá até ter impacto na Bitcoin, mas nada acontecerá de um momento para o outro, sendo que a Bitcoin acabará por também ela evoluir e adotar outras tecnologias.

“A computação quântica terá impacto nas diversas formas de encriptação, incluindo a SHA-256, que é utilizada pela Bitcoin. Como a Bitcoin tem valor, haverá um maior incentivo para a atacar. No entanto, acredito que muitos outros algoritmos de encriptação serão descodificados primeiro e isso irá alertar a comunidade de que é tempo para uma mudança. Não acontecerá do dia para a noite. Vamos ter muitos sinais.”

Patrick Dai, CEO da Qtum

Para Patrick Dai, os mineiros de Bitcoin serão os grandes prejudicados, já que ficarão com hardware desatualizado, assumindo que serão necessários novos equipamentos para minerar uma Bitcoin anti-computação-quântica.

Em reação ao anuncio da Google, o fundador da Ethereum, Vitalik Buterin, também não pareceu muito preocupado, indicando que ainda estamos longe de aceder a este novo tipo de teconologia.



Em resumo:

Caso se conclua que a computação quântica é uma ameaça real ao funcionamento das criptomoedas, é bem possível que estas evoluam em paralelo, de forma a tornarem-se cada mais seguras.

Não é novidade nenhuma. Desde que surgiram as primeiras criptomoedas, os seus projetos têm vindo a evoluir, de forma a manterem-se relevantes e adaptados à vida real.

6. Conclusão

  • O hashing está na base de criptomoedas como a Bitcoin. Trata-se de um algoritmo de encriptação que esta utiliza, tanto ao nível das chaves públicas e privadas dos utilizadores, como no armazenamento de dados na blockchain;
  • Um algoritmo, ou função hash, deve produzir valores hash únicos para cada informação diferente que lhe é transmitida. Além disso, para que seja viável, deve ainda ser rápido e seguro;
  • A Google está a apostar na computação quântica, o que pode por em causa os algoritmos de encriptação, não só utilizados pelas criptomoedas, mas também por muitos outros serviços tecnológicos;
  • Com isto, é possível que a computação quântica se torne também um driver para o desenvolvimento das criptomoedas, que terão de evoluir à medida que novas ameaças ao seu funcionamento surjam.

E por fim:

4dbe303ebab5d7d2d7bbfee0ed1e55d69cc7e66f3638b5e093ecc20e7f510542 👍



Adicionar um comentário