Geode Finance


This implementation of oracle utilized the Gnosis Safe Contracts. To understand how multi-signature works and to get better insight about quorum please read the Gnosis Safe Documentation.
For more technical context, please review the Readme of Telescope-Avax here:​

Telescope powers the Geode Universe

Telescope is a chain-specific, pocket-size Distributed Oracle that contains multiple Nodes with multiple roles within the Geode Universe.
Like any other Oracle Network, Telescope has multiple Nodes that are collecting and interpreting off-chain information, verifying each-other's conclusions and finally inserting the verified data to on-chain contracts, in this case Geode Portal.

Why an Oracle is essential for Geode?

Geode utilizes a sophisticated withdrawal mechanism which enables low-slippage instant withdrawals with the help of Dynamic Withdrawal Pools.
Dynamic Withdrawal Pools are stable-swap pools, but instead of having a pricing algorithm with focus point near to 1-to-1, it has a focus point near to 1-to-oraclePrice. Because of this, we need a trusted oracle to update the on-chain price of multiple Planets regularly.
On-chain price is stored in the g-Derivative smart contract and can also be pretty useful with other use-cases within the wider DeFi world.

Telescope's Structure

Telescope on Ethereum and Avalanche shares the same logic on slightly different tasks.
They have 4 components:
  1. 1.
    Nodes: individual scripts watching the Consensus Layer, trying to achieve a consensus on a price update.
  2. 2.
    Watchers: Collecting verified signatures from Nodes and submitting them to a multisig contract.
  3. 3.
    Multisig: After making sure that more than enough Node Operators have signed a Transaction, it updates the price through Portal
  4. 4.
    Portal: Makes sure that the price update is within valid limitations, then distributes the fees accordingly.

In the next diagram, red arrows show the journey of a successful price update with a 3/4 multisig setup, with 4 Node Operators:

Implementation Design Principles

Telescope is chain-specific

While the underlying objectives are preserved, Geodes Developer Team needs to design unique Infrastructure with different solutions for different Proof-of-Stake blockchains. Because all of them have a different understanding of what "stake" means.

For Avalanche, Telescope has only one duty:

  • Updating the price of multiple gAVAX assets for multiple Planet's with reportOracle function:
function reportOracle(
uint256 _reportedTimeStamp,
uint256 _planetId,
uint256[] memory _opIds,
uint256[] memory _pBalanceIncreases

For Ethereum, Telescope has 3 duties:

  • Distributing the Yield

  • Regulating the Market

  • Fetching the Unstakes

Telescope is pocket-size

It is easy to understand, deploy, run and update. There is nothing complicated on chain either.

Telescope tracks multiple Operators for multiple Planets

Every Planet can have multiple Operators chosen, Telescope does not need to know the full context of the relationships, it tracks all of them.

Telescope is Pessimistic

Telescope does not trust it's operators at all, it expects the unexpected.
Geode Portal does not allow any percentage of price changes on daily updates. There is no slashing mechanism on Avalanche, so it doesn't allow the price to decrease. Because of this, it only reports the balanceIncrease. Also, price increase has 0.2% daily upper-limit.
If Quorum is not reached on any given day, the price increase upper-limit on Avalanche will be 0.4% for the next daily update, etc..

Telescope Nodes are black-boxes

To make them more secure, Telescope Nodes do not have to be public servers, URLs or API end points and they don't speak with each other directly.

Telescope is not permissionless

Node Operators of Telescope are chosen by the current Node Operators. Because the on-chain end point of the Oracle is basically a Gnosis Safe. A battle-tested Quorum mechanism.
More security, less decentralization for price updates.

Telescope Nodes are free-to-run

Because of the gas fees, it is expected to cost some money or tokens to operate on-chain Oracle Nodes. However, Telescope Nodes does not need to pay for anything thanks to Watchers who collect the data and submit automatically whenever there is an off-chain quorum.

Telescope is persistent to a single-point of failure

Thanks to multiple Nodes and multiple Watchers powered by multiple parties, Telescope does not fail until most of the components fail.

Telescope is communicative

The operators of Telescope Nodes do not need to check or monitor their Node all the time. Telescope will notify it's operator regularly with e-mails. In case anything goes wrong, it sends messages via Whatsapp and/or Telegram.

Telescope is state-less

If a Node Operator choses to monitor their node, Telescope stores it's data within an online database. But, Telescope never uses or needs this database to operate normally, any Node can be stopped and rebooted at any given time, only using the information stored in on-chain events and functions.

Telescope is deterministic

Thanks to the implementation of p-Bank, all of the Telescope Nodes will come to the same conclusion easily, without needing a lot of on-chain activity for verification.