PIVX Zerocoin (zPIV) Technisch Document

Revision 0.9

Laatst bijgewerkt 16 oktober 2017

PIVX OVERZICHT

PIVX is een op Bitcoin gebaseerde gemeenschap centrisch gedreven cryptovaluta met een focus op decentralisatie, privacy en gebruik in de echte wereld. Het maakt gebruik van een energie efficiënt Proof of Stake protocol en een tweede niveau Masternode netwerk voor inclusief gemeenschapsgericht bestuur samen met een blockchain gebaseerd zelffinancierend kassysteem die de duurzaamheid verzekerd.

PIVX is voortdurend strevende om een beter bestuurssysteem, onmiddelijke private transacties en verwisselbaarheid te bereiken om de cryptovaluta te blijven.

In lekentaal is PIVX in principe een vorm van online digitaal geld dat makkelijk in een oogwink overgebracht kan worden over heel de wereld met bijna niet bestaande transactiekosten. Je kan je geld naar PIVX converteren op verschillende beurzen en deze gewoon houden om beloningen te verdienen, handelen op een beurs om andere digitale valutaaan te schaffenof artikelen en diensten aan te schaffen waar het geaccepteerd is.

Het is geen eigendom van of bestuurd door een enkel persoon of organisatie en het netwerk is beveiligd door duizenden nodes over de hele wereld door zijn gebruikers.

Het doel van PIVX is om een geavanceerde digitale valuta te zijn die snel, veilig, gedecentraliseerd & privaat is.

CRYPTOVALUTA TRANSACTIE PRIVACY

De meest gangbare cryptovaluta’s zoalsBitcoin hebbeneen welgekend publiek grootboeksysteem waar alle transacties zichtbaar en traceerbaar zijn door zijn block verkenner. Dit resulteert in dat iedereen de mogelijkheid heeft om alle geassocieerde transacties en balansen te zien maar nog belangrijker ook de bijhorende adressen. Dit betekent dat de geschiedenis van de vorige adres eigenaar nu zichtbaar is door jouw eigen adres zodra de munten een weg hebben afgelegd door de blockchain en in jouw eigen portemonnee adres belanden.

Een adres mag dan volledig anoniem lijken maar als je een transactie hebt gedaan met een adres dat gegenereerd is door een beurs en/of andere handel diensten, je hebt in essentie je anonieme adres gekoppeld aan een adres dat kan leiden naar je identiteit. In de meeste scenario’s, zal zulke transparantie geen probleem zijn. Maar het kan een serieus probleem worden als de munt die jij bezit ooit geassocieerd was met een ongewenste geschiedenis of als jouw adres doelwit wordt van potentiële dieven.

Als voorbeeld, de munt die jij ontvangen hebt kwam van een adres die van een persoon of organisatie was die bezig was met illegale activiteiten en die gemonitord alsook getraceerd wordt door regering autoriteiten. Dit betekent dat jij nu bevraagd kan worden over de relatie met de vorige eigenaar van die munten die jij nu bezit ondanks dat jij ze legitiem en onwetend hebt ontvangen. Dit kan ook betekenen dat de munt met zulke geschiedenis als minder waardevol dan andere munten beschouwd kan worden zonder resulterende in verminderde verwisselbaarheid.

ONZE OPLOSSING = ZEROCOIN PROTOCOL (zPIV)

Om dit probleem te overkomen, beginnende met de v3.0.0 core portemonnee update uitgegeven op 7 oktober 2017, heeft PIVX een welgekend sterk doorgelicht protocol genaamd Zerocoin geïmplementeerd met veel aangepaste verbeteringen die blockchain niveau transactie anonimiteit toestaat in de zin van ontkoppelbaarheid.  

Wij noemen dit zPIV, waarbij PIV een eenheid is van PIVX en z een prefix is voor Zerocoin.

Waar zPIV in voorziet is een protocol niveau munt vermenging dienst gebruik makende van zero knowledge proofs om de koppeling te verbreken tussen de verzender en de ontvanger met 100% anonimiteit en ontraceerbaarheid. Dit betekent dat elke munt die verzonden wordt door gebruik van zPIV nu 100% verwisselbaar is doordat het geen determineerbare geschiedenis aan zich heeft hangen.

Het gebruik van zPIV betekent ook dat jouw balans gemaskeerd kan worden om te vermijden dat je een doelwit wordt voor potentiële dieven. Dit is een enorm uniek kenmerk dat bijna geen andere cryptovaluta momenteel in de markt heeft.

PIVX zPIV accumulatoren zijn geëncrypteerd en gebruik makende van RSA-2048[1] challenge generated keys die de noodzaak voor een ontwikkelaar vertrouwde setup negeren, betekent dit dat geen enkel individu de factoren kent. Dit betekent dat iedereens privacy verzekerd is door het gebruik van zPIV.

UNIEKE FACTOR

Tijdens het schrijven (september 2017) is PIVX de enige Proof of Stake cryptovaluta die de complete set van Zerocoin protocol ideologieën en gebruiken heeft geïmplementeerd. Terwijl het gebaseerd is op het originele libzerocoin publieke repository die gecreëerd is door  academische cryptografen, de meerderheid van de PIVX zPIV code is aangepast,  maakt het zPIV ook zeer uniek.

Originele Zerocoin Whitepaper: https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf

Anders dan de meeste andere cryptovaluta’s die momenteel gebruik maken van een zerocoin gebaseerd protocol, maakt PIVX zPIV gebruik van een zeer efficiënt accumulator controlepunten systeem wat het zPiv’s spenderingsproces toestaat controlepunten te gebruiken die alle mints bevatten die werden gemaakt voordat de zPiv munt werd uitgegeven, evenals een door de gebruiker geselecteerde hoeveelheid zPiv munten voorbij het controlepunt. Dit zorgt voor een grote groepering van munten in de accumulator terwijl er nog veel kleinere berekening vereisten nodig zijn. PIVX’s zPiv-implementatie brengt minimaal bron verbruik op en maakt zPIV transacties één van de snelste private overdrachten in de markt vandaag de dag.

PIVX zPIV TECHNISCHE VOORDELEN

  1. Kleindere spendering transactiegroottes van een gemiddelde van 25% boven elke andere huidige implementatie in een productieomgeving (verdere optimalisatie in de maak)
  2. Snelle verificatie en netwerk sync prestatie
  3. Directe besteding van zPIV naar een PIVX adres
  4. Meervoudige Zerocoin denominatie spenderingen zijn mogelijk in een enkele transactie
  5. De mogelijkheid om exacte hoeveelheden te spenderen en het resterende wisselgeld te verdelen naar ofwel een PIVX adres of naar meer zPiv.

ECHTE LEVENSVOORDELEN DOOR HET GEBRUIK VAN zPIV.

  1. zPIV kan jouw saldo verbergen van nieuwsgierige ogen die jou beschermen om geen doelwit te worden.

Dus jouw zPIV saldo is niet gekoppeld aan enig afzonderlijk adres.

  1. zPIV kan de transactiegeschiedenis van de munten die verzonden worden verbergen.

Bron & doel adressen zijn niet zichtbaar wat het privaat maakt, veilig & verwisselbaar.

  1. zPIV anonieme transacties zijn zeer snel.

Het duurt zo kort als 0.5 seconden om te minten en 2.5 seconds om zPIV te spenderen.

  1. Automatische conversie naar zPIV is standaard ingeschakeld maar de “transparant transfer” optie is nog steeds beschikbaar.

Dit betekent dat je nog steeds een volledig transparantie transactie kan verzenden indien nodig.

HOE ANONIMITEIT BEREIKT IS

  1. Mint (converteer) jouw PIV naar zPIV denominaties. (Portemonnee auto-mint enkele standaard)
  2. Spendeer (verzend) jouw zPIV als PIV naar elk intern of extern PIVX portemonnee adres

Essentieel groepeert (dus combineert) het zerocoin protocol alle zPIV die mensen geconverteerd hebben (gemint) vanuit hun PIV balans naar sets van denominaties en gebruikt deze om ze te verzenden wanneer er een spendering is geïnitialiseerd. Houd in gedachte dat de groepering niet betekent dat iedereens zPIV opgeslagen is op een gecentraliseerde locatie.Het is zo dat het publieke grootboek (gedecentraliseerde blockchain) bijhoudt hoeveel zPIV er gecreëerd is.

Wanneer je enkele zPIV hoeveelheden wilt verzenden (spenderen) naar een PIVX adres, verzend je portemonnee een zero-knowledge proof naar de blockchain die het mogelijk maakt dat zPIV terug geconverteerd kan worden naar PIV en verzonden naar het bestemmingsadres, allemaal in één stap.

Omdat zPiv spenderingen totaal nieuwe munten maakt wanneer een uitgever  in zero-knowledge proof kan voorzien dat zij de munten in de geaccumuleerde groepering (accumulator) heeft, wordt de munt transactiegeschiedenis van zijn vorige gelinkte adressen verbroken resulterende in een ontraceerbare transactie.

Tot slot, een simpele analogie. Zie zPIV als casino chips. Je geeft jouw 100 euro biljet (i.e. PIV) aan de kassier en je krijgt 1x€10, 2x€20, 1x€50 euro chips (i.e. zPIV). Dit betekent dat jij niet langer dat specifieke 100 euro biljet bezit die je hebt ingewisseld en in plaats daarvan heb je het “bewijs” dat je nog steeds €100 bezit. Wanneer je nu  50 euro terug wilt als fiat (PIV), geef je jouw chips (zPIV) terug aan de kassier en de kassier geeft hierop een gloednieuw ongecirculeerd 50 euro biljet aan de ontvanger naar keuze.

zPIV minting & spenderingsproces

In dit voorbeeld wilt Kirby PIV verzenden naar Heidi gebruik makende van het Zerocoin protocol om de transactie te anonimiseren.

Stap voor stap minting proces

  1. Kirby initieert een verzoek om 960 zPIV te minten.
  2. Zerocoin Protocol converteert Kirby’s 960 PIV naar de equivalente hoeveelheid zPIV, gebruik makende van de grootste beschikbare zPIV denominaties.
    1. Achter de schermen heeft Kirby geheime kennis gekregen die eigendom van deze mint bewijst (een uniek serienummer die gebruikt is door het Zerocoin Protocol om het eigenaarschap te traceren van specifieke zPIV denominatie hoeveelheden).
  3. Kirby’s balans wordt zodanig bijgewerkt
    1. Met een afname van 960 in PIV en een toename van 960 in zPIV.
    2. Kirby ziet ook dat de 960 zPIV bestaat uit de volgende denominaties die toegevoegd zijn: 1x 500 zPIV, 4x 100 zPIV, 1x 50 zPIV, 1x 10 zPIV.

Stap voor stap spenderingsproces

  1. Kirby initieert een verzending van de 960 zPIV naar Heidi’s PIVX adres.
  2. Het Zerocoin protocol ontvangt en valideert Kirby’s geheime kennis die de eigendom bewijst. Wanneer gebruikt, kan de originele minted balans niet meer opnieuw gespendeerd worden.
  3. Het Zerocoin protocol creëert 960 PIV op Heidi’s PIVX adres.  
    1. Heidi ontvangt 960 PIV van een anonieme verzender.
    2. Kirby’s balans is zodanig bijgewerkt — met een afname van 960 in zPIV.

Denominaties toelichting

Om de transactie efficiëntie te verbeteren tijdens het in stand houden van een hoog niveau van complexiteit, heeft PIVX een set van integer gebaseerde veelvoorkomende denominators voor de munt (PIV) hoeveelheden geïmplementeerd die geconverteerd worden in een groepering van munten als zPIV. (zoals het casino chips voorbeeld hierboven)

De denominaties gebruikt door zPIV zijn: 1, 5, 10, 50, 100, 500, 1000 en 5000. Gebruik makende van deze set van denominaties voorziet in een goede balans van eenvoud, bruikbaarheid en veiligheid. De ultieme manier om traceerbaarheid te verminderen zou slechts 1 denominatie nodig hebben (i.e 1 zPIV), echter, het is niet erg praktisch om dat te doen, doordat grote transacties enorme hoeveelheden van munten zouden vereisen. Het gebruiken van een grote set zou potentieel de traceerbaarheid kunnen vergroten naar een ononveilig niveau, dus is uitgekomen op een set van 8 mogelijke munt denominaties.. Deze set word als een ‘ideaal’ gezien doordat het geen munten bevat die beschouwd worden als te laag of te hoog in een denominatie. Als de waarde van PIV verandert is het mogelijk dat we deze set uitbreiden of veranderen om aan de wensen van gebruikers te voldoen.

Wanneer je jouw zPIV uitgeeft, zal je simpelweg een bewijs hebben dat je een munt van die denominatie hebt die andere zPIV mints van die denominatie bevatten.

Dit betekent dat alle zPIV afschrijvingen gemaakt worden in hele getallen (met wisselgeld die uitgegeven wordt voor decimale bedragen)  wat het dus het bijna onmogelijk maakt om de voorafgaande zPIV en resulterende zPIV hoeveelheid te vergelijken vanuit 2 verschillende adressen terwijl er veel andere identieke zPIV naar PIV transactie aantallen gemaakt worden.

Denominatie logica

Wanneer er zPIV minted (convertering) of gespendeerd (verzenden) wordt,  zal elk algoritme automatische de denominaties bepalen.

Wanneer zPIV gespendeerd (verzonden) wordt naar een PIVX adres, zal het volgende algoritme automatisch de gebruikte denominaties van de gebruikers bepalen.

1). Als je de exacte hoeveelheid hebt start dan met de grootst mogelijke denominatie en ga naar beneden totdat je het totaal bereikt.

2) Anderst: Minimaliseer uitgaven (a) vindt de volgende denominatie hoger dan het uitgegeven bedrag (wanneer mogelijk) en gebruik deze indien beschikbaar, (b) wanneer het niet beschikbaar is start met grotere denominaties en ga dan naar beneden totdat je een bedrag bereikt dat net over hetgeen gaat dat nodig is.

3) Of: Minimaliseer wisselgeld. Wanneer het niet precies is, probeer het bedrag er boven te vinden wat nodig is die minimaliseert hoeveel munten je ontvangt in wisselgeld.

Auto minting

De privacy van zPIV wordt effectiever wanneer er meer van elke denominatie gemint wordt vanuit vele verschillende bronnen. Dus om de effectiviteit te garanderen, heeft de PIVX portemonnee een functieom een configureerbare hoeveelheid van PIV automatisch te minten (converteren) vanuit de balans van de portemonnee naar zPIV zonder de noodzaak van het manueel te converteren.

Automint start wanneer de portemonnee/daemon gestart is, de portemonnee ontgrendeld is (zowel volledig als enkel staking) en de blockchain gesynchroniseerd is. Dit betekent dat als jouw portemonnee geëncrypteerd en vergrendeld is, de automint functieniet zal activeren. Wanneer de portemonnee ontgrendeld is, zal het geen enkele UTXO die vergrendeld is aanraken zoals die gebruikt worden als collateraal voor masternodes.

– default percentage: 10%. Dit kan gewijzigd worden via de GUI of via de opdrachtregel optie `-zeromintpercentage=<n>` of pivx.conf `zeromintpercentage=<n>`mag niet minder zijn dan 10%.

–  default state: Geactiveerd. Kan gedeactiveerd worden (bijvoorbeeld voor beurzen) via de opdrachtregel optie `-enablezeromint=0` of pivx.conf `enablezeromint=0`

Gebruiker kan nu een voorkeur denominatie configureren voor Automint via UI, opdrachtregel optie `-preferredDenom=<n>` of pivx.conf `preferredDenom=<n>` <n> is een van de beschikbare denominaties `1/5/10/50/100/500/1000/5000` of `0` (betekent geen voorkeur en laat Automint doen wat het wil).

Als er niet genoeg munten beschikbaar zijn voor de voorkeur denominatie zal Automint wachten totdat er genoeg munten beschikbaar zijn.

Met elke nieuw inkomend block, gebeurt het volgende:

  1. Controleert hoeveel mintbare munten er beschikbaar zijn.
    1. Dit sluit onvolwassen munten en vergrendelde munten (bijvoorbeeld van masternodes) uit.
  2. Controleert hoeveel Zerocoin/zPIV er beschikbaar is
  3. Controleert dat het percentage onder het percentage doel is.

Als het percentage onder het percentage doel is, gebeurt het volgende:

  1. Berekent hoeveel PIV er geconverteerd moet worden naar zPIV, bijvoorbeeld 2015
  2. Gebruikt de volgende lagere denominatie (hier 1000 PIV) en mint 1000 zPIV
  3. totdat genoeg zPIV gemint is.

In mijn bovenstaande voorbeeld zal het eerste inkomende block triggeren om 1000 zPIV te minten, de volgende nogmaals 1000 zPIV, de derde 10 zPIV en de vierde 5 zPIV (veronderstellend dat er geen nieuwe inkomende PIV de basis hoeveelheid van beschikbare PIV wijzigt).

De reden om de volgende lagere denominatie te gebruiken en om enkel één denominatie per block te gebruiken is prestatie, exacte denominaties moeten duidelijk niet opgesplitst worden in gepaste denominaties en een enkele mint kan gedaan worden in een redelijke tijd.

Uitzondering: als een grote hoeveelheid van PIV gemint moet worden, gebruiken we NIET onze grootste denominatie van 5000 PIV maar 6666 PIV om meer gelijke distributies van beschikbare denominaties (6666 = 5000 + 1000 + 500 + 100 + 50 + 10 + 5 + 1, welke de 8 van onze beschikbare denominaties zijn) te hebben.

zPIV automint proces

(gebaseerd op standaardinstellingen)

    1. Kirby, voorafgaand aan de lancering van het Zerocoin protocol, heeft een balans van 17,900 PIV. Hij heeft een masternode, dus 10,000 PIV van zijn balans wordt vastgehouden op de masternode toegekende adres en vergrendeld als collateraal. Kirby heeft Coin Control niet gebruikt om de resterende 7,900 PIV te vergrendelen.
    2. Zerocoin protocol is geïmplementeerd..
    3. Zerocoin protocol verwerkt elk adres individueel als vold:
      1. Determineerd dat de munten vergrendeld zijn.
      2. Als de munten niet vergrendeld zijn, converteer 10% van PIV naar zPIV.
      3. Als de munten vergrendeld zijn, doe niets.
    4. Kirby ziet dat zijn balans vermindert is met 790 PIV, dat overeenkomt met 10% van zijn munten die niet vergrendeld zijn.
    5. Kirby ziet ook dat zijn balans toegenomen is met 790 zPIV. Omdat hij geen enkele zPIV denominatie voorkeur heeft gespecificeerd, heeft hij nu volgende denominaties beschikbaar om te spenderen:
    • 1x 500 zPIV
    • 2x 100 zPIV
    • 1x 50 zPIV
    • 4x 10 zPIV

    Spendeer veiligheid niveau

    Wanneer zPIV denominaties gespendeerd worden, wordt een gebruiker gevraagd om een beveiligingsniveau in te voeren van 1-100. In een indirecte manier staat de beveiligingsniveau parameter toe dat de gebruiker kan kiezen hoeveel munten van zijn transactie ermee verduisterd worden.

    Bijvoorbeeld, een beveiligingsniveau van 1 zou alle geminte munten in de blockchain nemen voordat jouw minting toegevoegd was aan de blockchainen zou dan elke munt die gemint is binnen de volgende 10 blokken ook nemen . Een beveiligingsniveau van niveau 2 zou hetzelfde doen, uitgezonderd dat het de volgende 20 blokken aan mints zou toevoegen. Een beveiligingsniveau van niveau 100 zou de maximale hoeveelheid van mints toevoegen tot aan het einde van de blockchain.

    Hoe hoger het beveiligingsniveau, hoe meer berekeningen en tijd het nodig zal hebben om te spenderen. Hoewel het langer duurt is een niveau van 100 aanbevolen voor transacties die volledige anonimiteit vereisen.

    Behandeling van wisselgeld

    Omdat zPIV is opgemaakt uit vaste denominaties, zullen er momenten zijn wanneer de gewenste hoeveelheid niet kan opgemaakt worden vanuit de bestaande denominaties. Bijvoorbeeld, als jij een enkele 1000 zPIV denominatie hebt maar je wilt 985 PIV verzenden naar een adres, zal er een verschil zijn van 15 PIV die terug ontvangen zal worden als wisselgeld. Dit wisselgeld kan de privacy van de transactie schaden omdat het terug kan laten leiden naar jouw bestaande adres wanneer je per ongeluk jouw wisselgeld terug mixed met jouw andere PIVX adressen.

    Om dit te vermijden zijn er 2 methodes die gebruikt kunnen worden. De eerste optie is het gebruik van de ingebouwde eigenschap die automatisch alle wisselgeld terug converteerd naar zPIV. Deze zal de zPIV spenderen in de vereiste hoeveelheid van PIV naar het doeladres, daarna zal het resterende wisselgeld terug in zPIV gemint worden. Dit is de meest gunstige methode. Hoedanook, de hoeveelheid wisselgeld dat niet converteerbaar is naar een denominatie (de laagste beschikbare denominatie is 1) zal geconverteerd worden naar een vergoeding.

    De tweede optie is het verstrekken van wisselgeld naar een standaard PIVX adres,  waarmee de segregatie van die Piv uit je dagelijkse Piv balans afgehandeld kan worden. Deze optie kan leiden tot vergissingen en is niet aanbevolen als anonimiteit voor de transactie belangrijk is.

    zPIV data integriteit

    Elke geminte zPIV denominatie is geassocieerd met een unieke serienummer die opgeslagen is in de lokale wallet.dat en niet op de blockchain. Dit betekent dat wanneer een nieuwe zPIV denominatie gemint is, dat er van de wallet.dat een backup gemaakt zou moeten worden omdat de vorige backup niet de serienummers heeft voor de nieuwe geminte zPIV denominaties.

    De serienummer en andere essentiële zPIV data is opgenomen in de database (wallet.dat) voordat de transactie voltooid is en uitgezonden op het netwerk. Dit verkleint het risico van het verliezen van jouw vers geminte zPIV denominaties tijdens een onverwachte gebeurtenis bij het minten van zPIV, zoals een PC crash of internet connectiviteitsproblemen.

    Door het lokale database ontwerp, is het noodzakelijk dat je portemonnee geback-upt wordtna elke nieuwe zPIV mint om te verzekeren dat jouw denominatie serienummers up to date zijn.

    Technische specs (v1.0)

    Belangrijke eigenschappen: Op maat gemaakte accumulator controlepunten systeem

    Accumulator encryptie: RSA-2048

    zPIV Denominatoren: 1, 5, 10, 50, 100, 500, 1000, 5000

    Mint tijd: >= 0.5 seconden

    Spendeer tijd: >= 2.5 seconden

    Maximum individuele spendeer limiet: 35,000 PIV

    Maximum individuele spendeer denominatie tellingslimiet: 7

    Block grootte: 2 MB (was 1 MB voor v3.0.0 zPIV portemonnee)

    Kosten (minting): 0.01 PIV per geminte zPIV denominatie.

    Kosten (spendering): Geen kosten om zPIV terug naar PIV te spenderen.

    Minimum PIV confirmatie telling vereist om zPIV te minten: 6

    Minimum zPIV confirmatie telling vereist voor spendering: 20

    Additionele vereisten voordat zPiv gespendeerd kan worden: 3 mints toegevoegd tot de accumulator nadat die van jouw is toegevoegd.

    Auteurs

    Geschreven door: jakiman, mcl4m

    Vertaald door: bear, valderrama

    Technische input door: spock, presstab, fuzzbawls, mrs-x

    REFERENTIES

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