Tutorial
In this section, we describe how to use the pallet for privacy-preserving transactions.
You can check Frequent Errors when the error happens.
Abstract
The privacy-preserving transactions consists of several pallet components. We roughly explain what kind of role for each pallet has.
pallet-plonk
plonk is a zk-Snarks scheme and allows us to prove that the computation was done correctly. We perform transaction on off-chain and generate the proof. The blockchain verifies the proof and approve the transaction. We define the constraints circuit for confidential transfers and confidential smart contracts by this pallet.
pallet-encrypted-balance
Users balances are encrypted by default. We use additive homomorphic arithmetic to hide the integer in transaction. Combining original pallet-balance and ElGamal encryption and we implemented pallet-encrypted-balance. This pallet can't be used only by this self, because this doesn't check the validity of additive homomorphic arithmetic.
confidential_transfer
Users can transfer without being known actual amount by others with this pallet. plonk checks the confidential transfer constraints and pallet-encrypted-balance performs the additive homomorphic state transition.