PIVX Zerocoin (zPIV) Document technique

Révision 0.9

Dernière mise à jour le 16 Octobre 2017

.

 

INTRODUCTION A PIVX

PIVX est une crypto-monnaie basée sur le Bitcoin et centrée sur la communauté avec un intérêt particulier pour la décentralisation, la confidentialité et l’usage dans le monde réel. Il utilise un protocole à preuve d’enjeu efficace de manière énergétique et un réseau de masternodes pour une gouvernance inclusive basée sur la communauté avec un système de trésorerie autofinancé pour assurer sa durabilité.

PIVX est constamment à la recherche d’un meilleur système de gouvernance, de transactions privées instantanées et une fongibilité pour rester une crypto-monnaie de future génération.

Pour les non-initiés, PIVX est une forme de monnaie digitale qui peut facilement être transférée partout dans monde en un battement de cils. Il est possible de convertir son argent en PIVX en utilisant des bourses d’échanges et on peut le garder pour recevoir des récompenses similaires à des intérêts, faire des échanges  pour acheter d’autres monnaies digitales ou acheter des biens et des services en ligne ou hors ligne où c’est accepté.

Il n’est pas possédé ou gouverné par une personne seule ou par une organisation et son réseau est sécurisé par des milliers de noeuds à travers le monde par ses utilisateurs.

L’objectif de PIVX est d’être une monnaie digitale avancée qui est rapide, sécurisée, décentralisée et privée.

 

LES TRANSACTIONS PRIVÉES DANS LES CRYPTO-MONNAIES

Les crypto-monnaies les plus courantes telles que le Bitcoin ont un système de grand livre public où toutes les transactions sont visibles et traçables à travers l’explorateur de blocs. Cela veut dire que tout le monde a la capacité de voir toutes les transactions et soldes associés mais également toutes les adresses associées. Cela signifie que l’historique des possesseurs précédents des fonds est maintenant visible à travers votre propre adresse une fois que les pièces ont été transférées sur la blockchain et ont fini dans votre portefeuille.

Une adresse peut sembler être complètement anonyme mais si vous faites une transaction avec une adresse qui est générée par les bourses d’échanges et/ou d’autres services marchands, vous venez en fait de lier votre adresse anonyme avec une adresse qui est liée à votre identité.

Dans la plupart des scénarios, une transparence de ce type n’est pas un problème. Mais cela peut devenir un problème sérieux si la pièce que vous détenez était précédemment associée à un historique indésirable ou si votre adresse peut devenir la cible de voleurs potentiels.

Par exemple, si la pièce que vous recevez était d’une adresse possédée par une personne ou une organisation qui faisait des activités illégales et avait été placée sous surveillance par des autorités gouvernementales. Cela veut dire que vous pouvez être questionné sur votre relation avec le précédent possesseur de ces pièces que vous possédez même si vous les avez reçus de manière légitime et sans connaissance. Cela veut aussi dire que les pièces avec un historique comme celui là pourrait être jugées comme ayant moins de valeur que d’autres ce qui résulterait en une fongibilité réduite.

 

NOTRE SOLUTION = LE PROTOCOLE ZEROCOIN (zPIV)

Pour résoudre ce problème, depuis la mise à jour v3.0.0 du portefeuille publiée le 7 Octobre 2017, PIVX a implémenté un protocole bien connu et très reconnu appelé le Zerocoin avec beaucoup d’améliorations uniques qui permettent aux transactions un anonymat sur la blockchain en utilisant l’intraçabilité.

Nous appelons cela zPIV, où PIV est une unité de PIVX et z est le préfixe de Zerocoin.

Ce que zPIV fournit c’est un mixage de pièces au niveau du protocole en utilisant des preuves sans connaissance pour rompre le lien entre l’envoyeur et le receveur avec 100% d’anonymat et d’intraçabilité. Cela veut dire que chaque pièce qui est envoyée en utilisant zPIV est 100% fongible et n’a pas d’historique attachée à elle.

L’utilisation de zPIV permet également à votre solde d’être masqué pour éviter d’être la cible de voleurs potentiels. C’est une fonctionnalité unique que presque qu’aucune autre crypto-monnaie sur le marché ne possède.

Les accumulateurs de PIVX zPIV sont chiffrés en utilisant des challenges générés avec des clés RSA-2048[1] ce qui enlève le besoin d’avoir une configuration approuvée par les développeurs et signifie que personne ne connaît les facteurs.  Cela veut dire que la vie privée de chacun est respectée par l’utilisation de zPIV.

 

UN FACTEUR UNIQUE

Au moment d’écrire ces lignes (Septembre 2017) PIVX est la seule crypto-monnaie à preuve d’enjeu qui a implémenté la totalité des idéologies et pratiques du protocole Zerocoin. Bien que basé sur le dépôt public de libzerocoin qui a été créé par des chercheurs en cryptographie, la majorité du code PIVX zPIV est personnalisée, ce qui rend zPIV très unique.

L’article original sur le Zerocoin: https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf

Contrairement à la plupart des autres crypto-monnaies qui utilisent également un protocole basé sur Zerocoin, PIVX zPIV utilise un système très efficace d’accumulateur à checkpoints qui permet au processus de dépense de zPIV d’utiliser des checkpoints qui contiennent tous les monnayages (transformation de PIV en zPIV) qui ont été fait avant que le zPIV soit dépensé, et également le nombre de zPIV choisi par l’utilisateur après ce checkpoint. Cela permet d’avoir un large panel de pièces dans l’accumulateur tout en ayant des besoins de calculs réduits. L’implémentation zPIV de PIVX génère une consommation minimale de ressources et rend les transactions zPIV comme l’un des plus rapides transferts sur le marché aujourd’hui.

 

Les avantages techniques de PIVX zPIV

  1. Des tailles de transactions réduites de 25% en moyenne par rapport à toutes les autres implémentations dans un environnement de production (Des nouvelles optimisations sont en cours de développement)
  2. Une vérification rapide et des performances de synchronisation du réseau
  3. Une dépense directe de zPIV vers une adresse PIVX
  4. Plusieurs dénominations Zerocoin sont possibles dans une seule transaction
  5. La possibilité de dépenser le montant exact et de mettre le reste vers une adresse PIVX ou plus de zPIV

 

LES AVANTAGES CONCRETS D’UTILISER zPIV

  1. zPIV peut cacher votre solde de regards indiscrets et vous empêcher de devenir une cible.
    1. Donc votre solde zPIV n’est pas lié à une adresse particulière
  2. zPIV peut cacher votre historique de transaction
    1. Les adresses sources et destinations ne sont plus visibles ce qui le rend privé, sécurisé et fongible.
  3. Les transactions zPIV anonymes sont très rapides
    1. Cela prend aussi peu que 0.5 seconde pour monnayer et 2.5 secondes pour dépenser zPIV
  4. La conversion automatique de zPIV est activée par défaut mais l’option transparente de transfert est toujours disponible
    1. Cela signifie que vous pouvez toujours envoyer une transaction transparente quand c’est nécessaire

 

COMMENT L’ANONYMAT EST ATTEINT

  1. Monnaie (converti) tes PIV en dénominations zPIV (Le portefeuille en auto-converti par défaut)
  2. Dépense (envoie) des zPIV comme PIV vers toute adresse interne ou externe PIVX

Essentiellement le protocole Zerocoin combine tous les zPIV que les gens ont converti (monnayé) de leur solde PIVX en un ensemble de dénominations et les utilise pour les envoyer lorsqu’une dépense est initiée. Gardez à l’esprit que cette mise en commun des zPIV ne veut pas dire que tous les zPIV sont stockés dans un endroit centralisé. A la place, le grand livre public (blockchain décentralisée) garde une trace de combien de zPIVs sont créés.

Lorsque vous voulez dépenser (envoyez) un montant de zPIV vers une adresse PIVX, votre portefeuille envoie une preuve sans connaissance vers la blockchain qui permet au zPIV d’être reconverti en PIV et d’être envoyé vers l’adresse de destination directement.

Puisque la dépense de zPIV créé de toutes nouvelles pièces si l’envoyeur peut donner une preuve sans connaissance qu’il a des pièces dans l’accumulateur, l’historique des transactions des précédentes adresses associées à cette pièce ne sont plus liées et donc le résultat est une transaction intraçable.

Finalement, une simple analogie. Imaginez zPIV comme des jetons de casino. Vous donnez votre billet de 100 € (i.e. PIV) au caissier et vous recevez des jetons de 1x10€, 2x20€ et 1x50€ (i.e. zPIV). Vous ne possédez donc plus ce billet de 100€ et vous l’avez échanger contre une preuve que vous posséder toujours 100€. Maintenant quand vous souhaitez retrouver 50€ en vraie monnaie (PIV), vous donnez vos jetons (zPIV) au caissier et le caissier donne un tout nouveau billet de 50€ encore jamais utilisé à la personne de votre choix.

 

PROCESSUS DE MONNAYAGE ET DE DÉPENSE DE ZPIV

Dans cet exemple, Kirby veut envoyer des PIV à Heidi en utilisant le protocole Zerocoin pour anonymiser la transaction.

Processus de monnayage étape par étape

  1. Kirby initie une requête pour monnayer 960 zPIV.
  2. Le protocole Zerocoin converti les 960 PIV de Kirby en un montant équivalent de zPIV, en utilisant les plus grandes dénominations zPIV disponibles.
    1. En réalité, Kirby a reçu la connaissance d’un secret qui prouve sa propriété de cette monnaie (un numéro de série unique qui est utilisé par le protocole Zerocoin pour garder les comptes du montant des dénominations détenu)
  3. Le solde de Kirby est mis à jour
    1. Avec une dépense de 960 en PIV et une augmentation de 960 en zPIV
    2. Kirby voit également que ses 960 zPIV sont composés des dénominations suivantes: 1x500 zPIV, 4x100 zPIV, 1x50 zPIV, 1x10zPIV

 

Processus de dépense étape par étape

  1. Kirby initie un envoi de 960 zPIV vers l’adresse PIVX de Heidi.
  2. Le protocole Zerocoin recoit et valide la connaissance du secret de Kirby qui prouve sa propriété. Une fois utilisé, le solde monnayé ne peut être re-dépensé.
  3. Le protocole Zerocoin créé 960 PIV vers l’adresse PIVX de Heidi
    1. Heidi reçoit 960 PIV d’un expéditeur anonyme
    2. Le solde de Kirby est mis à jour avec une réduction de 960 zPIV

 

Denominations Explanation

 

EXPLICATION SUR LES DÉNOMINATIONS

Pour augmenter l’efficacité de ses transactions tout en conservant un haut niveau de complexité, PIVX a implémenté un ensemble de dénominateurs communs sous forme d’entiers qui représentent un montant de PIV qui est converti dans un ensemble de pièces en tant que zPIV (comme les jetons de casino). Les dénominations utilisées par zPIV sont: 1, 5, 10, 50, 100, 500, 1000 et 5000. Cet ensemble de dénomination fournit un bon équilibre de simplicité, usabilité et sécurité. Le moyen ultime de réduire la traçabilité serait d’utiliser uniquement une seule dénomination (i.e. 1 zPIV). Cependant, ce n’est pas très pratique de faire ça puisque de grosses transactions nécessiteraient un très gros nombre de pièces.

Utiliser un trop grand ensemble pourrait augmenter la traçabilité vers un niveau qui ne serait plus sécurisé, donc il fût décidé d’utiliser un ensemble de 8 dénominations. Cet ensemble est vu comme un bon compromis puisqu’il n’inclut pas de pièces qui sont considérées comme trop hautes ou trop basses dans la dénomination. Au fûr et à mesure que la valeur de PIVX change, il est probable que nous adapterons les dénominations pour s’adapter au besoin des utilisateurs. Quand vous dépensez vos zPIV, vous aurez simplement une preuve que vous avez une pièce de cette dénomination qui inclut d’autres monnayages de zPIV de cette dénomination.

Cela veut dire que le rachat de zPIV sera fait en nombre entiers (avec un retour pour les montant décimaux) ce qui rendra quasiment impossible la reconnaissance le montant de “avant zPIV” et “après zPIV” de 2 adresses différentes puisqu’il y a tant de transactions identiques qui sont faites de zPIV vers PIVX.

 

Logique des dénominations

Lorsque vous monnayez (convertissez) ou dépensez (envoyez) vos zPIV, chaque algorithme va déterminer automatiquement les dénominations à utiliser.

Lorsque que vous dépensez(envoyez) zPIV vers une adresse PIVX, l’algorithme suivant va automatiquement déterminer les dénominations qui seront utilisées parmi celles de l’utilisateur:

  1. Si vous avez le montant exact alors commence par la dénomination la plus grande et descend jusqu’à arriver au total
  2. Sinon: Minimise les dépense (a) trouve la prochaine dénomination plus grande que le montant dépensé (si possible) et utilise celle là si possible, (b) si pas possible, commence par la plus grande dénomination disponible et descend jusqu’à obtenir un montant juste supérieur à ce qui est demandé
  3. Ou: minimise le retour. Si pas exact, essaye de trouver le montant supérieur à ce qui est demandé qui minimise le nombre de pièces qui seront reçues en retour

 

Auto Monnayage

La confidentialité de zPIV devient plus efficace lorsqu’il y a plus de dénomination monnayée de plusieurs sources différentes. Donc pour assurer son efficacité, le portefeuille PIVX a une fonctionnalité pour auto monnayer (convertir) un montant configurable de PIV depuis le solde du portefeuille vers zPIV sans le besoin de convertir manuellement.

L’auto monnayage commence lorsque le portefeuille/daemon est lancé, le portefeuille doit être déchiffré (complètement ou staking seulement) et la blockchain synchronisée. Cela signifie que si vous portefeuille est chiffré et verrouillé, l’auto-monnayage ne va pas s’activer. Lorsque le portefeuille est déverrouillé, il ne va toujours pas utiliser aucun des UTXO qui sont verrouillés comme ceux qui sont utilisés comme mise pour les masternodes.

  • pourcentage par défaut: 10%. Il peut être modifié via le GUI ou la ligne de commande
  • ‘zeromintpercentage=<n>’ ou pivx.conf ‘zeromintpercentage=<n>’ ne peut pas être plus faible que 10%.
  • Etat par défaut: activé. Peut être désactivé (par ex. pour les bourses d’échanges) via la ligne de commande ‘-enablezeromint=0’ or pivx.conf ‘enablezeromint=0’

Les utilisateurs peuvent maintenant configurer leur dénomination préférée via l’UI, la ligne de commande en utilisant ‘-preferredDenom=<n>’ ou pivx.conf ‘preferredDenom=<n>’ <n> est l’un des dénominations disponibles 1/5/10/50/100/500/1000/5000 ou 0 (ce qui signifie pas de préférence, laisser l’algorithme décider le meilleur choix).

S’il n’y a pas assez de pièces disponibles pour la dénomination préférée l’auto-monnayage attendra qu’il y ait assez de pièces disponibles.

Avec chaque nouveau bloc, il effectue:

  1. Regarde combien de pièces peuvent être monnayées.
    1. Cela exclut les pièces immatures et les pièces verrouillées (e.g. comme les masternodes)
  2. Regarde combien de Zerocoin/zPIV est disponible
  3. Regarde si le pourcentage est en dessus de l’objectif

Si c’est le cas, il fait:

  1. Calcule combien de PIV doivent être convertis en zPIV, e.g. 2015
  2. Utilise la dénomination juste en dessous du montant (ici 1000 PIV) et monnaye 1000 zPIV
  3. Recommence l’opération jusqu’à obtenir assez de zPIV.

Dans mon exemple ci-dessus le premier bloc déclencherait le monnayage de 1000 zPIV, le prochain encore 1000 zPIV, le troisième 10 zPIV et le quatrième 5zPIV (en considérant qu’il n’y a pas de nouveau PIV qui sont arrivés entre temps).

La raison d’utiliser la dénomination juste en dessous et d’utiliser seulement une dénomination par bloc est la performance, les dénominations exactes n’ont pas besoin d’être divisés en dénominations exactes évidemment, et un monnayage simple peut être fait en un temps raisonnable.

Exception: si un grand nombre de PIV doit être monnayé, nous n’utilisons pas notre plus grosse dénomination de 5000 PIV mais 6666 PIV pour avoir une distribution plus uniforme parmi nos dénominations disponibles ( 6666 = 5000 + 1000 + 500 + 100 + 50 + 10 + 5 + 1, qui sont nos 8 dénominations disponibles)

Processus d’auto-monnayage zPIV

(basé sur les préférences par défaut)

    1. Kirby, avant le lancement du protocol Zerocoin, a un solde de 17,900 PIV. Il possède un masternode, donc 10,000 PIV de son solde sont détenus par l’adresse dédiée au masternode et bloqués comme mise. Kirby n’a pas utilisé le Coin Control pour vérouillé les 7,900 PIV restant.
    2. Le protocole Zerocoin est implémenté
    3. Le protocole Zerocoin traite chaque adresse individuellement comme suit:
      1. Détermine si les pièces sont verrouillées
      2. Si les pièces ne sont pas verrouillées, convertit 10% de PIV en zPIV
      3. Si les pièces sont verrouillées, ne fait rien.
    4. Kirby voit que son solde a diminué de 790 PIV, qui équivaut à 10% de ses pièces qui ne sont pas verrouillées.
    5. Kirby voit également son solde de zPIV augmenté de 790 zPIV. Puisqu’il n’a pas spécifié de préférences de dénominations, il reçoit les dénominations suivantes à dépenser:
      1. 1 x 500 zPIV
      2. 2 x 100 zPIV
      3. 1 x 50 zPIV
      4. 4 x 10 zPIV

    Niveau de sécurité d’une dépense

    Lorsqu’on dépense des dénominations zPIV, l’utilisateur est invité à choisir un niveau de sécurité entre 1-100. De manière indirecte, le niveau de sécurité permet à l’utilisateur de choisir avec combien de pièces leur transaction va être obfusquée.

    Un niveau de sécurité de 1, par exemple, prendra toutes vos pièces monnayées sur la blockchain avant que votre monnayage ne soit ajouté à la blockchain, et ajoutera ensuite toutes les pièces qui seront monnayées dans les 10 prochains blocs également. Un niveau de sécurité de 2 ferait la même chose mais prendrait les 20 prochains blocs de monnayage. Un niveau de sécurité de 100 ajoutera le maximum de monnayage jusqu’à la fin actuelle de la blockchain. Plus le niveau de sécurité est haut, plus il faudra de calculs et de temps pour effectuer la dépense. Bien que ça prendra plus de temps, un niveau de 100 est conseillé pour les transactions qui ont besoin d’un maximum d’anonymat.

    Gestion du reste

    Puisque zPIV est fait de dénominations fixes, il y aura un moment où le montant qui doit être dépensé ne peut pas être créé à partir des dénominations existantes. Par exemple, si vous avez une seule dénomination de 1000 zPIV mais vous voulez envoyer 985 PIV à une adresse, il y aura une différence de 15 PIV qui sera reçue comme retour. Ce retour peut compromettre la confidentialité de la transaction et peut mener à retrouver votre adresse si vous mixez votre retour avec vos autres adresses PIVX.

    Pour empêcher cela, il y a 2 méthodes qui peuvent être utilisées. La première option est d’utiliser une fonctionnalité intégrée qui convertit automatiquement le retour en zPIV. Donc il dépensera les zPIV dans le montant nécessaire vers l’adresse PIVX, ensuite il monnayera le reste de PIV en zPIV. C’est la méthode la plus simple à utiliser. Cependant, si le retour ne peut pas être converti en dénomination (la plus petite des dénominations étant 1), le reste sera converti en frais. La seconde option est d’envoyer le retour vers une adresse PIVX standard, ce qui vous forcera à garder une ségrégation entre cette adresse et celle que vous utiliser au jour le jour. Cette option peut mener à des erreurs et n’est pas recommandée si l’anonymat est important pour la transaction.

    Intégrité des données zPIV

    Chaque dénomination monnayée avec zPIV est associée à un numéro de série unique qui est stockée dans un fichier local wallet.dat et pas sur la blockchain. Cela signifie que lorsque des nouvelles dénominations de zPIV sont monnayées, le wallet.dat doit être sauvegardé puisque les précédent backups ne vont pas avoir les numéros de séries des nouvelles dénominations.

    Le numéro de série et les autres données essentielles zPIV sont envoyées vers la base de données (wallet.dat) avant que la transaction ne soit complétée et envoyée vers le réseau. Cela minimise le risque de perdre vos tout nouveaux zPIV lors d’un événement imprévu lors du monnayage de zPIV, comme un crash du PC ou des problèmes de connectivité.

    A cause de ce design avec une base de données locale, il est important que votre portefeuille soit sauvegardé après chaque monnayage de zPIV pour être sur que vos numéros de série soient à jour.

    Données techniques (v1.0)

    Fonctionnalités clés: Un système d’accumulateur à checkpoints personalisé

    Chiffrement de l’accumulateur: RSA-2048

    Dénominations zPIV: 1, 5, 10, 50, 100, 500, 1000, 5000

    Temps de monnayage: >= 0.5 seconde

    Temps de dépense: >= 2.5 secondes

    Maximum pour une dépense unique: 35,000 PIV

    Maximum de dépense à dénomination unique: 7

    Taille de bloc: 2 MB (était de 1 MB avant le portefeuille v3.0.0 zPIV)

    Frais (monnayage): 0.01 PIV par dénomination zPIV monnayée

    Frais (dépense): Pas de frais pour convertir zPIV en PIV

    Confirmations PIV nécessaires pour monnayer du zPIV: 6

    Confirmations zPIV nécessaires avant de pouvoir dépenser: 20

    Prérequis supplémentaire avant que zPIV ne puisse être dépensé: 3 monnayages ajoutés à l’accumulateur après que le vôtre ait été ajouté.

    Auteurs

    Ecrit par: jakiman, mcl4m

    Apport technique par: spock, presstab, fuzzbawls, mrs-x

    REFERENCES

    [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.