quarta-feira, agosto 15, 2018

Tecnología Zcash

O Zcash é uma criptomoeda que usa protocolos criptográficos complexos e de ponta em conjunto com uma rede vastamente distribuída de computadores para encriptar transações de maneira que terceiros não podem ver quem está vendo, quem está recebendo, ou mesmo saber a quantidade de Zcash que foi enviada.

Diferentemente de outras criptomoedas, o Zcash tem um método único de escrever as transações no blockchain utilizando dois tipos diferentes de endereços:

  • Transparentes: (endereços T) funcionam da mesma maneira que no Bitcoin; os detalhes da transação podem ser vistos por qualquer um no blockchain público.
  • Blindados: (endereços Z) são os que tornam o Zcash especial. Você pode enviar e receber Zcash privadamente, sem que os detalhes sejam acessíveis por terceiros. Somente você e a pessoa recebendo os fundos os conhecerão.

Para informações mais detalhadas sobre como as interações entre endereços transparentes e blindados funcionam, leia este post, ou, se estiver interessado em usar Zcash em sua aplicação, dê uma passada na página de Desenvolvedores.

Então como é que o Zcash consegue usar endereços blindados para escrever detalhes das transações na blockchain sem que ninguém mais saiba os detalhes? Usando Provas de Conhecimento Nulo (Zero Knowledge Proofs); vou deixar para a Companhia Zcash explicar:

“As provas de conhecimento-nulo são uma descoberta científica no campo da criptografia: elas permitem provar o conhecimento de alguns fatos sobre informações ocultas sem revelar essa informação. A propriedade de permitir tanto a verificabilidade quanto a privacidade de dados torna um caso de uso forte em todos os tipos de transações e estamos integrando esse conceito em um blockchain para criptografar o endereço do remetente, o endereço do destinatário e a quantidade. Um blockchain que criptografa dados de transação (tornando-o privado) e não possui provas de conhecimento-nulo também não tem a garantia de que todas as transações são válidas. Isso ocorre porque os nodes da rede não podem determinar se o remetente realmente tinha esse dinheiro ou se eles anteriormente enviados para outra pessoa, ou nunca tinha em primeiro lugar. Os dados criptografados se tornam não verificáveis ​​por nodes da rede.
Na Zcash, usamos um tipo particular de prova de conhecimento-nulo chamado zk-SNARKs (ou “conhecimento-nulo sucinto não-interativo de conhecimento”). Dentro de uma transação Zcash, pode existir uma seqüência de dados que o remetente de uma transação fornece – a “prova de conhecimento-nulo”– juntamente com os dados de transação criptografados que provam as propriedades dos dados criptografados criptograficamente, incluindo que o remetente não pôde gerar essa seqüência, a menos que tivessem propriedade sobre a chave de gastos e a menos que os valores de entrada e saída sejam iguais. A prova também garante a criação de um nullifier que é exclusivo sendo usado para marcar tokens como gasto, quando eles são, de fato gasto. Isso permite verificar se a transação é válida, preservando a privacidade dos detalhes da transação.”

– Retirado da página FAQ do Zcash.

O Guia do Usuário Zcash 1.0 oficial em https://github.com/zcash/zcash/wiki/1.0-User-Guide é um bom lugar pra começar a se familiarizar com como rodar o Zcash. O cliente Zcash fornecido pela Companhia Zcash é um pacote completo que lhe permitirá rodar um Nó, minerar com sua CPU (se assim o escolher), e também possui uma Carteira embutida.

Se você estiver interessado em detalhes bem mais técnicos sobre como a matemática por trás do Zcash funciona, você pode dar uma olhada na Especificação do Protocolo, passar no Site Oficial do Zcash, e visitar nossa página de Desenvolvedores.

Você também pode se debruçar sobre o Zcash, Provas de Conhecimento-Nulo e zk-SNARKs assistindo aos vídeos abaixo.

HISTÓRIA DO ZCASH

Zcash começou a ganhar vida ainda em 2014 como um projeto chamado Zerocoin. Este projeto foi o trabalho de Matthew Green, Ian Miers, Christina Garman, Aviel D. Rubin que estavam no Departamento de Ciência da Computação da Universidade Johns Hopkins, em Baltimore, EUA.

O projeto Zerocoin foi concebido para tratar do principal problema com o Bitcoin: sua falta de privacidade.

O trabalho de pesquisa Zerocoin de Matthew, Ian, Christina, e Aviel é resumido assim: “O Bitcoin é o primeiro sistema de e-cash a experimentar adoção generalizada. Enquanto o Bitcoin oferece o potencial para novas formas de interação financeira, ele tem limitações significativas no que diz respeito a privacidade. Especificamente, em virtude do log de transações Bitcoin ser inteiramente público, a privacidade dos usuários é protegida apenas através de uso de pseudônimos. Neste trabalho de pesquisa, nós propomos o Zerocoin, uma extensão criptográfica ao Bitcoin que extende o protocolo para permitir transações de moeda completamente anônimas. Nosso sistema utiliza pressupostos criptográficos padrão e não introduz novos requisitos de confiança em terceiros nem muda o modelo de segurança do Bitcoin. Nós detalhamos a construção criptográfica do Zerocoin, sua integração com o Bitcoin, e examinamos sua performance tanto em termos computacionais quanto seu impacto sobre o protocolo Bitcoin.” (1)

Este trabalho Zerocoin original foi reportado pela imprensa como um “Add-On” ao Bitcoin: “Chamado Zerocoin, é um add-on criptográfico ao Bitcoin que permite transações que não podem ter associação determinada. A chave que ele faz isso sem introduzir nenhum elemento centralizado novo na rede e sem usar lavagem, método pelo qual as moedas são gastas através de intermediários para esconder o endereço da carteira do comprador original.” (2) e foi anunciado como uma solução para “Realizar o sonho de pagamentos realmente Privados” que “Se adotados por uma parcela suficiente da rede Bitcoin, os inventores do Zerocoin acreditam que poderia se tornar uma evolução fundamental para o código do Bitcoin, integrando-se à moeda e resolvendo o que muitos vêem como falhas sérias de privacidade na implementação atual do Bitcoin” (3).

Este trabalho então levou à colaboração, em 2014, entre os pesquisadores originais do Zerocoin na Universidade John Hopkins e criptógrafos do MIT, Technion, e Universidade de Tel Aviv que, juntos, foram capazes de aperfeiçoar o projeto do Zerocointornando-o mais eficiente e mais anônimo.

“Com o novo protocolo Zerocash, diferentemente do antigo protocolo Zerocoin, os usuários podem fazer pagamentos diretos uns aos outros com um protocolo criptográfico vastamente mais eficiente que também oculta a quantidade do pagamento, não apenas sua origem” (4). Este novo protocolo por Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer, e Madars Virza produziu uma moeda que não mais seria um “Add-On” ao Bitcoin original, ao invés disso, seria uma moeda digital plena conhecida como Zerocash.

Não se sabe exatamente quando o time da Zerocash começou a cooperar com Zooko e seu time da Least Authority para fazer a transição do Zerocash para o Zcash, mas o primeiro problema reportado no Github do Zcash data de Novembro de 2014 (5) e a primeira menção pública do Zooko à colaboração foi em Maio de 2015 (6).

Zooko Wilcox, todo o time da Zerocash, e os engenheiros: Nathan Wilcox, Daira Hopwood, Sean Bowe, Taylor Hornby, Jack Grigg e Maureen Walsh, juntamente com um grupo de Conselheiros: Gavin Anderesen, Vitalik Buterin, Andrew Miller, Arthur Breitman, e Joseph Bonnaeu (7) trabalharam diligentemente para criar a primeira versão pública (1.0) do Zcash.

Os times lançaram o Zcash com sucesso em 28 de Outubro de 2016.


Referências Históricas:

(1) http://zerocoin.org/talks_and_press
(2) https://www.newscientist.com/blogs/onepercent/2013/03/bitcoin-zerocoin.html
(3) http://www.forbes.com/sites/andygreenberg/2013/04/12/zerocoin-add-on-for-bitcoin-could-make-it-truly-anonymous-and-untraceable/#43fe01e34557
(4) http://zerocoin.org/index
(5) https://github.com/zcash/zcash/issues/1 (11/25/14)
(6) https://leastauthority.com/blog/a_bug_in_libsnark.html (5/16/15)
(7) https://z.cash/team.html
(8) https://github.com/zcash/zcash/milestones/

– Direitos autorais da História: 2017 Gibson Ashpool.