Technický list PIVX Zerocoin (zPIV)

Revízia 0.9

Naposledy aktualizované 16. októbra 2017

PIVX PREHĽAD

PIVX je kryptomena založená na komunite Bitcoin so zameraním na decentralizáciu, súkromie a používanie v reálnom svete. Využíva energeticky efektívny protokol Proof of Stake a sieť Masternodov založenú na komunite spolu s vlastným finančným systémom zložený z blokov, ktoré zabezpečujú jeho stabilitu.

 

KRYPTOMENA A  SÚKROMNÉ TRANSAKCIE

Najpoužívanejšia kryptomena Bitcoin má dobre známy verejný systém všetkých transakcií, v ktorom sú všetky transakcie viditeľne a dohľadatelné prostredníctvom blokového prieskumníka. V dôsledku toho všetci majú možnosť vidieť všetky súvisiace transakcie a zostatky, ale čo je dôležitejšie, aj ich priradené adresy. To znamená, že história predchádzajúceho majiteľa adresy je teraz viditeľná prostredníctvom vašej vlastnej adresy, keď mince prejdú blokom reťazca a skončia vo vašej peňaženke.  Adresa sa môže zdať úplne anonymná, ale ak ste uskutočnili transakciu so zmenárňou alebo inými obchodnými službami, v podstate ste prepojili vašu anonymnú adresu s adresou, ktorá môže viesť k vašej identite.

 

NAŠE RIEŠENIE = ZEROCOIN PROTOKOL (zPIV)

Na prekonanie problému s anonymizáciou, vychádzame s  aktualizáciou peňaženky v3.0.0, ktorá bola vydaná 7. októbra 2017, spoločnosť PIVX implementovala protokol s názvom Zerocoin s mnohými vlastnými vylepšeniami umožňujúcimi anonymizáciu transakcií na úrovni blokov.

Toto nazývame zPIV, kde PIV je jednotka PIVX a z je prefix pre Zerocoin.

zPIV poskytuje službu na zmiešanie mincí s protokolom, ktorý používa nulové znalosti adresy peňaženky odosielateľa pre spojenia medzi odosielateľom a prijímateľom so 100% anonymitou. To znamená, že každá minca, ktorá sa posiela pomocou zPIV, je teraz 100% zameniteľná, pretože nemá žiadnu určiteľnú históriu.

Použitím zPIV tiež znamená, že vaša hodnota v peňaženke môže byť maskovaná, aby sa zabránilo stať sa cieľom potencionálnymi zlodejmi. Jedná sa o veľmi jedinečnú vlastnosť, ktorú nemá  žiadna iná kryptomena v súčasnej dobe na trhu.

Akumulátory PIVX zPIV sú zašifrované pomocou kľúčov generovaných RSA-2048 [1]. To znamená, že súkromie každého človeka je zabezpečené pomocou zPIV.

 

JEDIŇEČNÝ FAKTOR

V čase písania (Sep 2017) je PIVX jediná Proof of Stake kryptomena, ktorá má implementovaný Zerocoin protokol s jeho ideológiou a vlastným postupom anonymizácie. Aj napriek tomu, že základná kód je založený na libzerocoin vyvynutým akademickými kryptografmi, väčšina kódu zPIV PIVX je vlastná, čo zPIV robí veľmi jediňečným.

Originál Zerocoin Whitepaper: https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf

Na rozdiel od väčšiny ostatných kryptomien, ktoré v súčasnosti používajú protokol založený na zercoine, PIVX zPIV využíva vysoko efektívny kontrolný systém akumulátorov, ktorý umožňuje procesu výdavkov zPIV použiť kontrolné body, ktoré obsahujú všetky mincovne, ktoré boli vytvorené pred vydaním mince zPIV, ako aj používateľom vybrané množstvo mincí zPIV za kontrolným bodom. To umožňuje mať veľkú skupinu mincí v akumulátore, zatiaľ čo sú ešte oveľa menšie požiadavky na výpočet. Implementácia zPIV spoločnosti PIVX prináša minimálnu spotrebu zdrojov z transakcií zPIV je dnes jeden z najrýchlejších súkromných transferov na súčasnom trhu.

 

PIVX zPIV TECHNICKÉ VÝHODY

  1. Menšie transakčné poplatky v priemere o 25% v porovnaní s akoukoľvek inou súčasnou implementáciou (ďalšia optimalizácia v procese výroby)
  2. Rýchla verifikácia a výkon synchronizácie v sieti
  3. Priame použitie zPIV na adresu PIVX
  4. V jednej transakcii je možné vynaložiť viacero výdavkov na denomináciu typu Zerocoin
  5. Schopnosť minúť presnú sumu a rozdeliť zostávajúcu zmenu na adresu PIVX alebo viac zPIV

REAL VÝHODY POUŽÍVANIA zPIV

  1. zPIV môže skryť hodnotu mincí ktorú držíte, čo chráni pred zacielením. Vaš zostatok zPIV nieje viazaný s konkrétnou adresou.
  2. zPIV môže skryť históriu vašich odosielaných transakcií
    • Zdrojové a cieľové adresy nie sú viditeľné, takže sú súkromné a bezpečné
  3. Anonymné transakcie zPIV sú veľmi rýchle.
    • Trvá len 0.5 sek. mint na zPIV a 2.5 sek Spend  PIV.
  4. Automatické konverzie na zPIV sú  defaultne zapnuté, ale transparentná možnosť prenosu je stále k dispozícií.
    • To znamená, že v prípade potreby môžete vždy odoslať plne transparentnú transakciu.

 

AKO JE DOSIAHNUTÁ ANONYMITA

  1. Mint (konvertuje) vaše PIV do denominizácií na zPIV . (v peňaženke auto-mints defaultne zapnutá)
  2. Spend (Odoslanie) vašych zPIV na PIV do akejkoľvek internej alebo externej adresy PIVX peňaženky

V podstate zerocoin protokol kombinuje (zhromažďuje) všetky zPIV ktoré ľudia konvertovali (minted) z ich zostatku PIV na denomináciu a použijú ich na odoslanie, keď sa iniciujú výdavky. Majte na pamäti, že zhromaždenie zPIV neznamená, že sú všetky zPIV uložené na centralizovanom mieste. Skôr vo verejnej knihe (decentralizovaná zóna) sleduje, koľko zPIV je vytvorených.

Ak chcete odoslať niektoré zPIV na adresu PIVX, vaša peňaženka pošle dôkaz s nulovou znalosťou reťazca blokov, ktorá umožňuje konverziu zPIV späť na PIV a poslať na cieľovú adresu. Všetko v jednom kroku.

Keďže výdavky zPIV vytvárajú úplne nové mince,  špekulant nemôže poskytnúť žiadny dôkaz o tom, že má mince v akumulovanom stave (akumulátor), história transakcií mincí z jeho predtým priradených adries sa stáva neviazaným a výsledkom je že sa nedá odhaliť transakcia.

Napokon je jednoduchá analógia. Zamyslite sa nad zPIV ako na kasínové čipy. Dáte $100 bankovku (tj PIV) do pokladne a dostanete nejaké 1 x 10 dolárov, 2x 20 dolárov, 1x 50 dolárové čipy (to znamená zPIV). To znamená, že už nie ste vlastníkom toho konkrétneho 100 dolárového účtu, ktorý ste si vymenili, a namiesto toho máte “dôkaz”, že stále vlastníte $100. Teraz, keď potrebujete 50 dolárov späť ako fiat (PIV), dáte svoje žetóny (zPIV) späť k pokladni a pokladník prináša príjemcovi podľa vášho výberu zbrusu nový účet s $50.

 

zPIV Minting & Spending Proces

V tomto príklade chce Kirby poslať PIV Heidi pomocou protokolu Zerocoin, aby anonymizoval transakciu.

Krok za krokom Minting Procesu

Kirby iniciuje žiadosť na mint (konverziu) 960 zPIV.

  1. Zerocoin Protocol konvertuje Kirbyho 960 PIV na ekvivalentnú sumu zPIV s použitím najväčších dostupnej denominácií zPIV.
    1. V pozadí, Kirby dostal tajné vedomosti preukazujúce vlastníctvo tejto konverzie (jedinečné sériové číslo, ktoré používa protokol Zerocoin na sledovanie vlastníctva špecifických množstiev denominácie zPIV).
  2. Kirbyho zostatok sa aktualizuje
    1. 960 odpočítaných PIV, a  960 pripočítaných zPIV.
    2. Kirby tiež vidí že 960 zPIV je zložených z: 1x 500 zPIV, 4x 100 zPIV, 1x 50 zPIV, 1x 10 zPIV.

Krok po kroku Spending Proces (Odoslanie)

Kirby iniciuje odoslanie 960 zPIV na adresu Heidi PIVX.

Zerocoin Protocol prijíma a potvrdzuje Kirbyho tajné vedomosti, ktoré dokazujú vlastníctvo jeho zPIV. Po použití sa pôvodný zostatok samozrejme nedá znovu použiť.

Zerocoin Protocol vytvára 960 PIV na adrese Heidi PIVX.

Heidi dostane 960 PIV od anonymného odosielateľa.

Bilancia Kirbyho sa podľa toho aktualizuje – s poklesom o 960 zPIV

 

Denominácia vysvetlenie

Na zlepšenie efektívnosti transakcií pri zachovaní vysokej úrovne zložitosti zaviedla spoločnosť PIVX súbor spoločných menovateľov založených na celočíselných číslach pre čiastky mincí (PIV), ktoré sa konvertujú na skupinu mincí ako zPIV. (podobne ako v príklade kasínových čipov vyššie)

Denominácie používané zPIV sú: 1, 5, 10, 50, 100, 500, 1000 a 5000. Použitie tejto sady denominácií poskytuje dobrú rovnováhu jednoduchosti, využiteľnosti a bezpečnosti. Konečným spôsobom zníženia sledovateľnosti by sa používala len jedna nominálna hodnota (tj 1 zPIV), avšak nie je to veľmi praktické, keďže veľké transakcie by vyžadovali obrovské množstvo mincí.

Použitie veľmi veľkého množstva by mohlo potenciálne zvýšiť sledovateľnosť na neistú úroveň, a tak sa vyriešila na sadu 8 možných označení mincí. Táto sada sa považuje za “sladkú” spot, pretože neobsahuje mince, ktoré sú považované za príliš nízke alebo príliš vysoké v nominálnej hodnote. Pri zmene hodnoty PIV je možné, že túto množinu rozšírime alebo zmeníme tak, aby spĺňalo potreby používateľov.

Keď odošlete svoj zPIV, jednoducho budete mať dôkaz, že máte mincu tejto denominácie, ktorá obsahuje ďalšie mince zPIV tejto nominálnej hodnoty.

Znamená to, že všetky spätné odkúpenia zPIV sa budú robiť v celých číslach (pričom zmena bude vydaná po čiastkach), takže je takmer nemožné vyrovnať sa pred zPIV a po zPIV sumy z 2 rôznych adries, kým existuje veľa ďalších identických zPIV s objemi transakcií PIV.

 

Denominácia Logika

Pri mining (konverzií) alebo spendi (odosielaní) zPIV každý algoritmus automaticky určí použité hodnoty.

Pri spend (odosielaní) zPIV na adresu PIVX automaticky nasledujúcim algoritmom určia denominácie použité z užívateľskej adresy

1). Ak máte presnú sumu, potom začnite s najväčšou možnou nominálnou hodnotou a choďte dole, kým nedosiahnete celkovú sumu

2) Inak: Minimalizujte výdavky a) nájdite nasledujúcu denomináciu vyššiu ako výdavky (ak je to možné) a použite ju, ak je k dispozícii, b) ak nie je k dispozícii, začnite s väčšími denomináciami a choďte dole.

3) Alebo: Minimalizovať zmenu. Ak to nie je presné, pokúste sa nájsť sumu nad potrebnú, ktorá minimalizuje počet mincí, ktoré dostanete v zmene

Automatický Minging

Ochrana súkromia zPIV sa stáva efektívnejšou, keď je viac z každej denominácie razené z mnohých rôznych zdrojov. Preto, aby bola zabezpečená jeho účinnosť, peňaženka PIVX má funkciu automatického čistenia (konvertovania) konfigurovateľného množstva PIV z peňažnej rovnováhy na zPIV bez nutnosti manuálneho prevodu.

Automat sa spustí po spustení peňaženky / démona, peňaženka je odomknutá (buď úplne, alebo stack) a synchronizovaná. To znamená, že ak je vaša peňaženka šifrovaná a uzamknutá, funkcia automatického mintingu sa nezapojí. Keď je peňaženka odomknutá, nebude sa dotýkať žiadnych UTXO, ktoré sú uzamknuté, ako sú tie, ktoré sa používajú ako záloha pre masternódy.

– predvolené percento: 10%. Môže byť zmenené pomocou GUI alebo voľbou príkazového riadka `-zeromintpercentage = <n>` alebo pivx.conf `zeromintpercentage = <n>` nesmie byť menej ako 10%.

– predvolený stav: Aktivovaný. Môže byť deaktivovaný (napr. Pre výmeny) pomocou príkazového riadku “-enablezeromint = 0” alebo pivx.conf `enablezeromint = 0`

Používateľ teraz môže nakonfigurovať preferovanú denomináciu pre Automint prostredníctvom používateľského rozhrania, voľba príkazového riadku “-preferredDenom = <n>” alebo pivx.conf `preferredDenom = <n>` <n> je buď jednou z dostupných označení “1/5 / 10/50/100/500/1000 / 5000` alebo `0` (vôbec neznamená žiadne preferencie a nechajte Automint robiť, čo chce).

Ak nie je k dispozícii dostatok mincí pre uprednostňované označenie, Automint čaká, až kým nebude k dispozícii dostatok mincí.

S každým prichádzajúcim novým blokom sa robí:

Skontrolujte, koľko mincí je k dispozícii.

Toto vylučuje nezrelé mince a uzamknuté mince (napríklad  masternódi)

Skontrolujte, aké množstvo Zerocoin / zPIV je k dispozícii

Skontrolujte, či je percento nižšie ako cieľové percento

Ak je percento nižšie ako cieľové percento, robí to:

Vypočítajte, koľko PIV je potrebné konvertovať na zPIV, napr. 2015

Použite ďalšie menšie označenie (tu 1000 PIV) a minted 1000 zPIV

Opláchnite a zopakujte, kým nie je zlikvidovaný dostatok zPIV.

V mojom príklade nad prvým prichádzajúcim blokom by sa spustila minting 1000 zPIV, ďalšia 1000 zPIV, tretia 10 zPIV a štvrtá 5 zPIV (za predpokladu, že žiadna nová prichádzajúce PIV nezmení základnú hodnotu dostupného PIV).

Dôvodom na použitie ďalšej menšej nominálnej hodnoty a používanie len jednej nominálnej hodnoty na jeden blok je výkonnosť, presné označenia nemusia byť zrejme rozdelené na presné denominácie a jedna jednoduchá konverzia môže byť vykonaná v primeranom čase.

Výnimka: ak je potrebné veľké množstvo PIV, musíme použiť najväčšiu nominálnu hodnotu 5000 PIV, ale 6666 PIV, aby sme dosiahli rovnomernejšie rozdelenie denných hodnôt (6666 = 5000 + 1000 + 500 + 100 + 50 + 10 + 5 + 1, čo je našich 8 dostupných označení).

 

zPIV Automatický Proces

(defaultné nastavenie)

    1. Kirby, pred spustením protokolu Zerocoin, má bilanciu 17 900 PIV. Vlastní masternód, takže 10 000 PIV jeho rovnováhy je na vyhradenej adrese a uzamknutá ako záruka. Kirby nepoužil nastavenie na uzamknutie zostávajúcich 7.900 PIV.
    2. Zerocoin Protocol je implementovaný..
    3. Protokol Zerocoin spracováva každú adresu jednotlivo takto:
      1. Určí, či sú mince uzamknuté..
      2. Ak mince nie sú uzamknuté, konvertujte 10% PIV na zPIV.
      3. Ak sú mince zamknuté, nerobí nič.
    4. Kirby vidí, že jeho rovnováha klesla o 790 PIV, čo sa rovná 10% jeho mincí, ktoré nie sú uzamknuté.
    5. Kirby tiež vidí, že jeho bilancia sa zvýšila o 790 zPIV. Vzhľadom na to, že neupresnil žiadne znenie preferencií zPIV, má teraz k dispozícii tieto výdavky:
    • 1x 500 zPIV
    • 2x 100 zPIV
    • 1x 50 zPIV
    • 4x 10 zPIV

    Spend Bezpečnostný Level

    Pri vynakladaní denominácií zPIV sa používateľ vyzve na zadanie bezpečnostnej úrovne s výberom od 1 do 100. Nepriamym spôsobom parameter bezpečnostnej úrovne umožňuje užívateľovi vybrať si, koľko mincí zamlžuje svoju transakciu.

    Bezpečnostná úroveň 1 – napríklad: by si vzala všetky mince z blokov predtým, než sa do bloku pridala a potom by sa pridali mince, ktoré boli konvertované aj v nasledujúcich 10 blokoch. Úroveň bezpečnosti 2 by robila to isté, okrem pridania ďalších 20 blokov v hodnote konverzie. Úroveň zabezpečenia 100 pridá maximálne množstvo až po aktuálny koniec bloku.

    Čím vyššia je úroveň zabezpečenia, tým viac výpočtu a času trvá odosielanie. Hoci to trvá dlhšie, odporúča sa úroveň 100 pre transakcie, ktoré vyžadujú maximálnu anonymitu.

    Manipulácia so zmenou

    Keďže zPIV pozostáva z celočíselných nominálnych hodnôt, budú existovať časy, kedy sa suma, ktorú je potrebné vynaložiť, nemôže odísť so súčasnými  denomináciami ktoré držíte. Napríklad, ak máte jednu 1000 zPIV denomináciu, ale chcete odoslať 985 PIV na adresu, bude rozdiel 15 PIV, ktoré budú prijaté späť ako zmena. Táto zmena môže ohroziť súkromie transakcie, pretože môže viesť späť k vašej existujúcej adrese, ak omylom zmiešate svoju zmenu s inými adresami PIVX.

    Aby sme tomu zabránili, existujú dve metódy, ktoré je možné použiť. Prvou možnosťou je použitie vstavanej funkcie, ktorá automaticky prevedie zmenu na zPIV. Táto odošle zPIV na požadovanú hodnotu PIV na cieľovú adresu, potom konvertuje zvyšnú zmenu PIV späť do zPIV. Toto je najvhodnejšia metóda. Výška zmeny, ktorá nie je konvertibilná na nominálnu hodnotu (najnižšia dostupná hodnota je 1), sa prevedie na poplatok.

    Druhou možnosťou je vydať zmenu štandardnej adresy PIVX, ktorá vás ponecháva na vyriešenie segregácie tohto PIV a z vášho bežného salda PIV. Táto možnosť môže viesť k chybám a nedoporučuje sa, ak je pre transakciu dôležitá anonymita.

    zPIV Integrita

    Každá konvertovaná hodnota zPIV je spojená s jedinečným sériovým číslom, ktoré je uložené v lokálnom wallet.dat a nie na blokchain reťazci. To znamená, že keď sa razí nová zPIV denominácia, wallet.dat by mal byť zálohovaný, pretože predchádzajúca záloha nebude mať sériové čísla pre novo vyrazené zPIV denominácie.

    Sériové číslo a ďalšie základné údaje zPIV sa zaväzujú k databáze (wallet.dat) pred dokončením a vysielaním do siete. Týmto sa minimalizuje riziko straty vašich čerstvo vyrezaných zPIV denominácií počas neočakávanej udalosti počas razby zPIV, ako napríklad zlyhanie počítača alebo problémy s pripojením na internet.

    Vzhľadom na lokálny dizajn databázy je nevyhnutné, aby bola vaša peňaženka zálohovaná po každej novej konverzií zPIV, aby sa zabezpečilo, že vaše sériové čísla denominácie sú aktuálne.

    Technickál špecifikácia (v1.0)

    Kľúčové vlastnosti: Vlastný kontrolný akumulátorový systém

    Šifrovanie akumulátora: RSA-2048

    zPIV denominizačné hodnoty: 1, 5, 10, 50, 100, 500, 1000, 5000

    Mint čas: >= 0.5 seconds

    Spend čas: >= 2.5 seconds

    Maximálny limit jednorázových výdavkov: 35,000 PIV

    Maximálny počet limitov počtu jednorazových výdajov: 7

    Veľkosť bloku: 2 MB (bol 1 MB pred v3.0.0 zPIV )

    poplatok (mint): 0.01 PIV za minted zPIV denominizáciu.

    poplatok (spend): Žiadny poplatok na výplatu zPIV späť na PIV.

    Minimálny počet potvrdení PIV potrebný na zamlženie zPIV: 6

    Minimálny počet potvrdeni zPIV pred odosielaním: 20

    Dodatočné požiadavky pred zPIV môžu byť použité: 3 mince pridané do akumulátora po tom, čo sa pridá vaša

    Autory:

    Written by: jakiman, 4ml

    Technical input by: 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.