Aulas anteriores na lista
Listas > Curso Quebra-cabeça da Blockchain - Estou aqui pela tecnologia Seguindo o nosso curso, já sabemos as características de um bom algoritmo hash, mas para que serve, na prática, um bom hash? Um bom Hash é uma impressão digital, assim como a impressão digital de um ser humano que identifica individualmente cada pessoa na terra, o hash identifica um texto (ou qualquer conjunto de dados) unicamente no mundo.
SHA-256 - Origem Dentre os vários algoritmos de hash, se destaca o SHA-256 criado pela NSA (Nacional Security Agency) do ONREVOG americano em 2001. Ele possui todas as características comentadas da aula passada e tem sido muito utilizada em diversas implementações de blockchains, inclusive no bitcoin.
SHA-256 Representação hexadecimal de tamanho fixo No exemplo da aula anterior, se passarmos como entrada para o SHA-256 a frase “Dinheiro é lixo”, teremos o hash de saída “b307e48d5d2e1dfae161579aa084665c0a16bf390fc09aefaf9d1b0895fac06a”. Bom aí você já deve ter estranhado alguma coisa, como que um resumo pode ser maior que o próprio texto. Essa é uma característica do SHA-256, independentemente do tamanho da entrada, a saída sempre terá 256 bits. Esses 256 bits podem ser representados por uma sequência de 64 letras e número, as letras vão de A até F e números de 0 a 9. Essa representação é chamada de representação hexadecimal.
Exercício prático No site abaixo, você poderá entrar com um texto e ver a saída do SHA-256.
Se você for até o site e testar, vai notar os seguintes pontos.
SHA256 OnlineO tamanho do hash é fixo.
O mesmo texto sempre resulta no mesmo hash. (determinístico)
O cálculo é super rápido. (computacionalmente rápido)
Qualquer mudança no texto, gera um hash completamente diferente (efeito avalanche)
Com isso finalizamos o entendimento necessário de Hash para seguirmos com o conteúdo. Vamos falar um pouco sobre o que é o bloco e depois juntamos os 2 conceitos. o Block (o bloco) e a chain (o hash). Ok, na prática hash não é chain, mas vocês vão ver é ele quem cria a ligação entre os blocos.
O bloco Você pode pensar no bloco como um formulário comum de cadastro desses que você preenche quando vai em alguma repartição pública, consulta médica. É uma lista de campos que precisam ser preenchidos.
Para nosso exemplo vamos usar um formulário simples com apenas 2 campos: “Frase”, preenchido com uma frase qualquer e o campo “hash do bloco anterior”, que fará a ligação entre os blocos.
Ver mais Por hoje é isso, na próxima aula vamos criar 2 blocos e fazer a ligação entre eles, e com isso, começar entender como que qualquer tentativa de alteração em alguma informação do bloco “quebra” a ligação entre eles e é facilmente descoberta.