{"id":24913935,"url":"https://github.com/seanluis/eip-draft","last_synced_at":"2025-06-20T01:07:18.341Z","repository":{"id":275164262,"uuid":"923771116","full_name":"SeanLuis/eip-draft","owner":"SeanLuis","description":"DeFi Protocol Solvency Proof Standard - A standardized interface for verifying and reporting DeFi protocol solvency status through smart contracts","archived":false,"fork":false,"pushed_at":"2025-04-28T23:21:44.000Z","size":497,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-29T00:33:57.609Z","etag":null,"topics":["blockchain","eip","ethereum","ethereum-contract","proposal"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SeanLuis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-28T19:57:33.000Z","updated_at":"2025-04-28T23:21:47.000Z","dependencies_parsed_at":"2025-01-31T16:34:28.347Z","dependency_job_id":"44bd0c36-4407-4bfb-a8a9-7e1a11d3fad9","html_url":"https://github.com/SeanLuis/eip-draft","commit_stats":null,"previous_names":["seanluis/eip-draft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SeanLuis/eip-draft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeanLuis%2Feip-draft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeanLuis%2Feip-draft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeanLuis%2Feip-draft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeanLuis%2Feip-draft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SeanLuis","download_url":"https://codeload.github.com/SeanLuis/eip-draft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeanLuis%2Feip-draft/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260857371,"owners_count":23073437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","eip","ethereum","ethereum-contract","proposal"],"created_at":"2025-02-02T06:15:09.574Z","updated_at":"2025-06-20T01:07:13.322Z","avatar_url":"https://github.com/SeanLuis.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\neip: XXXX\ntitle: DeFi Protocol Solvency Proof Mechanism\ndescription: A standardized interface for verifying and reporting DeFi protocol solvency status through smart contracts\nauthor: Sean Luis Guada Rodríguez (@SeanLuis) \u003cseanluis47@gmail.com\u003e\nstatus: Draft\ntype: Standards Track\ncategory: ERC\ncreated: 2025-01-30\nrequires: [20, 165]\n---\n\n## Abstract\n\nA standardized interface that enables DeFi protocols to implement verifiable solvency proofs through smart contracts. The standard defines methods for reporting assets, liabilities, and financial metrics, enabling real-time verification of protocol solvency.\n\n## Motivation\n\nThe DeFi ecosystem currently lacks standardization in financial health reporting, leading to:\n\n1. Inconsistent reporting methodologies across protocols\n2. Limited transparency in real-time financial status\n3. Absence of standardized early warning systems\n4. Complex and time-consuming audit processes\n5. Difficulty in assessing cross-protocol risks\n\n## Specification\n\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"NOT RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in RFC 2119 and RFC 8174.\n\n```mermaid\nflowchart TB\n    subgraph ApplicationLayer[Application Layer]\n        direction LR\n        D[Dashboards] --- A[Alerts] --- API[APIs]\n    end\n\n    subgraph ProtocolLayer[Protocol Layer]\n        direction LR\n        Assets[Assets] --- Solvency[Solvency] --- History[History]\n    end\n\n    subgraph DataLayer[Data Layer]\n        direction LR\n        Oracles[Oracles] --- Prices[Prices] --- Stats[Statistics]\n    end\n\n    ApplicationLayer --\u003e ProtocolLayer\n    ProtocolLayer --\u003e DataLayer\n```\n\n### Core Interfaces\n\nThe standard defines a comprehensive interface for solvency verification. Key features include:\n\n1. Asset and Liability Management\n   - Protocol assets tracking\n   - Protocol liabilities tracking\n   - Real-time value updates\n\n2. Solvency Verification\n   - Ratio calculations\n   - Health factor monitoring\n   - Historical data tracking\n\n3. Risk Alert System\n   - Threshold monitoring\n   - Event emissions\n   - Emergency notifications\n\nFor the complete interface specification, see [ISolvencyProof.sol](contracts/SolvencyProof/ISolvencyProof.sol).\n\n### Mathematical Model\n\nThe solvency verification system is based on comprehensive mathematical models:\n\n#### 1. Core Solvency Calculations\n\n$SR = (TA / TL) × 100$\n\nWhere:\n- $TA = \\sum(A_i × P_i)$  // Total Assets\n- $TL = \\sum(L_i × P_i)$  // Total Liabilities\n- $A_i$ = Amount of asset i\n- $P_i$ = Price of asset i\n- $L_i$ = Liability i\n\n#### 2. Risk-Adjusted Health Factor\n\n$HF = \\frac{\\sum(A_i × P_i × W_i)}{\\sum(L_i × P_i × R_i)}$\n\nWhere:\n- $W_i$ = Risk weight of asset i $(0 \u003c W_i \\leq 1)$\n- $R_i$ = Risk factor for liability i $(R_i \\geq 1)$\n\n#### 3. Risk Metrics\n\n##### Value at Risk (VaR)\n\n$VaR(\\alpha) = \\mu - (\\sigma × z(\\alpha))$\n\nWhere:\n- $\\mu$ = Expected return\n- $\\sigma$ = Standard deviation\n- $z(\\alpha)$ = z-value for confidence level $\\alpha$\n\n##### Liquidity Coverage Ratio (LCR)\n\n$LCR = \\frac{HQLA}{TNCO} × 100$\n\nWhere:\n- HQLA = High Quality Liquid Assets\n- TNCO = Total Net Cash Outflows (30 days)\n\n#### 4. System Health Index\n\n$SI = \\frac{SR × w_1 + LCR × w_2 + (1/\\sigma) × w_3}{w_1 + w_2 + w_3}$\n\nWhere:\n- $w_1,w_2,w_3$ = Weighting factors\n- $\\sigma$ = System volatility\n\n#### 5. Default Probability\n\n$PD = N(-DD)$\n$DD = \\frac{ln(TA/TL) + (\\mu - \\sigma^2/2)T}{\\sigma\\sqrt{T}}$\n\nWhere:\n- DD = Distance to Default\n- T = Time horizon\n- N() = Standard normal distribution\n\n### Risk Thresholds\n\nThe following thresholds have been validated through extensive testing:\n\n| Risk Level | Ratio Range | Action Required | Validation Status |\n|------------|-------------|-----------------|-------------------|\n| CRITICAL   | \u003c 105%      | Emergency Stop  | ✅ Validated |\n| HIGH RISK  | 105% - 110% | Risk Alert     | ✅ Validated |\n| WARNING    | 110% - 120% | Monitor        | ✅ Validated |\n| HEALTHY    | ≥ 120%      | Normal         | ✅ Validated |\n\nTesting has confirmed that:\n1. The system correctly handles 50% market drops\n2. Ratios are calculated accurately in all scenarios\n3. State updates maintain consistency\n4. Ratio limits are effective for early detection\n\n```mermaid\nstateDiagram-v2\n    [*] --\u003e Healthy: SR ≥ 120%\n    Healthy --\u003e Warning: SR \u003c 120%\n    Warning --\u003e HighRisk: SR \u003c 110%\n    HighRisk --\u003e Critical: SR \u003c 105%\n    Critical --\u003e [*]: Emergency\n    Critical --\u003e HighRisk: SR ≥ 105%\n    HighRisk --\u003e Warning: SR ≥ 110%\n    Warning --\u003e Healthy: SR ≥ 120%\n```\n\n### Risk Assessment Framework\n\nThe standard implements a multi-tiered risk assessment system:\n\n1. Primary Metrics:\n   - Base Solvency Ratio (SR)\n   - Risk-Adjusted Health Factor (HF)\n   - Liquidity Coverage Ratio (LCR)\n\n2. Threshold Levels:\n   ```mermaid\n   flowchart LR\n       H[Healthy] --\u003e|\"SR \u003c 120%\"| W[Warning]\n       W --\u003e|\"SR \u003c 110%\"| R[High Risk]\n       R --\u003e|\"SR \u003c 105%\"| C[Critical]\n   ```\n\n### Oracle Integration (Optional)\n\nThis standard intentionally leaves oracle implementation flexible. Protocols MAY implement price feeds in various ways:\n\n1. Direct Integration\n   - Using existing oracle networks (Chainlink, API3, etc.)\n   - Custom price feed implementations\n   - Internal price calculations\n\n2. Aggregation Strategies\n   - Multiple oracle sources\n   - TWAP implementations\n   - Medianized price feeds\n\n\n```mermaid\nflowchart LR\n    subgraph DataSources[Price Data Sources]\n        O[Oracle Networks]\n        P[Price Feeds]\n    end\n    subgraph Integration[Price Integration]\n        A[Aggregator]\n    end\n    O --\u003e A\n    P --\u003e A\n    A --\u003e C[Contract]\n```\n\n### Implementation Requirements\n\n1. Asset Management:\n   - Real-time asset tracking\n   - Price feed integration\n   - Historical data maintenance\n\n2. Liability Tracking:\n   - Debt obligation monitoring\n   - Collateral requirement calculation\n   - Risk factor assessment\n\n3. Reporting System:\n   - Event emission for significant changes\n   - Threshold breach notifications\n   - Historical data access\n\n### Implementation Considerations\n\n#### Oracle Management (Optional)\nWhile not part of the core standard, implementations should consider including oracle management:\n\n```solidity\n// Recommended but not required\nevent OracleUpdated(address indexed oracle, bool authorized);\nfunction setOracle(address oracle, bool authorized) external;\n```\n\nThis provides:\n- Flexible price feed management\n- Security controls\n- Update authorization\n\nThe core standard focuses on solvency verification, leaving oracle management implementation details to individual protocols.\n\n### Implementation Notes\n\nBased on conducted tests, it is recommended:\n\n1. Liability Management:\n   - Maintain constant liabilities during price updates\n   - Validate that liabilities are never 0 to avoid division by zero\n   - Update liabilities only when actual positions change\n\n2. Ratio Calculation:\n   ```solidity\n   function calculateRatio(uint256 assets, uint256 liabilities) pure returns (uint256) {\n       if (liabilities == 0) {\n           return assets \u003e 0 ? RATIO_DECIMALS * 2 : RATIO_DECIMALS;\n       }\n       return (assets * RATIO_DECIMALS) / liabilities;\n   }\n   ```\n\n3. State Validation:\n   - Verify values before updating\n   - Maintain accurate history\n   - Emit events for significant changes\n\n4. Gas Considerations:\n   - Optimize history storage\n   - Batch updates for multiple tokens\n   - Limit array sizes in updates\n\n## Rationale\n\nThe standard's design prioritizes:\n\n1. Reliability through multiple oracle support and robust calculations\n2. Efficiency via optimized data structures\n3. Flexibility through modular design\n4. Transparency via standardized metrics\n\n## Backwards Compatibility\n\nThis EIP is compatible with existing DeFi protocols and requires no changes to existing token standards.\n\n## Test Cases\n\nTest cases are provided in the reference implementation demonstrating:\n\n1. Solvency ratio calculations\n2. Risk threshold monitoring\n3. Oracle integration\n4. Historical data tracking\n\n## Reference Implementation\n\nA reference implementation is provided in [SolvencyProof.sol](contracts/SolvencyProof/SolvencyProof.sol).\n\n## Security Considerations\n\nKey security considerations include:\n\n1. Oracle Security:\n   - Multiple price feed sources\n   - Manipulation resistance\n   - Fallback mechanisms\n\n2. Access Control:\n   - Authorized updaters\n   - Rate limiting\n\n3. Risk Management:\n   - Threshold calibration\n   - Alert system reliability\n\n## Copyright\n\nCopyright and related rights waived via [CC0](../LICENSE.md).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanluis%2Feip-draft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanluis%2Feip-draft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanluis%2Feip-draft/lists"}