Compreendendo as Funções Hash em Criptomoeda

A hash é um processo que gera saídas de tamanho fixo a partir de entradas de tamanho variável usando fórmulas matemáticas conhecidas como funções hash. Embora nem todas as funções hash envolvam criptografia, as funções hash criptográficas são fundamentais para as criptomoedas, permitindo que as blockchains e outros sistemas distribuídos alcancem níveis significativos de integridade e segurança dos dados.

Tanto as funções hash regulares quanto as funções hash criptográficas são determinísticas, o que significa que, desde que os dados de entrada permaneçam inalterados, o algoritmo hash sempre produzirá o mesmo resultado ( também conhecido como digest ou hash ).

Os algoritmos de hash de criptomoeda são tipicamente projetados como funções unidirecionais, tornando-os difíceis de reverter sem tempo e recursos computacionais substanciais. Em outras palavras, é relativamente fácil gerar uma saída a partir de uma entrada, mas consideravelmente desafiador ir na direção oposta. Geralmente, quanto mais difícil for encontrar a entrada, mais seguro o algoritmo de hash é considerado.

Como Funciona uma Função Hash?

Diferentes funções hash produzem resultados de tamanhos variados, mas os tamanhos de saída possíveis para cada algoritmo de hash são sempre constantes. Por exemplo, o algoritmo SHA-256 só pode produzir resultados de 256 bits, enquanto o SHA-1 gera sempre um digest de 160 bits.

Para ilustrar, vamos passar as palavras "Gate" e "Gate" através do algoritmo de hash SHA-256 (o utilizado no Bitcoin).

SHA-256

Saída

Saída (256 bits)

Gate

7f43e4e2c9d9e6249ba0df8a911b46400f6fd5e9993a5f1ea65e4633e2de5a6c

Gate

9c6b057a2b9d96746c38a3f4e466678e1b4c4425ff8fe9659e96c903e7a1f3cc

Note que uma ligeira alteração ( no caso da primeira letra ) resultou em um valor de hash completamente diferente. Mas como usamos SHA-256, as saídas terão sempre um tamanho fixo de 256 bits ( ou 64 caracteres ) independentemente do tamanho da entrada. Além disso, não importa quantas vezes executemos as duas palavras pelo algoritmo, as duas saídas permanecerão constantes.

E se passarmos os mesmos inputs através do algoritmo de hash SHA-1, obtemos os seguintes resultados:

SHA-1

Saída

Output (160 bits)

Gate

f8e4eba8d46e2b1079e6a1a8abf0a0d8c3a81d73

Gate

b7e23ec29af22b0b4e41da31e868d57226121c84

Curiosamente, SHA significa Algoritmos de Hash Seguros. É um conjunto de funções hash criptográficas que inclui os algoritmos SHA-0 e SHA-1, bem como os grupos SHA-2 e SHA-3. SHA-256 faz parte da família SHA-2, juntamente com SHA-512 e outras variantes. Atualmente, apenas os grupos SHA-2 e SHA-3 são considerados seguros.

Por que esta tecnologia é importante?

As funções hash convencionais têm uma ampla gama de utilizações, incluindo pesquisas em bases de dados, análise de grandes ficheiros e gestão de dados. Por outro lado, as funções hash criptográficas são amplamente utilizadas em aplicações de segurança da informação, como autenticação de mensagens e impressão digital. No que diz respeito ao Bitcoin, as funções hash criptográficas são uma parte integral do processo de mineração e também desempenham um papel na geração de novos endereços e chaves.

O verdadeiro poder da função hash é revelado quando trabalhamos com grandes quantidades de informação. Por exemplo, pode-se passar um grande arquivo ou conjunto de dados por uma função hash e, em seguida, usar os seus resultados para verificar rapidamente a precisão e integridade dos dados. Isso é possível devido à natureza determinística das funções hash: a entrada resulta sempre em uma saída comprimida e simplificada (a hash). Este método elimina a necessidade de armazenar e "memorizar" grandes volumes de dados.

A função hash é particularmente útil no contexto da tecnologia blockchain. A blockchain do Bitcoin tem várias operações relacionadas com hash, a maioria das quais são realizadas no processo de mineração. Na verdade, quase todos os protocolos de criptomoeda dependem de hashing para ligar e combinar grupos de transações em blocos e para criar ligações criptográficas entre cada bloco, criando assim uma cadeia de blocos.

Função Hash Criptográfica

Novamente, uma função hash que utiliza técnicas criptográficas pode ser definida como uma função hash criptográfica. Geralmente, decifrar uma função hash criptográfica requer muitas tentativas de força bruta. Para "desdobrar" uma função hash criptográfica, é necessário selecionar entradas através de tentativa e erro até que uma saída adequada seja obtida. No entanto, também existe a possibilidade de que diferentes entradas produzam o mesmo resultado, caso em que ocorrerá uma "colisão".

Tecnicamente, uma função hash criptográfica deve atender a três propriedades para ser considerada segura. Podemos descrevê-las como: resistência a colisões e resistência a ataques de pré-imagem de primeira e segunda.

Antes de descrever cada propriedade, vamos resumir a sua lógica em três frases curtas.

  • Resistência a colisão: impossibilidade de encontrar duas entradas diferentes que produzem o mesmo hash.

  • Resistência à pré-imagem: incapacidade de "reverter" a função hash ( encontrar a entrada através de uma saída dada ).

  • Resistência à segunda pré-imagem: incapacidade de encontrar uma segunda entrada que tenha o mesmo hash que a primeira.

Resistência à Colisão

Como mencionado anteriormente, uma colisão ocorre quando entradas diferentes produzem o mesmo hash. A função hash é então considerada resistente a colisões até que alguém descubra tal colisão. Note que colisões sempre existirão para qualquer função hash devido ao número infinito de entradas e ao número finito de saídas.

Portanto, uma função hash é resistente a colisões quando a probabilidade de detectar uma colisão é tão pequena que exigiria milhões de anos de cálculo. Por essa razão, embora funções hash sem colisões não existam, algumas são tão poderosas que podem ser consideradas estáveis (e.g., SHA-256).

Entre os diferentes algoritmos SHA, os grupos SHA-0 e SHA-1 já não são seguros porque foram detectadas colisões. Atualmente, apenas os grupos SHA-2 e SHA-3 são considerados resistentes a colisões.

Resistência à Primeira Imagem

Esta propriedade está intimamente relacionada ao conceito de funções unidirecionais. Uma função hash é considerada forte para encontrar a primeira pré-imagem, desde que haja uma probabilidade muito baixa de que alguém consiga encontrar a entrada usando a saída gerada.

Note que esta propriedade é diferente da anterior porque o atacante precisa adivinhar a entrada com base em uma saída específica. Este tipo de colisão ocorre quando alguém encontra duas entradas diferentes que produzem a mesma saída, independentemente de qual entrada particular foi utilizada.

A primeira propriedade de resistência à pré-imagem é valiosa para a segurança dos dados, pois um hash simples de uma mensagem pode provar sua autenticidade sem a necessidade de divulgar informações adicionais. Na prática, muitos provedores de serviços web e aplicações armazenam e utilizam hashes gerados a partir de senhas em vez de usá-las em formato de texto.

Resistência a Segunda Imagem

Este tipo de estabilidade situa-se entre as duas propriedades anteriores. O ataque de segunda pré-imagem consiste em encontrar uma entrada específica com a qual é possível gerar uma saída que já foi gerada utilizando uma outra entrada que era previamente conhecida.

Em outras palavras, um ataque de segunda pré-imagem envolve a detecção de colisões, mas em vez de encontrar duas entradas aleatórias que geram o mesmo hash, o ataque visa encontrar uma entrada que possa reproduzir um hash que já foi gerado por outra entrada.

Portanto, qualquer função hash que seja resistente a colisões também é resistente a ataques de segunda pré-imagem, uma vez que o último sempre requer uma colisão. No entanto, ainda é possível realizar um ataque de primeira pré-imagem em uma função tolerante a colisões, pois isso envolve a busca de uma entrada com uma saída.

Mineração

Existem muitos passos na mineração de Bitcoin que são realizados utilizando funções hash. Estes incluem a verificação do saldo, a ligação de entradas e saídas de transações, e a combinação de todas as transações em um bloco para formar uma árvore de Merkle. Mas uma das principais razões pelas quais a blockchain do Bitcoin é segura é que os mineradores devem realizar o maior número possível de operações hash para finalmente encontrar a solução correta para o próximo bloco.

Um minerador deve usar várias entradas diferentes ao gerar um hash para o seu bloco candidato. Será possível verificar o bloco apenas se a saída gerada corretamente na forma de um hash começar com um certo número de zeros. O número de zeros determina a dificuldade de mineração e varia de acordo com a hashrate da rede.

Neste caso, o hashrate é uma medida do poder computacional que você investe na mineração de Bitcoin. Se o hashrate começar a aumentar, o protocolo Bitcoin ajustará automaticamente a dificuldade de mineração para que o tempo médio necessário para minerar um bloco seja de cerca de 10 minutos. Se vários mineradores decidirem parar de minerar, resultando em uma queda significativa no hashrate, a dificuldade de mineração será ajustada para facilitar temporariamente o cálculo ( até que o tempo médio de formação de blocos retorne a 10 minutos ).

Note que os mineiros não precisam procurar colisões porque existem vários hashes que podem gerar como saída válida ( começando com um determinado número de zeros ). Portanto, existem várias soluções possíveis para um determinado bloco, e os mineiros precisam encontrar apenas uma delas, de acordo com um limite determinado pela dificuldade de mineração.

Uma vez que a mineração de Bitcoin é uma tarefa dispendiosa, os mineradores não têm motivos para enganar o sistema, pois isso resultaria em perdas financeiras significativas. Consequentemente, quanto mais mineradores se juntarem à blockchain, maior e mais forte ela se tornará.

Conclusão

Não há dúvida de que as funções hash são uma das principais ferramentas na computação, especialmente ao trabalhar com grandes quantidades de dados. Quando combinados com a criptografia, os algoritmos de hash podem ser muito úteis, pois proporcionam segurança e autenticação de várias maneiras. Portanto, as funções hash criptográficas são vitais para quase todas as redes de criptomoeda, e entender suas propriedades e mecanismos de funcionamento é certamente útil para qualquer pessoa interessada na tecnologia blockchain.

IN9.89%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Fixar
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)