A New Paradigm — Understanding The Bancor Protocol

Stefan Pernar
Keeping Stock
Published in
14 min readJun 15, 2017

--

by Stefan Pernar

tl;dr:

  • Token changer slippages can obfuscate loss makers as arbitrage opportunities for the uninitiated under the right conditions.
  • Fractional reserve token networks open up novel scam vectors that need to be mitigated
  • Token changers need to pay dividends to their holders in it’s reserve tokens to properly incentivise provision of capital for their reserve balance
  • Token changers need to have their own ICOs to benefit BNT holders
  • BNT has great potential but won’t see significant gains in the short term

Introduction

If you have not been paying attention to what is going on in the blockchain world the past couple of months you have been living under a rock. Not only has the crypto asset class reached a milestone recently by breaking the $100 Billion market cap barrier, but one particular company has broken a crowdfunding record with their recent Initial Coin Offering (ICO) which raised north of $150 Million in a matter of hours.

At the core of Bancor’s technology is a set of formulas that solve the double coincidence of wants problem for asset exchange. It works by creating a token that is backed by one or more reserve tokens for example Ether (ETH) at a Constant Reserve Ratio (CRR). Let’s assume that we create 1,000 tokens which are backed to 20% by 100 ETH. The way the math works out each of these tokens will have a price equal to its reserve (100 ETH) divided by its supply (1,000) and the CRR (20%) resulting in 100 ETH / (1,000 * 20%) = 0.5 ETH. Lets call them Simple Example Tokens (SET)

From this setup two formulas can be derived. One to calculate the amount of reserve tokens one receives in exchange for a given number of SET tokens and another one to calculate the amount of SET tokens one receives for a given number of reserve tokens. Since tokens can be programmed in Ethereum our SET token can become its own decentralised exchange (dex) by being programmed in such a way that it accepts its reserve tokens in return for issuing more SETs and by accepting its own tokens in return for its reserve tokens. Doing so turns our SET token into a smart token providing its own liquidity.

The two formulas used for buy/sell conversions are mirror version of each other so that returning the same amount of reserve tokens one just received from a smart token one ends up with the exact same number of smart tokens as before the first exchange thus reversing the exchange. The math works out like this given our SET token setup and 1 ETH input:

SET Tokens received = SET supply (1,000) * (( 1 + ( reserve tokens received (1) / reserve token balance (100 ETH))^ SET Token CRR (20%) — 1) =

1,000*((1+1/100)^.2–1) = 1.992047666533339 SET issued

These additional SET are added to the total SET supply and the received 1 ETH is added to the reserve balance giving us 1,001.992047666533339 SET and 101 ETH reserve balance. The CRR remains the same.

This results in a new price for 1 SET which now is 101 ETH / (1,001.992047666533339 * 20%) = 0.503996015915 ETH

The price has increased in line with the additional demand, without an exchange partner with opposite wants and without a trusted 3rd party. What if I want my ETH back? The mirror formula for our smart token buy back is as follows given the 1.992047666533339 SET we received earlier as input:

Reserve Tokens received = reserve token balance (101 ETH) * ( 1 — (1 — smart tokens received (1.992047666533339 SET ) / Smart Token Supply (1,001.992047666533339)) ^ 1 / CRR (20%)) = 101*(1-(1–1.992047666533339/1,001.992047666533339)^(1/.2)) = 1 ETH

The received SET are subtracted from the smart token’s total supply leaving 1,000 SET and the paid out 1 ETH is subtracted from the reserve balance leaving 100 ETH and giving us a price of 0.5 ETH per SET. Which leaves us back were we started. The way the math works out, it is irrelevant in what order SETs are bought or redeemed. The net transactions will result in the exact same price for SET.

The way the math works out the formulas are essentially a hard coded two way price elasticity of demand functions the steepness of which is determined by the CRR. Meaning if someone wants to obtain SET and can not find a buyer for the current price the formula accounts for the fact that a higher price is warranted and that the buyer will have to pay a premium. The reverse is true for sellers who can not find a buyer at current SET prices. They will have to incur a loss. The lower the CRR and the larger the transactions in relation to the reserve balance the steeper the premium and loss — also called slippage — respectively.

The genesis smart token issued by Bancor in their recent ICO is the Bancor Network Token (BNT). It is 10% backed by 20% of the crowd sale proceeds with a supply of 200 issued BNT (50% to the ICO subscribers and 50% to Bancor) for every 1 ETH received. Bancor raised 396,619.891803711283883 ETH and issued 79,323,978.3607422567766216 BNT to 10,885 participating addresses.

Now that we have the introduction behind us lets play a little.

The Honey Pot Token

Step 1) create low divisibility tokens (LDT), say 50 total, at 0 decimals and give them value by backing them with 100 BNT at 20% CRR

This creates 50 LDT that are worth 10 BNT each at issuance.

Step 2) create 1,000 LDTBNT token changers backed 50% by 50 LDT and 50% by 480 BNT

This creates the following setup:

a) 1,000 LDTBNT token changers which are worth 0.980 BNT each

b) a dex which effectively sells LDT for 9.6 BNT

Since LDT can be sold to the LDT contract at 10 BNT and bought from the LDTBNT dex for 9.6 BNT we have a classical arbitrage situation. But what happens if an arbitrageur wants to take advantage of this situation and buy LDT from from the LDTBNT contract in order to turn around and sell it to the LDT contract for a nice 4% risk free profit?

Scenario 1: Arbitrageur has no understanding of the Bancor protocol / Ethereum

Let’s assume the Arbitrageur sends 9.6 BNT to LDTBNT to exchange BNT to LDT. How many LDT does he get in return? The answer may surprise you: none. But why? According to the Bancor formula the arbitrageur was entitled to

Step 1) BNT to LDTBNT conversion => 1,000*((1+9.6/480)^.5–1) = 9.95049383621 LDTBNT

Step 2) LDTBNT to LDT conversion => 50*(1−(1−9.95049383620÷1009.95049383621)^(1÷.5))) = 0.98039215686 LDT

However, since LDT is a 0 decimal smart token and Ethereum simply truncates transfers of tokens at their decimals our arbitrageur receives nothing, the LDTBNT reserve increases by 9.6 BNT and thereby the price of LDTBNT as well profiting its owner.

Scenario 2: Arbitrageur has some understanding of Bancor / Ethereum

Let’s assume our arbitrageur understands the error of his ways and sends a little more than the 9.6 BNT price to the LDTBNT contract, say 9.8 BNT.

Step 1) BNT to LDTBNT conversion => 1,000*((1+9.8/480)^.5–1) = 10.1567535124 LDTBNT

Step 2) LDTBNT to LDT conversion => 50*(1−(1−10.1567535124 ÷1010.1567535124)^(1÷.5))) = 1.00040832993 LDT

Hurray! The arbitrageur is entitled to 1.00030912118 LDT and receives 1 LDT while the remainder gets truncated and added to the LDTBNT reserve in line with Ethereum logic. Now let’s turn around and sell the LDT for a nice .2 BNT profit to the LDT contract. Our arbitrageur will receive:

Converting LDT to BNT => 100*(1−(1−1÷50)^(1÷.2))) = 9.60792032 BNT

Instead of making a 0.2 BNT profit our arbitrageur loses ~0.2 BNT. Note that this scheme works as long as the numbers remain in proportion allowing for at least 2% losses — probably more if you tweak the setup a bit without making it too obvious.

Solution: only allow highly divisible smart tokens

Smart Tokens and Fractional Reserve Banking Bait and Switch

Step 1) Create 1,000 smart tokens (TK1) backed 20% by 100 BNT => TK1 will be ‘worth’ .5 BNT at issuance

Step 2) Create 10,000 smart tokens (TK2) backed 20% by 1,000 TK1 => TK2 will be ‘worth’ .5 TK1 = .25 BNT at issuance

Step 3) Create 100,000 smart tokens (TK3) backed 20% by 10,000 TK2 => TK3 will be ‘worth’ .5 TK2 = 0.125 BNT at issuance

Step 4) Sell 100,000 TK3 at a fantastic discount of 50% OTC to someone for 100,000 * 0.125 BNT * 50% = 6,250 BNT

Step 5) Profit 6,150 BNT

Solution: This is a tricky one, since even after the first step someone could turn around and sell 1,000 TK1 for half the nominal price OTC and still make 150 BNT profit. Are people going to fall for this? In a sense they already have with the Bancor ICO. This is not to say that traditional ICOs are better — the reverse is actually the case since in the case of Bancor at least 20% of the raised Ether are used to back the issued BNT whereas traditional ICO tokens have been backed by the faith in the issuing party and nothing else. The potential for scams remains however and will require some form of transparency in regards to the underlying real assets in any given smart token network.

What to do with your BNT?

Initially one option will be to use them to buy token changers. As described by Bancor, token changers will have an inbuilt fee for every exchange that goes into the token changer’s reserve balance thus increasing its value with every transaction. Since the token changers with the largest reserves have the smallest slippage they will be the most popular token changers and will in line with market forces find an equilibrium where collected yearly fees in relation to their invested reserve balances will equal the reserve currencies’ borrowing rates.

Erik Tristan Voorhees of Shapeshift fame estimates this rate to be ~1% / month which equals 12.68% per year while liqui.io offers 24% per year for BTC deposits for example . Let’s take the announced GNOBNT token changer as an example. The volume for ETH/GNO in the past 24 hours at the time of writing was $612,194 on Poloniex + $170,867 on Kraken + $40,529 on Liqui + $14,399 on Bittrex = $837,989 per day. At these volumes a GNOBNT 0.1% fee token changer would collect $305,865.98 in annual fees and thus sustain $2.45 Mio worth of invested capital (backed by 50% BNT @ 0.01 ETH = 306,250 BNT & 50% GNO @ 0.7052 ETH = 4,343 GNO assuming ETH = $400) at a 12.5% annual interest rate. The GNOBNT token changer will be successful as long as (a) the average spread multiplied with the average transaction size on traditional exchanges is larger than the GNOBNT slippage for the same transaction size and (b) the collected fees are guaranteed to benefit the providers of the reserve balances.

Let’s start with (a). A quick look over at Poloniex shows that at the time of writing the spread for GNO/ETH was ~2% for a 1.96 GNO/1.38 ETH transaction size + 0.4% transaction fees equals 2.4% total. Given our numbers above and assuming 1,000,000 GNOBNT total supply the slippage can be calculated as following (assuming BNT unchanged since ICO):

Step 1) GNO to GNOBNT conversion => 1,000,000*((1+1.96/4,343)^.5–1) = 225.625018699 GNOBNT

Step 2) GNOBNT to BNT conversion => 306,250*(1−(1−225.625018699÷1,000,225.625018699)^(1÷.5))) = 138.148567536 BNT — 0.1% fee = 138.010418968464 BNT

Step 3) BNT to ETH conversion => 79,323.978×(1−(1−138.010418968464÷(79,323,978+138.010418968464))^(1÷.1))) = 1.38009098342 ETH

Our slippage here will be (1.96*0.7052)/1.38009098342–1 = 0.152237541% which is 93.6% lower than our Poloniex example above. Now add to that Poloniex counter party risk and the choice is an obvious one. We have been ignoring gas cost for conversions, transfers and withdrawals fees of traditional exchanges which are assumed to not affect these results significantly.

As demonstrated above, Bancor token changers have the potential to disrupt the current cryptocurrency exchange business model. At least for relatively small transactions in regards to a token changer’s and BNT’s reserve balances. As long as the opportunity cost for finding a willing exchange partner becomes sufficiently large there will be an incentive however to engage other types of exchange services. Changing our example above to a 100 GNO conversion to ETH the slippage will rise to 2.46% using GNOBNT getting very close to what we have seen on Poloniex for smaller transactions and a quick check on actual spreads for 100 GNO/ETH exchange rates on Poloniex gives us 2.524% for selling and 3.109% for buying GNO (excluding fees) at the time of writing. Increasing the transaction size even further to 1,000 GNO, slippage using the GNOBNT token changer would rise to 23.64% in either direction whereas Poloniex has a sell spread of only 3.579% versus a buy spread of 26.89% (excluding fees) given that a massive 4,817 GNO bid being present at 0.6918 ETH at the time of writing. Under these conditions it would be far better to use Poloniex to sell your 1,000 GNO then to use GNOBNT whereas buying 1,000 GNO from GNOBNT would still be a better deal.

Market depth therefore remains an important factor to consider before deciding to use token changers versus traditional exchanges since a token changer’s ‘virtual’ market depth is fixed in regards to its CRR and reserve balances while traditional exchanges might have arbitrarily large/small bid/ask walls and seemingly random plateaus on either side of the last price depending on market sentiment and trader opinion of what constitutes a good deal given their individual wants.

How about (b)? Since transaction fees are added to the reserve they increase the GNOBNT price by adding to the held capital. However, once more capital is held in the GNOBNT token changer than is warranted by prevailing borrowing rates and trading volumes, arbitrageurs will step up and skim the generated fees leaving nothing for the long term holders of the token changer. To incentivise provision of capital by long term token holders to token changers the collected fees must therefor be segregated from the reserve balance and regularly distributed pro rata to the holders of GNOBNT while still being factored into the GNOBNT price. This token changer dividend will have to be in the form of paid out reserve balances since issuing more GNOBNT tokens to distribute the collected transaction fees would increase the GNOBNT price and lead to a post ex-dividend date arbitrage race to bring the GNOBNT price back into equilibrium with market forces whereas paying out the collected fees in form of the reserve balances would lead to a gradual increase of the GNOBNT price followed by an instant drop on dividend day analogously to ex-dividend date price drops of traditional stocks. This will ensure providers of capital by token holders are incentivised to do so since collected fees are safe from arbitrageurs, fluctuating interest rates and transaction volumes. Additional gas cost for such a method would be in the order of 10 ETH per dividend day assuming transaction cost of 50k gas at 20 Gwei per GNOBNT holder and ~10,000 GNOBNT holders and thus acceptable in proportion to the sums involved.

As long as (a) and (b) are satisfied the best use for any of your own BNT tokens — and any other tokens you hold for which token changers exist for that matter — that you plan to hold long term will be to use them to purchase respective token changers since at the very least you will be earning market interest rates in the form of dividends for them, leaving finding of the market equilibrium to the arbitrageurs and speculators while you lean back, wait and rake in the profits. Until the next even more disruptive scheme that could make your GNOBNT if not worthless then at least worth a lot less over night. So keep your eyes peeled.

That being said, I believe the announced investment of $1 Mio each in the reserve capital of the to be created GNOBNT token by the Bancor and Gnosis teams to be a strategic mistake. Firstly the invested capital seems too high given market interest rates and projected transaction volumes — especially early on. Secondly, why deprive BNT and GNO holders of an opportunity to invest their tokens in GNOBNT? Issuing the GNOBNT should in fact be it’s own ICO in which participants can bid GNO and BNT tokens and will be issued with a multiple of that in GNOBNT tokens once the ICO is finished. This token changer ICO model would further increase community engagement surrounding Bancor, increase demand for both GNO and BNT and be an excellent investment opportunity and effectively establish a reliable crypto interest rate market all in one fell swoop for the reasons described above.

The long and short of it

So how much are BNT going to be worth? Once the BNT dex functionality gets activated the initial BNT price will be exactly its ICO price of 0.01 ETH. In addition, for a doubling in price BNT would have to see and influx of an additional 23.21% of the capital they raised during the ICO. That is just the way the Bancor math works out. Anyone hoping to multiply their investment by flipping BNT to ETH on day one will thus be sorely disappointed. So what is BNT going to be worth in the long run? The stated goal of Bancor is to enable the long tail of cryptocurrencies. The theory of the long tail applied to cryptocurrencies means that as a rule of thumb the sum market cap of the obscure coins will make up more than half of the market cap of all cryptocurrencies combined. As of today Ethereum token market cap is about $4 Billion. Assuming that 50% of the long tail will chose some form of backing and that BNT will capture say 50% of that there will be a demand for BNT to the tune of $200 Million total market cap assuming an average CRR of 20% ($4 Billion * 50% * 50% * 20%). Additional demand for token changers for these currencies assuming 0.3% daily turnover in ETH and 50% backed by BNT will be $17.52 Mio (assuming 12.5% market interest rates per year and $400/ETH). This gives us a rough present day market cap requirement for BNT to fulfil all these use cases of ~$212.5 Mio or 0.0067 ETH per token at current supply and prices or as required by Bancor logic a total supply of 7,5 Mio fewer BNT then at ICO. In other words 7,5 Mio tokens would have to be sold back to the BNT contract for BNT market cap to be in line with our assumed demand for BNT. Should Bancor implement a price floor of 0.01 ETH with the proceeds they raised beyond their hidden cap of 250,000 ETH as promised this dynamic will change further.

Should average CRRs turn out to be lower than 20% or interests rate higher than 12.5% or both BNT fair value will further decrease while an increase in Ethereum token market cap or a higher daily turnover of Ethereum tokens or a larger BNT market share in backed tokens would increase BNT’s potential value as well as the other way round. Add to that the additional demand for BNT in ETFs and other as of yet unknown use cases and this figure will go up again making it’s ICO price of 0.01 ETH and the capital it raised probably justified in my view. That being said I do expect a lot of get rich quick participants in the ICO to turn around and sell for lack of perceived performance that could turn out to be an excellent opportunity to add to your BNT holdings.

What could change these figures significantly? Well — overall growth of the Ethereum ecosystem certainly helps. Or put another way: if you believe in Ethereum, believe in Bancor. In addition the biggest potential however would be in the success of projects such as Cosmos, Polkadot and OmiseGo creating blockchain interoperability opening up vast additional markets for BNT on other blockchains. A hypothetical BTCBNT token changer for example alone would justify ~$365 Mio BNT reserves. Bancor therefore has an enormous incentive to make blockchains interoperable.

Conclusion

The Bancor Protocol is revolutionary on a number of levels and is bound to have a significant impact on Ethereum and its use cases. I personally see an economics Nobel Price in the future of the Bancor Team for solving the double coincidence of wants problem for asset exchange. Understanding the intricacies of the Bancor protocol will be essential in this new market with token changers backed by fractional reserve smart tokens. So you better do your homework. Especially early on there will be a lot of confusion in regards to how BNT specifically and smart tokens in general work. The many questions of ‘When will BNT hit exchanges?’ (BNT is its own dex!) and “BNT to the moooon!’ comments attest to that. None of this should be construed as investment advice and you should only invest what you are willing to loose. Many things can and will go wrong along the way and the code and Bancor formula are of course open source and can be used by anyone. Remember: despite recent growth of the blockchain sector we are still in the early days. The implications of this new paradigm are not fully clear yet — not even to the Bancor team themselves — you have been warned.

--

--