Anuncio de Seguridad

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

Actualizado en: 2016-09-26

Documentos Relacionados:

Resumen

Zcash se basa en Bitcoin y tiene un superconjunto de funcionalidades tanto en el protocolo como en la interfaz RPC. Este documento describe la integración de Zcash en servicios y productos. Para obtener ayuda para compilar y testear Zcash, consulta la Guía Zcash 1.0.

Tipos de Direcciones

Las direcciones transparentes de Zcash, también llamadas T-addrs, son muy similares a las direcciones de Bitcoin. Zcash proporciona además Z-addrs que se utilizan para enviar y recibir fondos privados, con transacciones criptográficamente protegidas por medio de pruebas de Conocimiento-Cero. Todas las T-addrs empiezan con un prefijo``T…`` [1] mientras que las Z-addrs siempre empiezan con un prefijo Z….

API de Bitcoin

El daemon de zcash, zcashd, presenta el mismo tipo de interfaz RPC que Bitcoin Core, y esta interfaz (véase Referencia de las RPC de Bitcoin) proporciona unas Llamadas de la API de Bitcoin muy parecidas. Llamamos a esto la API de Bitcoin . Las transacciones que no implican Z-addrs (y por lo tanto la capa de privacidad de conocimiento-cero) pueden ser creadas con esta API al igual que para Bitcoin.

Esta API puede utilizarse para transacciones avanzadas como las transacciones multisig, o multifirma, de Bitcoin, de igual manera que en Bitcoin Core.

API de Pagos de Zcash

Además, zcashd agrega la API de Pagos (véase la Referencia de la API de Pagos de Zcash), que documentamos en nuestro repositorio junto con cada versión. Esta es una API de alto nivel que simplifica los casos de uso común de transferencias. Esta API puede enviar desde o hacia (algunos) T-addrs y Z-addrs a través de la llamada z_sendmany.

Esta API aún no admite tipos avanzados de transacciones de Bitcoin, como multisig.

Camino de la Integración

Existen dos enfoques para integrar un servicio o producto con Zcash: el enfoque compatible con Bitcoin y el enfoque API de Zcash. El enfoque compatible con Bitcoin es conveniente para implementaciones que ya utilizan Bitcoin Core, ya que la API es (casi) idéntica. Alternativamente, si se están desarrollando nuevas integraciones, el uso de la API de Zcash puede ser más sencillo en la mayoría de los casos de uso.

Los servicios que utilizan la API de Zcash pueden enviar y recibir desde y hacia Z-addrs y` T-addrs`. Un inconveniente actual es que esta API no admite transacciones multisig. Por otro lado, los servicios que utilizan el enfoque de compatibilidad con Bitcoin sólo pueden enviar o recibir desde/hacia T-addrs. Los usuarios todavía pueden mantener la privacidad incluso en este caso, por lo que el principal inconveniente es un problema de usabilidad.

Un servicio que admita al mismo tiempo Z-addrs y multisig utilizará la API de Zcash para todas las transacciones excepto multisig, en cuyo caso utilizará la API de Bitcoin.

Denominación Funciones Admitidas
Nivel Descripción Txs Transparentes Multi-Sig Transp. Txs Privadas Memo Cifrado
1 Compatible con BTC API de Bitcoin API de Bitcoin    
2 Zcash API de Bitcoin / API de Zcash API de Bitcoin API de Zcash API de Zcash

API de Bitcoin (JSON-RPC)

  • Compatible con Bitcoin-Core 0.11.2. Modificaciones menores a la salida JSON, v.g. vjoinsplit.
  • Recomendado para: tiempo de comercialización para aplicaciones Bitcoin existentes, familiaridad con Bitcoin, multi-sig

API de Pagos de Zcash

  • Para enviar tanto pagos transparentes como privados. Amplía la API de Bitcoin existente con nuevos comandos.
  • Recomendado para: nuevas aplicaciones que no necesitan soporte multisig, transacciones privadas, campo memo cifrado.

Desempeño de la Transacción Privada

En un servidor de referencia de cuatro núcleos, generar una transacción privada consume ~3,2 GB de memoria y ~50 segundos de tiempo de cálculo. En un servidor Amazon EC2 de 32 núcleos, el tiempo de cálculo es de unos 30 segundos.

Estas cifras han cambiado durante el desarrollo. Los gráficos de desempeño reciente están disponibles en el Sitio web de benchmarking de Zcash: benchmark de tiempo y benchmark de RAM.

Contáctanos

Se espera una API JSON-RPC de bajo nivel para dar soporte a las primitivas Zcash en el primer trimestre de 2017. Si utilizas actualmente los formatos o el protocolo de la transacción o el blockchain de Bitcoin directamente, en lugar de bitcoind, o si utilizas un nodo/biblioteca bitcoin diferente como Bitcore, por favor contacta con nuestro equipo de ingeniería para obtener asistencia técnica.

[1]Nota: el prefijo T… para los T-addrs aún no está implementado y está previsto su lanzamiento.