Methodology Explained and Verified
Systemic Risk Channels in Digital Finance — Literature Search and Composite Scoring Pipeline
1 Overview
This document explains and verifies the pipeline used to rank 14 candidate systemic risk channels in digital finance. The goal is to select channels for an academic taxonomy paper based on three measurable criteria: literature prominence, scholarly impact, and crisis history.
What is this pipeline?
A systematic literature search combined with a composite scoring methodology. The pipeline ingests Boolean search queries, retrieves academic papers from the OpenAlex API, links channels to historical crisis events, and produces a weighted composite score for each channel.
Purpose
To objectively determine which of 14 candidate channels deserve inclusion in a scholarly taxonomy of systemic risk in digital finance. The ranking reflects the intersection of (a) how much the academic literature covers a channel, (b) how influential that literature is by citation count, and (c) how frequently real-world crisis events have activated the channel.
search_queries.json
2009–2026, ≥5 cites
3 dimensions
channel_rankings.json
2 Step 1 — Define Channels
Fourteen candidate systemic risk channels are defined in search_queries.json. Each channel has a unique identifier, a human-readable name, 3–4 Boolean search queries designed to capture its literature footprint, and optional theory anchors (foundational references from traditional finance).
| # | Channel ID | Display Name | Queries | Theory Anchors |
|---|---|---|---|---|
| 1 | network_contagion | Network Contagion | 4 | Allen & Gale (2000); Acemoglu et al. (2015) |
| 2 | liquidity_spirals | Liquidity Spirals | 4 | Brunnermeier & Pedersen (2009) |
| 3 | stablecoin_runs | Stablecoin Runs | 4 | Diamond & Dybvig (1983) |
| 4 | oracle_manipulation | Oracle Manipulation | 4 | — |
| 5 | composability_risk | Composability Risk | 4 | — |
| 6 | liquidation_cascades | Liquidation Cascades | 4 | Brunnermeier (2009) |
| 7 | counterparty_concentration | Counterparty Concentration | 4 | Upper (2011) |
| 8 | regulatory_contagion | Regulatory Contagion | 3 | — |
| 9 | gateway_risk | Gateway Risk (Fiat-Crypto Bridging) | 4 | — |
| 10 | governance_failure | Governance Failure | 4 | — |
| 11 | information_asymmetry | Information Asymmetry and Opacity | 3 | Akerlof (1970) |
| 12 | rwa_transmission | Real-World Asset Transmission | 3 | — |
| 13 | bridge_vulnerability | Cross-Chain Bridge Vulnerability | 3 | — |
| 14 | validator_concentration | Validator/Miner Concentration | 3 | — |
Example: network_contagion queries
- systemic risk contagion cryptocurrency network
- DeFi interconnectedness systemic risk
- crypto exchange network contagion
- financial network topology cryptocurrency
Theory anchors: Allen and Gale (2000), Financial Contagion, Journal of Political Economy; Acemoglu, Ozdaglar, and Tahbaz-Salehi (2015), Systemic Risk and Stability in Financial Networks, American Economic Review.
3 Step 2 — Collect Papers
API Parameters
| Source | OpenAlex API |
| Year range | 2009–2026 |
| Min. citations | 5 |
| Sort order | cited_by_count:desc |
| Per-channel limit | 200 papers |
| Language | English |
Collection Process
For each of the 14 channels, each of its 3–4 queries is submitted to OpenAlex. Results are paginated (up to 5 pages total: 1 initial + 4 additional), deduplicated by paper ID within each channel, and capped at 200 papers per channel.
Per-Channel Paper Counts
Capped at 200 10 channels
| Channel | Papers |
|---|---|
| bridge_vulnerability | 200 |
| composability_risk | 200 |
| counterparty_concentration | 200 |
| governance_failure | 200 |
| information_asymmetry | 200 |
| liquidation_cascades | 200 |
| network_contagion | 200 |
| regulatory_contagion | 200 |
| rwa_transmission | 200 |
| validator_concentration | 200 |
Exceeded 200 4 channels
| Channel | Papers |
|---|---|
| gateway_risk | 348 |
| liquidity_spirals | 263 |
| stablecoin_runs | 218 |
| oracle_manipulation | 208 |
Corpus Summary
| Total channel-paper assignments | 3,037 |
| Multi-channel papers | 363 |
| Final unique papers | 2,433 |
Channel membership distribution
Papers can belong to multiple channels. Distribution of how many channels each paper appears in:
| Channels per paper | Number of papers |
|---|---|
| 1 | 2,070 |
| 2 | 238 |
| 3 | 63 |
| 4 | 36 |
| 5 | 9 |
| 6 | 8 |
| 7 | 7 |
| 8 | 2 |
Check: 2,070 + 238 + 63 + 36 + 9 + 8 + 7 + 2 = 2,433 unique papers. Weighted sum: 2,070×1 + 238×2 + 63×3 + 36×4 + 9×5 + 8×6 + 7×7 + 2×8 = 3,037 channel-paper assignments.
4 Step 3 — Score Channels
Each channel is scored on three dimensions, each normalized to the [0, 1] interval.
Dimension 1: Literature Volume weight = 0.35
Formula
Normalization denominator
max_paper_count = 348 (gateway_risk)
Because 10 of 14 channels hit the 200-paper cap, they all receive an identical score of 200 ÷ 348 = 0.5747. Only the four uncapped channels differentiate on this dimension.
| Channel | Papers | Calculation | Score |
|---|---|---|---|
| gateway_risk | 348 | 348 / 348 | 1.0000 |
| liquidity_spirals | 263 | 263 / 348 | 0.7557 |
| stablecoin_runs | 218 | 218 / 348 | 0.6264 |
| oracle_manipulation | 208 | 208 / 348 | 0.5977 |
| 10 capped channels | 200 | 200 / 348 | 0.5747 |
Dimension 2: Citation Impact weight = 0.35
Formula
The denominator is always 10, even if a channel has fewer than 10 papers. This penalizes channels with a very small literature base.
Normalization denominator
max_mean_top10 = 5,228.8 (bridge_vulnerability)
| Channel | Mean Top-10 | Calculation | Score |
|---|---|---|---|
| bridge_vulnerability | 5,228.8 | 5228.8 / 5228.8 | 1.0000 |
| validator_concentration | 5,041.1 | 5041.1 / 5228.8 | 0.9641 |
| composability_risk | 3,024.5 | 3024.5 / 5228.8 | 0.5784 |
| gateway_risk | 1,699.5 | 1699.5 / 5228.8 | 0.3250 |
| liquidity_spirals | 1,603.6 | 1603.6 / 5228.8 | 0.3067 |
| governance_failure | 1,213.3 | 1213.3 / 5228.8 | 0.2320 |
| liquidation_cascades | 1,151.3 | 1151.3 / 5228.8 | 0.2202 |
| rwa_transmission | 1,148.4 | 1148.4 / 5228.8 | 0.2196 |
| counterparty_concentration | 1,105.1 | 1105.1 / 5228.8 | 0.2113 |
| regulatory_contagion | 937.3 | 937.3 / 5228.8 | 0.1793 |
| information_asymmetry | 927.2 | 927.2 / 5228.8 | 0.1773 |
| network_contagion | 854.8 | 854.8 / 5228.8 | 0.1635 |
| oracle_manipulation | 686.9 | 686.9 / 5228.8 | 0.1314 |
| stablecoin_runs | 161.4 | 161.4 / 5228.8 | 0.0309 |
Dimension 3: Crisis Evidence weight = 0.30
Formula
The crisis chronology contains 25 events (2014–2025). Of these, 21 have numeric loss figures and 4 have losses recorded as "undetermined". Undetermined losses are imputed at the median of the 21 known losses: $305,000,000 (log10 = 8.4843).
Normalization denominator
max_crisis_sum = 116.08 (counterparty_concentration, activated by 13 crisis events)
| Channel | Events | log10 Sum | Calculation | Score |
|---|---|---|---|---|
| counterparty_concentration | 13 | 116.08 | 116.08 / 116.08 | 1.0000 |
| liquidity_spirals | 13 | 115.58 | 115.58 / 116.08 | 0.9957 |
| composability_risk | 10 | 85.94 | 85.94 / 116.08 | 0.7403 |
| gateway_risk | 9 | 78.92 | 78.92 / 116.08 | 0.6799 |
| information_asymmetry | 8 | 71.68 | 71.68 / 116.08 | 0.6175 |
| bridge_vulnerability | 7 | 60.02 | 60.02 / 116.08 | 0.5171 |
| network_contagion | 5 | 47.11 | 47.11 / 116.08 | 0.4058 |
| liquidation_cascades | 5 | 39.80 | 39.80 / 116.08 | 0.3429 |
| stablecoin_runs | 3 | 28.44 | 28.44 / 116.08 | 0.2450 |
| governance_failure | 3 | 24.36 | 24.36 / 116.08 | 0.2099 |
| oracle_manipulation | 2 | 15.23 | 15.23 / 116.08 | 0.1312 |
| validator_concentration | 1 | 8.80 | 8.80 / 116.08 | 0.0758 |
| regulatory_contagion | 1 | 8.48 | 8.48 / 116.08 | 0.0731 |
| rwa_transmission | 0 | 0.00 | 0.00 / 116.08 | 0.0000 |
5 Step 4 — Composite Ranking
Composite Score Formula
Worked Example: bridge_vulnerability (Rank 1)
| Step | Calculation | Result |
|---|---|---|
| Papers retrieved | 200 (capped at per_channel_limit) | 200 |
| Literature volume | 200 ÷ 348 | 0.5747 |
| Top-10 citations | [8937, 6328, 6112, 5982, 5761, 4666, 3760, 3620, 3596, 3526] | — |
| Mean top-10 | 52,288 ÷ 10 | 5,228.8 |
| Citation impact | 5,228.8 ÷ 5,228.8 | 1.0000 |
| 7 crisis events | Poly Network (8.786) + Wormhole (8.513) + Ronin (8.796) + Nomad (8.279) + Multichain (8.100) + Bybit (9.176) + WazirX (8.371) | 60.02 |
| Crisis evidence | 60.02 ÷ 116.08 | 0.5171 |
| Composite | 0.35 × 0.5747 + 0.35 × 1.0000 + 0.30 × 0.5171 | 0.7063 |
Full Ranking (All 14 Channels)
| Rank | Channel | Papers | Lit. Volume | Mean Top-10 | Cit. Impact | Crisis Events | Crisis Ev. | Composite |
|---|---|---|---|---|---|---|---|---|
| 1 | Cross-Chain Bridge Vulnerability | 200 | 0.5747 | 5,228.8 | 1.0000 | 7 | 0.5171 | 0.7063 |
| 2 | Liquidity Spirals | 263 | 0.7557 | 1,603.6 | 0.3067 | 13 | 0.9957 | 0.6705 |
| 3 | Gateway Risk (Fiat-Crypto Bridging) | 348 | 1.0000 | 1,699.5 | 0.3250 | 9 | 0.6799 | 0.6677 |
| 4 | Composability Risk | 200 | 0.5747 | 3,024.5 | 0.5784 | 10 | 0.7403 | 0.6257 |
| 5 | Counterparty Concentration | 200 | 0.5747 | 1,105.1 | 0.2113 | 13 | 1.0000 | 0.5751 |
| 6 | Validator/Miner Concentration | 200 | 0.5747 | 5,041.1 | 0.9641 | 1 | 0.0758 | 0.5613 |
| 7 | Information Asymmetry and Opacity | 200 | 0.5747 | 927.2 | 0.1773 | 8 | 0.6175 | 0.4485 |
| 8 | Liquidation Cascades | 200 | 0.5747 | 1,151.3 | 0.2202 | 5 | 0.3429 | 0.3811 |
| 9 | Network Contagion | 200 | 0.5747 | 854.8 | 0.1635 | 5 | 0.4058 | 0.3801 |
| 10 | Governance Failure | 200 | 0.5747 | 1,213.3 | 0.2320 | 3 | 0.2099 | 0.3453 |
| 11 | Stablecoin Runs | 218 | 0.6264 | 161.4 | 0.0309 | 3 | 0.2450 | 0.3036 |
| 12 | Oracle Manipulation | 208 | 0.5977 | 686.9 | 0.1314 | 2 | 0.1312 | 0.2945 |
| 13 | Regulatory Contagion | 200 | 0.5747 | 937.3 | 0.1793 | 1 | 0.0731 | 0.2858 |
| 14 | Real-World Asset Transmission | 200 | 0.5747 | 1,148.4 | 0.2196 | 0 | 0.0000 | 0.2780 |
6 Step 5 — Sensitivity Analysis
To test the robustness of the ranking, four weight schemes are compared. If the top channels are stable across schemes, the ranking is not an artifact of the chosen weights.
Weight Schemes
| Scheme | Lit. Volume | Cit. Impact | Crisis Ev. |
|---|---|---|---|
| Primary | 0.35 | 0.35 | 0.30 |
| Equal | 0.333 | 0.333 | 0.333 |
| Crisis-dominant | 0.25 | 0.25 | 0.50 |
| Literature-dominant | 0.50 | 0.25 | 0.25 |
Full sensitivity table (rank per scheme)
| Channel | Primary 35/35/30 |
Equal 33/33/33 |
Crisis-dom. 25/25/50 |
Lit-dom. 50/25/25 |
Range |
|---|---|---|---|---|---|
| bridge_vulnerability | 1 | 1 | 5 | 3 | 1–5 |
| liquidity_spirals | 2 | 2 | 1 | 2 | 1–2 |
| gateway_risk | 3 | 3 | 3 | 1 | 1–3 |
| composability_risk | 4 | 4 | 4 | 4 | 4 |
| counterparty_concentration | 5 | 5 | 2 | 5 | 2–5 |
| validator_concentration | 6 | 6 | 7 | 6 | 6–7 |
| information_asymmetry | 7 | 7 | 6 | 7 | 6–7 |
| liquidation_cascades | 8 | 9 | 9 | 9 | 8–9 |
| network_contagion | 9 | 8 | 8 | 8 | 8–9 |
| governance_failure | 10 | 10 | 10 | 10 | 10 |
| stablecoin_runs | 11 | 11 | 11 | 11 | 11 |
| oracle_manipulation | 12 | 12 | 12 | 12 | 12 |
| regulatory_contagion | 13 | 13 | 13 | 13 | 13 |
| rwa_transmission | 14 | 14 | 14 | 14 | 14 |
Composite scores by scheme
| Channel | Primary | Equal | Crisis-dom. | Lit-dom. |
|---|---|---|---|---|
| bridge_vulnerability | 0.7063 | 0.6972 | 0.6522 | 0.6666 |
| liquidity_spirals | 0.6705 | 0.6860 | 0.7634 | 0.7035 |
| gateway_risk | 0.6677 | 0.6682 | 0.6712 | 0.7512 |
| composability_risk | 0.6257 | 0.6311 | 0.6585 | 0.6170 |
| counterparty_concentration | 0.5751 | 0.5953 | 0.6965 | 0.5902 |
| validator_concentration | 0.5613 | 0.5381 | 0.4226 | 0.5473 |
| information_asymmetry | 0.4485 | 0.4565 | 0.4967 | 0.4861 |
| liquidation_cascades | 0.3811 | 0.3792 | 0.3702 | 0.4281 |
| network_contagion | 0.3801 | 0.3813 | 0.3874 | 0.4297 |
| governance_failure | 0.3453 | 0.3388 | 0.3066 | 0.3978 |
| stablecoin_runs | 0.3036 | 0.3007 | 0.2868 | 0.3822 |
| oracle_manipulation | 0.2945 | 0.2867 | 0.2479 | 0.3645 |
| regulatory_contagion | 0.2858 | 0.2757 | 0.2250 | 0.3504 |
| rwa_transmission | 0.2780 | 0.2648 | 0.1986 | 0.3423 |
Key Findings
- Top-5 core is stable: bridge_vulnerability, liquidity_spirals, gateway_risk, composability_risk, and counterparty_concentration appear in every scheme's top 5 (though their internal ordering shifts).
- composability_risk holds rank 4 in all four schemes — the most stable single position.
- Ranks 10–14 are locked: governance_failure, stablecoin_runs, oracle_manipulation, regulatory_contagion, and rwa_transmission never leave positions 10–14 across all schemes.
- Fragile pairs:
- Ranks 2–3 (liquidity_spirals vs. gateway_risk): gap of 0.003 in primary scheme. Under crisis-dominant weights, liquidity_spirals surges to rank 1.
- Ranks 8–9 (liquidation_cascades vs. network_contagion): gap of 0.001 in primary scheme. They swap under equal and crisis-dominant weights.
- bridge_vulnerability drops from rank 1 to rank 5 under crisis-dominant weights, because its citation advantage (1.0) is compressed while counterparty_concentration's crisis dominance (1.0) is amplified.
7 Verification — Independent Recomputation
All 42 sub-scores (3 dimensions × 14 channels) and 14 composite scores were independently recomputed from raw data and compared against the stored values in channel_rankings.json.
Full verification table (stored vs. computed)
| Channel | Literature Volume | Citation Impact | Crisis Evidence | Composite | Rank | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Stored | Computed | Δ | Stored | Computed | Δ | Stored | Computed | Δ | Stored | Computed | Δ | Match | |
| bridge_vulnerability | 0.5747 | 0.5747 | 0.0000 | 1.0000 | 1.0000 | 0.0000 | 0.5171 | 0.5171 | 0.0000 | 0.7063 | 0.7063 | 0.0000 | Yes |
| liquidity_spirals | 0.7557 | 0.7557 | 0.0000 | 0.3067 | 0.3067 | 0.0000 | 0.9957 | 0.9957 | 0.0000 | 0.6705 | 0.6705 | 0.0000 | Yes |
| gateway_risk | 1.0000 | 1.0000 | 0.0000 | 0.3250 | 0.3250 | 0.0000 | 0.6799 | 0.6799 | 0.0000 | 0.6677 | 0.6677 | 0.0000 | Yes |
| composability_risk | 0.5747 | 0.5747 | 0.0000 | 0.5784 | 0.5784 | 0.0000 | 0.7403 | 0.7403 | 0.0000 | 0.6257 | 0.6257 | 0.0000 | Yes |
| counterparty_concentration | 0.5747 | 0.5747 | 0.0000 | 0.2113 | 0.2113 | 0.0000 | 1.0000 | 1.0000 | 0.0000 | 0.5751 | 0.5751 | 0.0000 | Yes |
| validator_concentration | 0.5747 | 0.5747 | 0.0000 | 0.9641 | 0.9641 | 0.0000 | 0.0758 | 0.0758 | 0.0000 | 0.5613 | 0.5613 | 0.0000 | Yes |
| information_asymmetry | 0.5747 | 0.5747 | 0.0000 | 0.1773 | 0.1773 | 0.0000 | 0.6175 | 0.6175 | 0.0000 | 0.4485 | 0.4485 | 0.0000 | Yes |
| liquidation_cascades | 0.5747 | 0.5747 | 0.0000 | 0.2202 | 0.2202 | 0.0000 | 0.3429 | 0.3429 | 0.0000 | 0.3811 | 0.3811 | 0.0000 | Yes |
| network_contagion | 0.5747 | 0.5747 | 0.0000 | 0.1635 | 0.1635 | 0.0000 | 0.4058 | 0.4058 | 0.0000 | 0.3801 | 0.3801 | 0.0000 | Yes |
| governance_failure | 0.5747 | 0.5747 | 0.0000 | 0.2320 | 0.2320 | 0.0000 | 0.2099 | 0.2099 | 0.0000 | 0.3453 | 0.3453 | 0.0000 | Yes |
| stablecoin_runs | 0.6264 | 0.6264 | 0.0000 | 0.0309 | 0.0309 | 0.0000 | 0.2450 | 0.2450 | 0.0000 | 0.3036 | 0.3036 | 0.0000 | Yes |
| oracle_manipulation | 0.5977 | 0.5977 | 0.0000 | 0.1314 | 0.1314 | 0.0000 | 0.1312 | 0.1312 | 0.0000 | 0.2945 | 0.2945 | 0.0000 | Yes |
| regulatory_contagion | 0.5747 | 0.5747 | 0.0000 | 0.1793 | 0.1793 | 0.0000 | 0.0731 | 0.0731 | 0.0000 | 0.2858 | 0.2858 | 0.0000 | Yes |
| rwa_transmission | 0.5747 | 0.5747 | 0.0000 | 0.2196 | 0.2196 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.2780 | 0.2780 | 0.0000 | Yes |
Sensitivity recomputation discrepancy
One micro-discrepancy was found in the sensitivity analysis (not the primary scoring):
| Scheme | Channel | Metric | Stored | Computed | Δ |
|---|---|---|---|---|---|
| Equal (33/33/33) | liquidation_cascades | composite | 0.3793 | 0.3792 | 0.0001 |
8 Known Limitations
| # | Limitation | Impact |
|---|---|---|
| 1 | 200-paper cap compresses literature_volume. 10 of 14 channels hit the cap and receive an identical score (0.5747). This reduces the discriminating power of the literature volume dimension to only 4 channels. | Moderate — the dimension differentiates among only 4 uncapped channels; 10 are tied. |
| 2 | Citation-count sorting favors older, established work. The OpenAlex query sorts by cited_by_count:desc, so the top-10 papers per channel tend to be highly-cited older papers. Recent, rapidly-growing papers may be underrepresented in the top-10 used for the citation impact dimension. | Low-to-moderate — mitigated by the 2009–2026 year range restriction. |
| 3 | Crisis chronology is manually curated. A single coder selected 25 events from the 2014–2025 period. The event set is neither exhaustive nor independently validated. Smaller DeFi exploits (<$10M) are excluded. | Moderate — crisis_evidence scores depend entirely on which events are included. |
| 4 | Terra/Luna ($45B) disproportionately weights crisis_evidence. The Terra/Luna collapse activates 5 channels and contributes log10(45,000,000,000) = 10.65 per activation, the largest single weight. Channels linked to Terra/Luna receive a substantial boost. | High for affected channels — counterparty_concentration, liquidity_spirals, composability_risk, stablecoin_runs, and network_contagion all benefit. |
| 5 | Weights (35/35/30) are analytical judgment, not empirically derived. The primary weighting scheme was chosen to balance literature presence and scholarly impact equally, with a slightly lower weight for crisis history (which has fewer data points). | Low — sensitivity analysis shows the top-5 is robust across all four tested schemes. |
| 6 | API non-determinism. OpenAlex results may vary slightly across retrieval dates (new papers indexed, citations updated). The exact paper set is a snapshot, not a stable reference. | Low — the raw data files are archived for reproducibility. |
| 7 | 4 crisis losses imputed at the median ($305M). Events with "undetermined" losses (Black Thursday, SushiSwap Vampire Attack, SVB/USDC De-Peg, BTC-e Seizure) receive the median log10 weight of 8.4843. The true losses may differ substantially. | Low — log-scale compression limits the impact of imputation errors. |