I'm working on a prototype which will use MimbleWimble Confidential Assets transaction protocol using Cosmos as the blockchain layer.
In my prototype a user is always sending a whole amount to another user (so, one transaction has always one input and one output). Each user can have a public-private key.
- How can a sender generate a blinding factor (r) in a secure and non-interactive way (so even a sender himself can't know the r and spend the receiver transaction)? What's the state of the art?
- Additional question. If we don't record any addresses (so a transaction doesn't have any source account, only the commitments and range proofs), is the user anonymity preserved? So the external observer (assuming he can't link transactions with wallet IP addresses) will not learn anything about who is receiving the transactions.