Documentación Técnica de PIVX Zerocoin (zPIV)

Revisión 0.9

Última actualización: 16 de Octubre de 2017

 

PIVX: UNA VISIÓN GENERAL

PIVX es una criptomoneda basada en Bitcoin, centrada en la comunidad y enfocada en la descentralización, la privacidad y el uso en la vida diaria de las personas. PIVX utiliza un protocolo de “Prueba de Participación” (PoS) energéticamente eficiente y una red Masternodes de segundo nivel creando una gobernanza comunitaria inclusiva, junto con un sistema de tesorería autofinanciado basado en Blockchain que garantiza su sostenibilidad a lo largo del tiempo. PIVX se esfuerza continuamente por lograr un mejor sistema de gobernanza, transacciones privadas instantáneas y desempeñarse como la criptomoneda de la próxima generación.

En términos simples, PIVX es básicamente una forma de dinero digital en internet que se puede transferir fácilmente de persona a persona de forma global  en un abrir y cerrar de ojos, y con las tarifas de transacción casi inexistentes. Puedes convertir tu dinero en PIVX a través de varios casas de cambio y obtener recompensas similares a los intereses mediante la prueba de participación, hacer trading con otras monedas digitales, comprar bienes y servicios en línea o donde sea que se acepte como una forma de pago. PIVX no es propiedad de nadie y no está gobernado por una sola persona o una sola organización, la red de PIVX está protegida por miles de nodos en todo el mundo, nodos manejados por los propios usuarios de PIVX. El objetivo de PIVX es ser una moneda digital avanzada que sea rápida, segura, descentralizada y privada.

 

CRIPTOMONEDAS Y LA PRIVACIDAD EN LAS TRANSACCIONES

 

Las criptomonedas más comunes, como Bitcoin, tienen un sistema de “libro de contabilidad pública” (blockchain) en el que todas las transacciones son visibles y pueden ser rastreadas a través de un explorador de bloques (blockchain explorer). Esto resulta en que cualquier persona tiene la capacidad de ver todas y cada una de las transacciones y saldos, pero más importante aún, tiene la capacidad de conocer las direcciones asociadas a dichos saldos. Esto significa que una vez realizada una transferencia de una dirección a otra, todo el historial de dichas direcciones queda expuesto, revelando los montos y movimientos en ambos monederos.

En principio una dirección Bitcoin puede parecer totalmente anónima, pero al realizar una transferencia desde por ejemplo una casa de cambio, una empresa, un comercio, organización o servicio, en esencia se ha vinculado a esa dirección Bitcoin a una forma de identificación revelar la identidad de usuario.

En la mayoría de los posibles escenarios, esta transparencia no es una preocupación para nadie. Pero en otros casos podría convertirse en un problema muy serio, si la moneda recibida tuviera un historial inconveniente, o bien si tu dirección se viera bajo ataque de potenciales ladrones. Por ejemplo, imagina que recibes monedas desde una dirección asociada a una persona u organización que ha realizado actividades ilegales, y que está siendo investigada por autoridades gubernamentales. Dada la relación que dichas monedas guardan con su antiguo propietario y que ahora tu posees, dicha autoridad podría cuestionar la legalidad de tus acciones, aunque hayas recibido esas monedas de forma legítima y honesta. Esto también ocasiona que las monedas involucradas en hechos delictivos o poco honestos, puedan ser consideradas menos valiosas, reduciendo así sus características como dinero.

 

NUESTRA SOLUCIÓN = PROTOCOLO ZEROCOIN (zPIV)

 

Para superar el problema, PIVX desde la versión v3.0.0 del monedero oficial, implementó el protocolo previamente conocido y revisado llamado “Zerocoin”, añadiendo mejoras personalizadas que permiten el total anonimato de transacciones a nivel de blockchain (cadena de bloques) y completamente desvinculadas entre sí.

Nosotros llamamos a esto zPIV, donde PIV es por la unidad de PIVX y la z como prefijo de Zerocoin.

Lo que zPIV ofrece, es un servicio de “coin-mixing” (mezcla de monedas) a un nivel de protocolo, que borra todo vínculo entre quien envía las monedas y quien las recibe, con un 100% de anonimato y sin dejar rastro.

Esto significa que cada moneda que se envía usando el protocolo zPIV, es ahora 100% fungible, ya que no existe un historial adjunto o rastro alguno en la moneda. El uso de zPIV también significa que el saldo de tu monedero puede mantenerse totalmente oculto, evitando así ser el objetivo de potenciales ladrones. Esta es una característica única de PIVX y es prácticamente inexistente en otras criptomonedas del mercado actual.

 

Todo el que guarde PIVX con zPIV, lo hará usando el cifrado RSA-2048 de generación de claves, lo que elimina la necesidad de confiar en un desarrollador para realizar la configuración del monedero y que nadie más conocerá estas configuraciones. Al final esto significa que la privacidad de todos los usuarios está garantizada mediante el uso de zPIV.

 

EL FACTOR ÚNICO

 

Al momento de escribir esto (Septiembre de 2017) PIVX es la única criptomoneda con Proof of Stake que ha implementado de manera completa y práctica la ideología del protocolo de Zerocoin. Si bien zPIV se basa en el repositorio público original de “libzerocoin” que fue creado por criptógrafos académicos, la mayoría del código PIVX zPIV es personalizado, haciendo que zPIV también sea único.

Libro Blanco (Whitepaper) Original de Zerocoin (en ingles): https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf

A diferencia de la mayoría de criptomonedas que actualmente utilizan el protocolo basado en zerocoin, PIVX zPIV utiliza un sistema de acumulación de “puntos de control” de muy alta eficiencia, que permite que el proceso de consumo de zPiv utilice estos “puntos de control” que guardan todo el proceso de creación de monedas (mint) antes de que la propia zPIV sea creada, así como también le permiten al usuario seleccionar una cantidad de zPIV a guardar más allá del punto de control.

Esto permite acumular un gran número de monedas con recursos informáticos mínimos. La implementación zPiv de PIVX reduce el consumo de recursos al mínimo y a la vez hace que las transacciones zPIV sean una de las transferencias privadas más rápidas del mercado en la actualidad.

 

LAS VENTAJAS TÉCNICAS DE PIVX zPIV

 

  1. Reducción en los costos de las transacciones, en promedio un 25% menos que cualquier otra implementación actual en entornos de producción (optimizaciones adicionales en camino)
  2. Rápida verificación y un mejor rendimiento de sincronización de la red
  3. Pago directo de zPIV a cualquier dirección PIVX
  4. Uso de múltiples denominaciones Zerocoin al pagar durante transacción.
  5. Posibilidad de gastar un monto exacto y emitir el monto restante a una dirección PIVX o a la creación de más zPiv.

 

BENEFICIOS AL USAR zPIV EN EL DÍA A DÍA.  

 

  1. zPIV es capaz ocultar el saldo de las monedas acomuladas, protegiendo al propietario de las mismas de convertirse en objetivo de ladrones.
    • El saldo de zPIV no estará vinculado a ninguna dirección en particular.
  2. zPIV puede ocultar el historial de transacciones que se envían.
    • Las direcciones de origen y destino no son visibles, esto hace la transferencia privada, segura y fungible.
  3. Las transacciones zPIV además de anónimas, son muy rápidas.
    • Se necesita aproximadamente 0.5 segundos en el “convertir” (mint) y 2.5 segundos en pasarlas a zPIV.
  4. La conversión automática a zPIV está habilitada de manera predeterminada en el Monedero, pero la opción para deshabilitar zPIV está presente.
    • Esto significa que siempre será posible enviar una transferencia completamente transparente cuando sea así se considere necesario.

 

CÓMO SE ALCANZA LA ANONIMATO

 

  1. Mint (convierte) los PIV en zPIV (el monedero auto-convertirá algunos de forma predeterminada y automática).
  2. Envíe (transfiere) su zPIV como PIV a cualquier dirección PIVX interna o externa para borrar todo rastro anterior.

 

Esencialmente, el protocolo zerocoin agrupa (y por lo tanto, combina) todos los zPIV que los usuarios han convertido (Mint) de su saldo PIV, en un conjunto de denominaciones y los utiliza para enviarlos cuando se realiza una transferencia. Es importante tener en cuenta que esta “agrupación” no significa que todos los zPIV se almacenan en una ubicación centralizada. En realidad, se realiza un seguimiento de cuántos zPIV se crean en el blockchain (libro de contabilidad).

 

Cuando sea necesario enviar (transferir) alguna cantidad de zPIV a una dirección PIVX, el monedero enviará una “prueba de conocimiento-cero” (zero-knowledge proof) al blockchain que permitirá que zPIV se convierta de nuevo a PIV y se envíe a la dirección de destino, todo esto en un solo paso.

 

Debido a que transferir zPiv técnicamente “crea nuevas monedas” el emisor de la transferencia debe probar la pertenencia de monedas en su posesión al sistema de acumulación, mediante esta “prueba de conocimiento-cero”, el resultado es que la “historia” de la moneda recibida, su origen y vínculos se destruyen por completo, haciéndola  imposible de rastrear.

 

Finalmente, una pequeña analogía:  Piensa en zPIV como fichas de un casino. Al entrar al cambiar un billete de 100 dólares (es decir, PIV) al cajero y te entregan diferentes fichas: Una de $10, Dos de $20 y Una más de $50 dólares (es decir, zPIV). Esto significa que ya no eres dueño de “ese” billete que entregaste al cajero, a pesar de ello tienen la “prueba” de que todavía posees $100 dólares en forma de fichas de casino y conservarlas así el tiempo que quieras. Entonces en el momento que necesites nuevamente dólares (PIV), tan solo tienes que devolver las fichas (zPIV) al cajero y el cajero te entregará un billete completamente nuevo sin historia y sin rastro alguno, podríamos decir que está “recién impreso” y jamás usado anteriormente.  

 

LA CREACIÓN DE zPIV Y EL PROCESO DE UNA TRANSACCIÓN

 

En este otro ejemplo, Kirby desea enviar PIV a Heidi utilizando el protocolo Zerocoin para que la transacción sea totalmente anónima.

De PIV a zPIV, paso a paso.

 

  1. Kirby inicia la creación de 960 zPIV.
  2. El Protocolo de Zerocoin convierte los 960 PIV de Kirby al equivalente de zPIV, utilizando para esto las denominaciones de zPIV más grandes disponibles.
    1. Tras bambalinas, a Kirby se le entregan los datos secretos necesarios que prueban la propiedad de la conversión (un número de serie único, que el protocolo Zerocoin usa para rastrear la propiedad de las zPIV y sus montos).
  3. En consecuencia, el saldo de Kirby se actualiza.
    1. Con una reducción de 960 en PIV, y un aumento de 960 en zPIV.
    2. Adicionalmente, Kirby puede ver que los 960 zPIV están compuestos diferentes denominaciones: 1x 500 zPIV, 4x 100 zPIV, 1x 50 zPIV y 1x 10 zPIV.

 

De zPIV a PIV, paso a paso.

 

  1. Kirby inicia una transferencia enviando 960 zPIV, a la dirección PIVX de Heidi.
  2. El protocolo de Zerocoin recibe y valida los datos secretos necesarios que prueban la propiedad de las monedas de Kirby. Así una vez se utilizan esos fondos, el saldo original no se puede volver a usar.
  3. En ese momento, el protocolo Zerocoin crea 960 PIV en la dirección PIVX de Heidi.
    1. Heidi recibe 960 PIV de un remitente totalmente anónimo.
    2. Kirby’s balance is updated accordingly — with a 960 decrease in zPIV.
    3. El saldo de Kirby se actualiza con una disminución de 960 en zPIV de su saldo original.

 

LAS DIFERENTES DENOMINACIONES

 

Para mejorar la eficiencia de las transacciones y al mismo tiempo mantener un alto nivel de complejidad, PIVX ha implementado un conjunto de denominadores comunes basados en enteros, así las monedas PIV, que se convierte en monedas como zPIV lo hacen agrupados (así como el ejemplo de las fichas de casino).

 

Las denominaciones utilizadas por zPIV son: 1, 5, 10, 50, 100, 500, 1000 y 5000. Usar este conjunto de denominaciones proporciona un buen equilibrio entre la simplicidad, la usabilidad y la seguridad. Anteriormente solo se usaba la unidad (1) como única denominación (es decir, 1 zPIV), sin embargo, esto no es práctico, ya que las transacciones de gran volumen requerirían una gran cantidad de monedas.

 

El uso de un conjunto muy grande podría aumentar la posibilidad de rastreo un nivel inseguro, por lo que se estableció como máximo 8 posibles denominaciones para los grupos de monedas. Este grupo un buen punto medio, ya que no se incluyen grupos de monedas consideradas demasiado bajas o demasiado altas, en la denominación. A medida que cambia el valor de PIV, es posible ampliar o cambiar este conjunto para satisfacer las necesidades de los usuarios.Cuando utilices tus zPIV, únicamente tendrás una prueba de que tienes una moneda de esa denominación, que incluye otras zPIV de esa misma denominación.

 

Esto significa que todas las reconversiones de zPIV se realizarán en números enteros (calculando las cantidades decimales) lo que hace que sea casi imposible hacer coincidir antes zPIV y después de la conversiones a zPIV desde 2 direcciones diferentes, mientras que hay muchas otras transacción de zPIV a PIV idénticas.

 

LA LÓGICA DETRÁS DE LA DENOMINACIÓN

 

Al convertir(minting) o enviar (spending) zPIV, cada algoritmo determinará automáticamente las denominaciones utilizadas. Cuando se envía zPIV a una dirección PIVX, otro algoritmo determinará automáticamente las denominaciones utilizadas del usuario.

 

1). Si tiene la cantidad exacta, entonces comenzará con más alta denominación posible y bajará hasta llegar al total.

2) De lo contrario: Reduzca la transacción (a) encontrando la siguiente denominación que iguale el monto a transferir (si es posible) y úselo si está disponible, (b) si esto no es posible, comience con las denominaciones más grandes y baje hasta completar la transacción.

3) O bien: Minimice las fracciones. Si la transacción no es exacta, intente encontrar el monto por encima de lo que se necesita para minimizar la cantidad de monedas que recibe como “cambio” al gastar una moneda al fraccionar.

 

EL AUTO MINTING

 

La privacidad de zPIV se vuelve más efectiva cuando existen grupos nominales creadas de muchas fuentes distintas. Por ello, para garantizar su efectividad, el monedero PIVX tiene la posibilidad de convertir de manera automática (auto mint) una cantidad “configurable” de PIV de tu saldo en zPIV, sin la necesidad de convertirlos manualmente.

 

Automint se inicia cuando se desbloquea el monedero (ya sea completamente o en modo staking) y el blockchain se sincroniza por completo. Esto significa que si el monedero está está encriptado y bloqueado, la función de auto-mint no se activará. Cuando el monedero está desbloqueado, no se tocará ningún UTXO que esté bloqueado, por ejemplo los que son utilizados por los masternodes.

– porcentaje predeterminado: 10%. Se puede cambiar a través de GUI o mediante la opción de línea de comando `-zeromintpercentage=<n>` o en el archivo “pivx.conf” “zeromintpercentage=<n>` no debe ser inferior al 10% del saldo total.

– estado predeterminado: Activado. Se puede desactivar (por ejemplo, en los exchanges) a través de la opción de línea de comando`-enablezeromint=0` o en el archivo “pivx.conf” `enablezeromint=0`

 

El usuario puede configurar una denominación preferida para Automint a través de la interfaz gráfica, o con la opción de línea de comandos

`-preferredDenom=<n>´  o en el archivo “pivx.conf” preferredDenom=<n>` donde “<n>” es cualquiera de las denominaciones disponibles `1/5/10/50/100/500/1000 / 5000` o` 0` (significa que no hay preferencia en absoluto y que Automint puede convertir como mejor lo crea necesario).

 

Si no hay suficientes monedas disponibles para la denominación preferida, Automint esperará hasta que existan las suficientes monedas disponibles para comenzar.

 

Con cada nuevo bloque entrante, se realiza los siguiente:

 

  1. Se verifica el total de las monedas disponibles.
    1. Esto excluye monedas “inmaduras” y monedas bloqueadas (por ejemplo, las de los Masternodes)
  2. Compruebe cuánto Zerocoin / zPIV está disponible
  3. Verifica si el porcentaje está por debajo del porcentaje objetivo

 

Si el porcentaje está por debajo del porcentaje objetivo, entonces:

 

  1. Calcule cuántos PIV deben convertirse a zPIV, p. Ej. 2015
  2. Usa la denominación más pequeña disponible (por ejemplo 1000 PIV) y entonces convierte a 1000 zPIV
  3. Termina y repite hasta que se conviertan los suficientes zPIV.

 

En el ejemplo anterior, el primer bloque entrante provocaría convertir 1000 zPIV, el siguiente 1000 zPIV, el tercero 10 zPIV y el cuarto 5 zPIV (suponiendo que ningún nuevo PIV entrante cambia la cantidad base de PIV disponible). La razón para usar la denominación más pequeña, y para usar solo una denominación por bloque es el rendimiento, obviamente las denominaciones exactas no necesitan ser “partidas” en denominaciones exactas, y una sola conversión se puede hacer en un tiempo razonable.

Excepciones: Si se necesita convertir una gran cantidad de PIV, no se usa la denominación más grande (5000 PIV) de forma directa, pero para tener una distribución más equilibrada en las las denominaciones disponibles una cantidad como  6666 PIV  se convertirá en las 8 denominaciones disponibles (6666 = 5000 + 1000 + 500 + 100 + 50 + 10 + 5 + 1).

 

PROCESO DE CONVERSIÓN AUTOMÁTICA DE zPIV

(basado en las configuraciones predeterminadas)

    1. Kirby, antes del lanzamiento del Protocolo Zerocoin, tiene un saldo de 17,900 PIV. Posee un masternode, por lo que 10.000 PIV de su saldo se mantiene en la dirección exclusiva del masternode y se bloquea como garantía. Kirby no ha usado el control de monedas para bloquear los 7,900 PIV restantes.
    2. El protocolo Zerocoin entra en operación:
    3. El protocolo Zerocoin procesa cada dirección individualmente de la siguiente manera:
      1. Determina si las monedas están bloqueadas.
      2. Si las monedas no están bloqueadas, convierta el 10% de PIV en zPIV.
      3. Si las monedas están bloqueadas, no hará nada.
    4. Kirby ve que el total de sus monedas ha “disminuido” en 790 PIV, lo que equivale al 10% de sus monedas que no están bloqueadas.
    5. Kirby también puede ver que su balance ha aumentado en 790 zPIV. Como no ha especificado ninguna preferencia de conversión zPIV, ahora tiene las siguientes denominaciones disponibles para transferir:
    • 1x 500 zPIV
    • 2x 100 zPIV
    • 1x 50 zPIV
    • 4x 10 zPIV

    NIVEL DE SEGURIDAD AL HACER UNA TRANSFERENCIA

    Cuando se transfieren denominaciones zPIV, se solicita a un usuario que ingrese un Nivel de Seguridad pudiendo elegir del 1 al 100. De forma indirecta, el parámetro Nivel de Seguridad permite al usuario elegir cuántas monedas debe ocultar con su transacción.

    Por ejemplo, el nivel de seguridad de 1, tomaría todas las monedas creadas en el blockchain antes de que la conversión se agregara al blockchain, y luego agregaría también las monedas que se convierten en los siguientes 10 bloques. Un nivel de seguridad de 2 haría lo mismo, excepto agregar los próximos 20 bloques de conversión Un nivel de seguridad de 100 agregaría la cantidad máxima de conversiones hasta el final actual del blockchain.

    Cuanto mayor sea el nivel de seguridad, mayor serán los recursos de sistemas y el tiempo que le tomará realizar la transacción. Y aunque lleva más tiempo, siempre se recomienda un nivel de 100 para las transacciones que requieren un anonimato máximo.

    MANEJANDO EL CAMBIO

    Como zPIV se compone de denominaciones fijas, habrá momentos en que la cantidad necesaria para la transacción no puede ser compensada por las denominaciones existentes. Por ejemplo, si se tiene una única denominación 1000 zPIV pero desea enviar 985 PIV a una dirección, habrá una diferencia de 15 PIV que se recibirán como “cambio”. Este cambio puede comprometer la privacidad de la transacción, ya que puede conducir a su dirección actual si vuelve a mezclarse erróneamente este cambio con sus otras direcciones PIVX presentes.

    Para evitar esto, hay 2 métodos que se pueden usar. La primera opción es el uso de la función incorporada que convierte automáticamente el cambio a zPIV. Esto convertirá el zPIV en la cantidad requerida de PIV a la dirección PIVX objetivo de la transferencia, y luego reducirá el cambio restante de PIV a zPIV. Este es el método más conveniente. Sin embargo, la cantidad de cambio que no es convertible a una denominación (la denominación más baja disponible es 1) se convertirá en una “tarifa de transferencia” (fee).

    La segunda opción es emitir este cambio a una dirección PIVX estándar, lo que le permite manejar la segregación de PIV del balance diario. Esta opción puede generar errores y no se recomienda si el anonimato es importante en la transacción.

    LA INTEGRIDAD DE LOS DATOS DE zPIV

    Cada conversión de zPIV se asocia con un número de serie único que se almacena en el archivo “wallet.dat” local y no en el blockchain. Esto significa que cuando se convierte una nueva zPIV, wallet.dat se debe respaldar ya que la copia de seguridad anterior no tendrá los números de serie para las denominaciones zPIV recién creadas.

    El número de serie y otros datos esenciales de zPIV están unidos a la base de datos (wallet.dat) antes de que la transacción se complete y se transmita a la red. Esto minimiza el riesgo de perder sus denominaciones zPIV recién convertidas durante un evento inesperado, una nueva conversión de zPIV, una falla del ordenador o problemas de conectividad a Internet.

    Debido al diseño de base de datos local, es imprescindible que su monedero esté respaldado después de cada nuevo zPIV convertido con el fin de garantizar que sus números de serie estén actualizados.

    Especificaciones técnicas (v1.0)

    Características principales: Sistema de punto de control del acumulado personalizado

    Encriptación: RSA-2048

    Denominaciones de zPIV: 1, 5, 10, 50, 100, 500, 1000, 5000

    Tiempo de conversión (Mint) : >= 0.5 seconds

    Tiempo transacción (Spend): >= 2.5 seconds

    Límite máximo en una sola transacción: 35,000 PIV

    Límite máximo de recuento de las denominaciones de la transacciones: 7

    Tamaño del bloque: 2 MB (1 MB antes de la versión v3.0.0 zPIV del monedero)

    Comisiones (mint): 0.01 PIV por conversión nominal a zPIV

    Comisiones (spend): No existe comisión al convertir zPIV a PIV.

    Mínimas confirmaciones PIV requeridas al convertir a zPIV: 6

    Mínimas confirmaciones zPIV requeridas después de la transferencia: 20

    Requisitos adicionales antes de zPiv se pueden gastar: 3 conversiones agregadas al acumulado después de que se agregue el tuyo.

    Autores:

    Escrito por: jakiman, mcl4m

    Puntos tecnicos por: spock, presstab, fuzzbawls, mrs-x

    Traducción por: ONeZetty

    REFERENCIAS

    [1] https://en.wikipedia.org/wiki/RSA-2048

FAQ

1. So is zPIV a new coin? Is this effectively a coin swap?

No. zPIV is not a new coin. It is a protocol-level pooling of existing PIV using zero-knowledge proofs.

2. Will I lose or affect my coins?

No. You will not lose your coins whatsoever (except for any fees associated with minting). However, as part of the zPIV pooling using everyone’s wallet to increase its complexity, it will convert 10% of your PIV into zPIV within your own wallet. You are free to spend that zPIV back to your PIV address to keep it in PIV if desired. No. You will not lose your coins whatsoever. However, as part of the zPIV pooling using everyone’s wallet to increase its complexity, it will convert 10% of your PIV into zPIV within your own wallet. You are free to spend that zPIV back to your PIV address to keep it in PIV if desired.

3. How does it work with exchanges such as Bittrex?

As zPIV is sent only as PIV when sending to an address, there is zero incompatibility with any existing exchanges. zPIV is used within your own desktop wallet only to increase transaction privacy. The actual coin transfers and PIV balance will always be under your control.

4. Can I stake my zPIV balance?

Unfortunately, zPIV staking is not available currently but it is under consideration for future revisions.

5. Do I have to use zPIV?

No. You can use your PIV balance and transfers just like now without using zPIV.

6. Why are zPIV minted in different denominations?

Denominations are used to help keep things more anonymous. Imagine if you created 6543.123456 zerocoins and then soon after someone else received 6543.123456 PIV. It’s very likely that you are the one paying the amount. By using a limited number of zerocoin denominations (currently 8), you’ll never see amounts like that and thus less likely be identified. For maximum anonymity, only 1 zerocoin denomination would be used – say equivalent to 1 PIV for example. However, that would make transactions very difficult since you’d have to pack up 20 separate 1 zPIV codes into a transaction if you wanted to pay 20 zPIV, versus simply using 2 codes of 10 zPIV denominations. As the amounts get larger it becomes even more useful to use larger denominations. It is similar to buying a new car using $1 bills – which would be pretty crazy for everyone involved.

 

For the best anonymity it is better to have a number of zerocoins at each of the denominations handy and ready for spends. For the above example (in our case rounded up to integer number of zPIVs), it would be better to Mint something like 7000 zPIV (i.e. 1 5000 zPIV and 2 1000 zPIVs) so that you could later pay out 6543 to someone, rather than minting exactly that amount.  That way it is much less likely that someone could link the transactions. This is also while it is important to create a large pool of denominations both overall and at least some spread for each user ahead of any actual transactions.

7. Are there any fees for using zPIV?

Yes and No. It costs 0.01 piv per minted denomination but is free to spend zPIV (convert/send zPIV back to PIV address)

 

E.g. Converting 7 PIV into 7 zPIV will involve minting 3 denominations of 1,1,5 zPIV. So this will cost 0.03 PIV in fees.

8. Do the developers have the private key to decrypt zPIV transactions?

No. RSA-2048 challenge was used to setup the encryption so no individual knows the factors.

9. Whenever I get new stake rewards, my wallet initiates the auto-mint and mints some extra zPIV coins. Why is this so & can it be disabled?

This is due to the auto mint algorithm detecting that your zPIV balance is below 10% as a result of the extra stake reward. You can prevent dust auto-minting by modifying the `Preferred zPIV Denomination` in `Options`. When you change this to a larger denomination amount, Auto-mint will only mint when your wallet balance increases enough to be able to satisfy the minimum denomination value.