
# Zk-snarks
### Como a tecnologia funciona?
Toda a tecnologia da Zcash e dos protocolos anteriores lançados pelo time de Matthew Green se baseiam em versões modificadas do zero knowledge proof (ZKP), em português prova de conhecimento zero
### O que é zero knowledge proof?
Um ZKP é um método que permite a uma parte provar para qualquer outra que sua declaração é verdadeira, sem a necessidade de revelar qualquer outra coisa além da sua declaração.
### Quer um exemplo?
Contarei uma história abstrata mas que ilustra muito bem o funcionamento de uma prova de conhecimento nulo. Nessa história temos 2 personagens, Alice e Bob. Digamos que Alice é quem deve provar a declaração e Bob é quem verifica se a declaração é real.
No conto, Alice descobriu uma palavra secreta usada para abrir uma porta magica dentro de uma caverna. A caverna está em formato circular, de forma que há uma entrada por um lado e a porta mágica bloqueia o lado oposto.
#### Bob irá pagar Alice pela palavra secreta, entretanto ele não fará o pagamento até estar certo que Alice sabe a palavra mágica. Alice por sua vez diz que não vai revelar a palavra até Bob dar o dinheiro. Como resolver esse impasse?
Para resolver isso, Bob e Alice rotulam os caminhos da caverna de A e B, como na figura abaixo. Bob fica esperando do lado de fora da caverna, Alice escolhe um caminho aleatório.

Bob entra na caverna e grita para Alice sair pelo caminho A ou B.

Alice vai obedecer a ordem de Bob e se realmente ela souber a palavra secreta vai conseguir facilmente sair por qualquer saída.
#### Como Bob não sabe por qual lado Alice entrou na caverna ele deve repetir o experimento até ficar satisfeito com as provas dadas por Alice. Na primeira vez Alice terá 50% de chance de acertar a saída, depois de 15 vezes a chance de Alice acertar é reduzida drasticamente.
Então Bob consegue deduzir que Alice está falando a verdade.
Para quem quer se aprofundar no assunto veja o [artigo](http://www.cs.cornell.edu/courses/cs6810/2009sp/scribe/lecture18.pdf) produzido pela Cornell University.
