We are adding zerocoin to NXT in a way that will allow us to identify and fix any fundamental issues regarding incorporating zeroknowledge proofs within the NXT core.
This project is at the proof of concept stage, eg. can this even be done on a small scale demo basis. We are currently very close to an internal release of NXT core that integrates with Tutorial.java, which is a layer that hooks up to Tutorial.cpp from
https://github.com/Zerocoin/libzerocoinThe proof of concept version will be deployed on zeronet for internal testing. Runtime performance and size of data is not a concern for now. In order to accomodate the 30K size of zeroknowledge proof in libzerocoin alpha, bloodyrookie has made a version that has a larger blocksize. This means that during development NXTcash will not be compatible with mainnet blockchain.
NXTcash will be fully opensourced upon completion, but during development, releases will be made internally only. PM me if you want access.
zerocoin.org says that they want somebody to actually use libzerocoin alpha. If anybody is able to contact them and let them know we are doing this, that would be fantastic. We want to integrate in the upcoming zerocash into the proof of concept version, which will help find any issues with zerocash. In order to help convince the zerocoin team, I want to be able to demonstrate a working NXTcash proof of concept, so as soon as we get it debugged, we will load it on a portable computer and fly it to wherever Matt Green is for the demo!
I know zerocoin is working on their own coin, so I hope they are still open to cooperating. It would save them a lot of work if they built zerocash on top of NXT, especially after we have done all the higher level changes to integrate libzerocoin alpha.
Task List
1. port Tutorial.cpp to Tutorial.java - completed by Bloodyrookie
2. integrate NXT core 4.7 and Tutorial.java - almost completed by Bloodyrookie
3. create NXTcash API - completed by Bloodyrookie
4. setup zeronet (testnet for NXTcash) - in progress by klee's team
5. create modified NXT client to support NXTcash API - undebugged release made my marcus03
6. deploy NXTcash proof of concept onto zeronet and debug NXTcash client
7. create demo machine with NXTcash and fly it to demonstrate to Matt Green
8. obtain pre-release libzerocash.cpp (or even object file) to start porting effort
9. debug NXTcash with libzerocash
10. refactor libzerocash into java for inclusion into proposed NXT core
We are developing this using klee's 1 million NXT donation to NXTcashoperatingfund 18388470681791198265
Please donate to NXTcashcompletionbonusfund 13313092584524529006
Since klee is funding the operating costs for this project and taking the risk of 1 million NXT, he will allocate the completion bounty. In the event that we cannot make a NXTcash release acceptable to the NXT community, all donations to the completion bounty fund will be returned.
James