Zcash: separando fatos e ficção

Zcash: separando fatos e ficção
Tenho lido uma quantidade crescente de informações deturpadas sobre Zcash em vários fóruns como o Reddit, Github, Bitcointalk, etc… Parte delas pode estar apenas mal informada, mas aparentemente uma boa parte está propositalmente imprecisa numa tentativa de desacreditar o Zcash. Então, com isso em mente, fiz uma lista de pontos de Fatos vs Ficção sobre Zcash pra fazer face a esses equívocos. As “Ficções” são as pressuposições incorretas sobre Zcash ou (mais frequentemente) meias-verdades que estão fracamente associadas a fatos mas ainda estão incorretas. Todas as opiniões são minhas, e não necessariamente refletem aquelas da Companhia Zcash. Ficção: A Trusted Setup (Configuração Fiduciária) pode ser usada para comprometer a privacidade dos usuários Fato: Se a Trusted Setup foi comprometida de alguma maneira, o atacante teoricamente seria capaz de forjar moedas, mas a privacidade de todas as transações de usuários Zcash ainda permaneceriam intactas. Não há quaisquer evidências de que a primeira Trusted Setup tenha sido comprometida. E já que que tocamos no assunto; eu sei que a Trusted Setup tem sido um grande motivo pra desconfiança entre os detratores do Zcash, apesar de uma cerimônia elaborada da qual participaram repórteres, que foi filmada, e com vários relatos em primeira mão. Então, tenho boas notícias para aqueles que não “confiam” na “trusted” setup; o próximo grande aprimoramento ao Zcash envolverá uma nova Computação Multi-Partícipe (também conhecida como Trusted Setup) com um acumulador de aleatoriedade que permitirá que esta escale para centenas ou até milhares de indivíduos. Ficção: Zcash não é privada por padrão Fato: Quando um minerador encontra um bloco Zcash, a primeira coisa que ele precisa fazer antes de poder gastar a recompensa de bloco é enviar o ZEC para um Endereço-Z Privado. Está escrito no códigodessa forma e não é possível burlar, essa é a exata definição de “por padrão”. Se um minerador escolhe posteriormente de-anonimizar seus fundos, essa escolha é dele. O que oponentes do Zcash de fato querem dizer quando afirmam que o “Zcash não é privado por padrão” é que o Zcash não força os usuários a usarem endreços privados, o que, de alguma maneira, não é “tão bom” quanto outras moedas que não dão essa opção ao usuário. O problema que eu tenho com essa lógica é que ela implica que você, o usuário, não consegue decidir por si mesmo se você quer fazer uma transação pública ou privada. As transações privadas do Zcash usando zkSNARKs blindam o Remetente + Destinatário + Quantidade Enviada e também oferece o maior conjunto de anonimidade dentre todas as moedas já criadas. Uma olhada rápida no site z.cash explica claramente as diferenças entre transações públicas e privadas, e os usuários do Zcash são livres pra decidirem por si mesmos como querem usar o Zcash. O que nos leva à nossa próxima ficção: Ficção: Menos de 10% das transações Zcash são privadas, então isso compromete a anonimidade total do Zcash Fato: Em primeiro lugar, no momento de escrita desse artigo, 23% de todas as transações da rede são blindadas. Em segundo lugar, a falha fundamental das implementações de privacidade de outras moedas, tais como CoinJoins/Mixers/RingCT/Tumblers/etc., é o constrangedoramente pequeno conjunto de anonimidade que elas provêem. Essas outras moedas e serviços tentaram obscurecer suas transações ao misturá-las com as de outros participantes, mas esses métodos ainda são vulneráveis a um número de ataques à privacidade. Com o Zcash, o conjunto de anonimidade é toda transação blindada (privada) já realizada. Dessa maneira, as transações Zcash privadas ainda tem um conjunto de anonimidade muito maior do que o de qualquer outra moeda, apesar de as transações privadas serem relativamente menos populares do que as transparentes. Isso torna as transações Zcash blindadas muito mais resistentes a ataques à privacidade do que qualquer outra criptomoeda. Ficção: Zcash é taxada em 20% para enriquecer rapidamente uns poucos desenvolvedores gananciosos Fato: ao invés de fazer uma pré-mineração oculta ou uma ICO duvidosa, o que parece popular hoje em dia, os fundadores do Zcash decidiram alocar 10% das 21 milhões de Zcash que serão emitidas ao todo para se destinarem a um grupo de endereços apelidados de “Recompensa dos Fundadores”. Os fundos serão alocados a partir de 20% das recompensas de mineração durante os primeiros 4 anos, e então mais nada além disso. O termo Recompensa dos Fundadores é uma escolha ruim e confuso no que concerne ao que ele realmente faz; você pode ver o destrinchamento completo de como os fundos serão distribuídos nesse post. Nele você poderá verificar que a recompensa não está desviando quantias massivas pros bolsos do Zooko pra que ele possa dormir em pilhas de dinheiro, como os detratores do Zcash gostariam que você acreditasse. Os fundos se destinam a remunerar investidoresque ajudaram a tirar o Zcash do papel (sem ICO, lembra?) para pagar os salários dos desenvolvedores / engenheiros / equipe pra que eles possam trabalhar em tempo integral aprimorando o Zcash e para criar a organização sem fins lucrativos Fundação ZcashNa minha opinião essa é uma maneira muito melhor de financiar um projeto porque cria um incentivo contínuo para que o time melhore o Zcash porque se o Zcash ir mal, a remuneração deles é diretamente afetada. Ficção: o Zcash pode ser “de-anonimizado” ou “infiltrado” a qualquer momento Fato: esse é um argumento contra um espantalho, e é uma completa bobagem. A despeito do que dizem os “especialistas” dizem, não obstante os tweets do Zooko (que frequentemente são tirados do contexto), indiferente do país em que se baseia a Companhia Zcash; é estatisticamente impossível de-anonimizar as transações Zcash de conhecimento-nulo retroativamente. As zkSNARKs são são criptografia de Conhecimento-Nulo real, então mesmo que o time quisesse, não poderiam voltar atrás e associar os usuários às suas transações. Se o time de desenvolvimento principal de alguma forma tentasse inserir uma brecha oculta no Zcash, o código é aberto e o time seria imediatamente denunciado pelo público e por outros desenvolvedores que mantém os muitos forks do Zcash tais como Zen, Hush e Komodo. Ademais, o Zcash é exatamente igual o Bitcoin nesse quesito, os operadores de nós e mineradores são os decisores finais sobre que software rodarão. Da mesma forma que no debate de escalabilidade do Bitcoin, se os mineradores e operadores de nós não gostarem do código mais recente disponibilizado pelo time de desenvolvimento, eles podem se recusar a usá-lo. Ficção: Como a Companhia Zcash fica nos EUA, a rede Zcash pode ser desligada sob demanda Fato: o Zcash, assim como o Bitcoin, possui uma rede de nós vastamente distribuída ao redor do mundo, e, tecnicamente, não pode ser hackeada ou desligada, por um único indivíduo / governo / ou organização, incluindo a própria Companhia Zcash. O Zooko escolheu como prioridade tornar o código aberto e descentralizar a gestão por meio da Fundação Zcash de maneira que até mesmo se a Companhia Zcash for desmontada algum dia ou de alguma forma deixe de existir, a rede ainda funcionaria sem ela. Ficção: Zcash só funciona no Linux, portanto a maioria das pessoas não consegue usá-lo Fato:  Se você observar as estatísticas de uso em explorer.zcha.in, você perceberá que 40% dos nós estão rodando o software “Bean Stalk”, que é o nó completo e carteira para Windows desenvolvido por David Mercer. As versões para Windows e Mac também dispõem de uma interface gráfica que torna mais fácil para novos usuários que querem rodar um nó completo. Você pode encontrar uma lista com os diversos tipos de carteiras Zcash online, em harware e locais que rocam no Windows, Mac, iOS e Android aqui. Das carteira ali listadas apenas três (Linux, Windows, Mac) são capazes de usar endereços privados Zcash. O time Zcash é pequeno se comparado ao de muitas empresas. Como eles tem recursos limitados para alocar às tarefas de desenvolvimento, eles apóiam a comunidade para que portem o Zcash para plataformas diferentes como Mac e Windows. Essa abordagem permitiu que o time concentrasse no objetivo primário do Zcash, que é tornar a criptografia central e o protocolo tão eficientes e robustos quanto possível para garantir a privacidade dos usuários do Zcash. Ficção: o Zcash demora “vários minutos” e requer 8GB de RAM para processar uma transação privada Fato: O tempo e poder de computação necessários para processar uma transação envolvendo um endereço-T (não privado) no Zcash é idêntico ao do Bitcoin. Para produzir uma transação envolvendo um endereço-Z (privado), são necessários 3.1GB de RAM e uma média de 40 segundos para computar a operação de criptografia (JoinSplit) e enviar a transação para a rede para confirmação. Isso é baseado nos números dos atuais testes de versão em speed.z.cash. Os desenvolvedores estão cientes de que, para permitir o uso de endereços-Z em dispositivos de baixa energia, precisarão tornar o processamento mais eficiente. Eles estão trabalhando em duas abordagens: LMP – Low Memory Proving (Prova de Baixa Memória), reduzindo a RAM exigida para endereços-Z de 3.1GB para 1.4GB, permitindo que o smartphone mediano possa processá-las (isso foi proposto para o lançamento da próxima versão 1.0.12!) e a segunda abordagem é DPT – Delegated Proving (Prova Delegada), permitindo que um servidor separado valide as transações privadas de modo a permitir que carteiras muito, muito leves processem transações privadas (tais como plug-ins de navegadores, aplicativos, raspberry pi, etc.). Ficção: o Zcash tem uma “rede lenta”, já que transações privadas são “difíceis” de processar Fato: Se formos comparar a velocidade das redes, precisamos de uma linha base de comparação, então vamos comparar com o Bitcoin: O intervalo de bloco alvo para o Bitcoin é a cada 10 minutos, enquanto que com o Zcash, o intervalo de bloco é 2.5 minutos. E o Zcash tem blocos de 2MB (comparados com 1MB para o Bitcoin) o que significa que o Zcash atualmente tem 8x a capacidade de transação do Bitcoin (4x a quantidade de blocos com o dobro da capacidade por bloco). E também sabemos que o Zcash tem dois tipos de transação, Transparentes e Privadas. Para um tamanho médio de transação de 2000 bytes numa Transação Privada (os JoinSplits ocupam no mínimo 1.5kB se não me engano, e são maiores para mais de duas entradas ou saídas), são 6.67 tx/s para o intervalo de bloco alvo de 150s. Tenha em mente que o time está trabalhando para reduzir o tamanho do JoinSplit de modo que o número de transações privadas por segundo aumentará. Assim, uma vez que os blocos atualmente possuem uma combinação de transações Blindadas e Transparentes, o limite da rede é (atualmente) algo entre 6.67 e 26.67 transações por segundo, o que é muito mais rápido que o Bitcoin. De fato, se cada usuário de Bitcoin migrasse para o Zcash hoje, o Zcash ainda seria mais rápido e teria mais capacidade ociosa. Ficção: o Zcash não é amplamente aceito nos mercados Darknet e isso é de alguma forma ruim Opinião: Esse último sempre me deixa pensando, COMO É QUE É? Por que você gostaria de promover o uso da sua criptomoeda favorita em mercados negros? A única razão que eu posso pensar são egocentrismo, ganância e miopia (ou uma combinação de todos). Você realmente precisa estar com a cabeça escondida na areia se você pensa que mercados da darknet “não ferem pessoas reais” porque eles “apenas permitem que pessoas comprem drogas”. Desde os pobres que são forçados a cultivar, produzir, ou servir de mulas aos cartéis ou o financiamento de violações a direitos humanos fundamentais como tráfico de pessoas, o uso em mercados da darknet não é algo pra se orgulhar. O Zcash não precisa de mercados darnet pra ser bem sucedido, e eu espero que o Zcash nem sequer se torne amplamente usado neles. Uso ilegal é infelizmente um subproduto de qualquer avanço tecnológico. Desde aparelhos celulares criptografados da Apple até chat com criptografia como Whatsapp ou Facebook Messenger, alguém pode alegar que todos eles facilitam a vida dos criminosos, mas parar a discussão por aí é desviar do essencial. Privacidade é um direito humano fundamental, e é importante preservá-lo a despeito de desvantagens potenciais porque sem privacidade você não pode verdadeiramente ter liberdades individuais. O mesmo vale pra moedas digitais, a falha fundamental no Bitcoin e em outras tecnologias baseadas em blockchain é que elas permitem a qualquer um acompanhar suas transações. Se você é um verdadeiro proponente de criptomoedas (qualquer que seja a moeda que você suporte), você deve pensar no panorama completo: adoção generalizada como moeda corrente. O que acontece quando cruzamos a fronteira em que grandes empresas, governos e nações aceitarem criptomoedas? Você gostaria que qualquer um pudesse ver em que lojas você compra, quanto paga em impostos, seu salário, que caridade, organização ou partido político você apóia, com que médico você se consultou? Não posso te dizer o que nos reserva o futuro, ou se ao menos chegaremos ao ponto de adoção em massa, mas eu posso te afirmar que apóio o Zcash porque eu vejo que o Zooko e o time principal acreditam que essas verdades fundamentais acerca do direito e necessidade dos indivídios por privacidade. Eu acredito que a criptografia de ponta do Zcash tem a capacidade de tornar privacidade financeira verdadeira uma realidade pra todos. Espero que essa lista ajude a desfazer um pouco da desinformação que tem circulado ultimamente. Obrigado por ler.