Proposal: Weight BNT/TKN according to R value

TLDR:

  • Set BNT/TKN weights according to the observed correlation between TKN and BNT price

Proposal

Weights

For this proposal I’ll assume the reader is somewhat familiar with the idea of “weights” in Balancer.

Their math is proven, battle tested and well documented.

Roughly it goes like this:

Standard constant product x * y = k AMM means that both TKN on a curve are always treated as the same value by the AMM.

If you have 1000 USDC and 1000 BNT on the USDC/BNT curve then BNT is $1 by definition.

If you have 1000 USDC and 500 BNT on the USDC/BNT curve then BNT is $2 by definition.

In the Balancer model there is the concept of “weight” where different ratios can be specified for a curve.

In the above example, we could set a 2:1 ratio instead of a 1:1 ratio then:

1000 USDC : 1000 BNT on curve = BNT is $0.5

1000 USDC : 500 BNT on curve = BNT is $0.25

This model has two interesting properties to consider for this proposal:

  • TKN liq can be many multiples above BNT on a curve, last time i checked balancer was accepting 50:1 weights i think
  • IL (and slippage) behave differently according to the weightings

Coinvestments

Currently when single sided liq is to be increased via coinvestment there is BNT minted at some price in 1:1 ratio with TKN.

This is completely reasonable and safe provided that the TKN price is correlated with the BNT price, especially for a high volume TKN that will be bringing in trading fees. However, prices tend to trend.

When a TKN moons relative to BNT, the LPs for that TKN experience a deficit effectively freezing both withdrawals and deposits to the protocol. Intuitively people have been buying TKN (it mooned) by putting BNT onto that curve and taking TKN off the curve in each trade, so there’s less TKN in the protocol to honour the staking ledger on withdrawal and deposits inherit existing deficits.

When a TKN dumps relative to BNT, all other TKN on the protocol experience a deficit. Intuitively people have been selling TKN by buying BNT, then selling that BNT for “something else”, putting the “something else” into deficit.

The logic goes that if we bring many different TKN into the protocol then it will look like a “diversified portfolio” as all the BNT on all the curves will generally compensate for individual TKN issues and cancel each other out, whatever the issues may be. Further, if BNT price has an “index effect” then IL for any TKN is relative to the market, not to e.g. $1, which drastically reduces magnitude of IL for TKN that are all correlated against each other.

The problem is that if we observe something different to a TKN tracking the BNT price nicely, like a low-volume TKN mooning or dumping, it’s not clear that the coinvestment lever is the right lever to pull. Definitely not trying to pick on ACRE here but here is an example requesting that BNT be minted as a response to price action.

However, if we see product/market fit for bancor as liquidity for long tail assets, we have to make this work somehow, as long tail assets are exactly the tokens most likely to pump/dump out of step with the broader market (ignoring stables).

Correlation as weight

With the huge caveat that this is “driving in the rear view mirror” as we can only respond to price movements in the past, not the future.

This proposal is that we weight pools according to their observed correlation with BNT.

What I’m hoping is that we model this and will probably discover situations in which this is beneficial and situations where it makes things worse (there’s no free lunch).

But it could be a good lever to pull in certain situations where we otherwise would have manipulated the BNT supply itself, instead we could modify the amount of BNT on curve required to sustain a certain TKN liquidity.

I was thinking maybe the r value for correlation might be helpful here, between observed TKN and BNT price over some time frame.

Weighting assets according to their BNT-correlation is quite interesting! I would love to see this plugged into the simulator to see what kind of results it might have.

My main concern is what you already mentioned ‘driving in the rear view mirror’ which is my hesitation in general for weight/concentration features. That being said, I think it’s clearly worth investigating!

even if we don’t weight it, we could maybe come up with a scoring system that can be referenced for minting proposals

imagine if we could say up front we approve 50k coinvestment now and will preapprove 100k in 6 months if you hit x, y, z criteria

1 Like

I love the preapproval idea. It’s logical & could definitely help with voter fatigue.

the preapproval could even be codified in the smart contracts if we can draw the relevant info like EMAs etc. from the protocol

FYI, I think v2.1 did have the ability to let us create pools with two tokens with other weights that were not just 50:50. I am not sure if this ability exist in v3 but regardless, I would not be opposed to having such a knob that we can tune.