PIVX Zerocoin (zPIV) Technische Abhandlung

Revision 0.9

Letzte Aktualisierung: 16. Oktober 2017

PIVX

PIVX ist eine auf Bitcoin basierende Kryptowährung mit Fokus auf Dezentralisierung, Privatsphäre, praxisorientierter Anwendung und die PIVX-Community. PIVX nutzt ein energieeffizientes Proof-Of-Stake-Protokoll und ein nachrangiges Netzwerk an Masternodes als community-basierten Selbstverwaltungsmechanismus. Zur Nachhaltigkeit trägt ferner ein auf Blockchain basiertes und selbsttragendes Finanzierungssystem bei.

 

PIVX strebt stets nach einem ausgefeilten Selbstverwaltungssystem, nach sofortigen, vertraulichen Transaktionen und besserer Handelbarkeit, um weiterhin eine zukunftsweisende Kryptowährung zu bleiben.

 

Vereinfacht gesagt ist PIVX digitales Geld, welches einfach, in windeseile und fast ohne Transaktionskosten auf der ganzen Welt transferiert werden kann. Buchgeld kann mittels Exchanges in PIVX konvertiert werden; damit können Güter und Services online und offline bezahlt, andere digitale Währungen gekauft und sogar Zinserträge realisiert werden.

 

PIVX wird nicht von einer einzelnen Person oder Organisation besessen oder geleitet, und das Netzwerk wird durch seine Nutzer durch den Einsatz von tausenden Netzwerkknoten gesichert, welche auf der ganzen Welt verteilt sind. Das Ziel von PIVX ist es, eine fortschrittliche digitale Währung zu sein, die schnell, sicher, dezentralisiert und vertraulich ist.

 

PRIVATSPHÄRE BEI TRANSAKTIONEN MIT KRYPTOWÄHRUNGEN

Die meisten Kryptowährungen wie Bitcoin besitzen bekanntlich ein öffentliches Kontensystem, durch das alle Transaktionen mittels des Blockexplorers nachvollziehbar sind. Jeder hat die Möglichkeit, alle Adressen, Transaktionen und Guthaben einzusehen. Sobald die Coins die Blockchain durchlaufen und in der eigenen Wallet-Adresse ankommen, ist die Historie der vorherigen, sendenden Adresse einsehbar.

 

Eine Adresse erscheint nur auf den ersten Blick vollständig anonym. Wenn jedoch eine Transaktion mit einer Adresse getätigt wird, die von einer Exchange und/oder Händler stammt, wird die empfangende, bisher noch anonyme, Adresse mit der sendenden Adresse verknüpft. Möglicherweise gibt dies die Identität des Empfängers preis.

 

In den meisten Szenarien stellt die oben beschriebene Transparenz kein Problem dar. Allerdings könnte dies zu einem ernsthaften Problem werden, wenn die eigenen Coins mit einer Sender-Adresse verknüpft sind, die eine zwielichtige Geschichte hat oder die eigene Adresse Ziel eines potenziellen Diebstahls ist.

 

Zum Beispiel können erhaltene Coins ursprünglich von einer Person oder Organisation stammen, die in illegale Aktivitäten verwickelt ist oder von Behörden beobachtet und verfolgt wird. Auf Grund der Beziehung zum ursprünglichen Inhaber der Coins kann man somit potentiell selbst Teil der Ermittlungen werden; obwohl man diese in gutem Wissen und Gewissen und legitim erworben hat. Dies könnte auch bedeuten, dass Coins mit einer solchen Historie weniger wertvoll oder sogar wertlos werden könnten und schlechter handelbar wären, als Coins, die keine problematische Geschichte haben.

 

UNSERE LÖSUNG: ZEROCOIN PROTOKOLL (zPIV)

Um das beschriebene Problem zu beheben, hat PIVX, beginnend mit dem Wallet-Update v3.0.0 am siebten Oktober 2017, das bekannte und hochgradig überprüfte Zerocoin-Protokoll implementiert. Viele maßgeschneiderte Verbesserungen ermöglichen Blockchain-Level-Anonymität in Form von fehlender Verlinkung. Wir nennen dies zPIV, wobei PIV eine Einheit von PIVX ist und das Prefix “z” für Zerocoin steht.

 

zPIV bietet einen Protokoll-Level-Coin-Mixing-Service, welcher sogenannte Zero-Knowledge-Proofs als Verlinkung zwischen dem Sender und Empfänger nutzt, um 100% Anonymität und Unauffindbarkeit zu erreichen. Somit wird sichergestellt, dass jede als zPIV gesendete Coin keinerlei nachvollziehbare Historie mehr besitzt. Der Einsatz von zPIV verdeckt den Kontostand auch gegenüber potenziellen Dieben. Dies ist ein einzigartiges Merkmal, das derzeit fast keine andere Kryptowährung im Markt besitzt. Die PIVX zPIV-Akkumulatoren werden mit RSA-2048 [1] verschlüsselt. Die generierten Schlüssel benötigen keinen durch die Entwickler gesicherten Aufbau, d.h. Niemand kennt die Faktoren. Somit ist die Privatsphäre von jedem sichergestellt, der zPIV benutzt.

 

EINZIGARTIGE GESICHTSPUNKTE

Zu den Zeitpunkt an dem dies geschrieben wird (September 2017) ist PIVX die einzige auf Proof-Of-Stake basierende Kryptowährung, die vollständig die Ideen und Methoden des Zerocoin-Protokolls implementiert

hat. Obwohl der Ansatz auf dem originalen und öffentlichen zugänglichen libzerocoin-Archiv basiert, das von akademischen Kryptographen entwickelt wurde, ist der Großteil des PIVX zPIV-Codes maßgeschneidert; dies macht zPIV einzigartig.

 

Zum original Zerocoin-Whitepaper: https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf.

 

Im Gegensatz zu anderen Kryptowährungen, die derzeit das Zerocoin-Protokoll nutzen, setzt PIVX für zPIV ein sehr effizientes “Akkumulator-Checkpointing-System” ein. Dieses nutzt während des Ausgabe-Prozesses von Coins Checkpoints, welche alle vor dem Senden erstellten Coins enthalten, als auch die vom Nutzer gewählten Beträge von zPIV nach diesem Checkpoint. Dies ermöglicht große Pools an Coins im Akkumulator und dennoch niedrigere Rechen-Anforderungen. Die Implementierung von PIVXs zPIV zielt auf den minimalen Einsatz von Ressourcen und macht zPIV-Transaktionen zu den schnellsten geheimen Transfers im heutigen Markt.

DIE TECHNISCHEN VORTEILE VON zPIV

  1. Kleinere Transaktions-Größen bei der Ausgabe von Coins, welche im Schnitt 25% unter anderen Implementierungen im Markt liegen (weitere Optimierungen sind in Arbeit).
  2. Schnelle Verifizierung und Netzwerk- Synchronisation.
  3. Direktes Senden von zPIV an PIVX-Adressen.
  4. Mehrere Zerocoin-Wertstufen sind in einer Transaktion möglich.
  5. Möglichkeit, den genauen Betrag auszugeben und das Wechselgeld entweder an eine PIVX-Adresse zu senden oder als zPIV zu erhalten.

DER PRAXISNUTZEN VON zPIV

  1. zPIV kann den Kontostand vor neugierigen Augen und vor zweifelhaften Angriffen schützen. Der Besitz von zPIV ist nicht an eine bestimmte Adresse gebunden.
  2. zPIV kann die Transaktions-Historie von gesendeten Coins verstecken. Die Quell- als auch die Zieladresse sind nicht sichtbar, somit wird die Transaktion geheim, sicher und austauschbar.
  3. Anonyme zPIV-Transktionen sind sehr schnell. Es dauert nur 0,5 Sekunden um zPIV zu konvertieren und 2,5 Sekunden um sie auszugeben.
  4. Die automatische Umwandlung in zPIV ist standardmäßig aktiviert, aber die transparente Transfer-Option ist jederzeit verfügbar. Das bedeutet, eine vollständig nachvollziehbare Transaktion kann jederzeit initiiert werden.

WIE ANONYMITÄT GEWÄHRLEISTET WIRD

  1. Konvertieren von PIV in zPIV (diesen Vorgang des Schöpfens von zPIV nennen wir “Minting”). Wallets konvertieren einige zPIV-Coins standardmäßig selbständig.
  2. zPIV als PIV an jede interne oder externe PIVX-Wallet-Adresse senden.

 

Das Zerocoin-Protokoll fasst alle von Nutzern aus PIV erstellten zPIV in festgelegten Wertstufen zusammen und nutzt diese Wertstufen um zPIV zu senden wenn eine Ausgabe initiiert wird. Dieses Pooling bedeutet nicht, dass alle zPIV an einer zentralen Stelle gespeichert sind. Vielmehr werden dieses Pools und damit die damit kreierten zPIVs in einem öffentlichen Konto (der dezentralen Blockchain) dokumentiert.

 

Wenn man einen Betrag an zPIV senden (ausgeben) möchte, sendet die Wallet einen sogenannten Zero-Knowledge-Proof an die Blockchain; dies ermöglicht es, zPIV einerseits in PIVx zu konvertieren und andererseits an die Zieladresse zu schicken.

 

Das Senden von zPIV kreiert brandneue Coins. Der Sender kann durch den Zero-Knowledge-Proof nachweisen, dass er oder sie Coins in dem Akkumulator-Pool (Akkumulator) besitzt. Die Transaktions-Historie der vorherigen Adresse wird dadurch unterbrochen und ist im Ergebnis eine unauffindbare Transaktion.

 

Zum Abschluß eine einfache Analogie: Stellen wir uns zPIV wie Casino-Chips vor. Man gibt einen 100 Euro-Schein (z.B. PIV) an den Kassierer in einer Spielbank und man erhält folgende Chips: 1 x EUR 10, 2 x EUR 20 und 1 x EUR 50. Man besitzt den ursprünglichen, eingetauschten 100 Euro-Schein nicht mehr, hat aber den “Nachweis”, dass man nach wie vor EUR 100 besitzt. Wenn man nun EUR 50 davon wieder in Geld (PIV) zurück haben möchte, geht man zum Kassierer mit einem EUR 50-Chip und dieser gibt einem einen neuen, bisher unverbreiteten EUR 50-Schein

 

zPIV erstellen und ausgeben

In diesem Beispiel will Kirby an Heidi PIV schicken und dabei das Zerocoin-Protokoll zur Anonymisierung der Transaktion nutzen.

Schritt für Schritt: Der Minting-Prozess

  1. Kirby initiiert eine Anfrage um 960 zPIV zu schöpfen.
  2. Das Zerocoin-Protokoll konvertiert 960 PIV von Kirby in die entsprechende Menge an zPIV; dabei werden die größten zur Verfügung stehenden Wertstufen verwendet. Hinter den Kulissen wurde Kirby ein geheimes Eigentumsrecht der Umwandlung gegeben (dies ist eine eindeutige Nummer welche von dem Zerocoin-Protokoll benutzt wird, um die Eigentumsrechte von zPIV nachzuvollziehen).
  3. Kirbys Guthaben wird entsprechend aktualisiert:
    1. PIV verringert sich um 960 und zPIV nimmt um 960 zu.
    2. Kirby sieht, dass die 960 zPIV durch folgende Wertstufen zusammengesetzt sind: 1 x 500 zPIV, 4 x 100 zPIV, 1 x 50 zPIV und 1 x 10 zPIV.

 

Schritt für Schritt: Der Ausgabe-Prozess

  1. Kirby initiiert das Senden von 960 zPIV an Heidis PIVX-Adresse.
  2. Das Zerocoin-Protokoll empfängt und validiert Kirbys geheimes Eigentumsrecht welches sie als Eigentümer nachweist. Einmal genutzt, kann das ursprünglich geschöpfte Guthaben nicht noch einmal ausgegeben werden.
  3. Das Zerocoin-Protokoll kreiert 960 PIV auf Heidis Adresse.
    1. Heidi empfängt 960 PIV von einem anonymen Sender.
    2. Kirbys Guthaben wird entsprechend aktualisiert; mit einer Abnahme um 960 zPIV.

Erklärung der Wertstufen

Um die Transaktions-Effizienz zu verbessern und gleichzeitig die Komplexität zu meistern, hat PIVX einen ganzzahligen Satz an üblichen Wertstufen eingeführt, welcher in einen Pool an zPIV konvertiert wird (wie im Beispiel der Casino-Chips oben).

 

Die von zPIV genutzten Wertstufen sind: 1, 5, 10, 50, 100, 500, 1000 und 5000. Diese Wertstufen bieten eine gute Balance zwischen Einfachheit, Nutzbarkeit und Sicherheit. Um die Nachvollziehbarkeit von Transaktionen zu reduzieren, wäre eine einzige Wertstufe ideal (z.B. 1 zPIV), jedoch nicht praktikabel, da große Transaktionen eine große Anzahl an Coins notwendig machen würden.

 

Eine größere Anzahl von Wertstufen würde potentiell  die Nachvollziehbarkeit auf ein unsicheres Level heben, daher haben wir uns für acht Wertstufen entschieden. Dies wird als “sweet spot” angesehen, da weder zu hohe noch zu niedrige Werte enthalten sind. Wenn sich zukünftig der Wert von PIV ändert, ist es vorstellbar, dass wir die Anzahl der Wertstufen ausweiten oder ändern, um die Bedürfnisse der Nutzer zu befriedigen.

 

Wenn man zPIV kreiert, hat man schlicht den Nachweis, dass man eine Coin dieser entsprechenden Wertstufe besitzt.

 

Das bedeutet, dass alle Einlösungen von zPIV in ganzen Zahlen getätigt werden (Wechselgeld wird in dezimalen Werten zurückgegeben). Somit ist es nahezu unmöglich, den jeweiligen Wert vor und nach der zPIV-Umwandlung zwischen zwei Adressen nachzuvollziehen, da es viele identische Transaktionen mit den jeweiligen Werten gibt.

Wertstufen-Logik

Wenn man zPIV konvertiert (“minting”) oder ausgibt (“sending”), werden die entsprechenden Wertstufen durch einen Algorithmus festgelegt.

 

Beim Senden von zPIV an eine PIVX-Adresse, legt ein Algorithmus fest, welche Wertstufen vom Nutzer genutzt werden.

 

  1. Der Algorithmus startet mit der größtmöglichen Wertstufe und geht dann runter bis der Gesamtbetrag erreicht wird.
  2. Andernfalls: a) die Option “minimize spends” (minimiere Ausgabe) nimmt die nächstgrößere Stufe (falls möglich) und nutzt diese wenn verfügbar oder b) wenn nicht verfügbar, wird die größerer Wertstufe ausgewählt und sinkt dann bis der Gesamtbetrag erreicht wird.
  3. Oder: Die Option “minimize change” (minimiere Kleingeld) versucht den nächsthöheren Betrag zu finden und minimiert die Anzahl an Coins, welche man als Wechselgeld erhält

Auto-Minting

Die Privatsphäre von zPIV ist effektiver, wenn die Coins der verschiedenen Wertstufen von vielen unterschiedlichen Quellen geschaffen werden. Um dies zu gewährleisten, gibt es in der PIVX-Wallet ein Auto-Mint-Feature (Auto-Konvertierung) welches einen konfigurierbaren prozentualen Anteil von PIV automatisch in zPIV konvertiert.

 

Auto-Minting startet, wenn die Wallet/der Daemon gestartet wird, die Wallet freigeschaltet wird (entweder vollständig oder nur für Staking) und die Blockchain vollständig synchronisiert ist. Wenn eine Wallet verschlüsselt und gesperrt ist, ist das Auto-Minting nicht aktiv. Wenn die Wallet entsperrt ist, bleibt jede UTXO-Einstellung unberührt, z.B. Sicherheiten welche für Masternodes hinterlegt sind.

 

  • Standard Prozentwert: 10%. Dies kann in der GUI oder via Command-Line geändert werden: “-zeromintpercentage=<n>” oder in der pivx.conf “zeromintpercentage=<n>” darf nicht weniger als 10% sein.
  • Standard-Zustand: Aktiviert. Dies kann durch eine Command-Line-Option deaktiviert werden (z.B. für Exchanges): “-enablezeromint=0” oder in der pivx.conf “enablezeromint=0”.

 

Nutzer können eine präferierte Wertstufe für das Auto-Minting via GUI oder via Command-Line einstellen: “-preferredDenom=<n>” oder in der pivx.conf “preferredDenom=<n>” wobei <n> eine der zur Verfügung stehenden Wertstufen ist:  “1/5/10/50/100/500/1000/5000” oder “0” (letzteres bedeutet keine Präferenz und Auto-Mint macht, was es für sinnvoll erachtet).

 

Wenn nicht genügend Coins für die präferierten Wertstufen zur Verfügung stehen, wartet Auto-Mint bis die entsprechende Menge zur Verfügung steht.

Mit jedem eingehenden Block passiert folgendes:

  1. Überprüfen, wie viele Coins für das Minting zur Verfügung stehen. Sogenannte “immature Coins” (unreife Coins) und gesperrte Coins (z.B. von Masternodes) werden exkludiert.
  2. Überprüfen, wie viele Zerocoins/zPIV zur Verfügung stehen.
  3. Überprüfen, ob der Anteil an zPIV unter dem Ziel-Anteil ist.

 

Wenn der Prozentsatz unter dem Ziel-Anteil ist, passiert folgendes:

  1. Es wird berechnet, wieviele PIV in zPIV konvertiert werden müssen; z.B. 2015.
  2. Die nächstkleinere Wertstufe wird gewählt (in diesem Fall 1.000 PIV) und 1.000 zPIV generiert.
  3. Die oben beschriebenen Schritte werden wiederholt bis genügend zPIV generiert sind.

 

In dem obigen Beispiel würde der erste eingehenden Block die Schöpfung von 1.000 zPIV anstoßen, der nächste Block wieder 1.000, der dritte 10 zPIV und der vierte 5 zPIV (angenommen, dass keine neu eingehenden PIV den Basisbetrag der verfügbaren PIV ändern).

 

Der Grund, die nächstkleinere Wertstufe und nur eine Wertstufe pro Block zu nutzen, ist die Geschwindigkeit: Exakte Wertstufen müssen offensichtlich nicht in exakte Wertstufen zerlegt werden und ein einziger “Mint” kann in einer annehmbaren Zeit erledigt werden.

 

Ausnahme: Wenn ein großer Betrag an PIV umgewandelt werden soll, nutzen wir nicht die größte Wertstufe von 5.000 PIV sondern 6.666 PIV um eine gleichmäßigere Verteilung über die Wertstufen zu erreichen (6.666 = 5.000 + 1.000 + 500 + 100 + 50 + 10 + 5 + 1, was die Summe der acht verfügbaren Wertstufen ist).

zPIV Auto-Mint-Prozess

    1. Kirby hat vor dem Launch des Zerocoin-Protokolls einen Kontostand von 17.900 PIV. Er betreibt eine Masternode, wodurch 10.000 PIV in einer dieser Masternode fest zugeordneten Adresse gehalten und als Sicherheit eingesetzt werden. Kirby hat die restlichen 7.900 PIV nicht durch “Coin Control” gesperrt.
    2. Das Zerocoin-Protokoll wird eingeführt.
    3. Das Zerocoin-Protokoll prozessiert jede Adresse individuell wie folgt:
      1. Feststellen ob die Coins gesperrt sind.
      2. Wenn die Coins nicht gesperrt sind, konvertieren von 10% der PIV in zPIV.
      3. Wenn die Coins gesperrt sind, passiert nichts.
    4. Kirby sieht, dass sein Guthaben um 790 PIV abgenommen hat, was 10% der nicht gesperrten Coins entspricht.
    5. Kirby sieht auch, dass sein Guthaben um 790 zPIV erhöht wurde. Da Kirby keine spezielle Werstufe für die Umwandlung in zPIV spezifiziert hatte, stehen nun folgende Stufen zur Verfügung:
    • 1x 500 zPIV
    • 2x 100 zPIV
    • 1x 50 zPIV
    • 4x 10 zPIV

    Sicherheitslevels für die Ausgabe

    Wenn ein Nutzer zPIV ausgeben möchte, wird er gebeten, ein Sicherheitslevel zwischen 1 bis 100 auszuwählen. Indirekt legt das Sicherheitslevel fest, wie viele Coins in der Transaktion verschleiert werden sollen.

    Ein Sicherheitslevel von 1 würde zum Beispiel alle kreierten Coins in der Blockchain bearbeiten, bevor die eigenen geschöpften Coins zur Blockchain hinzugefügt werden und danach andere Coins hinzufügen, welche in den nächsten zehn Blöcken kreiert wurden. Ein Sicherheitslevel von 2 würde dasselbe tun, jedoch würden die nächsten 20 Blocks von kreierten Coins hinzugefügt werden. Ein Sicherheitslevel von 100 würde den maximalen Betrag von geschöpften Coins an das aktuelle Ende der Blockchain stellen.

    Je höher das Sicherheitslevel ist, umso mehr Rechenleistung und Zeit wird für die Zahlung benötigt. Obwohl es länger dauert, ist ein Level von 100 für Transaktionen empfohlen, die ein Maximum an Anonymität benötigen.

    Handhabung von Wechselgeld

    Da zPIV aus festen Wertstufen zusammengestellt wird, kann es passieren, dass zu sendende Beträge nicht komplett durch die festgelegten Stufen abgebildet werden können. Wenn man zum Beispiel 1.000 zPIV besitzt und man möchte davon 985 PIV an eine Adresse schicken, wird es eine Differenz von 15 PIV geben, die man als Wechselgeld zurück erhält. Dieses Wechselgeld kann die geheime Transaktion gefährden, weil es auf eine existierende Adresse hindeuten kann, wenn man das Wechselgeld zurück in eigene PIVX-Adressen mischt.

    Um dies zu verhindern, gibt es zwei Methoden. Die erste Option ist ein eingebautes Feature, welches das Wechselgeld automatisch in zPIV gutschreibt. zPIV wird als PIV an eine Zieladresse gesendet und das übriggebliebene Wechselgeld wird dann von PIV in zPIV umgewandelt. Das ist die praktischste Methode. Allerdings wird der Restbetrag, welcher nicht in eine Wertstufe konvertierbar ist, als Gebühr einbehalten (die kleinste Wertstufe ist 1).

    Die zweite Option ist, das Wechselgeld einer Standard-PIVX-Adresse gutzuschreiben. Hier muss der Nutzer eine Entscheidung darüber treffen, ob er das Wechselgeld an eine neue oder bestehende Adresse zurückbezahlt haben möchte. Diese Option kann zu Fehlern führen und ist insbesondere nicht zu empfehlen, wenn bei der Transaktion Anonymität im Vordergrund steht.

    zPIV Daten-Integrität

    Jede konvertierte zPIV-Wertstufe ist mit einer eindeutigen Seriennummer verbunden, welche in der lokalen wallet.dat und nicht in der Blockchain gespeichert wird. Das bedeutet: immer wenn eine neue zPIV-Wertstufe geschöpft wird, sollte von der wallet.dat-Datei ein Backup gemacht werden (da das vorherige Backup nicht die Seriennummer der neu kreierten zPIV-Wertstufe beinhaltet).

    Die Seriennummer und andere wesentliche zPIV-Daten werden, bevor die Transaktion komplett ist, in die Datenbank geschrieben (wallet.dat) und dann an das Netzwerk übermittelt. Dies minimiert das Risiko, frisch geschöpfte zPIV durch ein unerwartetes Ereignis wie einen PC-Crash oder Verbindungsproblemen mit dem Internet zu verlieren.

    Durch das lokale Datenbank-Design ist es zwingend notwendig, dass man ein Backup seiner Wallet erstellt, wann immer man neue zPIV erstellt; so stellt man sicher, dass die Seriennummern der Wertstufen immer aktuell sind.

    Technische Spezifikation (v1.0)

    Schlüssel-Features: Spezielles Akkumulator-Checkpoint-System

    Akkumulator-Verschlüsselung: RSA-2048

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

    Zeit um zPIV zu schöpfen: >= 0,5 Sekunden

    Ausgabe-Zeit: >= 2,5 Sekunden

    Maximales, einzelnes Ausgabe-Limit: 35.000 PIV

    Maximales, einzelnes Ausgabe-Limit an Werstufen: 7

    Blockgröße: 2 MB (war 1 MB vor der v3.0.0 zPIV-Wallet)

    Gebühren (Schöpfen): 0,01 PIV pro geschaffener zPIV-Wertstufe

    Gebühren (Ausgabe): Keine Gebühren um zPIV zurück in PIV zu transferieren

    Minimale Anzahl an PIV-Bestätigungen um zPIV zu schöpfen: sechs

    Minimale Anzahl an PIV-Bestätigungen um zPIV auszugeben: 20

    Weitere Anforderungen, bevor zPIVs ausgegeben werden können: Nachdem die kreierten zPIV zum Akkumulator hinzugefügt wurden, müssen drei weitere Mints hinzugefügt werden.

    AUTOREN

    Geschrieben von: jakiman, 4ml

    Technischer Input von: spock, presstab, fuzzbawls, mrs-x

    Übersetzt von: jan

     

    EINZELNACHWEISE

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