oracles CC to create a datafee based market for data providers

jl777
4 min readMay 19, 2019

--

I wrote about trustless oracles before and those are indeed very powerful, but they are limited to data that is universally available via the internet. There is an entire class of oracles that are not trustless, yet still they have a lot of usefulness.

Lets start with the simplest, the trusted oracle. I know, I know, trusted and blockchain are not supposed to be done, but for the special case of oracles this is not really that bad of thing. This is because the purpose of an oracle is to get data from offchain to be onchain and there are many cases where it is perfectly fine to trust the publisher of the data.

In many cases, it is needed to have data from a specific node to be onchain. In such a case, there seems to be no problems at all to trust that node. It is always good to think through the overall system design as there are systems that implicitly need to trust certain things from certain nodes to function, and if that is the case, then using a trusted oracle might not increase the overall trust required.

One example would be a blockchain made to track the position of specific items, a supply chain blockchain. We assume there is some sort of automated sensor system that reports the position of items and very few, or maybe only one node would have access to such information. In this case, as long as we can verify that the data is from that node, then it is as good as we can make it. This is the fundamental issue with oracles and getting offchain data onto the blockchain. Short of going all the way to DTO (decentralized trustless oracle), you will likely have some data that needs to be from a trusted source.

Now, there are many data aggregation mechanisms that try to convert a set of trusted data into a trustless one. Unfortunately, without being able to trust any single data point, there seems to be no way to prevent a sybil attack. That is where the attacker just makes a zillion nodes to post false data to skew the average, median and all aggregated prices. It is possible to add weight to each data point based on some external basis, such as ownership of a specific coin. Presumably if you are naughty, then this will discourage you as the value of this external coin would be ruined. However, this has two major problems. First, there is no assurance that bad behavior will indeed lead to lower prices, this is crypto 2019 after all where the most important factor driving prices seems to be TA (technical analysis) and FA (fundamental analysis like it doesnt work at all) being secondary. The second problem is that maybe the attacker doesnt care as the attack has much larger value than the external coins at stake.

Anyway, instead of making an extremely complex system and not fully solve the sybil attack, the oracles CC uses a simple approach. It creates a data market for data publishers, where good publishers are rewarded with more subscriptions. Again, this is a weak form of reinforcement and does not solve the sybil attack. It does form a form of positive feedback for good data providers though, so for low value data where attacks dont make sense at all, it is actually fully adequate!

The oracles CC allows specification of a data requirement and it can be virtually anything, from a pricefeed for a stock, to the next chapter of a book and everything in between and even more. There is no limit to what the requested data is. Any node can then register to become a data provider for that oracle. Then based on the data provider reputation, they may or may not get subscribers to prepay for data points.

So there is trust built into the entire oracles CC, as the data provider could just post garbage and collect the datafees that are locked into the oracles CC. The reinforcement is that such behavior is unlikely to get any repeat subscribers. This echoes the real world magazine subscription model, but it is blockchain enforced as the subscription payment is locked into the oracles CC and the data provider can collect a datafee by publishing a data point.

Overall, the system will require the subscribers to monitor data quality and subscribe to the consistent and reliable data providers. Of course, it is also possible to simple use the oracles CC as a data delivery mechanism between a single party. It is really just a convenient way to get data onchain with a built in data market mechanism to encourage good data providers.

--

--