Privacy protection for blockchains with account and multi-asset model

The blockchain technology has been applied to wide areas. However, the open and transparent properties of the blockchains pose serious challenges to users' privacy. Among all the schemes for the privacy protection, the zero-knowledge proof algorithm conceals most of the private information in a transaction, while participants of the blockchain can validate this transaction without the private information. However, current schemes are only aimed at blockchains with the UTXO model, and only one type of assets circulates on these blockchains. Based on the zero-knowledge proof algorithm, this paper proposes a privacy protection scheme for blockchains that use the account and multi-asset model. We design the transaction structure, anonymous addresses and anonymous asset metadata, and also propose the methods of the asset transfer and double-spending detection. The zk-SNARKs algorithm is used to generate and to verify the zero-knowledge proof. And finally, we conduct the experiments to evaluate our scheme.