Bancor Protocol Decentralized Networks for Smart Contract Based Tokens to Enable Continuous Convertibility Between Them
Total Page:16
File Type:pdf, Size:1020Kb
Bancor Protocol Decentralized networks for smart contract based tokens to enable continuous convertibility between them. Eyal Hertzog, Guy Benartzi & Galia Benartzi October 12, 2017 Version .9911 The phrase "double coincidence of wants" was coined by Jevons (1875). "The first difficulty in barter is to find two persons whose disposable possessions mutually suit each other's wants. There may be many people wanting, and many possessing those things wanted; but to allow of an actual act of barter there must be a double coincidence, which will rarely happen." 1 This version of the whitepaper is an interim update to version .99 that was published on May 30, 2017. It is intended to update the whitepaper to reflect the current lexicon used to describe the Bancor Protocol™. It also removes as out of date discussion of the Bancor TGE and of certain product concepts which have since evolved. Bancor is in the process of writing a new whitepaper, which will lay out the next evolution of Bancor’s vision. Table of Contents Table of Contents 1 The Bancor Protocol™ 2 Background 2 Introducing Smart Tokens™: A Solution to the Liquidity Problem 3 A New Method for Price Setting 4 Use-Cases for Smart Tokens™ 5 The Long Tail of User-Generated Currencies 5 Crowdfunding a Project 6 Token Relays 6 Network Tokens 6 Advantages of Smart Tokens™ 7 The Bancor Protocol™ Ecosystem 7 A Solution to the Coincidence of Wants Problem 8 Smart Token™ Initiation and Customization 8 The Bprotocol Foundation 8 Bancor Network Token (BNT) - The First Smart Token™ 8 BNT Crowdsale Objectives 8 Examples and Illustrations 9 Example #1: Smart Token™ Transaction Flows 9 Example #2: Token Relay Transaction Flows 10 Illustrative Map of a Potential Bancor Network™ 10-11 Price Calculation Per Transaction 12 Summary 12 Acknowledgements 12 1 The Bancor Protocol™ Abstract: The Bancor Protocol™ enables the creation of networks of smart contract-based “Smart Tokens™.” Smart Tokens™ hold balances of one or more other tokens--“Connectors”--and have a built- in autonomous conversion mechanism that allows any party to instantly purchase or sell the Smart Token™ for one of its Connectors, directly through the Smart Token™ contract, at a price calculated by a formula which balances buy and sell volumes. Bancor believes that Smart Tokens™ can address the challenge of liquidity2 faced by conventional tokens, cryptocurrencies, and community currencies on three levels. First, and most fundamentally, by being autonomously convertible for their Connectors, and with an unconstrained supply that grows in response to purchases, each individual Smart Token™ has built-in liquidity that does not depend on counterparties or exchanges. Second, Bancor has developed specialized Smart Tokens™ that enable inter-convertibility between any two other Smart Tokens™ or, with an added step, between any Smart Token™ and any conventional Ethereum network token. Third, Bancor’s ultimate vision is that users will create their own tokens and community currencies in the form of Smart Tokens™ that hold a common Connector, enabling any Smart Token™ in the network to be converted into any other. Bancor’s own Smart Token™, BNT, is the common Connector in the first such network, which we call the Bancor Network™. The Bancor Protocol™ is named in honor of the Keynesian proposal3 to introduce a supranational currency called Bancor to systematize international currency conversion after WWII. Background We live in a world where anyone can publish an article, song or video, create a discussion group and even run an online marketplace. We are now beginning to witness the emergence of user-generated currencies. Different types of stored-value (“currencies” hereafter) have been issued and circulated for centuries in the form of bank notes, bonds, equity, gift cards, loyalty points, community currencies4 and others. Bitcoin was the first decentralized digital currency, followed by a wave of new cryptocurrencies that have been issued since, and recently we’ve seen the rise of a new asset class of “tokens” that are often issued in token sales through smart contracts. However, currencies, which are essentially networks of value, do not connect to each other in the same way that information networks do. While the switches on Internet exchange points (IXs) interlink information networks, active traders on exchanges are effectively interlinking currencies. The current exchange model for currencies/assets has a critical barrier, requiring a certain volume of trading activity to achieve market-liquidity. This inherent barrier makes it nearly impossible for small- 2 “Liquidity,” as used here and by Bancor generally, follows its common usage with respect to cryptocurrencies and blockchain tokens generally, i.e. the relative ease with which they can be bought or sold. It is not intended to convey any technical sense in which the term may be used in securities or other regulated financial markets. Furthermore, when used in connection with transactions with Smart Token™ contracts, the price at which a Smart Token™ is liquid is the price autonomously set by the Bancor Formula, rather than at the perceived value of the buyer or seller. 3 https://en.wikipedia.org/wiki/Bancor 4 https://en.wikipedia.org/wiki/Community_currency 2 scale currencies (such as community currencies, loyalty points or other custom tokens) to be convertible for other popular currencies using a market-determined exchange rate. In the age of smart contract blockchains, tokens can be automatically managed by immutable code which controls their issuance and behavior. We realized this could mean allowing tokens to hold balances of other tokens, which we refer to as “Connectors,” directly through their smart contracts, that could be designed by their creators and managed programmatically. These new technological capabilities warrant rethinking of the possible solutions for converting one currency to another and determining market prices. Introducing Smart Tokens™: A Solution to the Community Currency Liquidity Problem Smart Tokens™ are standard Ethereum ERC20 smart contract-based tokens,5 which implement the Bancor Protocol™. Smart Tokens™ hold a balance of least one Connector, which can be a different Smart Token™ or any ERC20 standard token.6 Each Smart Token™ can be bought or sold for any Connector that it holds, directly through the Smart Token™ contract. Through the formula at the heart of the Bancor Protocol™ (the “Bancor Formula”), the Smart Token™ adjusts the price at which the Smart Token™ can be converted to or from its Connector(s) in response to each purchase/sale conversion. When a user sends a balance of a Connector to the Smart Token™ contract, the sent amount of the Connector is added to the balance held by the Smart Token™ contract, and the contract adds the appropriate quantity of the Smart Token™ to the balance associated with the user’s Ethereum address according to the Bancor Formula autonomous calculation. Conversely, when a user sends a balance of the Smart Token™ to the Smart Token™ contract, the contract deducts the amount from the user’s balance and sends the user the appropriate quantity of the Connector, as calculated by the Bancor Formula. In both cases, the conversion happens autonomously through the Smart Token™ contract, with no need for a counterparty, at the then-current price set by the Bancor Formula. The formulaically-determined pricing, plus the ability of Smart Token™ smart contracts to create and destroy Smart Tokens™ in response to every purchase and sale through the contract itself, means that it is always possible to purchase a Smart Token™ with its Connector, and, so long as there is a balance of the Connector, to sell the Smart Token™ for its Connector. This autonomous buy/sell capability is not unique; the standard Ethereum.org tutorial for creating a token smart contract explains how to make a token smart contract that can hold ETH and enables users to instantly buy and sell the token for ETH at a set price built into the smart contract. (See here for that tutorial, which provides excellent additional background on how Ethereum smart contracts and tokens work.) What is unique about Smart Tokens™ is (1) the Bancor Formula coupled with (2) the Smart Token’s™ ability to create new tokens when a purchase is made through the contract, and to destroy tokens when a sale is made through the contract, resulting in a token supply which is adaptable to demand, as we explain below. 5 While the initial deployment of Smart Tokens™ is on the Ethereum network, Bancor intends to implement Smart Tokens™ on other smart contract-based blockchains. 6 As we discuss below, in this regard Smart Tokens™ are no different from any Ethereum ERC20 token smart contract. The ability of token contracts (and all other smart contracts) to hold balances of Ethereum and other tokens is an intrinsic functionality of the Ethereum protocol. We note also that our use of the concept of “held balances” follows standard usage with respect to Ethereum and blockchain protocols generally–i.e. the association of a quantity of a digital asset with a public address–and is not intended to carry any legal or regulatory implications with respect to ownership or custody. 3 A New Method for Formulaically Determining Price Smart Tokens™ utilize a novel method for determining the price at which they can be converted to/from their Connectors, the Bancor Formula. The formula is driven by a constant that we call the “Weight,” and which must be greater than 0 and less than or equal to 100%. The Weight is set by the Smart Token’s™ creator, for each Connector, and used in price calculation, along with the Smart Token’s™ current supply and the balance of the held Connector, in the following way: 퐶푒푐푟 푃푟푖푐푒 = This calculation ensures that a constant ratio푙푦 is kept between × the 푊푒푖푔ℎ Connector balance and the Smart Token’s™ Total Token Value (“TTV”),7 which is equal to the outstanding supply of the Smart Token™ times its price.