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
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.
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.
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:
- Pool Request: A risk pool requests a risk score for a specific property or portfolio
- Oracle Processing: The oracle system processes the request and gathers necessary data
- ML Prediction: Machine learning models generate risk predictions based on historical data and current conditions
- Peril Data: The peril tracker provides specific metrics for each relevant peril
- Component Assembly: The oracle assembles various risk components and peril metrics into a comprehensive score
- Validation: A validator node verifies the accuracy and reliability of the risk score
- 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.
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.
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.
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.
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.