We are proud to announce Tellor V2 is now live on mainnet. Woohoo!
From the get-go we knew that, in order to better serve our customers and future expected demand, Tellor would need to evolve. After talking with potential customers and users over the past year, we know that Tellor needs to get faster and more robust. These upgrades to the Tellor system fit with that model. Our original goal for Tellor was decentralized price feeds for defi and it remains to be the preeminent need on the Ethereum network. Although there are other use cases for oracles (e.g. bridges, data availability, off-chain computation), the most pressing need that still lacks a sufficiently decentralized option is price oracles.
We built Tellor as a system of upgradeable contracts where the Tellor community (TRB token holders) gets to vote on the implementation of the system’s upgrades. Security and scalability were always part of our vision and we’re happy to be moving the ball forward.
**Please note that we’re always seeking feedback on our system as well as other improvements that are desired.
- Increase number of data points added per block to 5
- Increase speed 2x(Reduce the 10 min difficulty target to 5 min)
- Limiting Rewards per Miner (1 per 15 minutes)
- No Time Limit on Disputes
- Multiple Round Disputes
- Change to disputing cost calculation (official values are more costly to dispute)
- Allow Tips of Current ID Being Mined
- General code improvements
- Automatic selection of next challenge
- Removal of Onchain Request Data
- Token Fee Burning
Increase number of data points added per block
Our previous system allowed for the request with the highest payout to be mined (reported) every 10 minutes. In the V2 version of Tellor, instead of only the value with the highest payout being reported, it is an array of the top 5 requests by order of payout amount. From accepting a request ID and its value it would accept two arrays, one with the top 5 request ID’s and another with the corresponding prices to these.
Increase speed (Reduce the 10 min difficulty target)
Another scaling effort for Tellor’s V2, is to increase the speed that values are added to the blockchain. The speed in which the values are added is controlled by setting the target mining difficulty, currently 10 minutes, for proof of work mining. We are shifting this difficulty target to 5 minutes. This change is trivial in terms of programing, but the main concerns are balancing the inflation rate (tokens minted per time period), security of the system, as well as reducing the number of race solutions (e.g. competing miners submitting the same solution for a given time period (leads to gas race and the losing miner(s) with a failed transaction)). We will be closely monitoring the system to make sure that compensation versus gas costs is enough to keep the system properly secured.
Limiting Rewards per Miner
Decentralization increases our security. But as mining difficulty increases, PoW mining becomes centralized. To further increase security we can incentivize decentralization by limiting the amount of times an address can win awards per day. We are reducing each staked miners allotment to once every 15 minutes. So if a miner wants to win each 5 minute block, he would be required to stake the 1000 tokens 3 times. We are looking for ways to make sure that those who control the PoW network have the proper stake in the Tellor system. This of course must be balanced with a) cost to join as a validator, and b) proper incentivization of validators.
No Time Limit on Disputes
Under the current design, the values submitted by the miners can be disputed within a 24 hour period. Our assumption was that the value would have been used by a customer within this 24 hour period and it was a good balance between security and finality of the value. But removing this limitation would incentivize miners to always be “truthful”, instead of just ensuring they don’t get caught within 24 hours. It would also be beneficial in mitigating the risk of a vote passing with very low quorum. Of course, withdrawals for miners are 7 days, so even if a dispute could be initiated after 7 days, there would be no reward for the disputer. The incentive is to dispute bad values as quickly as possible, but the purpose of this change is to expand the period in which bad data can be removed from the chain as well as remove any assumptions of finality or time to validity on the Tellor values.
Multiple Round Disputes
One way that removing the time limitation on disputes could increase the security of the system without causing a large imbalance on finality is by allowing multiple dispute rounds to incentivize more disputes. Disputes rounds will start at a lower fee with a one day voting period and then double in both time and cost to dispute with each round. Disputes will now cost the same lower amount of around 15 TRB (or more dependent on number of validators in the system) with the voting lasting only two days initially. After the two day voting period, there is a one day time period in which the results of the vote can be disputed. This subsequent round will be double in terms of price TRB to initiate and last twice as long. After that voting period, there will be another one day lock for disputes of the result and the process can carry on indefinitely.
Change to Dispute Cost Calculation
Since one way to censor the Tellor system is to dispute official values, it now costs the staking amount to dispute the official (median) value. Subsequent disputes of the official value are even more as well. The cost to dispute an official value (median value) is: (number of open disputes on official values) * stake amount. This prevents disputes as being a route towards censoring Tellor values.
Allow Tips of Current ID Being Mined
In times of stress on the Ethereum network, gas prices can get very high. This may make it unprofitable for miners to want to submit data to the network. In this extreme case, parties who need faster updates should be able to tip the current ID in order to cover the gas costs of miners.
General code improvements
We are going to change the code to have better distribution for the “submit mining solution” costs. Currently the last of the first 5 miners to submit the PoW solution, pays a higher Ethereum transaction fee because with this last submission, all miners are paid off (5 transfers), data is saved, and a new challenge is issued. We will be updating the code so that the reward transfer is paid by each successful miner submitting the PoW solution and data. This will decrease the Ethereum transaction fee. However, the fifth miner will still pay a little bit of a higher fee because a new challenge can only be issued once the five values have been recorded and the data deemed “official”.
Automatic selection of next challenge
In the previous system, Tellor miners would often “addTip” or request data if none had been requested by the data users. In v2, the system will simply reselect the five values if no data is being requested.
Removal of Onchain Request Data
Tellor has removed the ability to query single API’s from its protocol. In the old Tellor system,, the details pertaining to the first 50 request IDs were stored off chain. This model makes each request ID flexible enough to handle things such as multiple API medians, volume/time weighted averages, manually inputted data, as well as future implementations of a peer-to-peer model for passing data between Tellor nodes. The v2 upgrade turns all ID’s into PSR’s, making the Tellor system simply an onchain way for handling enforcement of results(data validation), rather than specifications. This makes Tellor more flexible and further targets our ideal use cases and proper usage of oracles which does not include creating the ability for smart contracts to query single API’s.
Token Fee Burning
One of the missing pieces in both the Tellor monetary policy and the Ethereum monetary policy is the commoditization of the underlying asset. Similar to how oil is actually used up when consumed, TRB should have a method for self creating scarcity as usage goes up. In v2, half of tipped TRB is removed from circulation (the other half going to the miner).
We look forward to an engaged community that will help us grow Tellor and carry our vision and values of decentralization forward with each step.
Additional, the code for v2 is now live on our master branch: https://github.com/tellor-io/TellorCore