This article has been translated from English to Brazilian.
Antes de mergulharmos no assunto da mineração de Bitcoin, precisamos fazer um rápido desvio e aprender sobre um determinado conceito que é fundamental para as criptomoedas.
Para que você realmente entenda como o Bitcoin e outras criptomoedas funcionam, é fundamental compreender primeiro o conceito de "hashing".
Quando você vê a palavra "hash", algumas pessoas podem pensar em hash browns, um alimento popular do café da manhã americano, enquanto outras pessoas, como Snoop Dogg, podem pensar no produto concentrado de cannabis. 🌿

Nesta lição, falarei sobre um tipo diferente de hash!
Trata-se de um conceito técnico, mas com o qual você deve estar familiarizado, portanto, vou detalhá-lo com calma.
Você também precisa estar familiarizado com o conceito de hashing para entender como funciona a mineração de Bitcoin (que é o próximo guia), portanto, não pule essas lições. 👁️
O que é hashing?
Hashing é um método de criptografia que converte qualquer forma de dados em uma sequência única de texto de comprimento fixo.
A criptografia é a prática e o estudo de técnicas de comunicação segura contra observadores externos. Na era da Internet, a criptografia é usada para proteger informações ou "dados" do computador.
Se isso ainda não era óbvio, o "crypto" em criptomoedas significa criptografia.
O hashing é uma parte fundamental da criptografia. E desempenha um papel importante por trás da "criptografia" nas criptomoedas.
Em termos simples, hashing significa inserir texto de QUALQUER tamanho por meio de uma função de hash que produz uma saída de tamanho FIXO.

Qualquer dado pode ser "hashizado", independentemente de seu tamanho, tipo ou comprimento.
O hash produzido tem sempre o mesmo tamanho.
Nos exemplos abaixo, usando a função de hash SHA-1, independentemente do comprimento da "entrada", a "saída" tem sempre 40 caracteres.



Aqui está uma rápida comparação dos três exemplos:
| Entrada | Hash |
|---|---|
| Olá | f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 |
| BabyPips.com | 8c8780d0b70c5ef42a534846cc042629cf07a440 |
| I | ca73ab65568cd125c2d27a22bbd9e863c10b675d |
Observe que, embora as "entradas" tenham variado, todos os três hashes ainda tinham 40 caracteres.
Neste exemplo específico, o comprimento fixo é de 40 caracteres, o que é determinado pela função de hash específica usada ("SHA-1"), que será explicada posteriormente.
Por enquanto, você só precisa saber que outras funções de hash podem gerar comprimentos fixos diferentes. A maioria tem comprimentos fixos maiores que 40 caracteres.
Um hash funciona como uma impressão digital.
Uma parte única de dados sempre produzirá o mesmo hash.
Por exemplo, se você executar "Hello" um milhão de vezes por meio de uma função de hash, o hash acima é o que aparecerá um milhão de vezes.
Para a palavra "Hello", seu hash SHA-1 sempre será:
f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
E somente "Hello" produzirá esse hash.
Se você alterar "Hello", mesmo que seja apenas para "hello", a função de hash produzirá um valor de hash totalmente diferente.
É por isso que os hashes são conhecidos como "impressões digitais".
Assim como sua impressão digital é exclusiva de você, um hash é exclusivo de uma entrada específica de dados.

Um hash não pode ser revertido.
A ENTRADA em uma função de hash é chamada de "pré-imagem". Mas, para simplificar, vou usar apenas "entrada".
A SAÍDA da função de hash é chamada de "valor de hash" ou "resumo" ou simplesmente de "hash".
Uma função de hash é projetada para agir de maneira unidirecional.

Como uma função de hash é unidirecional, a saída, o "hash", não pode ser usada para revelar a entrada, a "pré-imagem".
Isso significa que, se tudo o que você vir for o hash, NÃO será possível decifrar os dados originais (a "pré-imagem") que o hash representa.
As funções de hash produzem hashes irreversíveis.
Irreversível significa que, se você tivesse apenas o hash, não poderia usá-lo para descobrir qual era a parte original dos dados. Isso permite que os dados originais permaneçam seguros e desconhecidos.
O que é uma função de hash?
Uma função de hash é uma operação matemática que converte dados de entrada de comprimento arbitrário em uma saída de comprimento fixo que é executada usando um determinado algoritmo.
Um algoritmo é apenas um conjunto de instruções passo a passo para realizar cálculos que são feitos por um programa de software.
Não importa se a entrada é uma única letra, uma palavra, uma frase completa, uma página de um livro ou um livro inteiro.
Cada entrada produzirá uma saída exclusiva expressa como uma cadeia alfanumérica de comprimento fixo.
Alfanumérico significa apenas que algo consiste em letras e números.
Uma função hash útil oculta todas as pistas sobre como a entrada pode ter sido.
Por exemplo, é impossível determinar se a entrada foi longa ou curta ou se continha números ou letras. Além disso, a alteração de apenas um caractere na entrada deve resultar em um resultado radicalmente diferente.
Funções de hash populares
Todas as funções de hash funcionam de maneira semelhante. Você insere dados e a função de hash "embaralha" os dados e gera um hash.
As funções de hash comuns incluem:
- MD-5: a Message Digest 5 (MD5) é uma função de hash comum. No passado, era considerada segura, mas, atualmente, os hackers descobriram como decodificar o algoritmo e conseguem fazer isso em segundos.
- SHA: o Secure Hash Algorithm (SHA) é outro tipo de função de hash. Há diversas variações de SHA agrupadas em quatro famílias: SHA-0, SHA-1, SHA-2 e SHA-3: em geral, quanto maior o número, mais recente é a versão e mais seguro é o algoritmo.
Para nossos propósitos, a única função de hash que você precisa conhecer agora é o Secure Hash Algorithm (SHA). Mais especificamente, a família SHA-2, pois contém um membro especial da família chamado SHA-256.
O SHA-256 é uma função de hash que converte uma cadeia de texto em outra cadeia que tem sempre o mesmo tamanho: 64 caracteres alfanuméricos. Isso equivale a 256 bits, que é a origem do "256" em seu nome.
Ela é especial porque é a função hash usada em várias partes do sistema Bitcoin, sobre as quais você aprenderá em lições posteriores. Por enquanto, é importante que você saiba apenas que SHA-256 é um tipo de função de hash e é a função usada pelo Bitcoin.
Independentemente de a entrada ser uma página de um livro do Harry Potter ou a série inteira de livros do Harry Potter, a saída da função de hash SHA-256 sempre terá o MESMO comprimento exibido como 64 caracteres alfanuméricos.
Vamos agora dar uma olhada em como o hashing funciona na criptografia.