BIP9: Proposing the Bancor Vortex

BIP9: Proposing the ‘Bancor Vortex’

An insurance premium that strengthens BNT fundamentals

The Bancor Vortex, funded by admin fees, creates a demand for market participants to buy and lock BNT on the protocol, without taking exposure to BNT volatility, creating increased fundamental demand for BNT while expanding the network’s liquidity.

TLDR

  • The Bancor Vortex seeks to create a new passive revenue stream for users with active BNT stakes.
  • It does so by introducing a protocol-wide administration fee that charges liquidity providers for impermanent loss insurance, a unique feature of Bancor v2.1.
  • The proposed fee is taken directly from swap revenue, and is adjustable by the DAO.
  • Fees are swapped for vBNT via the vBNT/BNT liquidity pool and burned, depleting the vBNT supply, causing its price to appreciate.
  • As the price of vBNT rises above the price of BNT, an immediate opportunity emerges to market-buy BNT, stake it and generate vBNT, which can be immediately swapped into BNT for profit.
  • The overall effect of the depleting vBNT supply relative to the total staked BNT value is a long-term, sustainable incentive for market participants to purchase BNT, and bring it back into the protocol, regardless of their bias or loyalty to Bancor.
  • In sum, a vBNT burning mechanism, funded from TKN swap fees, transforms vBNT into a scarce resource, and creates a new demand for buying and staking BNT.

The Bancor Vortex is expected to:

  • Attract new money to the network.
  • Incentivize more BNT staking.
  • Support additional space for TKN staking.
  • Amplify the market demand for BNT.

Voting instructions

To support the ‘Bancor Vortex’ vBNT burning scheme, vote FOR

To oppose vBNT burning, vote AGAINST

Important: The leverage/credit and other functions of the vBNT/BNT pool are innate, and do not require the approval of the BancorDAO. The on-chain decision is only with respect to the whitelisted pool administration charge, and vBNT burning mechanism.

Benefits to Key Players

BNT Holder

As a BNT holder, the sole motivation for any proposed change to the protocol can be reduced to profitability. Profits are obtained from two sources - price appreciation of BNT itself, and more importantly, revenue generated from BNT deposits. This proposal creates a new mechanism for supporting growth in both of these aspects.

Price Appreciation

vBNT burning creates a deficit of vBNT, relative to all active BNT stakes. Since vBNT can be obtained from creating a new BNT stake, the only feasible avenue to retrieve older BNT deposits (which have appreciated in value), is to buy and stake more BNT. This creates a new type of economic demand for BNT, that should serve to drive its price up over time.

The market efficiency associated with vBNT swaps supports new and creative financial strategies. The availability of these options to participants on our platform, and their absence on rival exchanges also bolsters organic interest in Bancor, and increases the fundamental value proposition of owning BNT.

The most important function of the Bancor Vortex is to create a magnetic attraction between market BNT and the protocol. To investors, the consistent rise in TVL is of special interest, as this metric is a primary indicator for BNT price speculation. Faster, and more sustainable protocol growth inspires market confidence, and therefore improved price evaluation by spectators.

Revenue Earning Potential

The vBNT/BNT pool is unique in that it supports a distinct market activity. Owners of the vBNT token will have access to new strategies for capitalizing on market changes, through short- or long-term leverage opportunity free from the threat of liquidation. Used with skill, this represents a profound opportunity to increase revenue for BNT owners.

In addition to complex market activities, providing liquidity with vBNT creates an additional insured position, and therefore a second passive income stream for participants on the Bancor network.

TKN Liquidity Providers

The vBNT burning scheme (explained below) introduces a dynamic insurance premium, taken predominantly from the TKN side of swap revenue. To most liquidity providers, this charge will be barely noticeable. Moreover, the protocol-wide effects help to maintain the sustainability of the impermanent loss insurance model. The improved health of the system supports the rise of Bancor to prominence in DeFi, leading to improved trade revenue and therefore overall profits for liquidity providers.
Outside Speculators

vBNT is minted at 1:1 ratio to BNT when protecting BNT in a pool. After the pool is bootstrapped, the price of vBNT will be determined by an equilibrium of various influences. Understanding these influences creates trading opportunities. For example, there is always a pressure to swap BNT against vBNT by any user that wishes to remove a protected position. By deduction, users with an active BNT stake are incentivised to pay for vBNT at any price below 1 BNT, regardless of any price appreciation relative to the time of sale. This allows diligent spectators to identify fast, profitable day trades.

Voting in the BancorDAO requires vBNT. If the vBNT price has fallen below 1:1 relative to BNT, users can acquire vBNT to increase their governance power. This may be especially true before and during critical DAO decisions, where rising demand for vBNT also provides an excellent trading opportunity.

1 Like

Detailed Proposal

Summary

  1. A vBNT/BNT pool, to be bootstrapped by the Bancor community, activates new functions for vBNT, giving those with an active BNT stake on the Bancor network flexible access to new financial strategies.
  2. The vBNT/BNT pool will be eligible for whitelisting, as per the usual channels. However, after whitelist status is obtained, the pool will undergo a unique transformation. User BNT deposits will be returned to them, and only their vBNT balance will remain for protected status. Thereafter, the pool will own 100% of the BNT side, and the pool will persist accepting exclusively protected vBNT deposits. This is to help avoid an obscure exploit vector, that allows for unregulated BNT printing. Therefore, the maximum depth of the pool is determined by the co-investment limit, which will be defined in the future whitelist proposal.
  3. The proposed 'vortex mechanism’ introduces a protocol-wide administration fee that effectively charges liquidity providers an adjustable disbursement on swap fees, representing an insurance premium for impermanent loss underwriting by BNT holders. The fee is determined by a hyperbolic function, and its shape can be adjusted for both TKN and BNT swap revenue by the DAO as required to maintain market demand for BNT.
  4. The fee is swapped for vBNT via the vBNT liquidity pool, and burned. The swap is triggered by users, who are responsible for the gas costs. A similar routine has been implemented at alpha.homora, and will be deployed in a similar fashion.
  5. The overall effect of the depleting vBNT supply relative to the total staked BNT value is a long-term, sustainable incentive for market participants to purchase BNT, and bring it back into the protocol, regardless of their bias or loyalty to Bancor.
  6. The constant purchase of vBNT by the vortex mechanism counteracts selling pressure in the vBNT pool, helping to maintain a stable equilibrium price for vBNT, which in turn supports the new envisioned use cases, while also providing a steady revenue stream for vBNT liquidity providers.

The current use case and function of vBNT

Staking BNT in Bancor Network’s liquidity pools generates vBNT at a rate of 1:1. The vBNT token serves two functions at present.

  1. vBNT is the native governance token, used by the BancorDAO to vote on proposed changes to the protocol.
  2. vBNT is burned in exchange for withdrawing staked BNT. The amount of vBNT required to withdraw from a staked position is determined by the number of BNT tokens initially deposited. The amount of vBNT required to withdraw from a staked position is constant and does not change over time.
  3. Anyone can withdraw their own BNT stake, regardless of the vBNT origins. For example, Alice and Bob each stake 100 BNT, and receive 100 vBNT. They exchange their vBNT with each other. Alice then uses the vBNT she received from Bob to withdraw her own BNT stake and vice-versa.

An alternative to admin fees: the ‘Bancor Vortex’ Mechanism

The BancorDAO has discussed the subject of an admin fee at length. The concept is borrowed from other decentralized exchange projects, but may not be suitable for Bancor as-is. In the outside examples, the admin fee is introduced ad hoc to create a fundamental value for the native token, which otherwise has no direct utility, save for governance in some cases. Bancor’s native token, BNT, is a utility token. As Bancor’s default base token, BNT is already a yield-generating asset; a conventional admin fee is at best slightly inelegant, if not completely redundant. As the fundamental value of BNT to its holders is already sound, our project is in a unique position to innovate its own answer to the concerns raised by its community over the course of the recent admin fee discussions. The most compelling argument can be summarised as follows. As the insurance provider, BNT token owners are exposed to 100% of the insurance liability. While this forms the core of Bancor’s business model (we are a literal insurance company), to an individual investor, the motivation to own and provide liquidity with BNT is obscured. Moreover, the 50/50 split of all swap fees to either side of the pool does not reflect the profound risk asymmetry of TKN and BNT liquidity providers. The best arguments for the introduction of an admin fee are founded on this premise, but no compelling implementations have yet appeared that utilise Bancor’s unique tokenomics.

Here, we propose a vBNT burning scheme, termed the ‘Bancor Vortex’ (BV), designed to create an urgent demand to buy and stake BNT. Before the mechanism becomes operable, the Bancor community is required to bootstrap the vBNT pool. Thereafter, the ‘vortex’ mechanism is initiated by introducing a protocol-wide administration charge on whitelisted pools, obtained predominantly from the TKN side of swap revenue. The specific fee amount is determined directly from the vBNT price in the pool via a hyperbolic function with different exponents for TKN and BNT. The exponents are adjustable by the DAO in future BIPs, and represent important variables in future management of the protocol. The fee is then held by the protocol until a user initiates the swap. The swap purchases vBNT via the vBNT liquidity pool, and the protocol burns it.

Thus, the protocol itself provides a constant buying pressure on the vBNT pool, providing consistent swap volume and associated fees, while supporting the price of vBNT over long time frames. More importantly, vBNT becomes a scarce resource. As the gatekeeper token to BNT deposits, the scarcity of vBNT introduces a new economic paradigm for BNT evaluation. As its price climbs above 1 BNT, an opportunity for immediate profits is realized via market-buying and staking BNT, if only to sell the vBNT it generates. The overall effect of the depleting vBNT supply relative to staked BNT value is a long-term, sustainable incentive for market participants to purchase BNT, and bring it back into the protocol, regardless of their bias or loyalty to Bancor. Alternatively, existing vBNT holders will be presented with an opportunity to sell their vBNT for an over-unity amount of BNT, which upon staking will yield additional vBNT along with an improved BNT stake balance.

It is important to realize that once this mechanism is set in motion, vBNT becomes a coveted asset that will never again exist in sufficient quantities to unlock all BNT stakes on the Bancor pools. At first pass, it may not be obvious why this is desirable. Before arriving at an opinion, the reader is reminded that their personal vBNT balances are not subject to burning, and if they choose to do nothing with their vBNT, they will be able to withdraw their full BNT stake at any point in the future. With this in mind, it is envisioned that many vBNT holders will choose to participate in the newfound leverage capabilities, or extract credit from the vBNT pool, to achieve any number of conceivable financial goals (vide infra). Those who participate may unintentionally, or deliberately, part with their vBNT temporarily, or permanently. The later sections of this document present scenarios where such actions are not just understandable, but could achieve a superb market efficiency that is currently unparalleled by Bancor’s rivals.

This mechanism was conceived in collaboration with Bancor founder Eyal Hertzog, the inventor of the liquidity pool concept, and godfather of automatic market makers (AMMs).

How it works

  1. When a swap is performed on a Bancor liquidity pool, a commission (‘pool fee’) is applied such that a small amount of TKN and BNT is paid to the pool’s liquidity providers. At present, that fee is shared equally by the TKN and BNT sides. This BIP proposes a variable redistribution of swap fees, where a third share is created and held in a ‘Bancor Vortex Reserve’ to support this new scheme.
  2. The reserve is then used to buy vBNT. This action requires user input, after which the protocol performs a swap with the vBNT pool, and burns the vBNT.
  3. The constant buy pressure will help to support the price, and maintain the new utility of vBNT as outlined below. Moreover, the diminished vBNT supply represents a portion of staked BNT value that is unable to be unlocked simultaneously with the rest of the BNT on the protocol.
  4. As the price of vBNT is driven above BNT, there is an immediate opportunity to market-buy BNT and stake it, then sell the generated vBNT for profit. This opportunity is available to anyone, including those with zero interest in the Bancor system and who may abandon their stake permanently if so inclined.
  5. The Bancor Vortex offers a tenable means to create demand for BNT in the minds of individuals who have no interest in automatic market makers, or speculating on BNT price.

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.

Game theory analysis

Consider the situation where the price of vBNT is close to 1 BNT, and the vBNT/BNT pool is reasonably deep. Under this situation, there is no excuse to not own a BNT stake.

Erin is a cryptocurrency enthusiast with 10,000 USDC in her wallet, and is actively seeking a new investment opportunity. She does not yet own BNT, and there is another project that has won her attention. From a purely theoretical standpoint, Erin has a strong incentive to buy BNT, and stake it, no matter what her ultimate investment decision is. To illustrate this, we can consider the extreme case.

Erin purchases as much BNT as she is able, and stakes it in a whitelisted pool to receive an equal value in vBNT. Then, she immediately sells the vBNT for USDC to immediately recover her initial investment, save for gas fees and the small vBNT/BNT price discrepancy. She is now back to where she started with 10,000 USDC (minus a little), and immediately invests in the other project.

Erin’s BNT stake on Bancor will be accruing fees, regardless of the fact that she has sold her vBNT. As time progresses, the amount of BNT she can withdraw per unit of vBNT can only increase. This means that at any point in the future, if Erin wishes to purchase any amount of BNT less than her staked amount, she can do so at a discount; Erin’s investment in the other project is irrelevant.

For the sake of the illustration assume that Erin continues with her investment strategy for three years, and does not return to Bancor to withdraw her stake at all during that time. In this period, the price movements of BNT are also irrelevant - the only important consideration is that the amount of BNT associated with her stake has increased, which is all but guaranteed.

Assume a modest 15% APY over these three years, resulting in roughly a 50% increase in the total number of BNT associated with Erin’s stake. Even in the worst case scenario, every vBNT Erin can get her hands on is worth 1.5 BNT upon withdrawal of any portion of her initial stake after this 3 year period. If the price of BNT becomes the single most valuable asset in the universe, and it is completely infeasible for Erin to access her entire stake - it makes no difference. She is still in the coveted position of being able to purchase BNT at a minimum 33% discount, at her leisure, until she has withdrawn her full stake. This is also true if BNT becomes relatively worthless - she still gets to make a 33% profit on every vBNT to which she has access.

In this scenario it is also important to remember that Erin has two options for obtaining vBNT: 1) She can purchase it directly from the vBNT pool, or 2) she can buy BNT and stake it to get vBNT. Either way, the vBNT she gets can be used to withdraw her 3 year-old stake.

Consider the alternative; Erin decides not to purchase BNT. The markets play out in an identical fashion, and she arrives at the same point three years later, but without an existing BNT stake. She is now unable to make the free, immediate 33% profit on staked BNT, and without any obvious advantages.

Even assuming Erin has no interest in speculating on BNT, the most risk-averse choice is to buy it and stake it, provided the generated vBNT can be sold near the BNT price at the time of deposit.

This illustration glossed over some potentially important details. For example, the ‘closeness’ of vBNT sale price to BNT at the time of deposit is critical, and the gas costs associated with setting up the deposit were also ignored. It is also assumed that the vBNT liquidity pool is sufficiently deep that a large swap can be performed with minimal slippage. However, even taking these cautionary notes under consideration, it requires a special level of certainty in alternative investment options to dispute this deduction.

Conclusion

A deep source of vBNT liquidity can fundamentally change the mechanics of serving as a BNT liquidity provider. It offers BNT stake owners leverage and hedging capabilities, and the ability to stake vBNT for additional yield-earning. The limited volatility of vBNT relative to BNT could attract speculators to the platform, and help to engage an important, underserved day trader demographic on our exchange. If the pool is able to achieve sufficient depth, it becomes trivial to demonstrate that there is no good argument to not own a BNT stake, with only modest assumptions. The new features of the vBNT token are already lying in wait of a pool deep enough to support them - regardless of the outcome of the on-chain voting decision of this BIP.

The on-chain voting for this proposal determines the outcome of the vBNT burning scheme. If successful, a variable proportion of swap fees on whitelisted pools will be used to purchase vBNT via the vBNT/BNT pool, and burn it. As outlined above, this creates a positive feedback loop where BNT tokens are attracted to the protocol and staked, and may result in a situation where additional BNT staking is required to unlock existing, mature stakes. In any case, the amount of vBNT available will never suffice to unlock all BNT staked on the protocol ever again, creating a runaway increase in TVL over time.

Together, these features should strengthen the unique value proposition for Bancor, and further distinguish it from other decentralized exchanges.

Economic bug bounty

This proposal has been carefully considered, and composed with input from the core development team, and its economic consultants. All reasonable efforts have been made to anticipate the economic consequences of the Bancor Vortex, and the discussion points included in this document attempt to capture our views as thoroughly as possible. We are convinced that the proposed implementation withstands scrutiny, and we invite criticism from the crypto community. Therefore, we are announcing an economic bug bounty.

A compelling argument for the presence of an economic bug that renders the proposal unfit for implementation in its current form, will be eligible for a bounty of 5,000 BNT.

Google Docs

An interesting idea, but there are a few points.

  1. The minimum size of the pool to start burning.
    If we focus on the cost of the pool in $, then we need to calculate the cost of vBNT. Now the liquidity of the pool is calculated only based on the cost of BNT and is $231 (Contract Address 0xcb6f564824402ddc8b988811f5cfd9704d659631 | Etherscan), although it contains 167 BNT and 605 vBNT, and if at the moment the threshold for starting burning would be set at 300 dollars, then we have a full pool without the burning process, and we will have to wait for the balance of BNT to grow. I do not see any problems for binding the start condition of burning to the number of vBNT + BNT, the threshold can then be changed by voting in the future. It should be noted that in these cases, if the burning starts, it will not stop until the pool holders begin to withdraw liquidity (vBNT is bought out, the number of BNT in the pool increases), or, in the case of binding to , the price of coins does not fall.
  2. Whitelist
    Absolutely not! Only adding liquidity with the use of BNT smart relay token.
    When burning is activated, the amount of vBNT in the pool will steadily decrease, always, regardless of the results of trading, waves and other things. In the long term, we will come to the following:
  • vBNT price will be higher than BNT;
  • the number of vBNT in the pool will be less than the initial stake.
    Since vBNT is created only when staking BNT, long-term liquidity providers of the vBNT pool will not be able to withdraw all their funds, since they simply will not be in the protocol. And as a result, we will get a Ponzi scheme – old liquidity providers will be able to withdraw vBNT only at the expense of new liquidity providers.
    If using the BNT smart relay token, the decrease in the number of vBNT is compensated by an increase in the number of BNT in the pool, and when the liquidity provider wants to remove liquidity from the pool, he will give his vBNTBNT smart token relay, receive vBNT and BNT in the appropriate proportion.

This is to confirm my Telegram name

1 Like

Thank you for your feedback. I have prepared a response, but would also like to invite you to discuss further. Please consider reaching out to me on Telegram: Telegram: Contact @MB_Richardson.

  1. As you point out, someone has contributed a tiny amount of liquidity to the vBNT pool, and traded a few hundred dollars worth of vBNT to move the pool balance to 167 BNT and 605 vBNT. We have experienced these kinds of issues with highly illiquid pools previously, and there are methods (awkward as they may be) to address them during the bootstrapping phase. We will need to maneuver through this eventually, but it is not a show-stopper. We will have a lot of time before this contract is ready to address the pool health prior to activating the burning mechanism. However, there is no need for a theoretical minimum depth to start burning vBNT. The shallowness of the pool will only mean that the price of vBNT will be accelerated quickly, which creates an opportunity to sell vBNT for BNT, then stake it to receive a greater amount of vBNT in the process. This process is only profitable until the vBNT/BNT ratio in the pool is back to 1:1.
  1. We have previously identified whitelist exploit opportunities, and addressed them in the relevant section of the proposal. However, I am not sure I understand your argument here. If the amount of vBNT in the pool is ever less than the amount of BNT, then a new type of arbitrage trade opportunity is created. As I outlined above, if this situation occurs, then there is an incentive to buy BNT on the market, stake it, and sell the received vBNT for any token on the network, until the pool token balance is returned to 1:1. This is the core feature of the proposal, as it creates a situation where BNT is constantly being locked up, growing the TVL and creating space for single-sided TKN deposits. This effect is inescapable, and means the balance of vBNT in the pool can only remain the same (price point stays at 1:1), or grow (price drops relative to BNT). Assuming there is at least one person who wants to make money, it is impossible for the amount of vBNT inside the pool to persist below the amount of BNT.

I sincerely hope to hear from you via Telegram, as I think a back-and-forth exchange is going to be a more efficient means for us to understand each other. With your permission, I would also like to share any messages relating to these topics on this message board.

Thank you for your considered response!

Chat between mbr and yXaH4uK

14 January 2021

02:42 XaH4uK: Hi Mark! Im about BIP10

02:43 Mark Richardson: Hey! Nice to meet you

02:44 XaH4uK: I agree with you about case 1 - no matter what size of pool, I say only 1 moment - if we check the price of pool, do not forget calculate price vBNT. About case 2 - another situation

02:46 Mark Richardson: Before we continue, I would like to confirm that you are the same person who commented on Discourse. To do this, I would like to ask that you edit your comment by adding a single line to the bottom of your post: “This is to confirm my Telegram name”. Is that okay?

02:46 XaH4uK: Ok

02:49 Mark Richardson: Perfect!

02:49 XaH4uK: Some scamers spend your time?

02:49 Mark Richardson: Telegram is full of them. Let’s talk about BIP9! Do you mind if I share our conversation on Discourse?

02:50 XaH4uK: Sure, if you want you can share. Yep, BIP9

02:51 Mark Richardson: Where would you like to start - the whitelist part? It seems we understand each other on the first point about the pool depth and vBNT price.

02:52 XaH4uK: Yep, whitelist. Why you want change vBNT pool to whitelist type?

02:53 Mark Richardson: Consider this situation: The price of vBNT in the pool is at a low point, let’s say 0.6 BNT. Then, a naïve vBNT holder decides to contribute liquidity. After they create the stake, the price of vBNT rises due to either the burn mechanism, or trade activity. And the price of vBNT returns to 1 BNT. The LP that entered the pool at 0.6 vBNT, will have increased their BNT share of the pool, but lost a disproportionate amount of vBNT. And this will mean that their balance is insufficient to withdraw their staked BNT from their protected positions. We would like it if vBNT liquidity providers did not have to worry about a scenario like this. Secondly, we would like to activate LM rewards on the vBNT pool. The contract requires single-sided staking to be enabled for LM rewards. And single-sided staking requires whitelist status. These are the primary reasons for the apparent need to whitelist. I am interested to hear your feedback.

03:16 XaH4uK: Why? Fo example, now in the vBNT pool we see price 1vBNT=0.25BNT. For example I have 50% of the vBNTBNT relay tokens. If I remove liqudity now, I’ll get 83BNT and 302vBNT (167BNT 605vBNT pool size now). If you buy 305vBNT, to change price 1vBNT=1BNT (300 vBNT and 300 BNT pools size), I’ll can get 150 each token, if remove liqudity.
In both situation I’ll get my tokens in proportion to the market price. But whitelist will create the situation you’re talking about - insufficient to withdraw vBNT. After Vortex starting volume of the vBNT will decrease each moment. Volume of vBNT in the pool we can image that graph. Sorry, I slow writing)

03:18 Mark Richardson: Gotcha. Ok let’s go through this. So, it is important to think about the price of vBNT only in terms of BNT - the dollar amount is not important.

03:19 XaH4uK: Yep. forgot about dollar price

03:19 Mark Richardson: For now, let’s forget about gas and swap fees just to keep it simple. Assume that you stake 100 BNT in the wBTC pool. To withdraw this stake, you need to burn 100 vBNT

03:20 XaH4uK: yep

03:21 Mark Richardson: But you aren’t interested in governance, so you decide to contribute liquidity with your 100 vBNT. Using the current pool price as an example, you could create pool tokens with all 100 vBNT and about 25 BNT. Now let’s say the price of vBNT returns to 1:1 with BNT. This could happen due to a lot of different reasons, and it doesn’t really matter what they are. So as the price returns, your pool tokens are now worth 50 BNT and 50 vBNT. Then you withdraw. At the start you had 100 vBNT and 25 BNT, at the end you have 50 vBNT and 50 BNT. You can recover the vBNT you need to withdraw your stake by staking the 50 BNT and receiving 50 vBNT in return. Now you have all 100 vBNT back, and you can withdraw from the wBTC pool. But you have lost 25 BNT in the process. And now have a 50 BNT stake that you can’t withdraw, because you don’t have any vBNT left.

03:28 XaH4uK: Yeah, but if I was sale 50 vBNT, in price 0.25 I was have 50 vBNT and 37,5 BNT, as result Im in profit after price changing to the 1:1

03:30 Mark Richardson: Walk me through this? When do you sell the 50 BNT?

03:33 XaH4uK: In this moment. I have 100 vBNT and 25 BNT. If I add liqudity, after price returns I’ll get 50 vBNT and 50 BNT, but I can sell now 50 vBNT and get 12.5 BNT. As result I’ll have 50vBNT and 37.5 BNT

03:35 Mark Richardson: Why would you sell 50 vBNT for 12.5 BNT? Can we just assume you can get 1:1 conversion, and get 50 BNT? In either case, I can’t see a profit here. As you start with 100 vBNT and 25 BNT, and end with 50 vBNT and 50 BNT, you have effectively sold 50 vBNT for 25 BNT. The problem is, each one of those vBNT could be used to extract 1 BNT each from your stake. So you are making a 50% loss. You can assume the pool is very deep - as deep as you want. I am confident that this price consolidation can only result in a loss. Of course, we aren’t considering the effect of pool fees. We can come back to this in a minute.

03:43 XaH4uK: It example, that I not lose my money. in this situation, then vBNT price grow, Im in middle profit. We have different ways, some more profitable

03:44 Mark Richardson: I need you to explain this carefully - I want to understand you. If you had 50 vBNT, would you sell it to me for 25 BNT? This is the outcome of the situation we have considered. It’s not middle profit - it’s all loss. The reason you are in loss is because the vBNT is still required to get back the initial stake of 100 BNT in the wBTC pool. And now you are buying it back at a higher price. May I ask, are you the person who owns the current pool tokens in the vBNT pool?

03:52 XaH4uK: Yep, full)

03:53 Mark Richardson: Okay - what happens if I buy vBNT right now and bring the price back to 1:1?

03:54 XaH4uK: I was started from the price 1:1, I back my money +fees) But we go wrong way

03:55 Mark Richardson: How much have you made in fees? The pool fee is 0.2%

03:55 XaH4uK: It’s not my pool, I don’t calculated

03:55 Mark Richardson: It’s my pool :slight_smile:

03:55 XaH4uK: ))))

03:55 Mark Richardson: How many tokens did you start with on each side?

03:56 XaH4uK: started 100, after add 200

03:57 Mark Richardson: Ok so about 150 on each side?

03:57 XaH4uK: nop, 300 each side

03:57 Mark Richardson: ok 300 each side. Give me a second. Ok I have calculated it.

04:04 XaH4uK: Aaaand, Im a rich?)

04:04 Mark Richardson: I can currently buy 287.7 vBNT from you for 150.8 BNT. This will return the pool to 1:1 price vBNT/BNT. The pool will have about 317 left on each side.

04:07 XaH4uK: Ok, thanks, not bad

04:07 Mark Richardson: Not bad at all. But, what would happen if you provided liquidity again, right now? Let’s just pretend. Choose a number of vBNT and BNT you would like to add at the current price point.

04:09 XaH4uK: Yep, HODL it the best way, while price low

04:09 Mark Richardson: Exactly. So let’s say someone not as smart as you decides to add liquidity now. Maybe 100 vBNT and 25 BNT?

04:10 XaH4uK: You right, he lose some money, But 1 side protection do not safe them

04:10 Mark Richardson: Ok progress! 1-sided protection can be used to save them, because we can make sure the number of tokens he withdraws at the end is the same as the number he started with. And he will earn a little in fees as well. This is how we protect against impermanent loss at Bancor. We want to make sure liquidity providers to the vBNT pool don’t get stung by this. And - we also want to activate LM rewards on the pool. What do you think?

04:20 XaH4uK: How? Continue about real vBNT pool. To return price to the 1:1 you need buy 50% of the vBNT 287.7 from 605. Imagine, now I add in 1side protection 700 vBNT (price 1:0.25), total 1305 vBNT. After that price return to 1:1 (total 652.5 vBNT), and I wanna get my money back, where protocol find needed 700 vBNT?

04:20 Mark Richardson: It gives you 700 BNT

04:20 XaH4uK: BNT?

04:21 Mark Richardson: You can stake it, and get the 700vBNT you need. This is how our insurance works. The protocol pays you in BNT for your losses.

04:22 XaH4uK: Sorry to spend your time

04:22 Mark Richardson: It’s ok! :heart:

04:23 XaH4uK: I’ll add some vBNT to 1 side protection vBNT pool)

04:23 Mark Richardson: Ok it sounds like we understand each other now! Remember the vBNT cannot accept single-sided yet, but we will ask the DAO to consider it.

04:24 XaH4uK: Yep, in this moment yes. I’ll thinking about insurance.:ok_hand:

04:25 Mark Richardson: Thank you for speaking with me :+1:

04:28 XaH4uK: Thank you to answer.

2 Likes

A bit late catching up to this but I’d like to point out a potential risk:

In the short video it’s said that arbitrageurs (when ratio above 1:1), even if they only enter to flip vBNT to BNT and never retrieve their stakes, are providing a net positive by leaving extra staked BNT behind.

The problem with this is that you’re letting someone with absolutely no skin in the game the choice of leaving their BNT in whichever pool they want. Theoretically speaking, arbritageurs could maliciously stuff up the weakest asset in the v2.1 pools with BNT, open up ton of space on TKN side that normally wouldn’t be there, and potentially setup an exploit where a lot of BNT can be exploited. Normally this risk doesn’t really exist as people in normal circumstances are incentivized to stake their BNT in quality pools they believe will do well.

Being ok with this risk is essentially the equivalent of letting the protocol go wild and limitlessly ramp-up protocol BNT co-investing on ANY pool, something that I don’t think anyone is actually comfortable with.

In conclusion, you’re essentially allowing complete randoms (who could very well be malicious competitors) with absolutely no cost basis or skin in the game to take BNT in the vBNT/BNT pool and put it in whatever v2.1 pool they wish.

Hey man!

Nice observation - it is true that arbitrageurs can put their BNT anywhere, but there are no exploits available here. Performing this type of arbitrage creates skin in the game. See the section above “Game Theory Analysis”. Arbitrageur or not, you are always incentivized to deposit BNT in a pool you believe will be profitable, because you can always withdraw it at a later date after it has accrued value from swap fees. If you were able to sell vBNT at a high swap rate, then it is trivial to demonstrate that at any point in the future you can make a second round of profits by buying more BNT, staking it, and using the vBNT to withdraw the older stake.

Briefly, people performing this type of arbitrage have exactly the same incentives as you do to choose a pool with the highest yields. After performing this arbitrage, they are invested in BNT forever.

The type of malicious arbitrageur we’re talking about is not interested in coming back and potentially claiming interest in a few years - thus pool choice is of no interest to them. They make their money (in the video the example put forth is 1 vBNT price of > 1 BNT) or even break even (at 1:1). They can then setup a more immediate attack and larger gain by stuffing a potentially sketchy pool with too much BNT and eventually draining it under the right circumstances. Even if they get the BNT locked in certain pools at a cost (lets say 98:1 vBNT to BNT) thus a 2% cost, the potential exploit surface/risk is much larger than their cost of 2%. Like filling a sketchy pool with 10m worth of BNT would only cost $200k but the potential reward for draining the pool is $10m.

Currently pools have quite a strict requirement for earning protocol co-investment, but with the vortex system - especially with the artificial burn to try to maintain the peg - malicious actors can essentially very cost effectively control this protocol co-investment and place it in the pool of their choice. This is quite a large attack vector as only ONE of the v2.1 pools (and this will be expanding to hundreds over the years) need to be compromised to drain all of the BNT in the BNT/vBNT pool. Even if they were buying BNT at 90% loss (0.1 vBNT/BNT ratio), being able to drain 100% of that BNT means they’re still in profit if they act fast enough to dump it all.

Example: Some shady project owner manages to get his token whitelisted on BNT (maybe even buys vBNT votes thanks to the vortex). His pool normally attracts no BNT stakers and has practically no protocol co-investment limits so in normal circumstances every BNT that would be put into that pool would come from him and anything that he drained from it would give him no profit. However thanks to the vortex he buys $1m worth of BNT → stakes it in his pool (and stakes TKN side since he owns most of the tokens there) → sells the vBNT for 800k of BNT (assuming a fair .80 ratio) → and sells that back to a stablecoin. He then sells all his worthless TKN tokens in that pool and drains the $1m worth of BNT from it and immediately sells it. In the end he lost 200k in BNT acquisition costs to fill his pool, but walked away with $1m thus realizing a 800k profit.

1 Like

Agreed.

In BIP3 I identified that whitelisting is the single greatest threat to the system, which is why the quorum requirements and supermajority rules were put in place. But this isn’t a weakness of the vortex - it is a weakness in single-sided staking and IL insurance. In any case, we have security features in place that stop this kind of behavior.

The Bancor liquidity pools close trading when the price inside a pool is moving too quickly - such as during a rug-pull attempt. The attacker can drain a small amount of the pool, but the swap-disable feature will kick in and the pool will become frozen. It is also impossible to add/remove liquidity during such events, which prevents another, more severe type of attack.

In short, the issues you raise are of a general nature. Remember that the vBNT pool is very small, effectively fixing the credit rate; you can never sell the quantities of vBNT you have suggested here at a near 1:1 rate, as the pool would need to be billions of dollars deep. The size of the vBNT pool in the future will need to be carefully considered, and managed with a sound fiscal understanding of the new debt market we are creating. I am personally in support of having a conservative debt limit, if only for maintaining a healthy carry for LPs across the network. However, an added advantage to conservative credit limits is that the attacks you have described, that require the use of the vBNT pool, are effectively nullified.

I am interested to continue this conversation with you feel my responses are unsatisfactory.

Thank you for the thorough explanation mbr.
I do have a question regarding the fairness of the VBNT/BNT pool at current state as 1 whale has staked nearly all of the pool’s liquidity. I see that it is in the future plans to eventually increase the liquidity pool size for others to enter and to decrease the price impact. However what is stopping us from proposing that now and getting it passed right away?
How much more time is needed to carefully consider the future size of the pool?

Thank you so much

1 Like

Hi Jimmy!
Yeah, is a shame that the vBNT pool is occupied almost entirely occupied by a single user. For the time being the vBNT pool is very much in a testing phase. We are using this time to observe how the pool behaves and also taking the opportunity to make sure the community understands what it is, how to use it, and what the risks are.
The whitelist proposal for the vBNT pool included a schedule for raising the cap. Right now the priority is to get the fee burning feature up and running. After it has had a while to run, we have the DAO approval to increase the cap on the vBNT pool to 1m BNT, which should open up a lot of room for vBNT liquidity providers. After that, community members can propose to increase or decrease the limits as they see fit.
We do need to proceed with caution. A very deep vBNT pool is akin to having a high debt limit. As a community we need to decide on what a prudent lending policy should look like, and stick to it. We want this to be a sustainable, long-term advantage of the Bancor system. Going too hard, too fast, might not very conducive to building a sound economic model.
Don’t worry though - of course it is going to grow, and you will have the opportunity to provide vBNT liquidity if you want to. We just need to be patient <3

1 Like

The attack vector I’m talking about didn’t exist before and thus isn’t really related to the IL insurance protection or anything discussed previously. It is all about being able to allocate BNT liquidity to a pool at less than full cost (and in some cases at no cost) - something which has only been possible under increasing protocol co-investment limits and that is a separate vote from the whitelisting which carries even higher scrutiny.

The importance of having user staked BNT to mitigate risk of pools is something that was actually discussed by the creators of this proposal (53 minute mark of this video https://youtu.be/kLmuZcC2ASY?t=3182) so it’s strange that this factor has suddenly completely been disregarded. Don’t get me wrong, I actually believe that certain super high quality pools can be increased without BNT stakeholders’ involvement and something I have pushed for from the very start of v2.1, but this does not apply to literally ANY whitelisted v2.1 pool which is essentially what is happening here.

You mentioned a mechanism by which pools that fall in price too quickly can get frozen out - but the attack I’m talking about doesn’t even need a fancy and dramatic sudden exit. The secretly compromised pool can slowly be filled up in an organic looking way over time and it can slowly be drained out due to steady price collapse. Thus whatever the auto-mechanism is to lock out certain pools experiencing sudden drops will likely not be enough as it can easily be worked around.

What compounds all of this even more is that to facilitate this attack even further is a new attack vector that’s opened up. In the process of accumulating BNT to perform this attack, the attacker can accumulate a ton of voting power to get their token whitelisted. While this was of course a possibility previously, there was no immediate economic incentive to do so because at best the way to ‘steal’ funds from the protocol would involve a lengthy stake with IL insurance locked in. Suddenly though, there is a much more immediate way to syphon money from being whitelisted by simply jacking up pool depth at a heavily subsidized rate (and then draining that out in a much quicker fashion than IL protection exploits).

This attack also doesn’t care about which insurance tier a token is (there have been discussions to list ‘lesser/riskier’ projects at lower insurance tiers thinking this would reduce risk of protocol). Every pool that receives vBNT when staked with BNT is susceptible to this attack.

In summary:

-New malicioius economic incentive to get whitelisted - which is complimentary with the attack and not even an extra cost to would be attacker.

-New risk to EVERY SINGLE v2.1 pool being liquidity inflated at less than full cost (previously not possible and prevented these kind of attacks) and the chance of those being drained out over time.

Suggestions:
-Have to reconsider the insurance tiers and how they function in light of this - perhaps don’t give vBNT to any pool under gold tier.

-Have to have a built-in decentralized/autonomous rules or systems to dissuade the slowly overstuffing up of random pools or draining of them. Manually stopping pools that ‘might look sketchy’ or involving a lengthy cumbersome governance vote on it are not apt solutions and will both likely be too late before the damage is done.

-Contrary to what’s said in the explainer video, a vBNT being over 1 BNT should aim to be prevented as allowing a potential malicious entity the cost-free choice of allocating BNT in any pool is not a good thing for the protocol. So the burning mechanism is entirely counterproductive in this light, especially above certain levels.

1 Like

Hey Coiner!

Wow there is a lot here, and you have certainly been thinking hard on it. I think the best way to continue is to break down some of these apparent exploit vectors, and compare them against situations with and without the vortex in place. I am confident that the vortex mechansim is a benign contributor, and in some cases actually alleviates some of the exploit potential you have (quite diligently) highlighted. The Bancor community is lucky to have members like you who spend the time to consider these topics in depth.

Let’s start with the most basic scenario, and one that has plagued other projects - the proverbial, dreaded rug pull. You and I both know how this works, but for the benefit of those reading on, I am going to summarize it briefly.

In a rug pull, someone creates a nefarious (i.e. useless) erc20 asset, and then creates a liquidity pool with it, while encouraging others to do the same. Others in the community buy the tokens and grow the pool depth. Then the token’s creator uses a resvoir of the nefarious tokens to buy the other token from the pool, effectively crashing the price of their own token in the process, and draining the paired asset, in this case BNT.

On Bancor there is a slightly more sophisticated way this exploit can be carried out, due to the nature of IL protection. The nefarious actor does not need other community members to participate, if the pool is whitelisted. Under this situation they can provide as much BNT and fake token to the pool as they want (we can assume they own the entire pool’s liquidity), and then wait 100 days for full insurance. At the end of this period, they can crash their fake token, and drain the pool of BNT. Note that they are buying their own BNT here, plus whatever the co-investment limit on the pool is. Due to the bonding curve, they end up in a much worse situation than when they started, until they withdraw their BNT liquidity. Because the contract protects them from IL, they can essentially withdraw all the BNT they just bought, effectively doubling the BNT they own. This is an exploit we have known about since before the v2.1 launch, and was the primary motivator for the high quorum and supermajority requirements of the DAO.

So now we should consider the scenario where they add a large amount of liquidity to the whitelisted pool, but then sell the vBNT. Everything plays out as before - they dump their scam token on the pool to buy as much BNT as possible. Assuming they own a near-majority of the pool, they will never be able to extract all the BNT in their initial deposit. After having completed this - the final step to realizing the profits of their attack is to withdraw the insured BNT. However, having sold their vBNT, they are unable to do so. Therefore any attacker considering this vector is certainly not using the vortex; the attack requires the ability to withdraw protected BNT quickly.

It is also worth discussing the ability to buy vBNT to subvert governance. This is not a novel design - governance tokens are for sale everywhere in crypto; what makes ours special is that only a diminishingly small amount is for sale at any time. For example, At the time of writing there are 224,100.5 BNT and 337,343.8 vBNT in the pool. This means someone can buy 62,391 vBNT with 50,852 BNT before the price returns to 1:1. So there is a ~23% advantage to buying vBNT to vote with, if your goal is voting power. But this is still a small number: 62,391 is about 0.5% of quorum, for example. After we increase the size of the vBNT pool following the introduction of the burn feature, this could increase to ~1%, but remember the burn also increases the price of vBNT, so 1% is about the worst we can expect. In the scheme of things, this is much less power than, for example, Twitter influencers have to dictate the outcome of DAO decisions.

The concerns you have raised are extrememly important, and I hope you don’t take my responses as dismissive, or disrespectful. My only ambition here is to communicate that these exploit opportunities have been throroughly researched long before the vortex proposal was published, and continues to be researched even today. One of the reasons we are proceeding cautiously with the pool limit is specifically to manage these threats; our #1 priority is protocol security and usability.

I think this is a great idea, and I am interested to work with you on it. I have a high-level concept in development that I think will be able to address this, and also overcome some gas inefficiencies in the system. You know where to find me. I enjoyed working on the meritocratic insurance proposal with you, and it has been awesome to watch that evolve into the new onboarding idea. I welcome an opportunity to work with you again.

:heart:

Thanks for your replies but I don’t think you’re actually addressing the root of the issue I’m bringing up and instead talking about other things like exploiting the IL insurance. The attack vector I’m talking about doesn’t need any IL insurance in the pool to function, this is a very important distinction.

I’ve tried to say it VERY clearly but I’ll try one more time. The attack vector concerns putting BNT liquidity into pools without paying full cost for said liquidity. Until the vortex, it was impossible to put BNT into a pool without paying full price for that BNT. Thus, draining said pool of BNT made no sense (without resorting to IL protection shenanigans which you mention) since every BNT you stole you paid full dollar for (aka absolutely no risk unless you went for the long con that required something like 100days). Now with the vortex you’re able to get that BNT in there at 90c on the dollar or 80c or 50c (by buying BNT → staking it in your dodgy pool → selling that vBNT for 50/80/90c on the dollar). The fact is that you’re getting that BNT in there MUCH cheaper than before and if you’re able to slowly drain that pool through constant one sided selling pressure (but not so sudden to trigger any of the auto mechanism to freeze pool) then you can sell that BNT acquired on the market at full price (you’ve already long sold you vBNT at this point and recouped the majority of your costs). You don’t need IL insurance, you don’t need to wait 100 days, as I said you can perform this attack in a slow and stealth way without bringing much attention to yourself through a slow and steady filling up of the pool at a discount (through vortex) and then slow drain.

TLDR: Vortex allows you to fill up BNT in any pool at a huge discount, and then drain it and sell at full price.

1 Like

I am having trouble recreating the situation where the vortex allows a pool to be drained slowly over time. May I ask you to create an itinerary with rough numbers and any assumptions you are using? I would be happy to look into it.

I appose this proposal and am not for it at all. I would like to know how to block a user