Bem vindo! Novo em Zcash?
A rede Zcash é jovem, mas está evoluindo rapidamente! Cadastre-se e estaremos em contato com mais informações sobre como você pode começar a usar Zcash!

Idioma

ZSL: zk-SNARKs para empresas

Jack Gavigan | Mar 23, 2017

O foco principal da Zerocoin Electric Coin Company é - e sempre será - desenvolver e ajudar a Zcash.

No entanto, como uma startup que precisa gerar receita para sobreviver, seria negligência de nós ignorar o fluxo de receita potencial representado pelo mercado corporativo de tecnologia de ledger distribuído (DLT), que gerou um intenso interesse de uma parte da indústria, incluindo os serviços financeiros, o setor de saúde e os setores que procuram tirar proveito do potencial total dos dispositivos conectados à Internet e IoT.

Há uma infinidade de casos de uso em potencial para a tecnologia blockchain onde confidencialidade e privacidade são pré-requisitos, por uma variedade de razões, que vão desde a confidencialidade comercial padrão aos requisitos legais e regulatórios. Nos EUA, a Lei Gramm-Leach-Bailey impõe privacidade para informações financeiras dos consumidores e a regra de segurança HIPAA estabelece um padrão para proteger as informações pessoais de saúde dos indivíduos; a Diretiva da UE relativa à proteção de dados (que em breve será substituída pelo Regulamento Geral de Proteção de Dados) exige que os dados pessoais sejam protegidos contra a divulgação não autorizada; e as exigências de confidencialidade comercial transcendem fronteiras e indústrias.

Acreditamos que a tecnologia de preservação da privacidade da Zcash pode atender a muitos dos requisitos de confidencialidade e privacidade para ledgers distribuídos corporativos.

Entender como a tecnologia que sustenta o Zcash pode atender a esses tipos de requisitos ajuda a entender a arquitetura do Zcash.

Arquitetura em camadas da Zcash

Na blockchain do Bitcoin, a criação de uma transação válida envolve a comprovação de três coisas:

  1. que as moedas não foram gastas anteriormente,
  2. que o remetente está autorizado a transferir "propriedade" das moedas em questão, e
  3. que as entradas da transação são iguais às suas saídas.

A prova de que as moedas não foram gastss anteriormente é obtida a partir do próprio livro-razão da blockchain, e não requer nenhum esforço por parte do remetente.

O remetente prova a posse das moedas que deseja transferir assinando digitalmente a transação usando a chave secreta que corresponde ao endereço que atualmente mantém as moedas. Para permitir que esta assinatura seja verificada, o endereço de envio deve ser divulgado. Por sua vez, o destinatário só será capaz de gastar as moedas, se o seu endereço também é divulgado.

Com o Bitcoin, verificar se as entradas da transação são iguais às suas saídas é trivial porque a quantidade que está sendo transferida é divulgada.

Um diagrama esqueleto de alto nível que mostra uma transação Bitcoin

A Zcash usa provas de conhecimento-nulo (especificamente, zk-SNARKs) para provar os mesmos três fatos, sem revelar nenhuma informação sobre o remetente, destinatário ou os ativos que estão sendo transferidos. Cada transação válida é acompanhada por um zk-SNARK que prova que: os ativos de entrada existem e não foram gastos anteriormente, o criador da transação tem autoridade para gastar os ativos de entrada e a quantidade e o tipo das entradas é igual a quantidade e o tipo das saídas.

As informações necessárias para gastar as saídas (criando um novo zk-SNARK) são anexadas à transação, criptografadas usando a chave pública do destinatário e somente podem ser usadas pelo destinatário.

Um diagrama esqueleto de alto nível que mostra uma transação com prova de conhecimento-nulo

O resultado é efetivamente um novo tipo de ledger distribuído, que chamamos de camada de segurança de conhecimento-nulo, ou ZSL.

A Zcash é uma implementação do ZSL, usando uma bifurcação do código base do Bitcoin para permitir transações transparentes.

Um diagrama esqueleto de alto nível que mostra uma transação da Zcash

Na construção da Zcash, poderíamos ter implementado o ZSL sozinho (isto é, sem suporte para transações transparentes), mas acreditamos que os usuários estavam mais propensos a se sentir confortável com uma criptomoeda que também suporta o tipo de transações transparentes com as quais já estão familiarizados. A ativação de transações transparentes de estilo Bitcoin também facilita a integração com a Zcash usando ferramentas e infra-estrutura existentes que foram criadas para suportar o Bitcoin.

O ZSL pode ser colocado em camadas em cima de qualquer solução de livro-razão distribuíd, adicionando suporte para transações blindadas no livro-razão subjacente. No entanto, não se segue automaticamente que toda a funcionalidade do livro-razão subjacente irá beneficiar da privacidade e confidencialidade adicionadas. Por exemplo, a integração do ZSL com a base de código Ethereum tornaria possível usar transações blindadas para proteger a privacidade dos usuários, mas os contratos inteligentes ainda precisariam ser executados de forma transparente. Estamos ainda nos estágios iniciais de pesquisar como a programabilidade pode ser implementada dentro da ZSL de forma eficiente.

O ZSL também pode ser integrado com qualquer mecanismo de consenso; em vez de prova de trabalho, um livro-razão corporativo poderia usar round-robin, prova de participação, ou novos mecanismos de consenso como Tendermint. Poderia até ser integrado em um banco de dados MySQL, onde um esquema de plugin requer provas válidas para inserções de tabela, mas o administrador do banco de dados não consegue ver os saldos das contas.

Esta abordagem dá uma enorme quantidade de flexibilidade quando se trata de casos de uso empresarial. Isso significa que a confidencialidade e a privacidade podem ser alcançadas mantendo a fungibilidade dos ativos digitais sendo transacionados, sem comprometer a natureza totalmente descentralizada do livro-razão distribuído. Esta é uma vantagem importante em relação às técnicas de privacidade que usam a criptografia tradicional para proteger os detalhes da transação - a fungibilidade dos ativos transferidos em tais transações só pode ser alcançada se os detalhes das transações passadas forem revelados ao próximo destinatário (o que compromete a confidencialidade e a privacidade) ou se um terceiro de confiança é usado para verificar a validade das transações (o que compromete a natureza totalmente descentralizada de um livro-razão distribuído).

Outra vantagem da arquitetura em camadas é que ela nos permite nos concentrar no que fazemos melhor. Somos uma empresa pequena e planejamos continuar focados no desenvolvimento de tecnologias criptográficas inovadoras (em oposição à construção de uma solução completa empresa de livro-razão distribuído). Ao fornecer essas tecnologias como uma camada "extra", podemos nos associar com provedores de soluções para oferecer aos usuários finais privacidade e confidencialidade baseada em zk-SNARKs em sua plataforma DLT de escolha.

Com o risco de soar clichê, queremos crescer a torta com a colaboração de todos em vez de competir pela maior fatia possível.

Melhorando a funcionalidade da Zcash (e ZSL)

A Zcash já estabeleceu um alto padrão de privacidade, mas não vamos descansar. Nós anunciamos recentemente nossas "prioridades de desenvolvimento para 2017", incluindo suporte a tokens emitidos pelos usuários (que permitirão a qualquer pessoa emitir e transacionar ativos digitais na plataforma Zcash com a mesma confidencialidade e privacidade que protegem as transações ZEC) e interoperabilidade entre cadeias com Bitcoin e Ethereum, que permitirá aos usuários trocar ZEC por bitcoins e éter sem a necessidade de passar por uma corretora centralizada.

Nosso principal objetivo no desenvolvimento desses recursos é aumentar a utilidade da Zcash para seus primeiros usuários e atrair novos usuários. No entanto, há também um benefício-chave: esses recursos também são úteis para os potenciais usuários corporativos.

O recurso Payment Disclosure em que estamos trabalhando é o primeiro passo para permitir que os usuários divulguem detalhes de suas transações blindadas a terceiros, mantendo-os em segredo de todos os outros. Para Zcash, isso pode ser usado para criar o equivalente a um recibo de pagamento, para ajudar a resolver disputas e solucionar problemas. Para casos de uso empresarial, também pode ser alavancado para permitir que os usuários dêem detalhes de transações específicas a terceiros como um auditor, regulador ou arbitrador (ou ser capaz de monitorar todas as transações, em tempo real), mantendo-os confidenciais de outros usuários da blockchain.

A adição de suporte a Tokens emitidos pelo usuário para ZSL possibilitará a emissão dinâmica e a negociação de diferentes ativos digitais na mesma blockchain. Isso tem aplicações óbvias no setor financeiro, que já está explorando o uso da tecnologia blockchain para negociar títulos. Ao usar a ZSL, os detalhes de tais negócios podem ser mantidos confidenciais, e as identidades das contrapartes podem ser mantidas privadas, sem comprometer a fungibilidade dos ativos que estão sendo negociados.

Além disso, dar aos participantes da blockchain a capacidade de emitir dinamicamente seus próprios ativos digitais abre uma ampla gama de casos de uso, tais como emissão de blockchains e negociação de papel comercial, faturas descontadas, empréstimos sindicais, títulos corporativos e uma variedade de derivativos (como "derivativos negociados na blockchain", para se diferenciar dos derivativos mais tradicionais negociados em bolsa).

No espaço de interoperabilidade, estamos trabalhando na implementação de suporte para transações atômicas cruzadas (XCAT), o que possibilitará o intercâmbio de ativos em diferentes blocos e possibilitará a interoperabilidade entre diferentes tipos de blockchains, otimizados para transações diferentes tipos de ativos e operando sob diferentes modelos de governança e regimes regulatórios. Por exemplo, um derivativo negociado em uma blockchain operado sob a supervisão da CFTC poderia ser liquidado através da entrega de ações em um livro-razão regulado pela SEC. Um mercado de valores mobiliários operado pela NYSE ou pela DTCC poderia ser liquidado, ao estilo DvP, usando CBDC ou dinheiro do banco comercial ("b-money") em um livro-razão operado pela Reserva Federal.

Eficiência, desempenho e escalabilidade são áreas-chave de foco para nós. Atualmente, a geração do zk-SNARK para uma transação Zcash protegida leva pouco mais de 40 segundos em uma CPU de desktop típica. Enquanto estamos oferecendo melhorias de desempenho incremental ao longo do tempo, também estamos conduzindo pesquisas sobre como melhorar o circuito criptográfico principal, o que poderia permitir melhorias significativas de eficiência, desbloqueando o uso de ZSL para casos de uso que requerem baixas latência e alto rendimento.

Enquanto isso, Payment Offloading tornará possível para clientes rodando em dispositivos de baixa potência descarregar os elementos mais computacionalmente intensivos da geração de prova de zk-SNARK para um servidor mais poderoso.

Olhando para o Futuro

Blockchains e livros-razão distribuídos são uma tecnologia emergente. Na minha opinião, está em um nível de maturidade semelhante ao da Internet e da "World Wide Web" em 1996. Naquela época, ficou claro que a Internet tinha o potencial de mudar o mundo, mas levou tempo para que a tecnologia amadurecesse e conseguisse uma adoção generalizada e para a nossa compreensão do seu potencial para desenvolver até o ponto onde poderíamos começar a explorá-lo plenamente.

A tecnologia de livro-razão distribuído - e a nossa compreensão disso - também precisa de se desenvolver, evoluir e amadurecer antes que muitos dos casos de uso em potencial possam ser realizados, especialmente aqueles que exigem implantação e adoção em grande escala.

Esperamos que a exploração de usos empresariais para zk-SNARKs nos ajude a melhorar a rede pública Zcash, expondo-nos a ideias e casos de uso que expandem nossa compreensão de possíveis aplicações e criando ferramentas e recursos que podem ser enviados para o Zcash.

Reconhecemos que há um potencial conflito de interesses entre nosso papel como os principais impulsionadores da criptomoeda Zcash e nosso desejo de gerar receita vendendo soluções habilitadas para ZSL para empresas. Para garantir a independência e a objetividade, estabelecemos uma Fundação Zcash independente, sem fins lucrativos, para representar os interesses da comunidade Zcash e do público em geral como usuários do protocolo Zcash e blockchain.

A longo prazo, acreditamos que a adoção generalizada e o uso das tecnologias que sustentam o Zcash beneficiarão todos os seus usuários, da mesma forma que a adoção de Linux por usuários empresariais beneficiou usuários pessoais e amadores de Linux.

Em última análise, nosso objetivo é um futuro em que todos os que usam a tecnologia de livro-razão distribuído, de indivíduos a empresas, podem se beneficiar do potencial das tecnologias de privacidade mais avançadas.