The biggest hurdle to the mainstream adoption of smart contracts is the oracle problem: the challenge of delivering trusted data to the blockchain. The Zap token (ZAP) is a deft market solution for incentivizing the creation and curation of useful oracles.
In order for smart contracts and decentralized applications to operate based on real-world events, there must be a trusted way of conveying the state of those events to the blockchain. Many solutions have been proposed, ranging from trusted intermediaries (totally centralized, i.e. Bloomberg delivering financial data) and distributed consensus protocols (totally decentralized, i.e. the settlement protocols proposed by Gnosis and Augur). There are advantages and disadvantages to each approach, especially depending upon the event in
Rather than select one oracle model to work for all situations where the blockchain needs data, Zap has designed an easy to use market incentivizing the creation of new oracles and the curation of existing oracles, with the thesis that the market (or end users) will select for the ideal oracle for each type of data.
In order to launch or interact with a specific oracle on the Zap Store, you must first bond Zap tokens to that oracle, locking that Zap and producing a number of “dots”. A dot is an access token payable to the oracle for a single query. Dots cannot be exchanged between addresses, and are not divisible. Anyone who wants to access an oracle’s data must first bond Zap to that oracle, producing a private supply of dots.
• Dots are produced by bonding (locking) Zap to an oracle.
• One dot is equal to one call to that oracle.
• Dots can be produced at any time according to a price set by the smart contract.
• Dots get more expensive as more are produced.
• The Zap bonded to produce dots is held by the oracle.
• At any time, dots can be redeemed (destroyed) in exchange for Zap held by the oracle.
This non-intuitive functionality was inspired by Simon de la Rouviere’s work on Curation Markets for optimizing the spread of useful information in social networks, and the goal is quite similar: incentivizing the spread of useful oracles for decentralized applications.
How does this work in practice? Let’s look at a sample oracle live sports scores. In the process of creating the oracle, the data provider decides on a dynamic exchange rate of Zap for Sports Score dots.
Alice is building a fantasy football Ðapp that requires real-time data of player stats as the season progresses. She decides she needs a lot of dots and bonds 20 Zap to produce 20,000 dots at an average price of 1 Zap per 1000 dots. This increases the total supply of dots from 20,000 to 40,000 and the price from .8 to 1.2 Zap per 1000 dots.
Later, when the football season is in full swing and many competing Ðapps are using the Sports Scores Oracle, Bob produces 20,000 dots, paying an average of 4 Zap per 1000 dots, and in the process raising the price to 5.1 Zap per 1000 dots.
Alice still has an interest in the data, but decides that each call is worth significantly less than the current price per dot. After all, the current price is more than 5 times what Alice originally paid. So Alice decides to redeem 10,000 dots for 46 Zap, reducing the supply to 90,000 and the price to 4 Zap per 1000 dots. Alice profits substantially while retaining a large supply of dots and always has the option of producing more dots should the need arise.
Perhaps the most exciting aspect of the Zap bonding mechanism is that oracle creators decide for themselves the supply/price function. With thousands upon thousands of individual oracles, the Zap ecosystem is likely to become a testing ground for economic incentivization. Depending on the oracle, creators might prefer a steeper curve to reduce the number of calls, or a simple linear function allowing for unlimited growth. In time, users will discover and gravitate toward bonding variables that incentivize both truth and profit, and in the process potentially discovering entirely novel cryptoeconomic mechanisms.
Certain oracles, like a stock ticker that updates every minute, might have relatively inexpensive dots, measured in fractions of a Zap, where more valuable oracles, like football stats for settling high-stakes smart contract mediated bets, might have dots worth many hundreds of Zap each.
Because the value of data is time-sensitive, the Zap/dot exchange rate will necessarily fluctuate over the lifetime of an oracle. Because dots cannot be traded on exchanges, the mechanism for determining the exchange rate is hardcoded into the oracle contract itself.
The default exchange rate is a linear curve combined with a gradual exponential curve, such that price increases as supply increases. This may seem counterintuitive to the economics of supply and demand, but because dots cannot be exchanged and only function as access tokens for the oracle that produces them, in this case the supply is the demand.
As more users bond to the oracle, demanding data, the price increases. Eventually, the price per dot will become higher for some users than the value of the data. But users can at any time redeem any number of dots for Zap at the current exchange rate, reducing the supply of both Zap and dots controlled by the oracle. This enables early adopters to profit from identifying and bonding to useful oracles, even if they don’t end up making use of the data themselves.
In short, the Zap/Dot bonding mechanism is designed to attract users to the platform in a virtuous cycle.
• Incentivize data providers to populate a young ecosystem with new oracles.
• Incentivize speculators to fund oracles they predict will be useful in the future.
• Curate a rich and dynamic field of oracles for subscribers to choose from.