zero-chain
zero-chain copied to clipboard
A privacy-preserving blockchain on Substrate
When users get their balances, encrypted balance and pending_transfer are printed out by default. It seems messy, so add cli flags to print out these value. https://github.com/LayerXcom/zero-chain/blob/1fc625f714442dba590d0dac95e78bf4b2a49392/zface/src/main.rs#L275-L277
Fix the accounts status(live or dead) not to be depending on balance module. https://github.com/LayerXcom/zero-chain/blob/3df39dfee20b82dacb6b96004dbde0f13795d59c/runtime/src/lib.rs#L150
It would be like the existing [Assets srml](https://github.com/paritytech/substrate/blob/master/srml/assets/src/lib.rs) for confidential transfer. Each encrypted balance will be with ID for identifying the assets.
Implement zeroize to memory for secrets https://github.com/iqlusioninc/crates/tree/develop/zeroize
Related: #86 - Parallelize decryption - Add `start` parameter for efficient https://github.com/LayerXcom/zero-chain/blob/1fd23249d72c9368634cea89a96e7752be454cbd/core/crypto/src/elgamal.rs#L77-L82
https://github.com/LayerXcom/zero-chain/blob/79dd2292605ccae0e47b4314b9a1b13aeefbf6c2/zeroc/src/main.rs#L416-L417
Related: #62 , #57 , #46 For the current inefficient decryption, encryption hints(vG(v=1,2...)) could be added to the database.
If the `zk proof` is invalid on substrate node, it is needed to be notified to the client. https://github.com/LayerXcom/zero-chain/blob/aa602d3b5e092fb54aa6e49aaf2fe8834bae395f/runtime/src/conf_transfer.rs#L219-L224
The multiexp function is currently based on the bellman lib. https://github.com/LayerXcom/zero-chain/blob/10c89dc993b9c94e99d6a088ac83093ecbfa4934/core/sonic/src/utils.rs#L209-L214 We might optimize it more based on zexe's one which is based on rayon and avoiding use of trait...