Tenho mergulhado na tecnologia blockchain recentemente e percebi que a maioria das pessoas realmente não entende o que a faz funcionar. As funções de hash são quase os heróis não reconhecidos aqui - estão em todo lado, desde os aplicativos de mensagens até à mineração de Bitcoin, mas a maioria das pessoas simplesmente passa por cima delas.



Então, aqui está a questão: uma função de hash é basicamente uma ferramenta matemática que pega qualquer quantidade de dados e os converte numa cadeia de comprimento fixo. A parte mágica? É uma via de mão única. Não se consegue revertê-la. Inseres 'vamos aprender blockchain' e obténs 77db72b12a7667ad73fd33544d1f397268dffe18ca3042e0a09af9f993a8f9c1. Adiciona apenas um ponto e de repente a saída é completamente diferente: 17368fcb5bab73c97aa60aa7ae9e54e6676d292743587b9a35ace927a626520a. Mesmo pequenas alterações = resultados totalmente diferentes. Essa é a segurança.

Por que isso importa para as criptomoedas? A mineração de Bitcoin depende literalmente disso. Os mineradores estão basicamente a correr para encontrar um valor de hash abaixo de um número alvo, combinando dados do bloco com números aleatórios (nonces) e executando-os através do SHA-256. Quem o encontrar primeiro ganha a recompensa. E aqui está o que é elegante - cada bloco liga-se ao anterior através do seu hash, criando esta cadeia à prova de adulterações. Se alguém tentar alterar dados antigos, o hash muda, e todos percebem que algo está errado.

Agora, existem diferentes algoritmos de hashing a circular por aí. O MD5 costumava ser popular - produz saídas de 128 bits - mas tem fraquezas. Os atacantes podem criar ' colisões' onde entradas diferentes produzem a mesma saída, por isso está praticamente descontinuado para trabalhos de segurança sérios.

O SHA-1 veio a seguir, desenhado pela NSA em 1995. Gera hashes de 160 bits, mas desde então foi quebrado e substituído por opções mais fortes.

Depois tens o SHA-2, que é uma família de algoritmos (SHA-224, SHA-256, SHA-384, SHA-512). O SHA-256 é o que o Bitcoin usa e ainda é considerado extremamente seguro. Os tamanhos de saída mais longos tornam-no muito mais resistente a ataques de força bruta em comparação com o SHA-1.

O mais recente é o SHA-3, publicado pela NIST em 2015. Baseia-se no algoritmo Keccak e usa algo chamado uma 'estrutura de esponja' - basicamente, absorve a entrada, depois espreme a saída do hash. Uma vantagem é que resiste a ataques de extensão de comprimento, onde alguém tenta acrescentar dados sem conhecer o original. O Ethereum usa na verdade o keccak-256, uma variante do SHA-3. Até a blockchain Nervos' CKB lançou o seu próprio algoritmo inspirado no SHA-3, chamado Eaglesong.

Mas aqui está o truque - nenhuma função de hash é completamente à prova de balas. Ataques de colisão são possíveis, onde se consegue gerar duas entradas diferentes com a mesma saída. Ataques de extensão de comprimento permitem que atacantes adicionem dados às mensagens. Ataques de pré-imagem permitem encontrar uma entrada que corresponda a um hash específico. Ataques de aniversário exploram a probabilidade de encontrar hashes coincidentes. Depois há ataques de canal lateral que exploram como a função é realmente implementada, em vez de atacar a matemática em si.

Dito isto, as coisas modernas como o SHA-256 e o SHA-3 foram literalmente desenhadas com esses vetores de ataque em mente. MD5 e SHA-1? Sim, são vulneráveis. Mas a nova geração é basicamente considerada inquebrável com a tecnologia atual. É por isso que são a espinha dorsal da segurança blockchain hoje em dia.
BTC-1,26%
ETH-1,74%
CKB-1,46%
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
Adicionar um comentário
Adicionar um comentário
Nenhum comentário
  • Fixado