Technický list PIVX Zerocoin (zPIV)

Revize 0.9

Naposledy aktualizováno 16. října 2017

PIVX PRĚHLED

PIVX je kryptoměna založena na komunitě Bitcoin se zaměřením na decentralizaci, soukromí a používání v reálném světě. Využívá energeticky efektivní protokol Proof of Stake a síť masternodů založenou na komunitě spolu s vlastním finančním systémem složený z bloků, které zajišťují jeho stabilitu.

 

KRYPTOMĚNA A  SOUKROMÉ TRANSAKCE

Nejpoužívanější kryptoměna Bitcoin má dobře známý veřejný systém všech transakcí, v němž jsou všechny transakce viditelně a dohledatelné prostřednictvím blokového průzkumníka. V důsledku toho všichni mají možnost vidět všechny související transakce a zůstatky, ale co je důležitější, také jejich přiřazené adresy. To znamená, že historie předchozího majitele adresy je nyní viditelná prostřednictvím vaší vlastní adresy, když mince projdou blokem řetězce a skončí ve vaší peněžence. Adresa se může zdát zcela anonymní, ale pokud jste provedli transakci se směnárnou nebo jinými obchodními službami, v podstatě jste propojili vaši anonymní adresu s adresou, která může vést k vaší identitě.

 

NAŠE ŘEŠENÍ = ZEROCOIN PROTOKOL (zPIV)

K překonání problémů s anonymizaci, vycházíme s aktualizací peněženky v3.0.0, která byla vydána 7. října 2017, společnost PIVX implementovala protokol s názvem Zerocoin s mnoha vlastními vylepšeními umožňujícími anonymizaci transakcí na úrovni bloků.

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

zPIV poskytuje službu na smíchání mincí s protokolem, který používá nulové znalosti adresy peněženky odesílatele pro spojení mezi odesílatelem a příjemcem se 100% anonymitou. To znamená, že každá mince, která se posílá pomocí zPIV, je nyní 100% zaměnitelná, protože nemá žádnou určitelnou historii.

Použitím zPIV také znamená, že vaše hodnota v peněžence může být maskovaná, aby se zabránilo stát se cílem potencionálním zloději. Jedná se o velmi jedinečnou vlastnost, kterou nemá žádná jiná kryptoměna v současné době na trhu.

Akumulátory PIVX zPIV jsou zašifrované pomocí klíčů generovaných RSA-2048 [1]. To znamená, že soukromí každého člověka je zajištěno pomocí zPIV.

 

JEDINEČNÝ FAKTOR

V době psaní (září 2017) je PIVX jediná Proof of Stake kryptoměna, která má implementovaný Zerocoin protokol s jeho ideologií a vlastním postupem anonymizace. I přesto, že základní kód je založen na libzerocoin vyvinutým akademickými kryptografie, většina kódu zPIV – PIVX je vlastní, co zPIV dělá velmi jedinečným.
Originál Zerocoin Whitepaper: https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf
Na rozdíl od většiny ostatních kryptoměn, které v současné době používají protokol založený na zercoine, PIVX zPIV využívá vysoce efektivní kontrolní systém akumulátorů, který umožňuje procesu výdajů zPIV použít kontrolní body, které obsahují všechny mincovny, které byly vytvořeny před vydáním mince zPIV, jakož i uživatelům vybrané množství mincí zPIV za kontrolním bodem. To umožňuje mít velkou skupinu mincí v akumulátoru, zatímco jsou ještě mnohem menší požadavky na výpočet. Implementace zPIV společnosti PIVX přináší minimální spotřebu zdrojů z transakcí zPIV je dnes jeden z nejrychlejších soukromých transferů na současném trhu.

 

PIVX zPIV TECHNICKÉ VÝHODY

  1. Menší transakční poplatky v průměru o 25% ve srovnání s jakoukoli jinou současnou implementací (další optimalizace v procesu výroby)
  2. Rychlá verifikace a výkon synchronizace v síti
  3. Přímé použití zPIV na adresu PIVX
  4. V jedné transakci lze vynaložit více výdajů na denominaci typu Zerocoin
  5. Schopnost utratit přesnou částku a rozdělit zbývající změnu na adresu PIVX nebo více zPIV

REALNÉ VÝHODY POUŽITÍ zPIV

  1. zPIV může skrýt hodnotu mincí kterou držíte, což chrání před zacílením. Vaš zůstatek zPIV není vázán s konkrétní adresou.
  2. zPIV může skrýt historii vašich odesílaných transakcí
    • Zdrojové a cílové adresy nejsou viditelné, takže jsou soukromé a bezpečné
  3. Anonymní transakce zPIV jsou velmi rychlé.
    • Trvá jen 0.5 sek. mint na zPIV a 2.5 sek Spend PIV.
  4. Automatické konverze na zPIV jsou defaultně zapnuté, ale transparentní možnost přenosu je stále k dispozici.
    • To znamená, že v případě potřeby můžete vždy odeslat plně transparentní transakci.

 

JAKO JE DOSAŽENÁ ANONYMITA

  1. Mint (konvertuje) vaše PIV do denominizace na zPIV. (V peněžence auto-mints defaultně zapnuta)
  2. Spend (Odeslání) vašych zPIV na PIV do jakékoli interní nebo externí adresy PIVX peněženky

V podstatě zerocoin protokol kombinuje (shromažďuje) všechny zPIV, které lidé konvertovali (minted) z jejich zůstatku PIV na denominaci a použijí je na odeslání, když se iniciují výdaje. Mějte na paměti, že shromáždění zPIV neznamená, že jsou všechny zPIV uložené na centralizovaném místě. Dříve ve veřejné knize (decentralizovaná zóna) sleduje, kolik zPIV je vytvořeno.

Chcete-li odeslat některé zPIV na adresu PIVX, vaše peněženka pošle důkaz s nulovou znalostí řetězce bloků, která umožňuje konverzi zPIV zpět na PIV a poslat na cílovou adresu. Vše v jednom kroku.

Jelikož výdaje zPIV vytvářejí zcela nové mince, spekulant nemůže poskytnout žádný důkaz o tom, že má mince v akumulovaném stavu (akumulátor), historie transakcí mincí z jeho dříve přiřazených adres se stává nevázaným a výsledkem je že se nedá odhalit transakce.

Nakonec je jednoduchá analogie. Zamyslete se nad zPIV jako na kasinové čipy. Dáte $100 bankovku (tj PIV) do pokladny a dostanete nějaké 1 x 10 dolarů, 2x 20 dolarů, 1x 50 dolarové čipy (to znamená zPIV). To znamená, že už nejste vlastníkem toho konkrétního 100 dolarového účtu, který jste si vyměnili, a místo toho máte „důkaz“, že stále vlastníte $100. Nyní, když potřebujete 50 dolarů zpět jako fiat (PIV), dáte své žetony (zPIV) zpět k pokladně a pokladník přináší příjemci dle vašeho výběru zbrusu nový účet s $50.

 

zPIV Minting & Spending Proces

V tomto příkladu chce Kirby poslat PIV Heidi pomocí protokolu Zerocoin, aby anonymizoval transakci.

Krok za krokem Minting Procesu

Kirby iniciuje žádost na mint (konverzi) 960 zPIV.

  1. Zerocoin Protocol konvertuje Kirbyho 960 PIV na ekvivalentní částku zPIV s použitím s použitím největších dostupné denominací  zPIV.
    1. V pozadí, Kirby dostal tajné znalosti prokazující vlastnictví této konverze (jedinečné sériové číslo, které používá protokol Zerocoin ke sledování vlastnictví specifických množství denominace zPIV).
  2. Kirbyho zůstatek se aktualizuje
    1. 960 odečtených PIV, a 960 přičteno zPIV.
    2. Kirby také vidí že 960 zPIV je složených z: 1x 500 zPIV, 4x 100 zPIV, 1x 50 zPIV, 1x 10 zPIV.

Krok po kroku Spending Proces (odeslání)

Kirby iniciuje odeslání 960 zPIV na adresu Heidi PIVX.

Zerocoin Protocol přijímá a potvrzuje Kirbyho tajné vědomosti, které dokazují vlastnictví jeho zPIV. Po použití se původní zůstatek samozřejmě nedá znovu použít.

Zerocoin Protocol vytváří 960 PIV na adrese Heidi PIVX.

Heidi dostane 960 PIV od anonymního odesílatele.

Bilance Kirbyho se podle toho aktualizuje – s poklesem o 960 zPIV

 

Denominace vysvětlení

Na zlepšení účinnosti transakcí při zachování vysoké úrovně složitosti zavedla společnost PIVX soubor společných jmenovatelů založených na celočíselných číslech pro částky mincí (PIV), které se konvertují na skupinu mincí jako zPIV. (Podobně jako v příkladu kasinových čipů výše)

Denominace – používané zPIV jsou: 1, 5, 10, 50, 100, 500, 1000 a 5000. Použití této sady denominací poskytuje dobrou rovnováhu jednoduchosti, využitelnosti a bezpečnosti. Konečným způsobem snížení sledovatelnosti by se používala jen jedna nominální hodnota (tj 1 zPIV), avšak není to velmi praktické, protože velké transakce by vyžadovaly obrovské množství mincí.

Použití velmi velkého množství by mohlo potenciálně zvýšit sledovatelnost na nejistou úroveň, a tak se vyřešila na sadu 8 možných označení mincí. Tato sada se považuje za „sladkou“ spot, protože neobsahuje mince, které jsou považovány za příliš nízké nebo příliš vysoké v nominální hodnotě. Při změně hodnoty PIV je možné, že tuto množinu rozšíříme nebo změníme tak, aby splňovalo potřeby uživatelů.

Když odešlete svůj zPIV, prostě budete mít důkaz, že máte minci této denominace, která obsahuje další mince zPIV této nominální hodnoty.

Znamená to, že všechny odkup zPIV se budou dělat v celých číslech (přičemž změna bude vydána po částkách), takže je téměř nemožné vyrovnat se před zPIV a po zPIV částky z 2 různých adres, dokud existuje spousta dalších identických zPIV s objemu transakcí PIV ..

 

Denominace Logika

Při mining (konverzí) nebo Spend (odesílání) zPIV každý algoritmus automaticky určí použity hodnoty.

Při spend (odesílání) zPIV na adresu PIVX automaticky následujícím algoritmem určí denominace použité z uživatelské adresy

1). Pokud máte přesnou částku, pak začněte s největší možnou nominální hodnotou a jděte dolů, dokud nedosáhnete celkovou částku

2) Jinak: Minimalizujte výdaje a) najděte následující denominaci vyšší než výdaje (pokud je to možné) a použijte ji, pokud je k dispozici, b) pokud není k dispozici, začněte s většími denominacemi a jděte dolů.

3) Nebo: Minimalizovat změnu. Pokud to není přesné, pokuste se najít částku nad potřebnou, která minimalizuje počet mincí, které dostanete ve změně

 

Automatický minting

Ochrana soukromí zPIV se stává efektivnější, když je více denominací ražené z mnoha různých zdrojů. Proto, aby byla zajištěna jeho účinnost, peněženka PIVX má funkci automatického mintingu (konverze) konfigurovatelného množství PIV z peněžní rovnováhy na zPIV bez nutnosti manuálního převodu.

Automat se spustí po spuštění peněženky / démona, peněženka je odemčena (buď zcela, nebo stacking) a synchronizovaná. To znamená, že pokud je vaše peněženka šifrována a uzamčena, funkce automatického mintingu se nezapojí. Když je peněženka odemčena, nebude se dotýkat žádných UTXO, které jsou uzamčeny, jako jsou ty, které se používají jako záloha pro masternody.

– výchozí procento: 10%. Může být změněn pomocí GUI nebe volbou příkazového Radka `-zeromintpercentage = <n>` nebe pivx.conf `zeromintpercentage = <n>` nesmí být měně než 10%.

– výchozí stav: Aktivovaný. Může být deaktivován (např. Pro výměny) pomocí příkazového řádku „-enablezeromint = 0“ nebo pivx.conf `enablezeromint = 0`

Uživatel nyní může nakonfigurovat preferovanou denominaci pro Automint prostřednictvím uživatelského rozhraní, volba příkazového řádku „-preferredDenom = <n>“ nebo pivx.conf `preferredDenom = <n>` <n> je buď jednou z dostupných označení „1/5 / 10 / 50/100/500/1000 / 5000` nebo `0` (vůbec – neznamená žádné preference a nechte Automint dělat, co chce).

Pokud není k dispozici dostatek mincí pro upřednostňovány označení Automint čeká, dokud nebude k dispozici dostatek mincí.

S každým přicházejícím novým blokem se provádí:

  • Zkontroluje, kolik mincí je k dispozici.
    Toto vylučuje nezralé mince a uzamčené mince (například masternodi)
  • Zkontroluje, jaké množství Zerocoin / zPIV je k dispozici
  • Zkontroluje, zda je procento nižší než cílové procento

 

pokud je procento nižší než cílové procento, dělá to:

  • Vypočte, kolik PIV je nutné konvertovat na zPIV, např. 2015
  • Použije další menší označení (zde 1000 PIV) a minted 1000 zPIV
  • opakuje, dokud není minted dostatek zPIV.

 

V mém příkladu nad prvním příchozím blokem by se spustila minting 1000 zPIV, další 1000 zPIV, třetí 10 zPIV a čtvrtá 5 zPIV (za předpokladu, že žádná nová příchozí PIV nezmění základní hodnotu dostupného PIV).

Důvodem k použití další menší nominální hodnoty a používání pouze jedné nominální hodnoty na jeden blok je výkonnost, přesné označení nemusí být zřejmě rozděleno na přesné denominace a jedna jednoduchá konverze může být provedena v přiměřeném čase.

 

Výjimka: pokud je potřeba velké množství PIV, musíme použít největší nominální hodnotu 5000 PIV, ale 6666 PIV, abychom dosáhli rovnoměrnější rozdělení hodnot (6666 = 5000 + 1000 + 500 + 100 + 50 + 10 + 5 + 1, což je našich 8 dostupných označení).

zPIV Automatický Proces

(předvolené nastavení)

    1. Kirby, před spuštěním protokolu Zerocoin, má bilanci 17 900 PIV. Vlastní masternoda, takže 10 000 PIV jeho rovnováhy je na vyhrazené adrese a uzamčena jako záruka. Kirby nepoužil nastavení na uzamčení zbývajících 7.900 PIV.
    2. Zerocoin Protocol je je implementován …
    3. Protokol Zerocoin zpracovává každou adresu jednotlivě takto:
      1. Určí, zda jsou mince uzamčeny ..
      2. Pokud mince nejsou uzamčeny, konvertujte 10% PIV na zPIV.
      3. Pokud jsou mince zamčené, nedělá nic.
    4. Kirby vidí, že jeho rovnováha klesla o 790 PIV, což se rovná 10% jeho mincí, které nejsou uzamčené.
    5. Kirby také vidí, že jeho bilance se zvýšila o 790 zPIV. Vzhledem k tomu, že neupřesnil žádné znění preferencí zPIV, má nyní k dispozici tyto výdaje:
    • 1x 500 zPIV
    • 2x 100 zPIV
    • 1x 50 zPIV
    • 4x 10 zPIV

    Spend Bezpečnostní Level

    Při vynakládání denominací zPIV se uživatel vyzve k zadání bezpečnostní úrovně s výběrem od 1 do 100. Nepřímým způsobem parametr bezpečnostní úrovně umožňuje uživateli vybrat si, kolik mincí zamlžuje svou transakci.

    Bezpečnostní úroveň 1 – například: by  vzala všechny mince z bloků předtím, než se do bloku přidala a pak by se přidaly mince, které byly konvertovány i v následujících 10 blocích. Úroveň bezpečnosti 2 by dělala totéž, kromě přidání dalších 20 bloků v hodnotě konverze. Úroveň zabezpečení 100 přidá maximální množství až po aktuální konec bloku.

    Čím vyšší je úroveň zabezpečení, tím více výpočtu a času trvá odesílání. Ačkoli to trvá déle, doporučuje se úroveň 100 pro transakce, které vyžadují maximální anonymitu.

    Manipulace se změnou

    Jelikož zPIV sestává z celočíselných nominálních hodnot, budou existovat časy, kdy se částka, kterou je třeba vynaložit, nemůže odejít se současnými denominacemi které držíte. Například, pokud máte jednu 1000 zPIV denominaci, ale chcete odeslat 985 PIV na adresu, bude rozdíl 15 PIV, která budou přijata zpět jako změna. Tato změna může ohrozit soukromí transakce, protože může vést zpět k vaší stávající adrese, pokud omylem smícháte svou změnu s jinými adresami PIVX.

    Abychom tomu zabránili, existují dvě metody, které lze použít. První možností je použití vestavěné funkce, která automaticky převede změnu na zPIV. Tato odešle zPIV na požadovanou hodnotu PIV na cílovou adresu, pak konvertuje zbylou změnu PIV zpět do zPIV. Toto je nejvhodnější metoda. Výška změny, která není konvertibilní na nominální hodnotu (nejnižší dostupná hodnota je 1), se převede na poplatek.

    Druhou možností je vydat změnu standardní adresy PIVX, která vás ponechává na vyřešení segregace tohoto PIV a z vašeho běžného salda PIV. Tato možnost může vést k chybám a nedoporučuje se, pokud je pro transakci důležitá anonymita.

    zPIV Integrita

    Každá konvertována hodnota zPIV je spojena s jedinečným sériovým číslem, které je uloženo v lokálním wallet.dat a ne na blokchain řetězci. To znamená, že když se razí nová zPIV denominace, wallet.dat by měl být zálohován, protože předchozí záloha nebude mít sériová čísla pro nově vyražené zPIV denominace.

    Sériové číslo a další základní údaje zPIV se zavazují k databázi (wallet.dat) před dokončením a vysíláním do sítě. Tímto se minimalizuje riziko ztráty vašich čerstvě vyřezaných zPIV denominací během nenadálé události během ražby zPIV, například selhání počítače nebo problémy s připojením na internet.

    Vzhledem k lokální design databáze je nezbytné, aby byla vaše peněženka zálohovaná po každé nové konverzí zPIV, aby se zajistilo, že vaše sériová čísla denominace jsou aktuální.

    Technická specifikace (v1.0)

    Klíčové vlastnosti: Vlastní kontrolní akumulační systém

    Šifrování akumulátora: RSA-2048

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

    Mint čas: >= 0.5 seconds

    Spend čas: >= 2.5 seconds

    Maximální limit jednorázových výdajů: 35,000 PIV

    Maximální počet limitů počtu jednorázových výdajů: 7

    Velikost bloku: 2 MB (byl 1 MB před v3.0.0 zPIV )

    poplatek (mint): 0.01 PIV za minted zPIV denominizáci.

    poplatek (spend): Žádný poplatek na výplatu zPIV zpět na PIV.

    Minimální počet potvrzení PIV potřebný k zamlžení zPIV: 6

    Minimální počet potvrzení zPIV před odesíláním: 20

    Dodatečné požadavky před zPIV mohou být použity: 3 mince přidány do akumulátoru po tom, co se přidá vaše

    Autory:

    Written by: jakiman, 4ml

    Technical input by: spock, presstab, fuzzbawls, mrs-x

    Translated: btc.gripe

    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.