Criptografia
A criptografia é essencial na blockchain para garantir a segurança e a privacidade das transações. Na blockchain, cada transação é registrada em um bloco, que é adicionado a uma cadeia de blocos. Cada bloco contém um hash, que é uma sequência única de caracteres que identifica o bloco e todas as transações que ele contém.
O que é um hash
Um hash, ou "resumo criptográfico", é um código gerado ao aplicar uma função criptográfica a uma informação de entrada. Por exemplo, se aplicarmos uma função de hash a um documento, um vÃdeo, uma imagem, etc., receberemos como resultado um código único, e de tamanho fixo, conhecido como hash. Esse hash equivale a uma "impressão digital" do arquivo original.

Se alguém alterar o arquivo original, acidental ou fraudulentamente, o hash mudaria completamente, o que permitiria identificar que o arquivo foi modificado.
Para gerar hashs, são utilizadas diversas funções, dependendo do nÃvel de força de criptografia que se deseja alcançar. No caso do protocolo do Bitcoin, uma das funções hash utilizadas é a SHA-256 (SHA é Secure Hash Algorithm) e gera como resultado um código de 64 caracteres hexadecimais (256 bits).
Requisitos de uma função hash
Uma função hash deve cumprir os seguintes requisitos:
Funcionar em uma única direção: Não deve ser possÃvel reconstruir o conteúdo original a partir do hash.
Ser determinÃstica: Para um mesmo documento, o hash deve ser sempre o mesmo.
Ser calculada rapidamente: O hash deve ser gerado de forma rápida e eficiente.
Ter efeito avalanche: Qualquer alteração mÃnima no arquivo original deve gerar um hash completamente diferente. Ele não deve ser previsÃvel.
Evitar colisões: Não deve ocorrer que dois arquivos de origem diferentes gerem o mesmo hash; embora isso seja teoricamente possÃvel, a probabilidade deve ser extremamente baixa.
Você pode testar como funciona um hash aqui.
Merkle Tree
É uma estrutura de dados em forma de árvore utilizada em criptografia e na construção de blockchain para garantir e verificar a integridade dos dados armazenados em blocos.
Essa estrutura foi proposta por Ralph Merkle em 1979 e tornou-se fundamental em sistemas distribuÃdos e criptomoedas, como o Bitcoin.
A ideia básica por trás de uma árvore de Merkle é resumir uma grande quantidade de dados em uma estrutura de árvore, de forma que seja possÃvel verificar eficientemente se um elemento especÃfico está incluÃdo em um conjunto, chamado root, e garantir a integridade dos dados.

A seguir, uma descrição simplificada de como funciona uma árvore de Merkle:
Divisão em Pares:
Os dados a serem incluÃdos na árvore são divididos em blocos (ou elementos individuais).
Hash de Pares:
Cada bloco é submetido a uma função de hash, criando assim um conjunto de resumos de hash.
Combinação de Hash:
Os resumos de hash são combinados em pares, e esses pares também são submetidos a uma função de hash para criar um nÃvel superior na árvore.
Repetição:
O processo se repete até restar apenas um hash, conhecido como a "raiz de Merkle" ou "Merkle root". Essa raiz resume de forma única todos os dados da árvore.
Em uma árvore de Merkle, alterar um único dado em um bloco impactaria os resumos de hash em todos os nÃveis superiores da árvore, o que significa que é fácil detectar se um dado foi alterado.
Na construção de novos blocos, a raiz de Merkle é incluÃda no cabeçalho do bloco e utilizada para verificar a autenticidade das transações nesse bloco. Se você tiver a raiz de Merkle e um conjunto de transações, é possÃvel verificar de forma eficiente se uma transação especÃfica está incluÃda no bloco, sem a necessidade de acessar todas as transações.
Ferramentas Criptográficas
Entre as principais ferramentas de criptografia utilizadas na blockchain, temos:
SHA-256 é uma função hash criptográfica utilizada na blockchain para garantir a integridade dos dados. Quando um novo bloco é adicionado à cadeia de blocos, a função SHA-256 é aplicada a todo o bloco, produzindo um valor hash único que identifica o bloco. O SHA-256 é uma das funções hash mais utilizadas na blockchain devido à sua segurança e eficiência.
ECDSA (Algoritmo de Assinatura Digital de Curva ElÃptica) é um algoritmo de assinatura digital usado na blockchain para verificar a autenticidade das transações. Cada transação na cadeia de blocos é assinada digitalmente com a chave privada do remetente utilizando o ECDSA. A rede, então, verifica a assinatura usando a chave pública do remetente para garantir que a transação é autêntica. O ECDSA é um algoritmo seguro e eficiente, amplamente utilizado na blockchain.
RIPEMD-160 é uma função hash criptográfica usada na blockchain para gerar endereços únicos de criptomoedas. Quando uma carteira de criptomoedas é criada, gera-se uma chave privada única. Em seguida, o RIPEMD-160 é utilizado para gerar um endereço público único a partir da chave privada. Esse endereço público é usado para enviar e receber criptomoedas. O RIPEMD-160 é uma função hash segura e eficiente, amplamente utilizada na blockchain para criar endereços únicos e proteger a privacidade dos usuários.
Last updated