Docs/Core components
On this page

Risk Management

← Pool Types | Integration Guide →

Table of Contents

Risk Architecture

The Risk Management System is the core intelligence layer of the Riskify Protocol, responsible for assessing, validating, and monitoring risk across the entire ecosystem. It integrates multiple data sources, advanced models, and validation mechanisms to ensure accurate risk representation across different perils.

Infrastructure Layout

System diagram
Diagram source
graph TB
    %% Styling
    classDef core fill:#2ecc71,stroke:#27ae60,color:white
    classDef models fill:#e74c3c,stroke:#c0392b,color:white
    classDef data fill:#3498db,stroke:#2980b9,color:white
    
    %% Core Components
    subgraph Core["Risk Management System"]
        direction TB
        RS["Risk Scoring"]
        RP["Risk Propagation"]
        RV["Risk Validation"]
        RM["Risk Monitoring"]
        PT["Peril Tracking"]
    end

    %% Models
    subgraph Models["Risk Models"]
        GNN["GNN Model"]
        EBM["Energy Based Model"]
        PPO["PPO Model"]
        ZKP["ZK Proofs"]
    end

    %% Data Sources
    subgraph Data["Data Sources"]
        ON["On-chain Data"]
        OFF["Off-chain Oracles"]
        ML["ML Inference"]
        PD["Peril Data"]
    end

    %% Relationships
    Data --> Models
    Models --> Core
    
    %% Apply styles
    class Core core
    class Models models
    class Data data

Risk Architecture Explanation:

  • Core Risk Management System: The central hub that coordinates all risk-related activities:
    • Risk Scoring: Calculates risk metrics based on property characteristics, market conditions, and peril-specific factors
    • Risk Propagation: Manages how risk flows between different pools and participants across multiple perils
    • Risk Validation: Verifies the accuracy and reliability of risk calculations for each peril
    • Risk Monitoring: Tracks risk metrics in real-time and triggers alerts when thresholds are breached
    • Peril Tracking: Manages and monitors individual peril metrics and correlations
  • Risk Models: Advanced algorithms that power risk calculations:
    • GNN Model: Graph Neural Network for analyzing interconnected risk factors and peril correlations
    • Energy Based Model: Physics-inspired model for catastrophic event simulation across perils
    • PPO Model: Proximal Policy Optimization for dynamic risk pricing with peril consideration
    • ZK Proofs: Zero-Knowledge Proofs for privacy-preserving risk validation
  • Data Sources: Information feeds that inform risk calculations:
    • On-chain Data: Historical transactions, pool metrics, and token data
    • Off-chain Oracles: External data from weather services, property databases, and market feeds
    • ML Inference: Predictions from trained machine learning models
    • Peril Data: Specific data sources for each type of peril (e.g., weather data for natural disasters)

Risk Calculation

Base Risk Components

Risk calculation follows a hierarchical approach, starting with base risk metrics and applying various adjustments to arrive at a comprehensive risk score that accounts for multiple perils.

System diagram
Diagram source
graph TB
    %% Styling
    classDef components fill:#2ecc71,stroke:#27ae60,color:white
    classDef adjustments fill:#e74c3c,stroke:#c0392b,color:white
    
    %% Risk Components
    subgraph RiskComponents["Risk Components"]
        direction TB
        BR["Base Risk"]
        TR["Temporal Risk"]
        NR["Network Risk"]
        SR["Systemic Risk"]
        PR["Peril Risk"]
    end

    %% Adjustments
    subgraph Adjustments["Risk Adjustments"]
        WA["Weather Adjustments"]
        SA["Seasonal Adjustments"]
        GA["Geographic Adjustments"]
        CA["Correlation Adjustments"]
        PA["Peril Adjustments"]
    end

    %% Relationships
    BR --> TR
    TR --> NR
    NR --> SR
    SR --> PR
    RiskComponents --> Adjustments
    
    %% Apply styles
    class RiskComponents components
    class Adjustments adjustments

Base Risk Components Explanation:

  • Risk Components: The hierarchical structure of risk calculation:
    • Base Risk: Fundamental risk metrics for individual properties or events, calculated from historical data and property characteristics
    • Temporal Risk: Time-dependent factors that affect risk, such as seasonal patterns and climate change trends
    • Network Risk: Interconnected risk factors between different properties or regions, capturing correlation effects
    • Systemic Risk: Broader market or environmental factors that affect multiple risks simultaneously
    • Peril Risk: Specific risk factors associated with each type of peril (e.g., flood risk, earthquake risk)
  • Adjustments: Specialized modifiers that refine risk calculations:
    • Weather Adjustments: Account for current and forecasted weather conditions
    • Seasonal Adjustments: Factor in seasonal patterns that affect risk (e.g., hurricane season)
    • Geographic Adjustments: Consider location-specific risk factors and regional characteristics
    • Correlation Adjustments: Account for how different risks interact and influence each other
    • Peril Adjustments: Specific adjustments for each type of peril based on their unique characteristics

Risk Score Calculation

The risk score calculation process involves multiple participants working together to produce accurate and validated risk metrics across all perils.

System diagram
Diagram source
sequenceDiagram
    participant Pool as Risk Pool
    participant Oracle as Risk Oracle
    participant ML as ML Models
    participant Validator as Risk Validator
    participant PerilTracker as Peril Tracker

    Note over Pool,PerilTracker: Risk Score Calculation Process
    
    Pool->>Oracle: Request Risk Score
    Oracle->>ML: Get ML Predictions
    ML-->>Oracle: Return Risk Components
    Oracle->>PerilTracker: Get Peril Data
    PerilTracker-->>Oracle: Return Peril Metrics
    Oracle->>Validator: Validate Score
    Validator-->>Pool: Return Final Score
    
    Note over Pool,PerilTracker: Score Calculation Complete

Risk Score Calculation Explanation:

  1. Pool Request: A risk pool requests a risk score for a specific property or portfolio
  2. Oracle Processing: The oracle system processes the request and gathers necessary data
  3. ML Prediction: Machine learning models generate risk predictions based on historical data and current conditions
  4. Peril Data: The peril tracker provides specific metrics for each relevant peril
  5. Component Assembly: The oracle assembles various risk components and peril metrics into a comprehensive score
  6. Validation: A validator node verifies the accuracy and reliability of the risk score
  7. Score Delivery: The final validated risk score is returned to the requesting pool

This multi-step process ensures that risk scores are accurate, transparent, and validated by multiple parties, with proper consideration of all relevant perils.

Risk Propagation

Direct Propagation

Direct risk propagation enables simple one-to-one risk transfer between pools with validation, accounting for multiple perils.

System diagram
Diagram source
graph LR
    %% Styling
    classDef source fill:#2ecc71,stroke:#27ae60,color:white
    classDef target fill:#3498db,stroke:#2980b9,color:white
    classDef validation fill:#e74c3c,stroke:#c0392b,color:white
    
    %% Source Components
    subgraph Source["Source Components"]
        SP["Source Pool"]
        SR["Source Risk"]
        PR["Peril Risks"]
    end

    %% Target Components
    subgraph Target["Target Components"]
        TP["Target Pool"]
        TR["Target Risk"]
        PR2["Peril Risks"]
    end

    %% Validation Components
    subgraph Validation["Validation Process"]
        RV["Risk Validator"]
        RC["Risk Calculator"]
        PT["Peril Tracker"]
    end

    %% Relationships
    SP -->|Transfer| RV
    RV -->|Validate| RC
    RC -->|Check| PT
    PT -->|Accept| TP
    
    %% Apply styles
    class Source source
    class Target target
    class Validation validation

Direct Propagation Explanation:

  • Source Components:
    • Source Pool: The pool initiating the risk transfer
    • Source Risk: The risk metrics associated with the transfer
    • Peril Risks: The specific risk metrics for each peril
  • Target Components:
    • Target Pool: The pool receiving the risk transfer
    • Target Risk: The updated risk metrics after transfer
    • Peril Risks: The updated peril-specific metrics
  • Validation Process:
    • Risk Validator: Verifies that the transfer meets all requirements
    • Risk Calculator: Recalculates risk metrics for both pools after transfer
    • Peril Tracker: Validates and updates peril-specific metrics
  • Flow: Risk flows from the source pool through validation to the target pool, ensuring proper risk assessment at each step and across all perils

Bundle Propagation

Bundle propagation enables efficient transfer of multiple risks as a single unit with optimization, considering peril interactions.

System diagram
Diagram source
graph TB
    %% Styling
    classDef process fill:#2ecc71,stroke:#27ae60,color:white
    classDef optimization fill:#e74c3c,stroke:#c0392b,color:white
    
    %% Bundle Process
    subgraph BundleProcess["Bundle Process"]
        BP["Bundle Creation"]
        BO["Bundle Optimization"]
        BV["Bundle Validation"]
        BT["Bundle Transfer"]
    end

    %% Optimization Components
    subgraph Optimization["Optimization Components"]
        RD["Risk Diversification"]
        RC["Risk Correlation"]
        RA["Risk Adjustment"]
        PO["Peril Optimization"]
    end

    %% Relationships
    BP --> BO
    BO --> Optimization
    Optimization --> BV
    BV --> BT
    
    %% Apply styles
    class BundleProcess process
    class Optimization optimization

Bundle Propagation Explanation:

  • Bundle Process:
    • Bundle Creation: Grouping multiple risks into a single transferable unit
    • Bundle Optimization: Adjusting the bundle composition for optimal risk/reward
    • Bundle Validation: Verifying that the bundle meets all requirements
    • Bundle Transfer: Executing the transfer of the entire bundle
  • Optimization Components:
    • Risk Diversification: Ensuring the bundle contains a diverse set of risks
    • Risk Correlation: Analyzing how risks in the bundle interact with each other
    • Risk Adjustment: Fine-tuning risk metrics based on bundle composition
    • Peril Optimization: Optimizing the mix of perils in the bundle
  • Flow: The process starts with bundle creation, moves through optimization, validation, and finally to transfer, with careful consideration of peril interactions

Risk Monitoring

Monitoring Architecture

The risk monitoring system provides real-time tracking of risk metrics with automated alerts and actions, with specific attention to peril-specific thresholds.

System diagram
Diagram source
graph TB
    %% Styling
    classDef monitoring fill:#2ecc71,stroke:#27ae60,color:white
    classDef alerts fill:#e74c3c,stroke:#c0392b,color:white
    classDef actions fill:#3498db,stroke:#2980b9,color:white
    
    %% Monitoring Components
    subgraph Monitoring["Monitoring System"]
        RT["Real-time Tracking"]
        AM["Alert Management"]
        RM["Risk Metrics"]
        PM["Performance Metrics"]
        PT["Peril Tracking"]
    end

    %% Alert Components
    subgraph Alerts["Alert System"]
        MC["Margin Calls"]
        RB["Risk Breaches"]
        PD["Pool Degradation"]
        PB["Peril Breaches"]
    end

    %% Action Components
    subgraph Actions["Action System"]
        LIQ["Liquidation"]
        REP["Reposition"]
        REB["Rebalance"]
        PR["Peril Response"]
    end
    
    %% Apply styles
    class Monitoring monitoring
    class Alerts alerts
    class Actions actions

Monitoring Architecture Explanation:

  • Monitoring Components:
    • Real-time Tracking: Continuous monitoring of risk metrics across the system
    • Alert Management: System for generating and managing risk alerts
    • Risk Metrics: Key indicators of risk levels and trends
    • Performance Metrics: Measures of system efficiency and effectiveness
    • Peril Tracking: Specific monitoring of peril-related metrics
  • Alert Types:
    • Margin Calls: Notifications when collateral levels fall below required thresholds
    • Risk Breaches: Alerts when risk levels exceed predefined limits
    • Pool Degradation: Warnings about deteriorating pool health or performance
    • Peril Breaches: Alerts when peril-specific thresholds are exceeded
  • Automated Actions:
    • Liquidation: Automatic selling of positions to prevent losses
    • Reposition: Adjusting risk exposure to maintain optimal balance
    • Rebalance: Reallocating resources to maintain desired risk profiles
    • Peril Response: Specific actions triggered by peril-related events

Risk Optimization

Optimization Process

The risk optimization process now includes peril-specific considerations and correlations.

System diagram
Diagram source
graph TB
    subgraph Optimization
        direction TB
        RA["Risk Assessment"]
        PO["Peril Optimization"]
        CA["Correlation Analysis"]
        BA["Bundle Assembly"]
    end

    subgraph Constraints
        RL["Risk Limits"]
        PL["Peril Limits"]
        CL["Correlation Limits"]
        BL["Bundle Limits"]
    end

    Optimization --> Constraints

Optimization Process Explanation:

  • Optimization Components:
    • Risk Assessment: Evaluating overall risk levels and distributions
    • Peril Optimization: Optimizing the mix of different perils
    • Correlation Analysis: Analyzing relationships between different risks and perils
    • Bundle Assembly: Creating optimal risk bundles
  • Constraints:
    • Risk Limits: Maximum allowed risk levels
    • Peril Limits: Maximum exposure to specific perils
    • Correlation Limits: Maximum allowed correlation between risks
    • Bundle Limits: Maximum size and complexity of risk bundles

Implementation Details

interface IRiskScore {
    struct RiskComponents {
        uint256 baseRisk;           // Base risk score
        uint256 temporalRisk;       // Time-dependent risk
        uint256 correlationRisk;    // Risk from correlations
        uint256 concentrationRisk;  // Risk from concentration
        uint256 volatilityRisk;     // Risk from volatility
        uint256 modelRisk;          // Risk from model uncertainty
    }
}

Implementation Explanation: The RiskComponents struct defines the key components of a risk score:

  • baseRisk: Fundamental risk metrics for the property or event
  • temporalRisk: Time-dependent factors affecting risk
  • correlationRisk: Risk from correlations with other properties or events
  • concentrationRisk: Risk from geographic or type concentration
  • volatilityRisk: Risk from price or metric volatility
  • modelRisk: Uncertainty in the risk calculation models

This structured approach to risk scoring enables precise risk assessment and management throughout the protocol.

For more information please see:

Next Steps


Need help? Join our Discord | Read our Documentation

Search concepts, APIs, pools, and integration guides.