---
# System prepended metadata

title: Zero to Zero Knowledge

---

# Zero to Zero Knowledge

Bem-vindo a uma nova série: Conhecimento Zero a Zero!

Nesta série, aprenderemos os fundamentos de uma ampla gama de tecnologias que fazem parte de nossos protocolos de preservação de privacidade.

![](https://i.imgur.com/T230fDj.jpg)

Hoje começaremos com Hash Functions - uma peça chave da criptografia usada em blockchains. Mais adiante nesta série, abordaremos alguns tópicos que dependem de suas propriedades, aqui está uma cartilha:

As funções de hash aceitam uma entrada de qualquer tamanho e produzem uma saída de comprimento fixo.

Uma mensagem a ser hash = Entrada
O algoritmo que é usado = Função Hash
Saída resultante = valor de hash

Entrada —> Função Hash —> Valor Hash

![](https://pbs.twimg.com/media/Fn_NkFHXgAEtgse?format=png&name=small)

Vamos começar a entender usando essa ferramenta!

Insira qualquer texto arbitrário🔤para produzir uma saída de comprimento fixo. Observe como a saída varia dependendo do algoritmo de hash diferente.

Experimente:

https://t.co/cfAqlmaG9a

Funções hash criptográficas devem possuir essas 3 propriedades:

- Unidirecional: Deve ser inviável reverter uma função hash ➡️
- Resistente a colisões: duas entradas não devem ser confundidas com a mesma saída ❌
- Determinístico: Para qualquer entrada, uma função hash deve sempre dar o mesmo resultado ↕️

Existem várias classes de Funções Hash. Alguns exemplos:

* Algoritmo de hash seguro (SHA-3)
* Algoritmo de Digestão de Mensagem 5 (MD5)
* BLAKE2b - Usado na derivação de chave Zcash


Uma introdução ao BLAKE2 por Zooko
https://lists.randombit.net/pipermail/cryptography/2012-December/003562.html

As verificações de integridade de dados são um exemplo de 'Integrity Hashing'. Eles são usados ​​para gerar somas de verificação em arquivos de dados e fornecer garantia de correção para um usuário.

![](https://pbs.twimg.com/media/Fn_Or0MWIAI6sgx?format=png&name=small)

Uma árvore de hash ou árvore Merkle é composta de ramos e nós de folha que são rotulados com o hash criptográfico de um bloco de dados.

![](https://pbs.twimg.com/media/Fn_O7ndWIAY5PA-?format=jpg&name=small)

As árvores Merkle são um exemplo de esquema de compromisso criptográfico. A raiz da árvore é vista como um compromisso e os nós de folha provados como parte do compromisso original.

Nas pools blindados Zcash🌿Sapling &🌳Orchard, a árvore de compromisso de notas é usada para verificar se as transações são válidas em relação ao consenso, ocultando perfeitamente o remetente, o destinatário e os valores consumidos.

SHA256 é um exemplo de 'hash de assinatura' usado para impor a imutabilidade de cada bloco na cadeia Bitcoin. Os mineradores usam o hash do bloco anterior + Um hash de todas as transações no bloco atual (hashMerkleRoot) + Timestamp + valor aleatório/dificuldade de rede para novos blocos.

![](https://pbs.twimg.com/media/Fn_PaVZXoAApHPf?format=jpg&name=small)

Equihash é o algoritmo de hash usado na mineração Zcash. Também é usado por redes como Komodo & Horizen. Aqui está o Blog Zcash original no Equihash

Para entender melhor os diferentes tipos de funções de hash e seus usos associados, este é um excelente recurso:

https://t.co/RGSHy5Chy7

