Scaling Oracle price feeds with Vector Oracles

With RosenBridge live on Ergo there is growing need for multiple oracle price feeds. Running an oracle pool for each single price feed seems an overkill. My proposition is simple:
Instead of publishing a single value like ERG_USD the oracle pool can publish a predefined list of let’s say 64 values with predefined indices.

Is this a viable idea? Are there any security concerns?

3 Likes

I guess possible, there is need to modify contracts for oracle pools 2.0 a bit I guess. And some questions to consider:

  • is it okay to deliver multiple data point at the same interval. Probably okay for e.g. gold and silver, but for gold and USD ?
  • oracles are getting paid in custom token, e.g. GORT in case of gold oracle pool. Is it okay to reward for multiple data points with the same token ?
1 Like

We have an Erg-USD Oracle Pool. In a dreamworld we would have Erg-USD Oracle Pool publishing 100 values for crypto spot price.

  • is it okay to deliver multiple data point at the same interval. Probably okay for e.g. gold and silver, but for gold and USD ?

I would not mix Gold and crypto spot price feeds.

Is it okay to reward for multiple data points with the same token

Only if the data verctor is homogenous (crypto spot prices).

One more thought on extensibility of the the price data feed. The oracle pool could initially post only ERG_USD price in a fixed length vector with other values beeing 0:
[ERG_USD, 0, 0, 0, 0].

New tickers can be added later (e.g. for a new rosen bridged asset), but can never be removed.