Deincentivize t-t transactions idea

So Zcash has a huge problem that we are all aware of. Less than 10% of all coins are held within the shielded pool and even fewer transactions have been made fully private (z to z transactions). I believe the last count of fully private transactions was around 10k, and please correct me if I am wrong.

The reason for this is simple. Z addresses suck to use. Sapling is set to fix most of the glaring reasons why, but making z more accessible might not be enough to get people to switch. Exchanges and HODLers care more about profit than privacy. Since this group of people will almost certainly possess most of the coins on the future, we need a way to push them to move their coins into the private pool.

So here is my proposal, do a soft fork that would require all t-to-t transactions to have a minimum 0.01 ZEC fee. Z addresses already have a standard fee of 0.0001 ZEC, so adding this requirement would make doing fully transparent transactions 100x more expensive.

The economic incentive is really clear. Exchanges that process to only t addresses will having higher fees and thus users will be less likely to use them. Investors will move their funds into z address to avoid the larger mining fee, and mobile wallets that pop up will default to generating z address to avoid confusing users on why the fees are so high. And most wallets that DO support t to t will almost certainly put in a pop-up warning telling users that these are more expensive, this making the user less likely to use them at all. By deincentivizing t to t transactions, thousands of more coins will move into the shielded pool, increasing the privacy of ALL users.

All of the deincentivizing becomes amplified too if the price increases, which means as new users are added, they will be more likely to enter into a ecosystem where z addresses are the default, rather than t addresses.

Now of course this can not happen before sapling, or probably even before 2020. But we need to start discussing this now if we really want z to become the default. I don’t believe just an increase in usability to be enough. This economic push, while possibly controversial, will be beneficial in the long run.

Thoughts? Critisisms?

T addresses were a huge mistake in my opinion. I understand that they were a nessissary evil to get Zcash off the ground, but the fact that there was no long term plan to deprecated them shows a huge oversight in what is otherwise an amazing invention.

2 Likes

Great post and an important discussion. There was actually a workshop at Zcon0 about getting to “privacy by default” that touched on a lot of similar ideas including incentives/disincentives so it is definitely being discussed. The notes from that workshop are here: zcon0-workshop-notes/towards-privacy-by-default.md at master · ZcashFoundation/zcon0-workshop-notes · GitHub

I personally don’t like the idea of disincentivising t-addrs in the way you suggest as, in my opinion, it makes what is already a confusing user experience even worse. Further, this cost would typically be borne by the user so the exchange would likely be minimally affected. It may have the unintended consequence that users simply leave their Zcash on the exchange rather than pay to transfer it off.

The only way I think this issue is solved is by deprecating t-addrs, which practically would mean disallowing sending to a t-addr at a certain point in time (you’d need to allow sending from t-addrs but only to z-addrs to ensure noone loses funds). The issue at present, in my opinion, isn’t necessarily that t-addrs exist (though I agree with your sentiment about them) it’s that z-addrs are so hard to use. This will only be solved with Sapling and then the subsequent development/tooling/education that needs to follow.

5 Likes

I agree. Flatly disallowing t to t transactions is the ultimate goal. However, I fear that the jump might be too extreme, especially since many wallets (JAXX for example) don’t allow for t to z transactions currently. The fee increase could be a gentle push to the ultimate goal of privacy by default.

Fully disallowing t to t can only happen if t to t makes up less than 10% of all transactions. To make this happen, we need people to switch by their own decision.

Perhaps it would be better to slowly increase the minimum fee. As the fee increases, more users will jump ship exclusively through economic incentives. Exchanges will also be incentivised to add z, if not due to the yelling of the outspoken crowd (see coinbase adding segwit as an example).

1 Like

Interesting idea, but I quite like t-t transactions for things like fundraising campaigns etc - but ZEC should have shielded as default as thats the whole point.

Think this will improve (a lot!) after Sapling when mobile private wallets become possible - looking forward to that.

I actually happened to run this last night, and full disclaimer I haven’t fully checked the result but from my quick analysis up to block 353742 which contained just over 3.5 million txs I got the number of z->z txs to be 11,461 which is in the same ballpark as your number. Here is the breakdown by month (obviously July only contains up till last night) but can spot general trends.

I don’t necessarily disagree just that at the moment the wallets/exchange support is not there to support any disincentivising as all it will lead to is a further complication to the user experience. My point is when we get to the level where we have such support, why not just make it mandatory than further muddying the waters (just to be clear over a longer timeframe).

This is why selective disclosure/viewing keys et al. are important. If you want to make your transactions public then you can.

1 Like

As long as transparent transactions are so much quicker and involve so much less blockchain overhead it’s a very bad idea to punish the people that are actually using this currency.

If you want to push z_address usage then an incentive (beyond privacy of course) would be a much better approach.

1 Like

I don’t like the idea of disincentivizing using t-addresses because they can be useful when users want to opt in for transparent transactions.

I’m most excited about the development timeline of user friendly mobile wallets that can toggle between t-and-z-addresses. …I’m a Zcash supporter and unfortunately I’ve yet to do a z-address transaction.

Please feel free to correct me for my lack of technical expertise.