¡Uf! Tenho que vos explicar isto do hash e sinto-me como se estivesse a decifrar um código alienígena. Mas vamos lá.
A hash é, basicamente, um processo onde colocamos dados de qualquer tamanho em uma espécie de picadora matemática e ¡pum! sai sempre algo do mesmo tamanho. É como se você colocasse uma melancia inteira ou apenas uma fatia em uma máquina e sempre saísse um cubo do mesmo tamanho. Isso é feito com fórmulas matemáticas chamadas funções hash.
E olha, essas funções estão no centro das criptomoedas. Sem elas, todas essas blockchains seriam um desastre de segurança. Graças a esses algoritmos, o nosso dinheiro digital não desaparece como por arte de magia toda vez que alguém espirra perto do servidor.
O fascinante é que são determinísticas - uma palavra pomposa para dizer que se inserires "Hola" dar-te-á sempre o mesmo resultado. Mas tentas com "hola" ( em minúscula) e dá-te algo completamente diferente. É uma loucura!
Como é que isto funciona, afinal?
Cada algoritmo hash produz saídas de tamanho fixo. Por exemplo, o SHA-256 ( que usa Bitcoin ) sempre gera 256 bits. Não importa se você coloca o texto inteiro de "Don Quijote" ou apenas "Sancho".
Por exemplo, se executarmos as palavras "Mercado" e "mercado" através de SHA-256:
Entrada: Mercado
Saída: d83b7dks92jd72nk29dh28d9k26sd02kd9k2d02kd9k2d0 (algo assim de feio)
Vêem? Uma simples alteração de maiúscula e o resultado é completamente diferente. E não importa quantas vezes o façam, dará sempre o mesmo.
E para que diabos serve isto?
As funções hash convencionais são usadas para todo tipo de coisas chatas, como bases de dados. Mas as criptográficas são as interessantes: são usadas em segurança, autenticação e, claro, em criptomoedas.
O melhor do hashing aparece quando você tem que lidar com quantidades enormes de informação. Imagine que você tem um arquivo gigante - em vez de revisá-lo inteiro todas as vezes, você pode extrair sua "impressão digital" hash e comparar essa impressão para verificar se ninguém o tocou.
Nas criptomoedas, quase tudo usa hashing: a mineração, a criação de blocos, a vinculação de transações... tudo. Os mineradores estão constantemente tentando encontrar um hash que comece com certo número de zeros para validar blocos. É como procurar uma agulha em um palheiro gigante.
O lado obscuro: atacando as funções hash
Teoricamente, é possível "quebrar" as funções hash por força bruta, mas você precisaria de milhares de anos e uma potência de computação ridícula. Também existe a possibilidade de "colisões" - quando duas entradas diferentes produzem a mesma saída.
Uma função hash segura deve ser resistente a três tipos de ataques:
Resistência a colisões: impossível encontrar duas entradas que dêem o mesmo resultado.
Resistência a pré-imagem: impossível descobrir a entrada a partir de uma saída.
Resistência a segunda pré-imagem: impossível encontrar outra entrada que produza o mesmo hash que uma entrada conhecida.
Os algoritmos SHA-0 e SHA-1 já não são seguros porque foram encontradas colisões. Agora usamos SHA-2 e SHA-3, que continuam a ser fortes.
Mineração: o jogo do hash
Na mineração de Bitcoin, os mineradores competem para encontrar um hash que comece com um certo número de zeros. É como jogar na loteria bilhões de vezes por segundo.
A dificuldade ajusta-se automaticamente: se houver mais mineradores, são necessários mais zeros no início do hash, tornando a tarefa mais difícil. Se houver menos, a dificuldade é reduzida.
Como minerar custa eletricidade e equipamento, os mineradores têm incentivos para jogar limpo. Quanto mais mineradores houver numa rede, mais segura ela é.
As funções hash são ferramentas essenciais para a segurança digital. Sem elas, as criptomoedas não existiriam como as conhecemos. Entendê-las é como entender o ADN da blockchain.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
O que é hash?
¡Uf! Tenho que vos explicar isto do hash e sinto-me como se estivesse a decifrar um código alienígena. Mas vamos lá.
A hash é, basicamente, um processo onde colocamos dados de qualquer tamanho em uma espécie de picadora matemática e ¡pum! sai sempre algo do mesmo tamanho. É como se você colocasse uma melancia inteira ou apenas uma fatia em uma máquina e sempre saísse um cubo do mesmo tamanho. Isso é feito com fórmulas matemáticas chamadas funções hash.
E olha, essas funções estão no centro das criptomoedas. Sem elas, todas essas blockchains seriam um desastre de segurança. Graças a esses algoritmos, o nosso dinheiro digital não desaparece como por arte de magia toda vez que alguém espirra perto do servidor.
O fascinante é que são determinísticas - uma palavra pomposa para dizer que se inserires "Hola" dar-te-á sempre o mesmo resultado. Mas tentas com "hola" ( em minúscula) e dá-te algo completamente diferente. É uma loucura!
Como é que isto funciona, afinal?
Cada algoritmo hash produz saídas de tamanho fixo. Por exemplo, o SHA-256 ( que usa Bitcoin ) sempre gera 256 bits. Não importa se você coloca o texto inteiro de "Don Quijote" ou apenas "Sancho".
Por exemplo, se executarmos as palavras "Mercado" e "mercado" através de SHA-256:
Entrada: Mercado Saída: d83b7dks92jd72nk29dh28d9k26sd02kd9k2d02kd9k2d0 (algo assim de feio)
Entrada: mercado Saída: 38d7b2k7d92kdj28d93j29dk28dk29dk28dk29dk29dk9 (completamente diferente)
Vêem? Uma simples alteração de maiúscula e o resultado é completamente diferente. E não importa quantas vezes o façam, dará sempre o mesmo.
E para que diabos serve isto?
As funções hash convencionais são usadas para todo tipo de coisas chatas, como bases de dados. Mas as criptográficas são as interessantes: são usadas em segurança, autenticação e, claro, em criptomoedas.
O melhor do hashing aparece quando você tem que lidar com quantidades enormes de informação. Imagine que você tem um arquivo gigante - em vez de revisá-lo inteiro todas as vezes, você pode extrair sua "impressão digital" hash e comparar essa impressão para verificar se ninguém o tocou.
Nas criptomoedas, quase tudo usa hashing: a mineração, a criação de blocos, a vinculação de transações... tudo. Os mineradores estão constantemente tentando encontrar um hash que comece com certo número de zeros para validar blocos. É como procurar uma agulha em um palheiro gigante.
O lado obscuro: atacando as funções hash
Teoricamente, é possível "quebrar" as funções hash por força bruta, mas você precisaria de milhares de anos e uma potência de computação ridícula. Também existe a possibilidade de "colisões" - quando duas entradas diferentes produzem a mesma saída.
Uma função hash segura deve ser resistente a três tipos de ataques:
Os algoritmos SHA-0 e SHA-1 já não são seguros porque foram encontradas colisões. Agora usamos SHA-2 e SHA-3, que continuam a ser fortes.
Mineração: o jogo do hash
Na mineração de Bitcoin, os mineradores competem para encontrar um hash que comece com um certo número de zeros. É como jogar na loteria bilhões de vezes por segundo.
A dificuldade ajusta-se automaticamente: se houver mais mineradores, são necessários mais zeros no início do hash, tornando a tarefa mais difícil. Se houver menos, a dificuldade é reduzida.
Como minerar custa eletricidade e equipamento, os mineradores têm incentivos para jogar limpo. Quanto mais mineradores houver numa rede, mais segura ela é.
As funções hash são ferramentas essenciais para a segurança digital. Sem elas, as criptomoedas não existiriam como as conhecemos. Entendê-las é como entender o ADN da blockchain.