Skip to content

[Feature] Dynamic Outbound Fee Multiplier #check-lint-warning

Eridanus (9R) requested to merge eridanus/dynamic-outbound-fee-final into develop

Dynamic Outbound Fee Multiplier:

Currently, users are charged a constant 3x multiplier on the "base outbound fee" of an external L1 chain for outbounds. Data shows that this is a over-estimation on what they should be charged, as shown by this graph:

Screen_Shot_2023-03-17_at_10.14.52_AM

outbound_gas_costs is what the Reserve has paid for outbounds, and outbound_fees is what the users have been charged - there is a clear gap here, and space to bring down fees for users.

New Design

Create a dynamic "outbound fee multiplier" that moves between a max_multiplier and a min_multiplier based on the current outbound fee "surplus" of the network in relation to a "target" surplus. The "surplus" is the difference between the gas users are charged and the gas the network has spent. As the network's surplus grows in relation to the target surplus, the outbound multiplier will decrease from a Max Multiplier, to a Min Multiplier. The outbound fee multiplier will then be a "sliding scale" instead of being a constant 3x.

New Mimirs

  • TargetOutboundFeeSurplusRune: target amount of $RUNE to have as a surplus. Suggested initial value 100_000_00000000 (100,000 $RUNE)
  • MaxOutboundFeeMultiplierBasisPoints: max multiplier in basis points. Suggested initial value: 30_000
  • MinOutboundFeeMultiplierBasisPoints: min multiplier in basis points. Suggested initial value: 15_000

New Network Properties

  • outbound_gas_spent_rune: Sum of $RUNE spent by the network on outbounds
  • outbound_gas_withheld_rune: Sum of $RUNE withheld from the user for outbounds

current surplus = outbound_gas_withheld_rune - outbound_gas_spent_rune

The current surplus is compared with the target surplus, and the outbound fee multiplier is adjusted accordingly on a sliding scale: If surplus => target, use the min multiplier. If surplus = 0 use the max multiplier. If surplus > 0 && surplus < target, return the basis points value in between min and max multiplier that represents the "progress" to the target surplus.

Behavior

The result will be that the outbound fee multiplier will move between 1.5x and 3x, which will result in significant savings for the user, but still ensure the network isn't losing money on outbound fees.

Edited by Eridanus (9R)

Merge request reports