ZGo already has a version of this
Very cool. Hopefully with some small feature creep to Zephyr the challenge response can be more instant .
With multiple billions locked inside various L1 token-enabled protocols, there are enough data points to refer to for setting fees & tokenomics to deploy ZSAs without adopting weird fee models.
- One unique mechanism I’ve come across is how Algorand manages to tackle spam. No one can be airdropped any fungible token or non-fungible token without first opting in. Every token/NFT has an Asset ID which first needs to be registered on-chain for a standard tx. fee. And every wallet/address needs to opt-in to receive the tokens/NFT for a specific asset.
e.g. I create a new ALGO wallet, I need to own some ALGO first, 0.001 minimum, then I need to send a transaction on the network to opt-in to receive the USDC asset by paying 0.0001 (standard ALGO fee), and now my address shows USDC with 0 balance. Only then can someone send me USDC.
- Cardano on the other hand has a flat requirement, that you need to send a minimum of 1.5 ADA per token/NFT along with the token/NFT being sent, if the number of tokens being sent(token & NFTs) are high, the 1.5 ADA increases incrementally(I’m not sure of the exact logic), and the transaction fees are same as transaction ADA. The receiver does not need to own any ADA and can be a fresh address.
Is there an update around tokenmics study from GMU @joshs ? I really wish to keep ZSAs simple without worrying about a free-rider problem. Several custom token eco-systems have spawned on other blockchains, each one ends up locking more native asset in some form of pool as a balance that results in more demand for the native coin. I don’t believe there is any need to complicate the token issuance, transfer and receiving mechanism beyond what exists today in UTXO based chains. @LeCryptoMath
GMU provided a draft. They aren’t ready to formally publish but have agreed to allow us to release it. We plan to do that soon.
The following are my opinions, and not reflective of those of ECC or anyone else at ECC.
It’s pretty clear to me at this point, looking at both Zcash’s early history and the history of other chains, that tokenomics can truly make or break a chain. This really isn’t something we can afford, as a community, to get wrong. Also, it’s easier to reduce or simplify fees than it is to raise them, or add complexity to how they’re assessed. ZSAs are, once introduced, likely to be with Zcash for the rest of its existence - and while I worry about the potential costs of a missed market opportunity, choosing a fee structure that could completely destabilize the entire chain’s economics in the long term would be the worst possible outcome. I really want ZSAs to succeed, and have applications for them already in mind, but I also think it’d be better for ZSAs to fail than to wreck Zcash as a whole.
Zcash, by itself, has one of the strongest long-term value propositions of any project in the cryptocurrency space. ZSAs are a really important feature, so long as they are compatible with Zcash’s fundamental value proposition.
Still relevant
And the more I think about the free rider problem, the more I’m convinced that a dual fee setup is the way to go.
Shielded Assets Discussion - #22 by Shawn
Put simply: Zcash default transaction fees are too cheap to give ZSAs the same cost to use Zcash block space.
Yes, slightly higher fees discourage ZSA use vs Zcash; but not necessarily vs other coins fees. We want people to use native Zcash anyway so that’s not an issue.
Yes, having a separate fee structure would reduce the privacy set of those transactions to hide among others of the same type, yet another reason to use native Zcash in some applications.
Thereby slightly higher fees, and slightly lesser privacy solves both the free rider problem and the “Why would I use native Zcash when ZSA X gives me the exact same thing?” problem that Zooko is concerned about.
We can always ZIP it & fix things that don’t work / improve things. I’d vote for simple UX for end users. Let’s get Zcash blocks filled so we can play with fee mechanism!
Exactly, Ethereum does just fine with the “we think this is the best approach” and closely monitors how it works out. If something is skewing unexpectedly, then they push a patch/update.
It’s literally impossible to know what things people will build with ZSAs and how they will be used. Did Ethereum 1.0 have Bored ape club NFTs in mind back in 2015? No.
We need to stop thinking like ZSA 1.0 release are going to be the perfect economic solution, they are not.
We do need to do the homework and get our best efforts into 1.0, but after that we need to be nimble enough to react to what’s happening on the ground.
How do slightly higher ZSA fees benefit ZEC? People have to hold 0.02 ZEC instead of 0.01 ZEC to cover ZSA fees and Zcash miners get paid slightly more?
If we can only have a shielded stablecoin with ZSA than its all worth it.
Slightly higher in terms of ZEC cost, say .001ZEC or even 0.01, compared to the current ZEC tx fee of 0.00001 ZEC. Even that amount is significantly less than you find on other networks.
The idea is ZSAs tx/issue/spend/burn fees have to be paid in native Zcash, the more ZSAs are used the more it increases the demand for ZEC.
By having a separate (higher) fee it discourages use of a ZSAs for a use case that Zcash itself could fulfill. But if it’s a more exotic use case, like zTether or something, then it insures that more ZEC is used to make those kinds of transactions.
Ah, you mean “slightly” in an absolute sense (where fees are only a few cents more) rather the an relative sense (10x or 100x higher fees) . It’s true that would help alleviate some of the concern and maybe it’s a good thing to do initially.
But I believe comparing ZSA prices against other cryptocurrencies is the wrong metric to use. Longer term we need to focus on making sure ZSA fees are as cheap as, or cheaper then, centralised exchanges. I don’t believe we can easily achieve that by slightly raising the cost of ZSA transactions.
I believe the way we avoid the “freerider” concern is by focusing on increasing the utility of ZEC over ZSAs. One example of how to do this is by allowing ZSAs to have locked in value. One way of doing this is with contract like addresses I call ZSA addresses. The reason ZSA providers will use the ZEC token for locked in value is because it’ll be used as the base currency for exchange.
- User locks some ZEC into the zBTC ZSA address and is issued some zBTC.
- User decides they want to exchange zBTC for zETH.
- User burns zBTC and is given ZEC.
- User locks ZEC into zETH ZSA address and is issued some zETH.
For what it’s worth contract like addresses might be on the cards for the future .
I view ZSAs as a feature of Zcash network, just like z2z transactions and soon UA transactions. I worry about unnecessarily complicating a token issuance, transfer, and burn mechanism on a UTXO-based Zcash chain. These operations should be portable and possible via any light wallet. We should study & learn from successful chains that have deployed support for assets instead of reinventing the wheel for Zcash.
Maybe we should consider introducing ZSAs in way so that they can be abandoned if something goes catastrophically wrong and threatens the security of Zcash? Is this really impossible?
I think the odds of something catastrophic happening are pretty low but we don’t want even a 1% or 0.1% chance of ZSAs killing Zcash.
here should be a higher fee for ZSAs because they are using Zcashs blockspace for something other than transacting directly with Zcash
all transactions keep the same default fee to ensure maximum fungibility in the shielded pool. But the issue there is the default fee is so cheap it makes it trivial cost to issue/use a ZSA token.. .
This may be a good idea and I think this should be discussed more. There is an argument that ZSAs would be most beneficial to Zcash if the fees for ZSAs were a lot higher than regular ZEC transactions. ZSAs can help the long term sustainability of Zcash by sending the fees to the posterity fund for future development or even burning the fees in order to help maintain the 21M coin limit.
The reason to keep the fee the same for ZEC and ZSAs is that we want to maximize the ZEC anonymity set, but it is already huge and it only increases over time. Long term sustainability of the dev fund and the 21M coin limit are far more important than making the anonymity set a little bigger when it is already over 500k outputs last time I checked.
Edit: Also, making ZEC transfers more affordable than token transfers would add to the case for Zcash as a long term store of value. It answers the question ‘why store my money in ZEC versus a usd or btc token on the Zcash blockchain’? Answer: you pay a much cheaper transaction fee when you pay for your daily coffee with ZEC versus a Zcash shielded token.
Has anyone done any research on who and how many potential ZSA users there are? What number of ZSA txn do we expect, etc.? Product market research, in other words?
Another part of this would be reserving a certain fraction of block space just for zec transactions, so zec users aren’t competing with ZSAs to get their transactions confirmed.
To @aristarchus’s point, demand for Zcash will also grow among first time ZEC users who need to buy ZEC to shield their assets, that helps the virtuous cycle too.
To @David_Heisenberg’s point about comparables and market demand, that is hard to say. Right now in DeFi is seems there is massive under-appreciation about privacy issues. Privacy is solution to the problem most DeFi users don’t know that they have.
I think some were using Tornado, and more recently Ren and Railgun. We might look at the fees from those three, and the fees that Samourai charges for whirlpool joins, and use an ETH/ZEC or BTC/ZEC ratio to set an initial ZSA fee.
My prediction is that with the new 87,000 IRS agents coming on line, and funding specifically earmarked for crypto surveillance, we will see the IRS issue John Doe summons’ to all the DeFi front-ends, just like they did to crypto exchanges. (Though DeFi front ends don’t collect as much info as exchanges like PII, it will still be a problem.) And that will be a pivotal moment for DeFi privacy where demand for things like ZSAs will explode if we’re ready by then.
In terms of selecting which crypto to target first, I’m assuming ETH and ERC-20s are top of the list.
I know there is some pushback on stablecoins/inflation coins. Do you include DAI in that list? I would at least include DAI in ZSAs.
Whatever your view on stablecoins/inflation coins, I think there is a real cost to excluding them from ZSAs. There are millions of non-crypto people we can onboard to the idea ZSA’d USDC who are otherwise unmovable crypto skeptics.
Non-crypto people need asset shielding and asset partitioning, they use domestic and foreign trusts to try to do it, this solution is better. Working with normie asset planners, I can help them convince the baby boomer generation of the utility of ZSA’d USDC a lot easier than anything else. FWIW.
Excited about the ZSA project and that the discussion is continuing!