I would like to see STEEM support confidential transactions. But I want more than just confidential transfers of funds between accounts; and not just the addition of confidential messaging.
I want every operation to have a confidential option. Even if it doesn't make any sense. Yes, you can probably accomplish all of this by using tor
, but the point is to make the features fully complete and somewhat hidden unless the user wants to dig deeper.
Because every operation would have a confidential counterpart, this means we would also have:
Confidential Accounts
A single non-confidential account might want to control tens or hundreds of confidential accounts, depending on what they need. The default would be to only control one.
Perhaps a user only likes to use confidential voting. But when it comes time to earn curation rewards on confidential votes, we need to send the reward to a confidential wallet.
Confidential Wallet
Each confidential account would have its own wallet and balances. In fact, before a confidential vote can be made, the account has to be funded so it can have voting power.
Confidential STEEM Power
Since each confidential wallet has its own balance, they will also have their own VESTS balance. The same 13-week power-down rules would apply, so if someone wanted to move confidential VESTS back into their non-confidential account, they'll have to power down just like any other account.
Confidential Reputation
Just like everything else, reputation earned by a confidential account would not apply to the non-confidential owner.
Confidential Everything
Here's a list of many existing operations. Some are a little obscure. Let's explore them as if they were confidential and see what other features we might find:
account_create
- A witness creates an account, but nobody knows who created it. It's funded by a confidential balance.account_update
- Seems silly, right? If the account confidentially updates a non-confidential account, you know who did it. But it comes in handy if a confidential account updates itself.account_witness_proxy
- When a confidential balance is funded, the account might as well have the ability to proxy its witness votes to someone else.transfer_to_savings
&transfer_from_savings
- Why not?comment
- Posts and comments. To me, this is one of the most compelling ideas for confidential transactions. Rewards would be applied to a confidential balance. So would reputation.comment_option
- This one doesn't really make sense if the comment isn't confidential. But this is what I mean by giving all operations the option of being confidential, even if they don't make sense.set_withdraw_vesting_route
- When an account powers down, the balance can be sent to another account. Sending it from a confidential account to a non-confidential account might be interesting. Most likely, it'll be used from confidential to confidential.vote
- Allowing a confidential vote is probably the most important feature STEEM could ever have. It's even more important than confidential transfers, in my opinion.
Optionally Multiple Confidential Accounts
Another thing that would really help complete this feature is if the confidential account could be optionally shared between multiple operations. Normally, they would, but under the hood, this is just an option.
Only having one confidential account makes the most sense when posting many comments, where the author wants to allow multiple posts to exist under the same identity.
But sometimes, you might not want a post to be connected in any way to another confidential identity. So you can have the option to post as a completely independent identity with no reputation, balance, or any kind of history.
I'd imagine for simplicity, most users would not segment all of their operations into tens or hundreds of confidential accounts. So the default UI would only expose one confidential account.