The Bancor protocol is a smart contract system on the Ethereum blockchain which creates automated exchange rates between tokens based on the ratio of reserves to the supply of issued tokens. The system endorses the idea of fractional reserve currency, however it is drastically different from our current centralized fiat money system rightly criticized by the Bitcoin community. Instead, Bancor shares a lot of similarities with the model praised by Friedrich Hayek in his essay "The Denationalization of Money", where private entities could issue their own fiat money, but were kept in check by market forces. A historical precedent for this system was Scottish free banking during the 19th century. This article is my attempt to explain how it works in simple terms.

A Thought Experiment

Imagine an old-fashioned set of scales with two large plates hanging at either side. On the left hand side (the reserve plate), we place 5 marbles, which tilts the scale down to the table. Now, our goal is to bring the scale into balance using nothing but goose feathers. So in the right hand side (the issue plate) we start placing them in one by one, until we reach 100 goose feathers, dropping the scale back into balance.

To look at, the feathers take up much more physical space than the marbles. A being from another dimension without any idea about how mass or gravity works might be confused that the smaller pile of marbles could hold down the much larger pile on the other side.

In this scheme, there are 20 goose feathers for every 1 marble, which gives us a ratio of 20:1 or 5%. The number of marbles is directly pegged to the number of goose feathers in terms of weight. In a situation like this you could say that we have 100% reserves- the value of the feathers is a direct peg to the marbles.

The marbles will be our reserve currency, and the feathers will be our issued currency. As a simple function, we would describe it as x = 20y, where x represents the marbles and y represents the feathers.

Now things get more interesting. What happens if we have some extra marbles in our pocket and want to swap them for feathers using this scale? Or vice versa?

A Simple Automated Exchange

When we have 100% reserves, the scale operates on three basic principles.

The scale must remain in balance always. The supply of marbles in the reserve is limited to what we have around the house. The supply of feathers can be constantly adjusted to hold Rule 1.

Our scale is equipped with a small computer which is programmed to keep the two scale-plates in balance, no matter what happens. Since the feathers are a newly issued currency, the computer keeps track of who owns which one in the pile. It informs us how much to add or take away from either side to keep the balance, depending on what we want to do. The computer can also decide to add or remove feathers from the supply.

Beside the scales is a large bowl of spare goose feathers we can use for this. However only feathers on the scale can be used as a currency - and the computer knows which is which.

Now let’s look at how our 100% reserve exchange formula behaves as people interact with it.

Exchange Cases

Marbles for feathers: This is the easiest scenario to imagine. One of our friends has 1 marble and wants to put it on the scale and receive back feathers. So we will receive 20 feathers in return for 1 marble.

Now the scale has 6 marbles on the reserve plate, so the computer realizes it needs to have an extra 20 feathers on the issue plate to credit our friend’s account and keep the scale in balance. So it instructs her to add the new feathers to the issue supply from the bowl of spares nearby. In this sense the computer acts like a central bank. Now the scale is back in balance with a new situation of 6:120 respectively (still at 5\% proportionality with a 100\% reserves between the two assets). The 20 new feathers are merely a tokenized representation of the underlying asset, which is 1 new marble.

Once the feathers are on the issue plate and assigned an owner by the computer, they can be used as currency.

Feathers for marbles: At this point, our friend’s net worth is 20 feathers. But she thinks she has more use for marbles, so decides she wants to give back 10 of her feathers in exchange. What would be the price of the marble? Let’s divide the reserve by the supply to get the price of each individual feather then multiply by the amount she wants to exchange: 6/120 = 0.05 * 10 = 0.5. We get to take half a marble off the reserve plate- assuming they’re divisible! Meanwhile, the computer does a calculation and instructs us to remove those 10 feathers from the issue plate and into the bowl of spares.

The relationship between the reserve and the issue is that the reserve comes from a pre-existing currency- marbles around the house- but the supply of feathers on the other side of the scale is controlled and calculated by the computer based on proportionality.

The Bancor Formula

Another way of expressing the pricing formula that Bancor uses, which takes into account the possibility of less than 100% reserves is the following:

price = reserves / (supply * weight)

Going back to our starting scale, it would be:

price = marbles / (feathers * 100%)

Because at the beginning there is 100% reserves, the formulas we used to make the calculation omitted the “weight” aspect. However this begins to matter if we have less than 100% reserves, as is the case with most tokens issued using the Bancor contracts. In the following sections we’ll take a look at this scenario but first a bit of backstory on the theory behind the Bancor idea and its implications on the economy.

The Double-Coincidence of Wants

The best way to understand this is to go back into time. Throughout most of history people used metals as currency; gold, silver, copper. These precious metals became money because they were universally desired. By valuing goods and services against these metals it was easier to resolve the “double coincidence of wants problem” which occurs in a purely barter based (non-monetary) economy: when a supplier of good A wants good B and the supplier of good B wants good A- which rarely ever happens at the same time.

If a farmer (who is illiterate) has a chicken, and a librarian has a book, there is no way for them to make a trade unless they both happen to want the opposite thing at exactly the same time. The farmer has no use for the book, but the librarian wants the chicken so that he can eat. They both want gold. Gold is universally in demand, so they are willing to accept this store of value in exchange for the good. Thus we get the beginning of a money-based economy.

As precious metals became prominently used in the economy, it was important to find a safe way to store the money. Gold was valuable and could be easily stolen. So banks were invented: a safe place to store your gold. Banks issued paper notes representing a peg to the gold stored in the vault: for example, 100 notes for every ounce. This was the basis of the gold standard, invented by Isaac Newton in 1717 (who was in charge of the Royal Mint at the time). The international gold standard meant that different countries could issue different denominations (i.e. 100 units per ounce, 1000 etc.) but they were all ultimately measurable according to one universal yardstick which allowed for rational calculation and exchange between them.

In this situation you could always go back to the bank and withdraw the reserve in exchange for the paper notes, which represented a claim on those reserves.

Fractional Reserve Banking

Fractional reserves began when the bank realized that there were better uses for the gold than being stored in a bank vault; for example, it could be issued out as loans. On the other hand, the issued currency may have acquired value through usage for reasons not directly related to the value of the gold which underlies it. There are many schools of thought such as the Austrian school which argues in favour of full-reserve banking backed by a gold standard. But setting these arguments aside, let’s take a look at how it works.

If the bank initially issued 1000 tokens representing 100 ounces of gold, and then doubled the supply of tokens to 2000 without somehow storing double the amount of gold in reserve, while still enforcing the original value, we would say that we have gone from 100% reserves to 50% reserves. The token that had been issued as a direct peg to the reserve has been doubled, without also doubling the reserve.The best modern example of this is the “pound”- which at one point represent a pound weight of sterling silver. That’s a lot of money! Obviously modern “pounds” bear no relation to that original weight of silver metal.

So in terms of the Bancor simple pricing formula, the price would look like this:

price = 100 / (2000 * 50%)

The actual price (0.1 gold ounces per token) ends up being identical to the initial arrangement:

price = 100 / (1000 * 100%)

On the “front-end” it’s still has notionally the same, there’s just less reserve of gold to back it up. This is known as debasement of the money supply and is one of the causes of inflation unless other factors are taken into account. That said, there are many circumstances where fractional reserves are useful and rational; especially if the token is being used in contexts where it acquires and holds value which is independent from the asset backing it up. There has to be other economic factors at work to give the tokens value independently of the underlying reserve- for example a community currency, or loyalty points or some token to represent shares in another asset. Or, indeed, a lack of knowledge that there are in fact less reserves to back it up (luckily this kind of scenario couldn't happen without immediate detection when we use a transparent public blockchain where the code can be analyzed in advance).

While many are critical with good reason of central banks ability to manipulate the money supply arbitrarily, Bancor is not exactly like this at all. As a whole, the system more closely resembles the Scottish system of free banking during the 19th century, in which banks had the ability to issue their own paper currency freely. The total supply of money in the economy was controlled by market forces, and exchange rates kept a discipline on excesses. On Bancor every token can essentially have its own automated central bank on in a smart contract, which simultaneously acts as an exchange. This is far different from our current centrally controlled fiat money system without market forces acting on the money supply.

Ballast

Now Let’s return to the marble/feathers thought experiment and set it back to the beginning. To move from 100% reserves to 50% reserves we would have to double the number of feathers to 200. Now that the scale has 5 marbles and 200 feathers (still at x = 20y), it should be obvious that the scale would fall out of balance.

Just so we can keep using the scale analogy (which is unnecessary in computer code) we’ll need to use ballast on the reserve side whenever we go below 100% reserves. So let’s use 5 stones of equal weight to marbles to ballast the reserve to bring the scale back to the middle. From a balancing point of view, there might as well be 10 marbles, but since we have 50% reserves in reality we have 5 marbles (valuable) and 5 stones (worthless).

Therefore, any time someone has a marble in their possession they can interact with the scale to buy feathers, and vice versa.

Multiple Reserve Currencies

Let’s reset our scale with a new configuration and add an extra element. What if we wanted to have multiple different reserve currencies to back up our feathers? In our current system, if someone wants to purchase goose feathers from the scale, they would have to own marbles. This limits the scope of the exchange to only one reserve asset. But what if we want to make our feathers exchangeable with seashells?

Let’s redesign our scale to use seashells in the reserve plate along with feathers. Since the reserve ratio is 50%, we will keep the ballast- stones. Then we will split the remaining 50% in half between seashells and marbles: 2.5 seashells and 2.5 marbles. Now that the scale holds two reserves, we can purchase feathers with two different currencies. Our supply of feathers is still 200.

What would it look like if we want to trade 2 seashells for feathers? First we get the price of one:

price = 2.5 / (200 * 25%)

The price is 0.05 marbles per feather. This means the computer will issue 40 new feathers onto the issue plate. Note that we are only taking into account the reserve of seashells- since the reserve ratio as a whole is 50%, and half of the remaining is seashells, we use 25% in our pricing formula.

How Bancor Works In Reality

The analogy of the scale describes one example of a “smart token” on the Bancor protocol, and exist the form of code inside a smart contract on the Ethereum blockchain. There can be potentially unlimited numbers of these tokens in the world, however instead of being siloed, they are exchangeable. The ability to create a token doesn't necessarily lead to "inflation" per se, because as someone trades value out of one currency and into another the price will drop proportionally. And of course, because the supply of the issued currency is constantly adjusted to hold its ratio with the reserves, there is always liquidity.

The formula we have been using so far is also a simplified version of the real formula that Bancor uses in the live smart contract.

Here is how the real pricing formulas looks (don’t worry if you don’t understand the math). The first is "issue" tokens given in exchange for the reserve (or "connector"), and the second is reserve currency given back by the contract in exchange for the issue currency.

(Extract from the white paper )

The simplified formula we used with the marbles and feathers didn't take into account exchange volume. The real formula that Bancor uses to calculate prices essentially implements the "simple" formula repeatedly for every tiny increment of the exchange- so if we wanted to trade back 50 feathers in exchange for marbles or seashells, it would run the formula on each feather, adjusting the final price as it goes along. This is so that it offers a fair price and keeps the balance.

Conclusion