Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZeroCT - Full implementation with Transaction Amount obfuscation support and ZeroCT Staking #412

Closed
wants to merge 86 commits into from

Conversation

skreener
Copy link

@skreener skreener commented Feb 3, 2019

  • Adds support for Zerocoin Mint and Spend operations
  • New type of address to anonymously receive coins
  • Deterministic private address generated from master private key of the wallet
  • Use of GMP for Bignum operations
  • Use of threading for Mint and Spend verification
  • Witnesser thread for pre-computing of coin witnesses
  • Monitoring of public and private coin supply
  • Staking with private coins
  • Calculation of staking weight based on private coins
  • Fees collected from public transactions are accumulated and only earned by public coin stakes
  • Stakes using coins from the private pool earn in exclusive accumulated fees from private transactions
  • New default data folder: NavCoin5 / navcoin5
  • Testnet uses testnet4 to store chain data.
  • Old NavTech functionality and references are removed
  • GUI-level integrations of private transactions functionality
  • Encryption of the obfuscation parameters for encrypted wallets
  • New rpc commands:
    • getprivateaddress
    • privatesendtoaddress
    • dumpprivateparameters
  • New daemon arguments:
    • -enablewitnesser: enables witnesser thread to precompute coin witnesses (default true)
    • -witnesser_block_snapshot: count of blocks to snapshot and backup witnesses value
    • -witnesser_blocks_per_round: count of checked blocks per witnessing round
  • Includes libzerocoin test units

Consensus rules

  • Transactions do not admit combinations of public and private coins as inputs
  • Serial numbers and Mint coin values can only be spent once
  • Spend/mint fee: per transaction weight

To do

  • Include obfuscation parameters in dumpwallet output
  • When a transaction size is too big, split it in different transactions containing the different spend proofs
  • Accommodate wallet-related RPC commands to the new private transactions functionality
  • Redesign/improve UX in the GUI
  • Remove critical log entries which could compromise user's privacy
  • Improve proof's verification time/general performance
  • Testing ;-)

@mxaddict
Copy link
Contributor

@aguycalled should we close this PR since this work was cancelled?

@aguycalled aguycalled closed this Jul 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants