PIVX Zerocoin (zPIV) テクニカルペーパー

改訂版 0.9

20171016日改訂

PIVXの概要

 

PIVXは、ビットコインをベースにし、非中央集権化・プライバシー・そして現実世界での実際の利用に焦点を当てた、コミュニティ中心の仮想通貨です。PIVXはエネルギー効率の良い「プルーフ・オブ・ステーク 」プロトコルを使用し、第2層マスターノードネットワークによって、包括的なコミュニティ・ガバナンスを実現し、同時にブロックチェーンをベースにした自己資金調達システムによって、サステナビリティを確保します。

PIVX は常に、より良いガバナンスシステム・瞬間的なプライベート取引・代替性を実現し、次世代のコインとして走り続ける為に、たゆまぬ努力を続けています。

平たく言うとPIVXとは基本的に、取引手数料はほぼ無料で、世界中のどこにでも瞬間的に、簡単に送受金できるオンラインのデジタル通貨です。 PIVXは様々な取引所で購入する事ができます。また、PIVXをそのまま保持すれば、利息のように報酬を受ける事もできます。また、取引所で他の仮想通貨を購入する事もできますし、PIVXに対応している場所であれば直接、オンラインやオフラインで商品やサービスを購入する事も可能です。

PIVXは、どのような個人にも、団体にも所有されておらず、また支配されていません。そしてそのネットワークは世界中のユーザーによる何千ものノードによって守られています。

PIVX のゴールは、迅速で、安全で、非中央集権で、プライベートな最前線のデジタル通貨になる事なのです。

 

仮想通貨取引のプライバシー

 

ビットコインを始めとするほとんど全ての仮想通貨は、ブロックエクスプローラーを介して全ての取引が公開可能で、追跡可能である「公的帳簿システム」を使用しています。結果として、誰もが関連する取引や残高を見る事ができます。しかしここで注意すべき点は、その関連アドレスをも見る事ができるという事です。つまりこれは、ひとたび通貨がブロックチェーンを通り、貴方自身のウォレットアドレスに移動したら、貴方自身のアドレスを通じて、そのアドレスの以前の所有者の履歴を誰もが見る事ができるという事なのす。

                                                                                      

1つのアドレスは、完全な匿名性を持っているように見えますが、ひとたび貴方が取引所によって生成されたアドレス、またはその他の小売りサービスが生成したアドレスを使って取引きを完了したら、貴方は基本的に、自分の匿名性があるアドレスと、貴方の身元に繋がる可能性のあるアドレスを関連付けたという事になるのです。

ほとんどの場合、このような透明性は大きな問題にはなりません。 しかし、万が一貴方が持っているコインが、望ましくない過去を持っているだとか、ハッカーなどに貴方のアドレスが狙われたとしたら、この事が重大な問題になる可能性があります。

例えば、貴方が受け取ったコインが、違法な活動をしている個人や団体によって保有されていたものだとします。そのコインの取引は政府によって監視・追跡されています。この事はつまり、貴方がもし何も知らずに、ただ合法的にそのコインを受け取っただけだとしても、貴方とそのコインの元所有者との関係について政府から質問を受けたりする可能性があると言う事なのです。 また、こういった履歴を持つコインは、そういった履歴を持たないコインに比べて価値を低くみなされる可能性があり、代替性が低下する恐れもあります。

 

私達のソリューション=ゼロコイン・プロトコル (zPIV)

 

このような問題を解決する為、 2017年10月にリリースされた v3.0.0 コア・ウォレットのアップデートによって、 PIVXは、多くのカスタマイズされた強化点を持つ有名なプロトコル、Zerocoin(ゼロコイン)を実装しました。この事により、ブロックチェーンレベルの取引の匿名性に加え、さらにリンク不能性(取引とアドレスの関連付けが困難)が向上しました。

私達はこれをzPIVと呼びます。 PIVPIVXの1単位であり、頭に付いているzは、 Zerocoin(ゼロコイン)を意味します。

zPIVが提供するのは、100%の匿名性とリンク不能性を持ちつつ、ゼロ知識証明を使って、送信者と受信者の関連性を切断するプロトコルレベルのコインミキシングサービスです。

すなわち、zPIVを使って送信された1つ1つのコインには決定可能な履歴が何もついていないので、100%代替可能だという事になります。

zPIV を使用する事はまた、あなたの残高を隠し、潜在的なハッカー等からあなたの資産を守る事を意味します。これは、現在市場に出ている他の仮想通貨のほとんどが持っていない、とてもユニークな機能です。

PIVX zPIV アキュムレーターは、 RSA-2048[1] というチャレンジによって生成されたキーによって暗号化され、開発者による信頼された設定を行う必要性を否定します。つまり要因を知るものが誰もいないという事になります。つまり、zPIVを使う事で、全ての人のプライバシーが確保されるのです。

 

ユニークな要因

 

この文書を書いている2017年9月現在、PIVXは、ゼロコインプロトコルのイデオロギーと実践を完全なセットで実装した唯一のプルーフ・オブ・ステーク仮想通貨となっています。 元々あった、学術的な暗号学者によって開発されたlibzerocoin(リブゼロコイン) のパブリックリポジトリを基軸にしている為、ほとんどのPIVX zPIV コードは特別で、zPIVをさらにユニークなものにしています。

オリジナル版 ゼロコインホワイトペーパー: https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf

現在ゼロコインベースのプロトコルを使用している他のほとんどの仮想通貨と異なり、PIVX zPIVは、とても効率的なアキュムレーターチェックポイントシステムを使用しています。それにより、 zPiv の送金プロセスで、zPIVのミントが使われる前に作られた全てのミントと、チェックポイントを超えてユーザーによって選ばれたzPIVミントを含んだチェックポイントを使用できるようになります。このお陰で、はるかに少ない計算を必要としながらも、アキュムレーター内に、より多数のコインが存在できるようになります。 PIVX zPiv の実装によって、資源の消費は最小限になり、 zPIV 取引は、現在のマーケットにおける最速のプライベート取引の1つとなるのです。

 

PIVX zPIV の技術的な利点

 

  1. より小さい取引サイズー実稼働環境において、現在ある他の実装よりも平均25%小さい取引サイズ(仕事のさらなる最適化)
  2. 迅速な承認とネットワーク同期パフォーマンス
  3. zPIVからPIVX アドレスへの直接の送金
  4. 1回の取引で、複数のZerocoin デノミネーション送金が可能
  5. 正確な数量を送金し、残高の変更をPIVXアドレス又はさらなるzPivに対し記録発行する能力

 

zPIVを使う事での実生活における利点

 

  1. zPIV は、ターゲットを探している悪意のある目から貴方のコインの残高を隠す事が可能です。
    • 貴方のzPIV残高は、どのような特定のアドレスにも関連付けられていません。
  2. zPIV は、送金されたコインの取引履歴を隠す事ができます。
    • 送信元と送信先のアドレスは誰にも見る事ができず、取引をプライベートで、安全で、代替可能なものにします。
  3. zPIVの匿名性取引は大変迅速に行われます。
    • その速度は、ミンティングに最短で0.5 秒、そして送金には2.5秒という速さです。
  4. zPIVへの自動変換はデフォルトで有効化されていますが、透明化取引のオプションを選択する事もできます。
    • つまり、必要に応じていつでも、完全に透明性のある取引を使って送金を行う事が可能です。

 

どのようにして匿名性が実現されるのか

 

  1. 貴方のPIVzPIVデノミネーションにミントする (ウォレット自動ミンティング。デフォルトの場合もある)
  2. zPIV PIVとして内部または外部のPIVXウォレットアドレス宛に送金する

基本的に、ゼロコインプロトコルは、自分のPIV残高から、デノミネーション宛てに人々が変換した(ミントした)全てのzPIVをプールします(つまり、結合させます)。そして、支払いが発生する際に、それらを使って送金を行います。しかし、プーリングによって全ての人のzPIVが一点に集中して保管されるという意味ではありません。 むしろ、zPIVがどれだけ生成されているかは、公的帳簿(非中央集権化ブロックチェーン)によって記録されています。

貴方がzPIVをいくらかPIVXアドレス宛てに送金したい(使いたい)時には、貴方のウォレットはゼロ知識証明をブロックチェーンに送ります。ブロックチェーンはそこでzPIVをもう一度PIVに変換し直し、目的とするアドレス宛に送金します。これが、ただ1つのステップで行われます。

送信者が、蓄積されたプール(アキュムレーター)内にコインを保有しているというゼロ知識証明を提供できる場合には、zPivの使用によって、全く新しいコインが作成されます。つまりそのコインが以前に関連していたアドレスの取引履歴との関連性は消え、すなわち追跡不可能な取引となるのです。

わかり易い例でお伝えします。 zPIVを、カジノのチップに例えてみて下さい。貴方は、貴方の100ドル紙幣(PIVに例えます)をキャッシャーに渡し、10ドルチップ1枚、20ドルチップ2枚、50ドルチップ1枚に交換したとします。(zPIVに例えます)これは、貴方はもう、自分が交換した100ドル紙幣を所有していない、しかし代わりに、100ドルを所有しているという「証明」を持つという事を意味します。では、もし貴方がそこから50ドルを現金に(つまり、この例ではPIV)換金する必要がある場合は、貴方は持っているチップ(この例ではzPIV)をキャッシャーに返して、キャッシャーは全く新しい、まだ出回っていない50ドル紙幣を、貴方が選択した受取先に届ける、という事になります。

 

zPIV ミンティング & 使用プロセス

この例では、カービーはハイディにZerocoinプロトコルを使ってPIVを送金し、取引に匿名性を持たせたいと考えています。

ミンティングのプロセス手順

  1. カービーは960zPIVをミントするというリクエストを送信する。
  2. ゼロコインプロトコルが、カービーの960PIVを、使用可能な最大限のzPIVデノミネーションを使い、同等量のzPIVに変換する。
    1. この背景では、カービーがこのミント(ゼロコインプロトコルによって使われる、特定のzPIVデノミネーションの量を追跡する為のユニークなシリアル番号)を所有するという、カービーだけが知る秘密の知識を与えられたという事になります。
  3. カービーの残高は更新されます。
    1. PIVが960減少し、zPIVが960増加します。
    2. カービーはまた、960zPIV が、追加された以下のデノミネーションを含む事を確認できます。: 1x 500 zPIV 4x 100 zPIV 1x 50 zPIV 1x 10 zPIV

 

送金プロセスの手順

 

  1. カービーは960zPIV をハイディのPIVXアドレスに送金するという指示を送信します。
  2. ゼロコインプロトコルは、カービーが所有者本人であるという事を示すカービーの秘密の知識を受信し、検証します。ひとたび使用(送金)された後は、最初にミンティングされた残高を再度使用する事はできなくなります。
  3. ゼロコインプロトコルが、960PIVをハイジのPIVXアドレスに作成します。
    1. ハイディは、960PIVを、匿名の送信者から受け取ります。
    2. カービーの残高は更新され、960zPIV が減少します。

 

デノミネーションについての説明

 

高いレベルの複雑性を保ちながらも取引の効率を高める為、PIVXは、zPIVとしてコインプールに変換されるコイン(PIV)金額を表す、整数ベースの共通分母をいくつか実装しました。(上記で説明しているカジノのチップスの例に似ています。)

zPIVによって使用されるデノミネーションは: 1, 5, 10, 50, 100, 500, 1000, そして5000です。 これらのデノミネーションを使う事で、シンプルさ、便利さ、そしてセキュリティのバランスを保つ事ができます。トレーサビリティ(追跡可能性)を小さくする為の究極の方法は、ただ1つのデノミネーションだけを使う事です。 (例:1 zPIV)。しかしながら、そうすると大きな取引の場合に大変多くのコインを必要としてしまうので、この方法は実質上はあまり便利ではありません。

とても多くのコインを使用する事は、トレーサビリティを増加させる可能性があり、セキュリティが危機にさらされます。故に、8つのデノミネーションだけを使用するという結論にまとまったのです。これらの数値は、デノミネーション内で高過ぎるコインも、低過ぎるコインも含まない為に、「スイートスポット」と見なされます。

PIV の価値が変わった場合には、ユーザーのニーズに対応する為に、この数値を変更する可能性があります。

zPIVを送金する時、貴方は、当該デノミネーションにおける他のzPIVミントを含む、当該デノミネーションのコインを所有するという証明を持つという事になります。

これはつまり、全てのzPIV の償還は、整数で行われるという事になります。(しかし償還にかかる手数料は小数点以下の数字を使用します)つまり、 zPIV の使用前と使用後の値は、同じにはならないという事です。また2つの異なるアドレスからの送金となります。そして他にも多数の、似たような zPIVからPIVへの取引が行われています。

 

デノミネーションのロジック

 

zPIVをミンティング(変換)または使用(支払い)する時、それぞれのアルゴリズムが、自動的にどのデノミネーションを使用するかを決定します。

zPIVPIVXアドレス宛に支払い(送金)する時、以下のアルゴリズムが、ユーザーによって使われるデノミネーションを自動的に決定します。

1) もし:あなたが、ピッタリの金額を持っている場合は、使用できる最大のデノミネーションから始め、合計金額に達するまでその数値を下げていく。

2) そうでなければ:使用金額を最小限にする (a)使用したい金額よりも大きな数値の次のデノミネーション を探し(もし可能な場合)、もし使用可能であればそれを使う。 (b) もしそれが使用できなければ、より大きなデノミネーションから始め、必要な金額よりも少し多い金額に到達するまで数値を下げて行く。

3) または: お釣りを最小限にする。もしピッタリの金額で無ければ、必要な金額よりも大きい金額で、お釣りとして受け取るコインが最小になる値を探す。

 

自動ミンティング

 

zPIVのプライバシー性は、それぞれのデノミネーションが、多くの異なるソースからミンティングされた時に、より効果的になります。ですのでこの効果性を確保する為に、PIVXウォレットは自動ミンティング(変換)の機能を持っています。この機能によって、設定可能な金額のPIVを、手動で変換する必要無しでウォレットの残高からzPIVに自動ミンティング(変換)する事が できます。

自動ミンティングは、ウォレットすなわちデーモンが開始し、ウォレットがロック解除され(完全に、又はステーキングのみ、どちらでも)、ブロックチェーンが同期された時にスタートします。つまり、もし貴方のウォレットが暗号化されロックされている場合には、自動ミンティング機能はスタートしません。ウォレットがロック解除されても、やはり、マスターノードの担保として使用されておりロックされているUTXO には触れません。

デフォルトのパーセンテージ: 10%GUIを通じて、またはコマンドラインオプション`-zeromintpercentage=<n>` または、 pivx.conf `zeromintpercentage=<n>`を通じてチャージする事ができる。この値は10%以下にしてはいけない。

デフォルトの状態: 有効。コマンドラインオプション `-enablezeromint=0` or pivx.conf `enablezeromint=0` を通じて、無効化する事ができる(例:取引所の為など)

ユーザーは、UI、及びコマンドラインオプション `-preferredDenom=<n>` or pivx.conf `preferredDenom=<n>` <n>は使用可能なデノミネーション数値、以下のうちどれか`1/5/10/50/100/500/1000/5000` または `0` (どの数値でも良いので、自動ミンティングに数値を決定させるという意味) を使って、自動ミンティングの為に自分の好きなデノミネーションを設定する事ができる。

もし自分の好きなデノミネーションの為に十分なコインが無い場合には、自動ミンティングは十分なコインが使用可能になるまで待機します。

 

新しいブロックが入ってくる度に行う事:

  1. ミンティング可能なコインがどれだけあるかチェックする。
    1. これには、未完成のコインやロックされたコインは含まない。 (例:マスターノードからのコインなど)
  2. どれだけのZerocoin/zPIVが使用可能なのかを調べる。
  3. 目的のパーセンテージよりも、パーセンテージが低くないかをチェックする。

もしパーセンテージが、目的のパーセンテージよりも低い場合には:

  1. zPIVに変換する為にどれだけのPIVが必要かを計算する。例: 2015
  2. 次に小さいデノミネーションを使い、 (ここでは1000 PIV) 1000 zPIVをミンティングする。
  3. 十分な数のzPIV がミンティングされるまで、繰り返す。

上記の例では、最初に入って来るブロックが1000 zPIVのミンティングをトリガーし、次に入って来るブロックがまた1000 zPIVのミンティングをトリガーし、次に入って来るブロックが10 zPIV、そしてその次が5 zPIVをトリガーする事になります (新しく入ってくるPIVが、使用可能なPIVの基本数を変更しないと仮定した場合)

 

次に小さいデノミネーションを使用する、そして1つのブロックに対し1つのデノミネーションのみを使用する事の理由は、パフォーマンスの維持です。既に正確なデノミネーションは明らかに、さらに正確なデノミネーションに分解する必要は無いし、1回のミンティングは適切な時間内に行う事ができるからです。

例外: もし、大量のPIVがミンティングされる必要がある時には、私達は最大のデノミネーション数値である5000 PIVは使わず、6666 PIVを使います。その事によって、使用可能なデノミネーションをより均等に分配する事ができるからです。 (6666 = 5000 + 1000 + 500 + 100 + 50 + 10 + 5 + 1、すなわち 8つの使用可能なデノミネーションに分配できる)

 

zPIV 自動ミンティングのプロセス

 

(デフォルト設定に基づく)

    1. ゼロコインプロトコルが実用化される前に、カービーは17,900 PIVの残高を所有していました。彼はマスターノードを持っているので、彼の残高の内の10,000 PIVは、マスターノード専用のアドレスに保有され、担保としてロックされています。カービーは、残りの7,900PIVをロックする為にCoin Controlを使用していません。
    2. ゼロコインプロトコルが実装されました・・
    3. ゼロコインプロトコルは、以下のようにしてそれぞれのアドレスを個別に処理します:
      1. コインがロックされているかを判断します。
      2. コインがロックされていない場合には、PIVの10%をzPIVに変換します。
      3. コインがロックされている場合には、何もしません。
    4. カービーは、残高が790PIV減った事を確認しました。つまりこれは、彼の残高の内ロックされていない分の10%に相当します。
    5. カービーはまた、残高が790zPIV増えている事を確認しました。彼はzPIVのデノミネーション数値の希望を指定していなかったので、以下に示すデノミネーションが使用可能となります:
    • 1x 500 zPIV
    • 2x 100 zPIV
    • 1x 50 zPIV
    • 4x 10 zPIV

    送信のセキュリティレベル

    zPIV デノミネーションを使用時、ユーザーは1から100の数値の間でのセキュリティレベルの選択を促されます。間接的な方法で、セキュリティレベルのパラメータはユーザーに、いくつのコインを使って取引を難読化させるかを選択させているのです。

    例えばセキュリティレベル1では、貴方のミントがブロックチェーンに追加される前に、ミンティングされたコイン全てをブロックチェーンに入れ、それから同様に、次の10つのブロック以内にミンティングされたコインを追加します。セキュリティレベル2では、同じ事が行われます。しかし異なる点は、次の20つのブロックと同等値のミントを追加する事です。

    セキュリティレベル100では、現在のブロックチェーンの終わりまでで可能な最大値のミントを追加します。

    つまりセキュリティレベルが高いほど、送金を行う為に、より多くの計算と時間が必要になります。最大の匿名性を必要とする取引には、より長い時間はかかりますが、セキュリティレベル100が最も推奨されます。

    お釣りの処理

    zPIV は固定したデノミネーションによって作られたものなので、時には送金に必要な金額を、今あるデノミネーションでは作れないという時もあります。例えば、もし貴方が1つの 1000 zPIVデノミネーションを持っていて、そこからあるアドレス宛に 985 PIV を送金したいとします。ここで、受け取られ、お釣りとして返ってくるべき15 PIVの差が生まれます。

    このお釣りによって、取引の匿名性が低下する可能性があります。なぜなら、もし貴方が間違えて自分の他のPIVXアドレスにこのお釣りを送金してしまった場合には、このお釣りを辿って、貴方の現在のアドレスに到達する事が可能だからです。

    このような事を防ぐ為に、2つの方法があります。最初の方法は、もともと付いている機能を利用し、自動的にこのお釣りを zPIVに変換するという方法です。これによってzPIV を、送金先アドレスに必要な金額のPIVにして送金し、そして、PIVとして残っているお釣りをミンティングしてzPIVに戻します。この方法は最も便利な方法です。しかしながら、お釣りの金額がもしデノミネーションに変換できないような数値だった場合には(デノミネーションとして使用できる最小の数値は1です)、そのお釣りは手数料として計算される事になります。

    2つ目の方法は、お釣りを通常のPIVXアドレスに発行するという方法です。

    その事によって、日常に使用するPIV残高と、こういったお釣りを分離して取り扱う事ができます。しかしこの方法は、間違いが起こり易く、また、匿名性が重視される取引に対しては推奨されません。

    zPIV データの統合

    ミンティングされた全ての zPIVデノミネーションは、ブロックチェーン上では無く、ローカルコンピューターのwallet.datに保管されているユニークなシリアル番号に関連付けられます。つまり、前回のバックアップは新しくミンティングされたzPIVデノミネーションに対するシリアル番号を持たない為、新しいzPIVがミンティングされた時には必ずwallet.datがバックアップされる必要があるという事を意味します。

    シリアル番号と、他の重要な zPIVデータは、取引が完了し、ネットワーク上に知らされる前にデータベース(wallet.dat)内にコミットされています。これによってzPIVのミンティング最中に起こり得る、PCのクラッシュやインターネット接続の問題等の予期しない出来事などによって、新しくミンティングされた貴方のzPIVデノミネーションを失うリスクが減少します。

    ローカルデータベースの仕組みが理由ですが、新しいzPIVがミンティングされる度に、貴方のウォレットを バックアップし、貴方のデノミネーションのシリアル番号を最新に保つ事がとても重要です。

    技術的仕様  (v1.0)

    重要な機能:  カスタム アキュムレーター チェックポイントシステム

    アキュムレーター暗号化: RSA-2048

    zPIV デノミネーション分母: 1, 5, 10, 50, 100, 500, 1000, 5000

    ミンティング時間: >= 0.5 秒

    送金時間: >= 2.5 秒

    1回の最大送金上限: 35,000 PIV

    1回の最大送金デノミネーションカウント: 7

    ブロックサイズ: 2 MB ( v3.0.0 zPIV ウォレット以前は1 MB )

    手数料 (ミンティング): ミンティングされたzPIV デノミネーション毎に0.01 PIV.

    手数料 (送金): :  zPIV PIVに送金する(戻す)手数料は無料

    zPIV をミンティングする為に必要とされるPIV承認の最小値: 6

    送金する為に必要とされる zPIV 承認の最小値: 20

    zPiv を送金する前に必要な追加の必要条件: 貴方のミントが追加された後にアキュムレーターに3ミントを追加する事

    製作スタッフ

    著者: jakiman, 4ml

    テクニカルインプット: spock, presstab, fuzzbawls, mrs-x

    翻訳: Kana “Surfermom” Akaogi

    参考文献

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