Cerquilha
O que é um Hash?
Um hash é uma função matemática que converte uma entrada de comprimento arbitrário em uma saída criptografada de comprimento fixo. Portanto, independentemente da quantidade original de dados ou do tamanho do arquivo envolvido, seu hash exclusivo sempre terá o mesmo tamanho. Além disso, hashes não podem ser usados para "fazer engenharia reversa" na entrada da saída com hash, já que as funções de hash são "unilaterais" (como um moedor de carne; você não pode colocar a carne moída de volta em um bife). Ainda, se você usar tal função nos mesmos dados, seu hash será idêntico, para que você possa validar se os dados são iguais (ou seja, inalterado) se você já souber seu hash.
O hash também é essencial para o gerenciamento de blockchain em criptomoedas.
Principais vantagens
- Um hash é uma função que atende às demandas criptografadas necessárias para resolver um cálculo de blockchain.
- Os hash têm um comprimento fixo, pois torna quase impossível adivinhar o comprimento do hash se alguém estava tentando quebrar o blockchain.
- Os mesmos dados sempre produzirão o mesmo valor hash.
- Um hash, como um nonce ou uma solução, é a espinha dorsal da rede blockchain.
- Um hash é desenvolvido com base nas informações presentes no cabeçalho do bloco.
Como funcionam os Hashes
As funções hash típicas usam entradas de comprimentos variáveis para retornar saídas de um comprimento fixo. Uma função hash criptográfica combina os recursos de passagem de mensagens das funções hash com propriedades de segurança.
As funções de hash são estruturas de dados comumente usadas em sistemas de computação para tarefas, como verificar a integridade das mensagens e autenticar informações. Embora sejam considerados criptograficamente "fracos" porque podem ser resolvidos em tempo polinomial, eles não são facilmente decifráveis.
As funções de hash criptográficas adicionam recursos de segurança às funções de hash típicas, tornando mais difícil detectar o conteúdo de uma mensagem ou informações sobre destinatários e remetentes.
Em particular, As funções criptográficas de hash exibem estas três propriedades:
- Eles são “livres de colisões”. Isso significa que dois hashes de entrada não devem ser mapeados para o mesmo hash de saída.
- Eles podem ser ocultados. Deve ser difícil adivinhar o valor de entrada de uma função hash a partir de sua saída.
- Eles devem ser compatíveis com quebra-cabeças. Deve ser difícil selecionar uma entrada que forneça uma saída predefinida. Assim, a entrada deve ser selecionada a partir de uma distribuição que seja a mais ampla possível.
Por causa dos recursos de um hash, eles são amplamente usados em segurança online - desde a proteção de senhas à detecção de violações de dados e à verificação da integridade de um arquivo baixado.
Hashing e criptomoedas
A espinha dorsal de uma criptomoeda é o blockchain, que é um livro razão global formado pela ligação de blocos individuais de dados de transações. O blockchain contém apenas transações validadas, que evita transações fraudulentas e gastos em dobro da moeda. O valor criptografado resultante é uma série de números e letras que não se parecem com os dados originais e é chamado de hash. A mineração de criptomoedas envolve trabalhar com esse hash.
O hash requer o processamento dos dados de um bloco por meio de uma função matemática, que resulta em uma saída de comprimento fixo. Usar uma saída de comprimento fixo aumenta a segurança, uma vez que qualquer pessoa que tentar descriptografar o hash não será capaz de dizer quanto tempo ou tamanho a entrada tem simplesmente olhando para o comprimento da saída.
Resolver o hash começa com os dados disponíveis no cabeçalho do bloco e é essencialmente resolver um problema matemático complexo. Cada cabeçalho do bloco contém um número de versão, um carimbo de data / hora, o hash usado no bloco anterior, o hash da raiz Merkle, o nonce, e o hash de destino.
O mineiro se concentra no nonce, uma sequência de números. Este número é anexado ao conteúdo hash do bloco anterior, que é então hash. Se este novo hash for menor ou igual ao hash de destino, então é aceito como a solução, o mineiro recebe a recompensa, e o bloco é adicionado ao blockchain.
O processo de validação para transações de blockchain depende de dados sendo criptografados usando hashing algorítmico.
Considerações Especiais
Resolver o hash exige que o minerador determine qual string usar como o nonce, que por si só requer uma quantidade significativa de tentativa e erro. Isso ocorre porque o nonce é uma string aleatória. É altamente improvável que um minerador venha com sucesso com o nonce correto na primeira tentativa, o que significa que o minerador pode potencialmente testar um grande número de opções de nonce antes de acertar. Quanto maior a dificuldade - uma medida de quão difícil é criar um hash que atenda aos requisitos do hash de destino - mais tempo provavelmente levará para gerar uma solução.
Um exemplo de um Hash
O hash da palavra "hello" produzirá uma saída com o mesmo comprimento que o hash de "I am going to the store". A função usada para gerar o hash é determinística, o que significa que produzirá o mesmo resultado cada vez que a mesma entrada for usada. Ele pode gerar uma entrada em hash de forma eficiente; também torna difícil determinar a entrada (levando à mineração), bem como faz pequenas alterações no resultado de entrada em um irreconhecível, hash totalmente diferente.
O processamento das funções hash necessárias para criptografar novos blocos requer um poder de processamento substancial do computador, o que pode ser caro. Para atrair indivíduos e empresas, referidos como mineiros, para investir na tecnologia necessária, as redes de criptomoedas os recompensam com novos tokens de criptomoedas e uma taxa de transação. Os mineiros são compensados apenas se forem os primeiros a criar um hash que atenda aos requisitos descritos no hash de destino.
perguntas frequentes
O que é uma função hash?
As funções hash são funções matemáticas que transformam ou "mapeiam" um determinado conjunto de dados em uma sequência de bits de tamanho fixo, também conhecido como "valor de hash".
Como um valor de hash é calculado?
Uma função hash utiliza algoritmos matemáticos complexos que convertem dados de comprimento arbitrário em dados de comprimento fixo (por exemplo, 256 caracteres). Se você mudar um bit em qualquer lugar dos dados originais, todo o valor do hash muda, tornando-o útil para verificar a fidelidade de arquivos digitais e outros dados.
Para que são usados os hashes em blockchains?
Hashes são usados em várias partes de um sistema blockchain. Primeiro, cada bloco contém o hash do cabeçalho do bloco anterior, garantindo que nada foi adulterado conforme novos blocos são adicionados. Mineração de criptomoeda usando prova de trabalho (PoW), além disso, utiliza hash de números gerados aleatoriamente para chegar a um valor específico de hash contendo uma série de zeros à esquerda. Esta função arbitrária consome muitos recursos, tornando difícil para um mau ator ultrapassar a rede.
Blockchain
-
Merkle Tree
O que é uma árvore Merkle? Uma árvore Merkle é uma estrutura de dados usada em aplicativos de ciência da computação. Em bitcoin e outras criptomoedas, Árvores Merkle servem para codificar dados de b...
-
Coinbase notifica 6.000 clientes sobre violação de dados
A Coinbase enviou cartas a 6.000 clientes informando sobre uma violação de dados que levou hackers a limpar contas de criptomoedas. A carta foi enviada meses depois que os clientes começaram a recla...