BIP9: Proposing the Bancor Vortex

Discussion

An idiosyncratic whitelist status

Whitelisting an asset activates impermanent loss insurance, single-sided staking, and protocol co-investment. Impermanent loss insurance guarantees that depositors receive at least the same number tokens as they initially contributed; this creates an opportunity for abuse via single-sided staking of BNT, and using the vBNT to swap for additional BNT in an infinite cycle. The result is that the perpetrator could effectively drain the pool of BNT, content in the knowledge that the protocol will mint it again to give it back to them at withdrawal. This attack vector can be muted by disallowing users to deposit BNT to the pool. Therefore, the vBNT liquidity pool will be completely unique. Upon whitelisting, the entire BNT side of the pool will be owned by the protocol; single-sided BNT staking in the vBNT pool will be disabled. As a consequence, the exact maximum depth of the pool is determined by the protocol co-investment limit. The minting limit will be detailed in the future whitelisting proposal, following establishment of the pool.

Note that this proposal is stand-alone. The Bancor Vortex can be allowed to operate, and will achieve the same market effects, irrespective of the whitelist status of the pool.

What happens if someone attempts an infinite cycle?

It is almost certain that eventually some anarchist is going to try this, and they are welcome to it. To illustrate how bad an idea this is, we can consider an extreme case where the pool fee is 0%, and where swaps have no gas cost. This is the theoretical ideal setup for someone intending to perform an infinite cycle, and can never actually happen. Its absurdity aside, suppose an antagonist with 10,000 BNT approaches the vBNT/BNT pool to begin cycling. For the purpose of this hypothetical, assume the pool is using the standard bonding curve, and has 1,000,000 of each token. Therefore the price quotient is exactly 1:1 for vBNT vs BNT at the start of the antagonist’s adventure.

The cycler begins by swapping 10,000 vBNT for 9,901 BNT, staking it, and receiving 9,901 vBNT in return; this is the end of cycle 1. The antagonist continues by swapping the 9,901 vBNT for 9,612 BNT, staking it, and receiving 9,612 vBNT at the end of the second cycle. By cycle 10, the antagonist is receiving 4,208 vBNT; by cycle 20, it is down to 709 vBNT. Cycle 53 is the last time the antagonist is receiving a whole vBNT. At the end of cycle 100, this person has succeeded in locking up 105,125 BNT in the contract, but has only 0.000083 vBNT left to withdraw it. If they wish to withdraw their stake at some point in the future, they will need 105,125 vBNT to do so. The price impact of their effort is a drop in vBNT value from 1.0 to 0.82 BNT inside the pool. Remember - this is the theoretical best case scenario for the antagonist, requiring a 0% swap commission and zero gas costs.

Figure1

Figure 1 | Illustration of the diminishing returns associated with initiating an infinite cycle of staking BNT, obtaining vBNT, swapping vBNT for BNT, and then repeating the process. These calculations are for an absurd case where performing a swap, and staking BNT in the contract, incurs zero gas costs or pool commissions.

The antagonist’s reality is much worse than this; everyone familiar with ethereum has a deep appreciation for how expensive gas can be. However, the greater impact comes from the pool fee. As the antagonist is cycling their tokens through the pool, a small amount of BNT and vBNT is always left behind, and becomes the property of the liquidity providers. This is also true during the reverse process, making the whole approach especially inefficient from the antagonist’s perspective. Assuming a 0.2% pool fee, the antagonist will have locked up 104,181 BNT. Buying sufficient vBNT to unlock all their accumulated stakes will require swapping 94,472 BNT on the pool, and distributes 292 BNT and 104 vBNT to liquidity providers. Note that this assumes an absence of any other participation in the pool, including and especially the persistent purchase and burning of vBNT by the Bancor Vortex. Such an influence only serves to drive the vBNT price further up, making the return journey via the vBNT pool prohibitively expensive. Thus, the antagonist will have no choice but to buy as much as 104,181 BNT from elsewhere, and stake it in the contract to recover the vBNT required to unlock their stake. Of course, this creates yet another orphaned stake, and sets up a situation where the most profitable decisions will always result in growth of total BNT deposits, and therefore TVL on the platform. Bancor welcomes the antagonist to attempt this activity, as it only accelerates the accumulation of locked BNT.

vBNT volatility

The price of vBNT has an upper bound of 1 BNT. Price appreciation above this level creates a situation where market-buying BNT, staking it, and selling the generated vBNT will yield an immediate profit, representing a new type of arbitrage trade opportunity. However, there is no lower bound. Since vBNT is the tokenized representation of BNT stakes, its price on the pool serves as a barometer for the number of stake owners currently in leveraged positions. As vBNT is swapped on the pool, its price depreciates relative to BNT, making further swaps less valuable, and therefore self-regulates the amount of leverage available. It stands to reason that at a certain price point, the motivation to swap vBNT by most, if not all BNT stake owners will have completely abated - but it is impossible to predict where this price point is. Importantly, the Bancor Vortex, which buys and burns vBNT from the pool, will provide persistent pressure on price appreciation. Of course, leveraged BNT stake owners wishing to recover their stake from the protocol are also motivated to repurchase vBNT during periods of negative volatility, and provide an additional upwards pressure on the price. These are the predominant forces that dictate the price of vBNT, and their relative strengths will define a dynamic equilibrium price range.

As a standard erc20 token, it is likely that vBNT will appear in outside markets, including on other AMM platforms such as Uniswap. This will create arbitrage opportunities, and dampen the price volatility. Arbitrage trading exposes the vBNT pool to impermanent loss; however vBNT liquidity providers will be protected from these effects due to the whitelist status of the pool. If the price of vBNT can maintain at least 80% of the value of BNT, projected impermanent loss is approximately 0.6%. As noted above, it is impossible to determine the likelihood that this range will be respected. It is the author’s opinion that a vBNT price range above 0.7 BNT is reasonable, owing to a dramatic loss of incentive to sell vBNT below this range under normal market conditions.

Variable fee curves

The primary function of the admin fee is to support the price of vBNT, thus permitting the complex market activities envisioned with its new use cases. As the selling pressure on vBNT is unpredictable, and variable, the reactive buying pressure from the protocol will need to have a built-in dynamic response to changing market conditions. As selling pressure drives the price of vBNT down, ideally, the protocol should increase its vBNT burn rate to help establish a healthy equilibrium price. Therefore, a hyperbolic curve is proposed that determines the burn rate via the price of vBNT relative to BNT:

Eqn 1

where r = the proportion of swap revenue taken by the Bancor Vortex reserve, a = the price of vBNT relative to BNT, and n = the exponent that changes the shape of the curve, which is adjustable by the DAO in future BIPs.

The n value is adjustable for the TKN and BNT sides, separately. In this proposal, the swap revenue taken from the TKN side is set higher than for BNT, to reflect the insurance liability worn by BNT investors. Therefore, the proposed settings are that n = 4.0 for TKN, and n = 10 for BNT. The effect of these exponents is compared in Figure 2, and specific fee amounts are listed in Table 1.

Figure 2 | Three curves are presented that determine the disbursements on TKN (black) and BNT (blue) swap revenue as a function of vBNT price relative to BNT, and the corresponding total protocol disbursement (grey).

Table 1 | Variable swap fee is listed for TKN and BNT swap revenue for 0.1 increments of vBNT price.
vBNT price TKN fee (%) BNT fee (%) Total swap revenue (%)
1.0 6.25 0.10 3.17
0.9 7.67 0.16 3.92
0.8 9.53 0.28 4.90
0.7 12.0 0.50 6.23
0.6 15.3 0.91 8.08
0.5 19.8 1.73 10.7
0.4 26.0 3.46 14.7
0.3 35.0 7.25 21.1
0.2 48.2 16.2 32.2
0.1 68.3 38.6 53.4

As shown, the fee remains reasonably low for TKN, and is negligible for BNT when the price of vBNT is within a healthy equilibrium range (0.8-1.0). However, during periods of high vBNT negative volatility, the protocol increases its buy-and-burn rate to return the pool to stability. These events are expected to be highly infrequent, and short-lived; however, it is critical that such a mechanism is in place to protect against complete collapse. As outlined in the next section, a floor value of vBNT around 0.5 BNT is a reasonable expectation during these market emergencies. It is the author’s opinion that the parts of the curve that map to vBNT prices below 0.5 BNT are unlikely to ever be activated.

These hyperbolic curves are highly computationally tractable, and are unlikely to give rise to bugs. For example, due to their construction it is impossible to yield a fee outside of the range 0-100%, which protects against nonsense results such as negative numbers; this is true for any value of n. It is expected that the DAO will need to change the proposed settings after observing the behavior of the pool over time. The gas implications are very minor, and shouldn’t affect the competitiveness of swaps on Bancor compared to other platforms.

Relationship with the liquidity mining program

Under normal conditions, BNT stakes accrue value from swap fees. Over time, a deposit of 100 BNT grows at a rate commensurate with the swap volume on its pool. However, at the time of withdrawal, the price of unlocking the stake is 100 vBNT, regardless of how large the value of the stake has grown. This means that the valuation of a single vBNT token will vary between individuals, and with potentially dramatic differences over time. These stakes are inseparable from the vBNT requirements of withdrawal, and should provide a stable buying pressure on vBNT in the long term, from liquidity providers exiting leveraged positions. Whether or not this could create a new type of pseudo-debt cycle remains to be seen.

The liquidity mining program provides a mechanism to obtain value from BNT stakes that deviates significantly from the hypothesis described above. Assume that 100 BNT is deposited to a liquidity pool with liquidity mining incentives activated, and an apparent realized 200% APY. Over the course of 12 weeks, the user will be entitled to withdraw approximately 46 BNT - which can be claimed without the need for vBNT. Therefore, the 100 vBNT obtained from the initial stake can be traded for as little as 54 BNT (or a price point of 0.54 BNT), and still allow the user to break even. Those with a stronger stomach for leverage would probably accept an overall sub-unity transaction, and as a result, the 0.54 BNT price point is unlikely to be the absolute floor in this scenario.

Thus, the liquidity mining program applies an indirect, negative pressure on the price of vBNT. This is not necessarily bad for the protocol, or BNT holders. Someone leveraged in this way is likely using the liquidity mining opportunity for short-term gains only. In this scenario, the leveraged miner is still only selling 100 BNT after their mining activities are completed, and are leaving behind a 100 BNT stake on the protocol. Consider the alternative - the miner does not leverage their position, and sells all 146 BNT and exits the protocol while leaving nothing behind. The leveraged position softens the post-liquidity mining selling pressure by approximately 31.5%, whereas the unleveraged position provides no protection at all. The overall effect is that vBNT acts as a type of price-impact armor, and is able to absorb some of the BNT sell pressure. This protects markets, and BNT holders from potential negative price volatility. It is important to remember that the price of vBNT is always recoverable via fee burning, and the burn rate is adjustable by the DAO.

Outsider participation in the BancorDAO

Buying vBNT for the exclusive purpose of voting in on-chain decisions is not dissimilar to staking BNT prior to voting, if the price of vBNT is close to BNT. The quorum and supermajority rules of the BancorDAO are formidable; however, dramatic drops in the price of vBNT could allow a nefarious influence to purchase a controlling share of the vote. This is true of individuals, and large groups (including rival communities). However, there is no reason to panic.

As per BIP3, community engagement and feedback, and an open discussion with the developers is a requirement of any proposal, prior to an on-chain vote. Maintaining a healthy and open dialogue about proposed changes to the protocol is still our best defense against potential threats and exploits. Any and all nefarious proposals should be caught during the Discord and Discourse stages, long before they appear on-chainl; lack of community engagement prior to the on-chain vote is grounds for disqualification. There is good reason to be confident that our governance system is robust enough to allow purchased vBNT to be used for on-chain voting should someone wish to use it for that purpose, regardless of their BNT staking status.

Novel utility for vBNT

vBNT as credit

This proposal seeks to establish additional utility for vBNT as a tokenized representation of staked BNT. This utility requires no contract changes, but only a relatively deep source of vBNT liquidity to support the exchange of vBNT for other assets on the Bancor network. The ability to swap vBNT for other tokens provides users with existing BNT deposits an opportunity to leverage, or exit their positions without withdrawing the underlying BNT stake. The possible motivations for swapping vBNT for other assets are impossible to cover exhaustively; however, some prototypical examples are outlined in the example scenarios. Importantly, the vBNT liquidity pool will also create an opportunity for speculation on vBNT price movements, which should attract the attention of day traders and help to build our clientele.

Additional yield opportunity

The vBNT/BNT pool will give vBNT stakers an additional source of revenue. Swapping vBNT for other assets is a calculated risk. Withdrawing the initial BNT stake and its accumulated yield requires all sold vBNT to be bought-back. The repurchase of sold vBNT could occur at a different price to its sale. This exposes vBNT sellers to the possibility that recovering the vBNT necessary to withdraw their stake could occur at a net loss (or gain). Such a risk is not acceptable to everyone; however, this proposal also caters to more risk-averse BNT stakers. The ability to provide vBNT liquidity to a pool effectively opens a second source of yield-earning potential, especially for those who are uninterested in using vBNT for governance. As vBNT buying/selling strategies mature, the trade volume on the pool could be comparable to the other assets on the network.

Panic-selling protection (for both protocol, and the liquidity provider)

At any time, a non-zero number of BNT liquidity providers will have exercised their privilege to exchange vBNT for another asset. This effectively guarantees that a small proportion of BNT stakers will be busy with other market activities during times where panic is influencing market behavior. This creates an unavoidable ‘cool down’, as the rush to recover vBNT (via repurchase on the vBNT pool) will bottleneck the ability of leveraged liquidity providers to exit from the protocol. While this could be viewed as a disincentive to participate (and certainly this should be a factor in the decision to sell vBNT), panic-selling is an emotional response closely related to mass hysteria, and rarely benefits anyone. This bottleneck protects both the health of the system and its community from such events. The bottleneck effect is exaggerated by the persistent burning of vBNT via the Bancor Vortex; however, it is never impossible to retrieve a BNT stake if one is sufficiently motivated. If the price of vBNT is close to, or over BNT unity, it is possible to purchase additional BNT and create a new stake in the contract to receive an equal quantity of vBNT. The newly generated vBNT can then be used to unlock existing BNT stakes, but unlocking the new stake will require a similar process.

Creating additional TKN space in whitelisted pools

One of the major obstructions to single-sided TKN deposits is the need for BNT to be present on the other side of the pool. This can be addressed partially by increasing protocol coinvestment limits, but has so far proved to be an incomplete solution. In the best case scenario, TKN liquidity providers are happy to buy BNT to deposit both sides, but this is a little self-defeating in the sense that the TKN liquidity provider is not experiencing single-sided exposure. The problem is perhaps best understood by considering that all value held in BNT represents a type of opportunity cost to the liquidity provider, who may have preferred to maintain a higher balance in TKN. If the vBNT pool is sufficiently deep, and the vBNT price is close to unity with BNT, the TKN holder can have their cake and eat it too. The TKN holder can divide their holdings, and sell a portion for BNT. The BNT can be deposited to one side of the whitelisted pool to open additional space on the TKN side. The vBNT that is generated can then be swapped back for TKN, returning the holder to their original 100% single-sided exposure, while also allowing liquidity contribution with up to half of their TKN reserve.

Example scenarios

Emergency exit

Alice purchases a substantial quantity of BNT and stakes all of it in her favorite TKN pool. Over the course of the next few weeks the TKN price drops dramatically relative to BNT, and Alice is exposed to severe impermanent loss. During this time, Alice becomes aware of another time-sensitive opportunity, which requires immediate action, prior to completion of the vested insurance schedule. Rather than withdraw her BNT stake prematurely (which would incur a significant loss), Alice swaps her vBNT at nearly a 1:1 equivalence with BNT, effectively allowing her to walk away from the protocol to pursue the other opportunity effectively without penalty.

Leverage

Bob is a day trader, and a liquidity provider on the Bancor network. Bob’s technical analysis reveals a potentially lucrative swing-trading opportunity on the TKN 1-hour charts. As withdrawing Bob’s BNT stake is subject to a 24-hour lockup period, he fears the opportunity may have passed before he can access his funds. Bob swaps a small portion of his vBNT for TKN to take advantage of the trade opportunity, makes a fast profit, and then re-buys the vBNT immediately afterwards at close to its sale price. Therefore Bob’s vBNT holdings remain unchanged, and he was still able to act on his short-term trading opportunity by leveraging the value of his BNT stake. Note: This type of strategy is not recommended for casual users, but may be of interest to experienced day traders.

Short selling and hedging

Charlie is a BNT whale, and has a sizable dollar amount of BNT staked across many different pools. Charlie is earning decent yields in swap fees, and is not interested in withdrawing from the protocol, or selling his BNT any time soon. However, BNT has become significantly overbought, and a price correction in the short- or intermediate time horizons seems likely. Since the price of vBNT tracks with BNT quite well, Charlie decides to sell a minor portion of his vBNT for USDT, within reasonable price impact tolerances. BNT later begins a corrective wave before forming a recognizable bottoming pattern a few weeks later (and vBNT with it). Charlie then swaps his USDT back for the original vBNT amount, and keeps the balance.

Speculation

Dave has been watching the price of vBNT relative to BNT over many months. Eventually he notices an unusually low swap value has occurred for vBNT, whereas the BNT vs USDT price has remained relatively stable. Dave purchases a small amount of vBNT, suspecting that its negative deviation is an anomaly, as there is very little incentive for vBNT holders to risk their BNT stake at this price. After a few more days, the price of vBNT climbs as predicted, and Dave is able to sell for a small profit.

Providing liquidity with TKN

Fiona owns a large amount of TKN, and wants to contribute liquidity on a whitelisted Bancor pool. However, the protocol is currently at its co-investment limit. Additional BNT deposits are required before any further TKN deposits can be accepted. Fiona swaps half of her TKN for BNT, and deposits the BNT to the TKN pool, receiving vBNT in the process. Fiona deposits the remaining half of her TKN to the pool to occupy the space she just created, then swaps her vBNT for TKN. Thus, Fiona was able to provide liquidity with half of her TKN, despite a lack of room in the pool, and without taking exposure to BNT.

2 Likes