Shielded pool rewards

Data protection provided by the MASP in practice depends on how many users use the shielded pool and what assets they use it with. To increase the likelihood of a sizeable shielded set, Namada pays a variable portion of inflation, up to 10% per annum, to shielded pool incentives, which are allocated on a per-asset basis by a PD-controller targeting specific amounts of each asset being locked in the shielded pool.

Rationale

The economic rationale for subsidizing the shielded set comes from "positive externalities": the shielding of more assets into the current shielded set not only provides better data protection for the owner of the assets, but enhances data protection for everyone. In this way, even users that are indifferent about data protection, are "nudged" into shielding their assets. This is especially important in an environment where users pay for computation, and shielded transactions are expected to be more expensive than transparent transactions.

The subsidy on Namada adheres to the following constraints in order to avoid perverse incentives:

  • Fee subsidies cannot reduce fees to zero, or reduce fees so much that inexpensive transaction spam can fill blocks and overload validators.
  • Incentives for contributing to the shielded set should not incentivise transactions which do not meaningfully contribute to the shielded set or merely repeat a previous action (shielded and unshielding the same assets, repeatedly transferring the same assets, etc.)
  • Incentives for contributing to the shielded set, since the MASP supports many assets, will need to be adjusted over time according to actual conditions of use.

Design

Namada enacts a shielded pool incentive which pays users a variable rate for keeping assets in the shielded pool. Assets do not need to be locked in any way. Users may claim rewards while remaining in the shielded pool using the convert circuit, and unshield the rewards (should they wish to) at some later point in time. The protocol uses a PD (proportional-derivative) controller to target the reward rate for each asset, as a function of the amount of the asset in the shielded pool.

Implementation

When users deposit assets into the shielded pool, the current epoch is appended to the asset type. Users can use these "epoched assets" as normal within the shielded pool. When epochs advance, users can use the convert circuit to convert assets tagged with the old epoch to assets tagged with the new epoch, receiving shielded rewards in NAM proportional to the amount of the asset they had shielded, which automatically compound while the assets are shielded and the epochs progressing. When unshielding from the shielded pool, assets must be first converted to the current epoch (claiming any rewards), after which they can be converted back to the normal (un-epoched) unshielded asset denomination.

Namada allocates up to 10% per annum inflation of NAM to pay for shielded pool rewards.

This inflation is kept in a temporary shielded rewards pool, which is then allocated according to a set of PD (proportional-derivative) controllers for assets and target shielded amounts configured by Namada governance. Each epoch, subject to available rewards, each controller calculates the reward rate for its asset in this epoch, which is then used to compute entries into the conversion table. Entries from epochs before the previous one are recalculated based on cumulative rewards. Users may then asynchronously claim their rewards by using the convert circuit at some future point in time.