MIP10: Oracle Management

MIP10: Oracle Management

Preamble

MIP#: 10
Title: Oracle Management 
Author(s): Niklas Kunkel (@NiklasKunkel), Charles St.Louis (@CPSTL), Rune Christensen (@Rune23)
Type: Process
Status: <Assigned by MIP Editor>
Date Proposed: 2020-04-06
Dependencies: n/a
Replaces: n/a

Summary

This proposal defines the process for onboarding, offboarding and managing oracles.

Motivation

In the Maker Protocol, every collateral type has a corresponding Oracle that publishes a reference price that the protocol utilizes. Therefore, the Oracle requirements must be laid out in detail for the collateral onboarding process. Governance may also choose to create Oracles for non-collateral assets for use by 3rd parties.

Specification / Proposal Details

MIP10 Components

  1. MIP10c1: Oracle Onboarding
  2. MIP10c2: List of Active Oracle Data Models
  3. MIP10c3: Process for onboarding
  4. MIP10c4: Process for offboarding

MIP10c1: Oracle Onboarding

The Oracle Onboarding process is as follows:

  1. Oracle Team(s) find and select data sources
    • Exchange options
    • Pair selection
  2. The Oracle Team(s) select an appropriate Data Model (a model detailing how the data is processed to get the desired output) based on the specific asset type and what data is available.
  3. The Oracle Team(s) complete the following technical deliverables:
    • Update price querying tool(s) to pull from the selected data sources and implement the Data Model for that specific asset
    • Update the Oracle client(s) to integrate the latest version of the price querying tool(s) and incorporate technical changes
  4. Deploy new instances of previously audited smart contracts for the asset type. This includes two smart contracts:
    • Medianizer
    • Oracle Security Module (OSM)
  5. Notify the Feeds to update their Oracle clients
    • Alert sent out on the official Keybase channel
    • Timeline: 1 to 2 weeks to monitor deployment and confirm stability
  6. The Oracle Team publishes the Medianizer and OSM smart contract addresses in the onboarding proposal (MIP10c3) itself.

MIP10c2: List of Active Oracle Data Models

Oracle Data Model Template Explanation:

  • Source: The data source for the Oracle Feed
  • Asset Pair: The asset pair is a price quote of the exchange rate for two different assets traded on the market.
  • Quorum: The number of Feeds you need to reach a consensus on a price.
  • Feed Model: Model for how a Feed processes all sourced data into a singular price
  • Oracle Model: Model for how an Oracle processes all Feed data into a singular price
  • Example Template:
Source Asset Pair Quorum Feed Model Oracle Model
< data source > < param > < # > < mode > < model >

Active Oracle Data Models:

ETH/USD Data Model

|    Source     |  Asset Pair   |Quorum | Feed Model  | Oracle Model |
| :------------ | :------------ | :---: | :---------: | :----------: |
|   Binance     |    ETH/BTC    |   13  |    Median   |    Median    |
|   BitFinex    |    ETH/USDT   |
|   Bitstamp    |    ETH/USD    |
|   Coinbase    |    ETH/USD    |
|   Gemini      |    ETH/USD    |
|   Kraken      |    ETH/USD    |

BAT/USD Data Model

|    Source     |  Asset Pair   | Quorum | Feed Model  | Oracle Model |
| :------------ | :------------ | :----: | :---------: | :----------: |
|   Binance     |    BAT/BTC    |   13   |    Median   |    Median    |
|   Bittrex     |    BAT/BTC    |
|   Coinbase    |    BAT/USDC   |
|   Upbit       |    BAT/KRW    |

USDC/USD Data Model

|    Source     |  Asset Pair   | Quorum | Feed Model  | Oracle Model |
| :------------ | :-----------: | :----: | :---------: | :----------: |
|      1        |      N/A      |   N/A  |     N/A     |      N/A     |

MIP10c3: Process for Onboarding

This process MIP component is used by the Oracle Team(s) to onboard new oracles for collateral assets as well as compel the Feeds to update their Data Models in preparation for deploying a new Oracle.

  • Feedback Period: 0 days
  • Frozen period: 0 days
  • Update Interval: Feeds have a period of 2 weeks during which to upgrade their systems to include the Oracle type and data models. Any Feeds not upgraded during this interval are presumed to be in breach of their responsibilities and potentially subject to removal.

Subproposal Template:

Introduction

- Oracle Team Name:
- Oracle Data model Name:
- Oracle Data Model: 

|    Source     |  Asset Pair   | Quorum | Feed Model  | Oracle Model |
| :------------ | :------------ | :----: | :---------: | :----------: |
| <data source> |   <param>     |  <#>   |   <model>   |    <model    |

- Date of Proposed Inclusion: <date created on, in (yyyy-mm-dd) format>

- Supported Tools: 
    - <tool name> <version commit hash> <link to github repo>
	 

Specification

- Communication Medium(s)
	- Oracle Team Posting the MIP on the Maker Forum
	- Oracle Team posting the MIP in the Keybase Feeds channel

- Update Interval
	- Feeds have a period of 2 weeks during which to upgrade their systems to include the Oracle type and data models. Any Feeds not upgraded during this interval are presumed to be in breach of their responsibilities and potentially subject to removal.

MIP10c4: Process for Offboarding

If an Oracle has been made obsolete, anyone can make a proposal to remove it, in order to reduce unnecessary costs such as gas fees.

  • Feedback Period: 0 days
  • Frozen Period: 0 days
  • Subproposal Template:

Introduction
    
    - Oracle Team Name:  
    - Oracle Type Name: 
    - Date of Proposed Removal: <date created on, in (yyyy-mm-dd) format>
    
Specification
        
    - Removal Motivation:
        - An explanation behind the motivation for the removal of the Oracle. Possible reasons include:
                - An asset ceasing to exist 
                - Removal of a collateral type from the Maker Protocol
                - Oracle not being utilized by neither the Maker Protocol nor a 3rd party
                - Failure to upgrade their systems to include an Oracle type and data models.
    				
    - Relevant Information:
    	-  Links to evidence further backing the motivation behind the removal of the Oracle


1 Like

Just to make it clear on this post @charlesstlouis , Anyone could designate himself as a Oracle Team members and make a proposal ?


Governor

● Risk Teams

β—‹ Advanced - Extensive knowledge

β—‹ Collect/compile relevant data and
develop risk models, assessed by MKR
Holders


Here is Maintainer

● Developers

β—‹ Basic - No additional knowledge to own Dai

β—‹ Stability Seekers; Consumer;
Businesses

● Oracles

β—‹ Intermediate - Some knowledge

β—‹ Risk Seekers; Speculators; Borrowers

● Keepers

β—‹ Intermediate - Some knowledge

β—‹ Risk Seekers; Speculators; Borrowers

Anyone with the required knowledge can freely participate in any role Any one person (or service) can have multiple roles


On the MakerDAO white paper

Key External Actors

In addition to its smart contract infrastructure, the Maker Protocol involves groups of external actors to maintain operations: Keepers, Oracles, and Global Settlers (Emergency Oracles), and Maker community members. Keepers take advantage of the economic incentives presented by the Protocol; Oracles and Global Settlers are external actors with special permissions in the system assigned to them by MKR voters; and Maker community members are individuals and organizations that provide services.

DAO Teams

Emergency Oracle

Keepers

DAO Team

Risk and Mitigation Responsibilities of Governance


And then here :


Dissolution of The Maker Foundation

The Maker Foundation currently plays a role, along with independent actors, in maintaining the Maker Protocol and expanding its usage worldwide, while facilitating Governance. However, the Maker Foundation plans to dissolve once MakerDAO can manage Governance completely on its own. Should MakerDAO fail to sufficiently take the reins upon the Maker Foundation’s dissolution, the future health of the Maker Protocol could be at risk.

I think there is a lot to clarify to the new proposal. But can you answer to my question if anyone can come up with a proposal, open a pool and implement the proposal if this pass the vote and become a independent Oracle Team or Advisor ???

Thanks for your answer.

In order to get onboarded as an Oracle Team / Oracle team member for collateral onboarding, you must submit a MIP7c3 (Domain Team Onboarding) subproposal. See further details in MIP7: Onboarding and Offboarding Domain Teams for Collateral Onboarding.

1 Like

Yes,

We fill up the form here :

Preformatted text Introduction

- Domain: <Ex: Risk>
- Domain Team Name: <Ex: Risk Team A>
- Name of applicant:
- New or Existing Domain Team: Yes or No
- Date Applied: <date created on, in (yyyy-mm-dd) format>

Application

- Domain Role / Team

-   The domain team that the applicant wants to join
-   The domain team that the applicant wants to create

  • Motivation to work

  • Work Credentials

    - Full name
    - Past work experience


Where do you take your credits for this proposal ? On the MakerDAO Docs or this is something new that you guys are working on right now ? ( Not talking about the proposal itself but the details and mechanics of the actual form to fill, what does this include, do you need to be a team of 3 members or more etc etc )

The most updated version of MIP10 can be found here: https://github.com/makerdao/mips/tree/master/MIP10

1 Like