Skip to content

Commit 1253a2c

Browse files
committed
fix(docs) - improve overview
1 parent 49ee921 commit 1253a2c

File tree

4 files changed

+136
-49
lines changed

4 files changed

+136
-49
lines changed

docs/1-intro.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ Gain a deep understanding of the core concepts that differentiate Flare from oth
180180
Its native data protocols - [Flare Time Series Oracle](/ftso/overview) and [Flare Data Connector](/fdc/overview) - are enshrined directly into the core [Flare Systems Protocol](/network/fsp), inheriting the full economic security of the Flare network.
181181

182182
<ThemedImage
183-
alt="Diagram of Flare's architecture, illustrating the Flare Systems Protocol with its enshrined data protocols including the Flare Time Series Oracle and Flare Data Connector."
183+
alt="Flare Systems Protocol with enshrined FTSO and FDC."
184184
sources={{
185185
light: useBaseUrl("img/flare_architecture_light.svg"),
186186
dark: useBaseUrl("img/flare_architecture_dark.svg"),

docs/ftso/0-overview.mdx

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,26 @@
22
slug: overview
33
title: FTSOv2
44
description: FTSOv2 is an enshrined oracle that provides decentralized data feeds to the Flare network.
5-
keywords: [ftso, flare-ftso, oracle, flare-time-series-oracle, flare-network]
5+
keywords:
6+
[
7+
ftso,
8+
flare-ftso,
9+
oracle,
10+
flare-time-series-oracle,
11+
flare-network,
12+
price-feeds,
13+
real-time oracle,
14+
block-latency feeds,
15+
]
616
---
717

818
import ThemedImage from "@theme/ThemedImage";
919
import useBaseUrl from "@docusaurus/useBaseUrl";
1020
import YoutubeEmbed from "@site/src/components/youtube";
1121

12-
The **F**lare **T**ime **S**eries **O**racle **(FTSO)** is an [enshrined oracle](/support/terminology#enshrined-oracle) that provides decentralized data feeds to the Flare network. Since the release of FTSOv1 two years ago, users and applications on Flare have enjoyed consistent and reliable pricing, with zero downtime or failures. FTSOv2 builds on the robust foundation laid by its predecessor, offering several enhancements:
22+
The **F**lare **T**ime **S**eries **O**racle **(FTSO)** is an [enshrined oracle](/support/terminology#enshrined-oracle) that provides decentralized data feeds to the Flare network.
23+
Since the release of FTSOv1 two years ago, users and applications on Flare have enjoyed consistent and reliable pricing, with zero downtime or failures.
24+
FTSOv2 builds on the robust foundation laid by its predecessor, offering several enhancements:
1325

1426
- **Secure.** Enshrined into Flare's core protocol, every oracle feed in FTSOv2 inherits the economic security of the entire network.
1527

@@ -23,10 +35,12 @@ The **F**lare **T**ime **S**eries **O**racle **(FTSO)** is an [enshrined oracle]
2335

2436
## Architecture
2537

26-
FTSOv2 ensures fast, secure, and manipulation-resistant feeds by using a stake-weighted verifiable randomness function (VRF) to select a sample of data providers for incremental delta updates. These updates maintain long-term accuracy by anchoring to Scaling feeds, which use a full commit-reveal process and update every 90 seconds. During high market volatility, volatility incentives can increase the sample size of data providers for a quicker response to market conditions.
38+
FTSOv2 ensures fast, secure, and manipulation-resistant feeds by using a stake-weighted verifiable randomness function (VRF) to select a sample of data providers for incremental delta updates.
39+
These updates maintain long-term accuracy by anchoring to Scaling feeds, which use a full commit-reveal process and update every 90 seconds.
40+
During high market volatility, volatility incentives can increase the sample size of data providers for a quicker response to market conditions.
2741

2842
<ThemedImage
29-
alt="FTSO Price Comparison"
43+
alt="Diagram comparing FTSO block-latency feeds vs centralized exchange price updates."
3044
sources={{
3145
light: useBaseUrl("img/ftso-overview/ref_fast_comparison_social.svg"),
3246
dark: useBaseUrl("img/ftso-overview/ref_fast_comparison_social_dark.svg"),
@@ -35,11 +49,14 @@ FTSOv2 ensures fast, secure, and manipulation-resistant feeds by using a stake-w
3549

3650
The FTSOv2 architecture consists of four key components:
3751

38-
1. **Verifiably Random Selection:** Each block on Flare triggers the selection of data providers to deliver the next feed update using a stake-weighted Verifiable Randomness Function. This ensures fairness and resistance to manipulation.
52+
1. **Verifiably Random Selection:** Each block on Flare triggers the selection of data providers to deliver the next feed update using a stake-weighted Verifiable Randomness Function.
53+
This ensures fairness and resistance to manipulation.
3954

40-
2. **Incremental Delta Update:** Selected data providers submit new feed updates as fixed incremental deltas applied to the previous feed value. This maintains reliable and continuous updates, ensuring integrity and accuracy.
55+
2. **Incremental Delta Update:** Selected data providers submit new feed updates as fixed incremental deltas applied to the previous feed value.
56+
This maintains reliable and continuous updates, ensuring integrity and accuracy.
4157

42-
3. **Volatility Incentive Mechanism:** To handle periods of high market volatility, FTSOv2 introduces volatility incentives, temporarily increasing the sample size of selected data providers in exchange for a fee. This permissionless mechanism ensures a faster response to significant price movements.
58+
3. **Volatility Incentive Mechanism:** To handle periods of high market volatility, FTSOv2 introduces volatility incentives, temporarily increasing the sample size of selected data providers in exchange for a fee.
59+
This permissionless mechanism ensures a faster response to significant price movements.
4360

4461
4. **Anchoring to Scaling Feeds:** Scaling feeds, which employ a full commit-reveal process across all data providers, act as anchors to ensure long-term accuracy.
4562

@@ -51,22 +68,30 @@ For a detailed explanation of the FTSOv2 mechanism, read the [FTSOv2 whitepaper]
5168

5269
### Verifiably Random Selection
5370

54-
Every block on Flare, generated approximately every 1.8 seconds, initiates the selection of a sample of data providers to deliver the next feed update. This selection process leverages a stake-weighted verifiable randomness function (VRF), where the likelihood of each data provider being chosen is proportional to their stake. The expected sample size is one, and data providers have no control over, nor knowledge of, when they will be selected.
71+
Every block on Flare, generated approximately every 1.8 seconds, initiates the selection of a sample of data providers to deliver the next feed update.
72+
This selection process leverages a stake-weighted verifiable randomness function (VRF), where the likelihood of each data provider being chosen is proportional to their stake.
73+
The expected sample size is one, and data providers have no control over, nor knowledge of, when they will be selected.
5574

56-
In detail, each block has a unique seed value, used by FTSOv2 data providers to generate a personal random score. This score, coupled with a cryptographic proof, ensures its authenticity and verifiability, preventing prediction or manipulation by others. Data providers are chosen based on their scores: those with scores below a certain threshold are selected to make updates. The selection probability is proportional to the data provider's stake, allowing for weighted sampling where participants with a higher stake have a greater chance of being selected. This mechanism ensures fairness and resistance to manipulation.
75+
In detail, each block has a unique seed value, used by FTSOv2 data providers to generate a personal random score.
76+
This score, coupled with a cryptographic proof, ensures its authenticity and verifiability.
77+
Data providers are chosen based on their scores: those with scores below a certain threshold are selected to make updates.
78+
The selection probability is proportional to the data provider's stake, allowing for weighted sampling where participants with a higher stake have a greater chance of being selected.
5779

58-
To maintain security, the seed value itself evolves pseudo-randomly. This approach balances security and randomness, preventing adversaries from influencing the selection process. The system is designed to be statistically robust, ensuring a reliable and continuous selection of participants to uphold the integrity and accuracy of updates.
80+
To maintain security, the seed value itself evolves pseudo-randomly. This approach balances security and randomness, preventing adversaries from influencing the selection process.
81+
The system is designed to be statistically robust, ensuring a reliable and continuous selection of participants to uphold the integrity and accuracy of updates.
5982

6083
### Incremental Delta Update
6184

62-
The selected data providers submit the new feed update, which is a fixed incremental delta applied to the previous feed value. The base increment size for all updates is `1/2^13 ≈ 0.0122%`, a value determined through extensive market analysis and approved by Flare governance. The delta can be in one of three directions:
85+
The selected data providers submit the new feed update, which is a fixed incremental delta applied to the previous feed value.
86+
The base increment size for all updates is `1/2^13 ≈ 0.0122%`, a value determined through extensive market analysis and approved by Flare governance.
87+
The delta can be in one of three directions:
6388

6489
- **Up (+)**: The new feed value is incrementally increased from the previous value.
6590
- **Down (–)**: The new feed value is incrementally decreased from the previous value.
6691
- **Unchanged (0)**: The new feed value remains the same as the previous value.
6792

6893
<ThemedImage
69-
alt="FTSO Update Architecture"
94+
alt="Diagram of delta updates showing up, down, unchanged adjustments."
7095
sources={{
7196
light: useBaseUrl("img/ftso-overview/ftso_update_architecture_light.svg"),
7297
dark: useBaseUrl("img/ftso-overview/ftso_update_architecture_dark.svg"),
@@ -87,19 +112,29 @@ where,
87112
- $p$ is the protocol parameter named _precision_, and
88113
- $\delta$ is the update provided by a data provider, with $\delta(t)$ being one of the three options $\{-1, 0, 1\}$.
89114

90-
The precision parameter is set to a default value of $p = 1/2^{13} ≈ 0.0122\%$, which has been rigorously tested against price feeds from centralized exchanges. Another key protocol parameter is the average number of updates submitted per block, with a default value of $e = 1$. The average number of updates submitted per block $e$ can be temporarily increased in exchange for a fee using the volatility incentive mechanism.
115+
The precision parameter is set to a default value of $p = 1/2^{13} ≈ 0.0122\%$, which has been rigorously tested against price feeds from centralized exchanges.
116+
Another key protocol parameter is the average number of updates submitted per block, with a default value of $e = 1$.
117+
The average number of updates submitted per block $e$ can be temporarily increased in exchange for a fee using the volatility incentive mechanism.
91118

92119
</details>
93120

94121
### Volatility Incentive Mechanism
95122

96-
From statistical analysis, FTSOv2's mechanism is capable of capturing over 99% of all price movements under normal market conditions. However, during periods of high market volatility, the small size of each increment may be slower to reflect large price movements. To address this, FTSOv2 introduces volatility incentives, which allows for a temporary increase in the sample size of data providers in exchange for a fee. The volatility incentive mechanism is permissionless, enabling anyone on Flare to trigger it by paying the required fee.
123+
From statistical analysis, FTSOv2's mechanism is capable of capturing over 99% of all price movements under normal market conditions.
124+
However, during periods of high market volatility, the small size of each increment may be slower to reflect large price movements.
125+
To address this, FTSOv2 introduces volatility incentives, which allows for a temporary increase in the sample size of data providers in exchange for a fee.
126+
The volatility incentive mechanism is permissionless, enabling anyone on Flare to trigger it by paying the required fee.
97127

98-
Typically, the expected sample size is one. With volatility incentives, this sample size is temporarily increased, allowing for more updates and quicker responses to large price movements. Importantly, only the expected sample size increases, not the actual sample size, which further helps protect the protocol against various statistical attacks.
128+
Typically, the expected sample size is one.
129+
With volatility incentives, this sample size is temporarily increased, allowing for more updates and quicker responses to large price movements.
130+
Importantly, only the expected sample size increases, not the actual sample size, which further helps protect FTSOv2 against various statistical attacks.
99131

100132
### Anchoring to Scaling
101133

102-
FTSOv2's block-latency feeds are designed to be statistically self-correcting. To further ensure their long-term accuracy, FTSOv2 uses the anchor feeds from [Scaling](/ftso/scaling/overview). Anchor feeds utilize a full commit-reveal process across all data providers with an inter-quartile range (IQR) band calculation, and update once every voting epoch (i.e. 90 seconds). Data providers are only rewarded if the block-latency feeds converge to within `±0.25%` of the anchor feeds every voting epoch.
134+
FTSOv2's block-latency feeds are designed to be statistically self-correcting.
135+
To further ensure their long-term accuracy, FTSOv2 uses the anchor feeds from [Scaling](/ftso/scaling/overview).
136+
Anchor feeds utilize a full commit-reveal process across all data providers with an inter-quartile range (IQR) band calculation, and update once every voting epoch (i.e. 90 seconds).
137+
Data providers are rewarded when the block-latency feeds remains within `±0.25%` of the anchor feeds every voting epoch.
103138

104139
## Watch the video
105140

0 commit comments

Comments
 (0)