Proposal for a volume-proportional fee sharing system

Context

It’s been absolutely lovely to see lots of great discussions here concerning the topic of network economic sustainability – perhaps partially the effect of the free market launch, which I think somewhat forces us to wrangle right away with these (absolutely critical) questions of economic flows and real product usage growth that crypto projects (and perhaps especially Cosmos ecosystem adjacent projects) often live in denial of for years due to speculative bubbles or deceptive schemes (e.g. Terra). Economic sustainability is a complex topic that touches upon many aspects across the protocol design, ecosystem structure, external communications, cross-project relations, and much more, and I won’t attempt to address all those aspects here – instead I want to focus on a specific sustainability question which I think is particularly important to Namada’s future: can we design a fee mechanism which:

  1. Supports the network as a whole (through e.g. buying-back NAM) in a manner proportional to usage volume (in assets, not gas) of the network as a whole,
  2. Supports particular frontend developers and operators in a manner proportional to the usage volume which they bring in specifically,
  3. Provides predictability and simplicity to users, and
  4. Does not require compromising any privacy properties.

I believe that we can, and I have a specific proposal for what such a mechanism might look like. Before detailing that proposal, however, I want to briefly motivate why I think points (1) and (2) are so important, along two dimensions: the network-frontend fee split, and volume-proportionality.

First, why is it important for fees to be split between the network and the frontend? Ultimately, Namada’s economic success depends on reaching many users who want to use the MASP (and other functionality of Namada) and are willing to pay something for it. Most users (myself included) will be happy to pay fees for a smooth, fast, safe product experience and a reliable protocol with a useful feature (privacy). Two main components are involved in any relationship with a particular user: the protocol/network itself, which provides the “backend functionality” of a blockchain, the MASP, shared shielded set, etc., and the frontend which the user is using (e.g. Namadillo, a Namada mobile app, or future frontends yet to be developed), which makes it practically possible for the user to interact with the protocol and guides them through doing so. In order to reach many users, both of these components must work well, and the best way to ensure that they work well is to ensure that they are economically supported in a manner which depends on how well they work. If we can craft a mechanism where frontends receive fees proportional to the volume which they bring into Namada, we create a reason for new organizations to develop new frontends which service particular users, assets, or flows, and a way for their work to be sustainable.

Second, why is it important for fees to be volume-proportional? Gas costs alone are merely an anti-spam/anti-DoS mechanism, and need only be compute-proportional (as they are at the moment), but I think that the kind of economic alignment we want requires volume-proportional fees. One way to think about this is simply that someone shielding a million USDC with the MASP is getting a lot more value from Namada that someone shielding ten USDC, and if we don’t ask that they pay proportionally more for it, then we would end up needing to ask for more fees from lower-volume users in order to provide the same level of network support. As a concrete example, suppose that we have:

  • 1 user shielding and unshielding a million USDC
  • 10 users shielding and unshielding a hundred USDC

If we have a 0.1% volume-proportional fee, we would charge the million-USDC user $1000, and the 10 users each $0.10, for $1001 in total fees collected. If we have a flat fee instead of a volume-proportional fee, we would need to charge each user $91 in order to collect the same total amount of fees – and it wouldn’t make much sense to shield and unshield $100 if you have to pay $91 in fees! Volume-proportional fees are also necessary for economic security, since the only way that Namada can credibly promise to provide economic security sufficient for the volume of network usage is if fees proportional to the volume of network usage support the economic security (through NAM).

Proposal

I propose the following fee structure (perhaps to be included in hard fork #1):

  1. MASP withdrawals charge a small, volume-proportional fee (e.g. 0.1% of the asset withdrawn).
  2. This fee is split between the network and the frontend which facilicated the MASP withdrawal (the frontend operator can simply include their address in the transaction), at a configurable ratio (e.g. the network and the frontend operator each receive 50% of the fee).

I think that this structure fulfills all desiderata outlined above: the network and frontend operators are both supported in a volume-proportional manner, a percentage withdrawal fee is simple and predictable, and no privacy is compromised (since asset volume is revealed when unshielding anyways). As a bonus, it gives users another reason to hold their assets in the MASP and send them around in shielded transfers (for which amounts are shielded and only flat fees are charged) – if you hold your assets in the MASP for a long time, shielded set rewards might well exceed the withdrawal fee!

What do folks think? :waving_hand:

8 Likes

This is an excellent proposal.

what do we think of a fee structure which charges say .1% for all unshielding < some value of assets (can be measured against BTC or an any denominator) that scales with size. For example;

  • for all transactions less then .1 BTC in value the fee is 10bps.
  • For all txs between .1 and 1 BTC 30 bps,
  • and for all txs > 1 BTC 50bps.

This has the property of keeping fees low for everyday users who may be doing some $ cost avg scheme with their monthly paycheck into a favored token supported by the shielded set which they may later need to withdraw to support lifestyle expenses or emergency.

But it also disincentives large operators from abusing the shielded pool for simple obfuscation purposes. Also large operators in general can afford to pay larger fee.

Thirdly, as Zooko has stated many times (not appealing to authority, just quoting) you get privacy from assets at rest. This scheme incentivizes such behavior and acts as a stick to the shielded rewards carrot.

Regardless, fully endorse this type of proposal. It also incentivized front end operators to provide world class UX as they compete for users or build payments apps on top of Namada for example.

2 Likes

I 100% support this proposal. The fee structure is excellent, and I also like the part about incentivizing frontend operators. (I might even start my own because of this.)

2 Likes

Structurally we can understand this as a “fee function” which runs on withdrawals, takes as input the asset and amount withdrawn, and computes a fee – my original post proposes a simple function of 0.1% of the asset, for any asset – but we could implement a more complex function (and change it over time), e.g.:

  • Non-linear fees (as you propose)
  • Withdrawal fees waived on “yield assets” (e.g. USDN), instead Namada takes a % of the yield
  • Withdrawal fees waived or reduced if a signature is provided by a specific operator with which the network has negotiated a deal (this would allow other networks/assets to pay for “free MASP usage”)
  • Option to pay the fees in another asset (requires a price oracle). This may be convenient just for amount management purposes if you’re sending transfers around.

(thanks to Dev Ojha for some inspirations here)

That said, I think practically we should probably start with a pretty simple function / structure (and a non-zero fee to set user expectations – easier to reduce the fees in the future than to raise them), and evolve it over time.

5 Likes

Sweet, yeah you covered my notes! I think shielded withdraws with a .1% min fee, up to 50% split to the app is actually very reasonable for spot trading usecases.

Also captured my concern around yield bearing tokens. E.g. I did not enter USDN because of the .2% flat fees when I eventually want to exit. Noble would likely have been better off with the 10% of treasury yield they’d have gotten from me holding for 6mo a year, vs me not entering. So something that enables this to get into the shielded set without guaranteed exit fee would be great. (Can be done via whitelisting co-signers, and out of band commercial agreements on what the co-signers are allowed to do + yield splits)

Would caution against tiering / pricing models that incentivize some action type being cheaper/more expensive, until usages on top develop. Like in fee tiering, I’d almost expect the opposite of people who are whales getting cheaper rates. You want them to be incentivized to use it. (Or make the higher tiers, much higher)

4 Likes

I’m not sure this is the right time to be putting up barriers to entry. I’m unconvinced fees are the main way to gain revenue from nam. (remembering the start of the utility discussions were fears on price, I still think price is the most important factor atm). Tentatively.

2 Likes

It is very difficult to move price without a clear story as to why. I think the onus would be on you to suggest an alternative.

I disagree. I can be skeptical towards an idea without presenting an alternate solution. That being said, I typed up something that highlights my views previously on where I think focus should be and some reasonings behind it (shared in last validator circle): The case for nam - an alternate storyI see a lot of the discussion offer a - Pastebin.com (it will expire)

mate you should stop being so persistently hostile to me, and if you can’t, you should stop replying on my stuff. fwiw I have no idea how you mean I have been “sybiling”.

1 Like

@ResourceLogic

If you have personal grievances and or are making accusations against people please settle this outside of the forums. Everyone is allowed to express their personal opinion in a manner they choose to.

@preto is an extremely valuable member of the Namada community who is contributing to the success of the project everyday.

5 Likes

I also don’t think that putting up barriers to entry is a good idea if they would really prevent a lot of product usage growth. Until recently, I thought (as perhaps you do) that charging fees would be a significant barrier to entry, but recently I’ve changed my mind, for a few reasons:

  • I’ve chatted with a lot of folks who have used or considered using Namadillo, and asked them if they would mind small fees or if they would be less likely to use the product if there were fees – they all said “no”, and were primarily concerned about user experience, speed, and safety, fees weren’t really a concern at all.
  • When I consider my own usage, I’d actually rather use a product with fees where I understand how the cost structure works and there’s a clear argument for long-term sustainability of the product itself – thus I feel comfortable relying on it (and usually if you aren’t paying fees for the product, your data or something else is the product, which doesn’t tend to end well). I wouldn’t mind personally paying small fees for Namadillo at all.

Another reason to move quickly here: I think that realistically long-term sustainability and success does require a suitable fee system – I don’t think just market tactics (e.g. more DEX liquidity) or more marketing will cut it – and I think it’s much better for users if we instantiate such a fee system now, so expectations can be set appropriately – it would be rather rude to wait for lots of users to deposit assets, then add fees later.

5 Likes

I dont think its an accident all privacy coins suffer either a price or liquidity problem. There is a large subset of folks who don’t want privacy to succeed. IMHO, this battle will probably never end, but folks who believe privacy is a human right can and should make a difference by holding assets that push the momentum forward.

Price matters, but so do values. Thanks for your thoughts. :shield: :heart:

1 Like

I agree to charge fees, and I think part of the fees collected should be used to invest in DAO and participate in newly issued projects, so that those who contribute to the handling fees can obtain the right to initial tokens. This will help more people actively use MASP, and the best thing is to get tokens that circulate quickly. Create demand and get more users to use it.

1 Like

This is a great idea - we currently see fee’s like this in use in just about any DEX as a cost to pay for the liquidity and the protocol - so I don’t think this sort of fee would at all be unexpected for users.

At 0.1% - this fee is far under the typical DEX exchange fee (although not unheard of).
Even a fee of 0.3% I’d think to be reasonable given its comparable to exchange fees.

It would be nice if in the long run, the fee goes towards the MASP rewards - this gives a proper use based incentive for the pool and obviously reduces NAM emissions towards supporting MASP.

50% to front-ends is very attractive - but maybe too high for the long run.

3 Likes

What about requiring NAM as the fee but then burning it? This could indirectly help hodlers of NAM in the long term.

I guess my bigger question is what do we do with the fees, and when?

1 Like

I’m trying to gather my thoughts around this, I can see that yes anyone could afford a 0.1% fee. But would it dissuade them from using namada? I don’t know. Do I think this is not what will make or break namada? Yes.

Re dex liquidity, I don’t think those are just market tactics. I think those are fundamental to a functioning market. We saw today how it affected the market to have (most likely) 1.9M tokens instadumped. I think liquidity is one of the most important factors to address rn.

I think my sentiments around this can be summed up in ok maybe it’s not that important for me, but I am cautious if it could be a barrier to adoption. I am more afraid it would be a distraction, and I will trust we will not lose focus on product delivery and market operations which I consider to be much more crucial at this point.

1 Like

I think this introduces more user friction, at least without some kind of built-in DEX for the user to buy NAM if they don’t already have it – we really want to support users who just want to shield or unshield other assets (but are willing to pay a bit of a fee to do so).

This proposal is intentionally non-committal about what we do with the fees, I think that decision can be made separately – some relevant discussions can be found here. Personally, I think perhaps a combination of maintaining a treasury balance in other assets, providing protocol-owned liquidity and collecting fees, and buying-back NAM could make sense.

If you’re looking for more liquidity or the ability for the network to perform market operations, I think that this fee system could be quite synergistic: collected fees could be used, for example, to provide protocol-owned liquidity which would help stabilize markets over time. I’ve been working (along with some researchers) on a design for a metastability mechanism which I think Namada could deploy a first version of if there’s interest.

2 Likes

I think the percentage of fees to be charged should be discussed together with how to use the fees, or a dao should be established to manage the fees. There may be changes in the future. For example, supporting front-end liquidity, purchasing original issued tokens, donating to the ecosystem, cooperation, or any other way of making profits. In short, in principle, the purpose of charging is to attract users to use the shielding function in addition to the needs of the network. For example, 50% is used for donations, so that users can obtain the initial tokens, thereby attracting users to shield assets.

This makes sense thanks for clarifying. Would a possible partial solution to this friction be an option of staking a min amount of NAM to waive fees? I can imagine a smart contract that could verify this before a MASP tx is approved.

  • User X withdraws USDC from a CEX into a DEX
  • User X intends to shield this USDC for the future and decides to use the MASP
  • User X opts in to use the "hodl NAM " feature because current prices are optimal => They purchase the required NAM and stake it.
  • User X shields their USDC

I’m not sure this introduces any more friction and gives another option?

1 Like