CUTcoin

PRIVACY FOCUSED TOKENS

Technical Roundup
Feb 4th '20 / Current stages
As you all know, our dev team is working on Private Tokens, the major feature for CUTcoin that includes multiple updates in the project codebase and infrastructure.
And now we've decided to shed some light on the development process and especially the current state of work, mainly focusing on the technical details.
CUTcoin Privacy Focused Tokens' development includes several steps:
  1. Preliminary research required to prove the concept, reveal means to be used and possibilities of the exact implementation.
  2. Add functions to work with the unique Token ID to identify and differentiate between tokens. Check for Token ID naming conventions, supply range, etc.
  3. Add Token Id support in CryptoNote serialization/deserialization mechanisms. This requires a hard fork and tx version 3 as 'token_id' field is added to all outputs in the transactions.
  4. In the wallet, add balance splitting between different tokens. CUTcoin 'token_id' is 0.
  5. Change selects/updates in LMDB so that 'token_id' can be stored.
  6. Add command that creates tokens in the CLI wallet ('create_token').
  7. Update Bulletproofs so that transactions with the tokens of different types could be transferred together without mixing of amounts. We suppose tx fees should be paid in CUTcoins and, say, for token_id=3, 'sum of amounts of unspent outputs' = 'sum of outputs to the destinations' + 'change'. We need to use additional EC basepoint here (along with rct::H) in order to distinguish between different token species.
  8. Add command 'token_transfer' in the CLI wallet in order to make token transfers available for users.
  9. Add visualization of token balance in the CLI wallet.
  10. Infrastructure updates: token support in the CUTcoin Block Explorer, Token Explorer with a list of the registered tokens, etc.
By now
Steps 1-6 are completed and 7-8 are now under development.
Step 7 is quite tricky and requires an accurate approach as it deals with bulletproofs that are, on one hand, essential for reliable system functioning and provide desirable anonymity and, on the other, are quite complicated from the algorithmic point of view.
We expect that once we finish with 7-9 we then involve all interested members of the community into early testing as tokens are absolutely new for CryptoNote and we would like to hear your opinion to take it into account.

So here we go!