Copyright © 2023 Supra
Supra Research Team
Distributed Oracle Agreement (DORA)
Copyright © 2023 Supra
What are Oracles?
INTRODUCTION
Copyright © 2023 Supra
Oracle
Off-chain Information
Blockchain
What are Oracles?
Copyright © 2023 Supra
Why are Oracles Needed?
Prominent Blockchains and smart-contracts are isolated
They cannot connect to entities outside the chain, including other chains, directly
Off-chain Information
Blockchain
Copyright © 2023 Supra
Why are Oracles Needed?
Off-chain Information
Blockchain
Oracle
Copyright © 2023 Supra
Organization
A Tribe is divided into multiple Clans
Copyright © 2023 Supra
Organization
Each Clan is responsible for a different price pair
Copyright © 2023 Supra
Data Sources
Organization
The nodes in each Clan obtains data from different data sources
Oracle Nodes
Copyright © 2023 Supra
Data Gathering
Every data source feeds multiple clan nodes��This mitigates the risk from Byzantine clan nodes
Data Sources
Oracle Nodes�in a Clan
Copyright © 2023 Supra
Data Sources
Clan nodes obtain data from multiple sources��This mitigates the risk from Byzantine data sources
Data Gathering
Oracle Nodes�in a Clan
Copyright © 2023 Supra
Data Aggregation
Every node computes a median of the set of values obtained from its assigned data sources
Median allows us to be resilient against data source corruption of less than 50%
Copyright © 2023 Supra
Agreement Phase
Nodes send their value to multiple aggregators��This ensures progress as long as there is at least one honest aggregator
Clan Nodes
Aggregator Nodes
Copyright © 2023 Supra
Agreement Phase
Two values “agree” if they are within agreement distance
clan size = 2fc + 1
agreement distance = 4�cluster size = fc+1 = 7
Copyright © 2023 Supra
Agreement Phase
Two values “agree” if they are within agreement distance
4
within agreement distance to form required cluster size of 7
clan size = 2fc + 1
agreement distance = 4�cluster size = fc+1 = 7
Copyright © 2023 Supra
Agreement Phase
Two values “agree” if they are within agreement distance
4
within agreement distance to form required cluster size of 7
clan size = 2fc + 1
agreement distance = 4�cluster size = fc+1 = 7
Copyright © 2023 Supra
Agreement Phase
If they are not within agreement distance, they “disagree”
8
not within agreement distance to form cluster size of 7
clan size = 2fc + 1
agreement distance = 4�cluster size = fc+1 = 7
Copyright © 2023 Supra
Cluster size fc+1�with agreement distance of 4
Aggregation
The Aggregator waits to form a cluster of values of size fc+1 which agree with each other
clan size = 2fc + 1
agreement distance = 4�cluster size = fc+1 = 7
Copyright © 2023 Supra
Aggregation
The Aggregator calculates�the arithmetic mean of the cluster
The mean ensures that in the worst case of a�single honest value, it will still be counted
Copyright © 2023 Supra
Aggregator sends the mean as value proposal to all the nodes
�Approval
Clan Nodes
Aggregator Nodes
Copyright © 2023 Supra
After validation, the nodes approve/vote on the proposal to form a quorum of fc+1 nodes
�Approval
Clan Nodes
Aggregator Nodes
Copyright © 2023 Supra
SMR Chain
Aggregators post the approve value along with the quorum certificate on the chain�
The first value posted is counted as authoritative value for a given round�of oracle
�Publishing
Aggregator Nodes
Copyright © 2023 Supra
Disagreement or Inconsistent Values
In the rare event a cluster of agreement of size fc+1 is not formed within some time then fallback protocol is initiated
8
not within agreement distance to form cluster size of 7
clan size = 2fc + 1
agreement distance = 4�cluster size = fc+1 = 7
Copyright © 2023 Supra
Fallback Protocol
The entire Tribe gathers data from the data-sources
Clan�2fc + 1
Tribe�3ft + 1
->
Every node computes median of the set of values obtained from its assigned data-sources
Copyright © 2023 Supra
Fallback Protocol
Aggregator computes the median of all the values obtained from at least 2ft + 1 nodes
Since node values can differ arbitrarily now, median is required as it offers the highest resilience as a statistical aggregation of up to 50% of corruption of data
Copyright © 2023 Supra
Why Fallback?
In the times of high volatility values observed by various nodes from their data sources may differ wildly and the cluster of agreement can not be achieved
In such a case, fallback provides a�safer and reliable alternative
Copyright © 2023 Supra
Rotation
Random permutation of Clan to commodity mapping��Mitigates adversarial power to target a particular commodity
Copyright © 2023 Supra
Shuffle
Mitigates adversarial collusion
Clan A
Clan B
Clan C
Copyright © 2023 Supra
Round 1
Round 2
Round 4
Round 3
Tick-start DORA
Every oracle round is independent of the other
Copyright © 2023 Supra
Tick-start DORA
Round 1
Round 2
Round 4
Round 3
Data gathering, aggregation can be started without waiting for earlier rounds to finish
Copyright © 2023 Supra
Tick-start DORA
S1 posted�on SMR
Round 1
Round 2
Round 4
Round 3
Data gathering, aggregation can be started without waiting for earlier rounds to finish
Copyright © 2023 Supra
Tick-start DORA
S1 posted�on SMR
S2 posted�on SMR
Round 1
Round 2
Round 4
Round 3
Data gathering, aggregation can be started without waiting for earlier rounds to finish
Copyright © 2023 Supra
S1 posted�on SMR
Round 1
Round 2
Round 4
Round 3
If a fresh value from a later round is available on SMR, earlier rounds can be killed
S2 posted�on SMR
Tick-start DORA
Copyright © 2023 Supra
Round 1
Round 2
Round 4
Round 3
S4 posted�on SMR
Kill�Round 3
If a fresh value from a later round is available on SMR, earlier rounds can be killed
Tick-start DORA
S2 posted�on SMR
S1 posted�on SMR
Copyright © 2023 Supra
Extensions
Different commodity prices exhibit some invariant relation within them
Values across commodities can be checked against these variants for forensic analysis or to detect real-time anomalies in the future
Copyright © 2023 Supra
Abnormal Behavior Detection
A popular circuit breaker function
Sr-1 is the previous value
thr is the circuit breaker threshold parameter
| Sr-1 - Sr-1 | / Sr-1 ≥ thr
Threshold bounds
Copyright © 2023 Supra
History Consistency
One of the ways to check history consistency
When the current proposed value is too far from historical values, it is history inconsistent
Sr-1 is the previous value
ch is a constant parameter
σh is the standard deviation of history
Sr-1 - chσh, Sr-1 + ch σh
constant parameter
standard deviation of history
previous value
history inconsistency
Many other functions can be used as post-processing for statistical anomaly detection such as chi-square test, Z-test etc.
Copyright © 2023 Supra
Summarizing
Highly Resilient�and Confident
Highly�Efficient
Highly Decentralized and Randomized
The Supra DORA protocol is
Mitigates effects of adversarial nodes and faulty / malicious data sources
When price movement is following expected trajectory
Protocol switches to fallback when any anomalous behavior is detected
Copyright © 2023 Supra
From the Supra Research Team
Thank You