Anúncio de Segurança

A bug related to transaction priority handling may allow an attacker to crash Zcash nodes (Denial of Service) via a specially crafted transaction. A fix is implemented in zcashd release 1.0.8-1.
Please see the official announcement for more details and update your Zcash node to 1.0.8-1.

Idioma

Atualizado em: 26-09-2016

Documentos relacionados:

Resumo

A Zcash é baseada no Bitcoin, e tem um superconjunto de funcionalidade, tanto no protocolo quanto na interface RPC. Este documento descreve a integração da Zcash para serviços e produtos. Para ajudar a construir e testar a Zcash, consulte o Guia Zcash 1.0.

Tipos de Endereço

O endereços transparentes da Zcash, conhecidos como T-addrs, são muito semelhantes aos endereços do Bitcoin. A Zcash também fornece Z-addrs que são usados para enviar e receber fundos privados, com transações criptograficamente protegidas com provas de conhecimento-nulo. T-addrs começam com um prefixo T… [1] enquanto Z-addrs sempre começa com um prefixo Z….

API Bitcoin

O daemon da zcash, zcashd, apresenta o mesmo tipo de interface RPC que o Bitcoin Core, e esta interface (veja Bitcoin RPC reference) fornece uma similar Bitcoin API calls, que chamamos de Bitcoin API . As transações que não envolvem Z-addrs (e, portanto, a camada de privacidade de conhecimento-nulo) podem ser criadas com esta API, assim como para o Bitcoin.

Esta API pode ser usada para transações Bitcoin avançadas, assim como no Bitcoin Core, como por exemplo as transações multisig.

API de Pagamento da Zcash

Além disso, zcashd adiciona o API de Pagamento (ver em referência da API de Pagamento da Zcash), que é documentado em nosso repositório junto com cada release. Esta é uma API de alto nível que simplifica os casos de uso comum de transferências. Esta API pode enviar de ou para (alguns) T-addrs e Z-addrs através da chamada z_sendmany.

Esta API ainda não suporta os tipos avançados de transações do Bitcoin, como o multisig.

Caminho de Integração

Existem duas abordagens para integrar um serviço ou produto com a Zcash: a abordagem Bitcoin-compatível e a abordagem Zcash API. A abordagem de compatibilidade com Bitcoin é conveniente para implementações que já utilizam o Bitcoin Core, porque a API é (quase) idêntica. Alternativamente, se novas integrações estiverem sendo desenvolvidas, o uso da Zcash API pode ser mais simples para a maioria dos casos de uso.

Os serviços que usam a API da Zcash podem enviar e receber de Z-addrs e T-addrs. Um inconveniente é que esta API não suporta transações multisig. Os serviços que utilizam a abordagem de compatibilidade com o Bitcoin só podem enviar ou receber de/para T-addrs. Os usuários podem ainda manter a privacidade mesmo neste caso, assim que o drawback preliminar é uma da usabilidade.

Um serviço que suporta Z-addrs e multisig usará a Zcash API para todas as transações, exceto o multisig, caso em que usará a Bitcoin API.

Designation Features To Support
Level Description Transparent Transactions Transparent Multi-Sig Private Transactions Encrypted Memo
1 Bitcoin-compatible Bitcoin API Bitcoin API    
2 Zcash Bitcoin API / Zcash Payment API Bitcoin API Zcash Payment API Zcash Payment API

Bitcoin API (JSON-RPC)

  • Compatível com o Bitcoin-Core 0.11.2. Pequenas modificações à saída JSON, vjoinsplit.
  • Recomendado para: Tempo para o mercado com aplicações existentes do Bitcoin, familiaridade com Bitcoin, multi-sig

API de Pagamento da Zcash

  • Para o envio de pagamentos transparentes e privados. Amplia a Bitcoin API existente com novos comandos.
  • Recomendado para: novas aplicações que não necessitam de suporte multisig, transações privadas, campo memo criptografado.

Performance das Transações Privadas

Em um benchmark de um servidor de quad-core, a geração de uma transação privada consome ~ 3,2 GB de memória e ~ 50 segundos de tempo de computação. Em um servidor Amazon EC2 de 32 núcleos, o tempo de computação é de cerca de 30 segundos.

Estes números mudaram durante o desenvolvimento. Gráficos de desempenho recente estão disponíveis no Zcash site de benchmarking: tempo benchmark e RAM benchmark.

Contato

Uma API JSON-RPC de baixo nível para suportar as primitivas da Zcash é esperada no primeiro trimestre de 2017. Se você atualmente usa a transação Bitcoin ou os formatos/protocolo de blockchain diretamente em vez de bitcoind, ou se você usa um node/biblioteca bitcoin diferente, como Bitcore, por favor entre em contato com nossa equipe de engenharia para obter assistência técnica.

[1]Nota: o T… para prefixos T-addrs ainda não está implementado e está planejado para lançamento.