Cryptocurrency and Digital Asset Markets

Author

Professor Barry Quinn

Published

May 8, 2026

Theme: Crypto Finance

NoteView Slides

Open the lecture deck: Digital Assets & Market Analysis

1 Introduction: The Currency That Isn’t

Bitcoin has existed for fifteen years. Its market capitalisation peaked at over $1 trillion. Thousands of businesses claim to “accept Bitcoin.” Yet almost nobody actually uses it as currency. Virtually no goods are priced in Bitcoin. Transaction volumes represent a tiny fraction of traditional payment systems: Visa processes roughly 2,000 times more transactions than Bitcoin. When people do transact in Bitcoin, they typically convert to local currency immediately, treating crypto as an intermediary rather than money.

This gap between rhetoric and reality defines cryptocurrency’s place in modern finance. Satoshi Nakamoto’s 2008 whitepaper promised “a purely peer-to-peer version of electronic cash” that would enable “online payments sent directly from one party to another without going through a financial institution.” The technology works: Bitcoin transactions do clear without banks: but adoption as currency has comprehensively failed. Instead, Bitcoin became a speculative asset with monthly volatility often exceeding 20-30%, making it fundamentally unsuitable for currency functions (unit of account, medium of exchange, store of value).

The reasons for this failure aren’t mysterious. Currency requires stability; Bitcoin offers volatility. Currency needs rapid, low-cost settlement; Bitcoin’s throughput is limited by its block size (approximately 7 transactions per second theoretically, often fewer in practice), and transaction fees have spiked during congestion periods (exceeding $50 in December 2017 and again in 2021). Currency demands finality; Bitcoin requires multiple confirmations over 30-60 minutes. These aren’t implementation problems awaiting technical fixes: they reflect fundamental design trade-offs inherent to proof-of-work consensus.

Yet cryptocurrency persists, evolving beyond its original vision. Ethereum introduced “programmable money” enabling decentralized applications. Stablecoins attempt to combine blockchain infrastructure with fiat currency stability. Central banks experiment with digital currencies (CBDCs) using distributed ledger technology under centralized control. Understanding this ecosystem requires distinguishing between cryptocurrency’s technological capabilities (what it can do) and its practical adoption (what people actually do with it).

This chapter examines cryptocurrency markets through three lenses: the technical foundations that enable decentralized value transfer, the market structures that generate extreme volatility and fragmentation, and the empirical evidence on who uses cryptocurrency and for what purposes: evidence that largely contradicts financial inclusion narratives.

1.1 Learning objectives

By the end of this week, you should be able to:

  • Explain blockchain technology fundamentals: distributed ledgers, proof-of-work consensus, cryptographic security.
  • Analyze cryptocurrency market structure: exchanges, liquidity fragmentation, 24/7 trading dynamics.
  • Assess risk characteristics: volatility clustering, fat-tailed returns, correlation patterns with traditional assets.
  • Evaluate financial inclusion claims critically using empirical evidence on actual adoption patterns.
  • Implement cryptocurrency market analysis using exchange APIs and Python.
  • Discuss regulatory approaches and challenges: classification, consumer protection, AML/KYC requirements.

1.2 What Are Cryptocurrencies, Really?

From a computer science perspective, cryptocurrencies are distributed databases maintained through consensus protocols, using cryptography to secure transactions and control new unit creation. Bitcoin’s blockchain is a public ledger where transactions are grouped into blocks, cryptographically linked, and validated by network participants (miners) through proof-of-work.

From an economics perspective, cryptocurrencies are tokens in decentralized payment networks where consensus rules replace trusted intermediaries. The key insight: traditional payment systems (Visa, bank transfers, mobile money) rely on trusted parties to validate transactions and prevent double-spending. Cryptocurrencies achieve this through protocol rules and economic incentives: miners invest resources (electricity, hardware) to validate transactions, receiving newly created tokens as reward.

From a finance perspective, cryptocurrencies are highly volatile speculative assets exhibiting properties of both currencies and commodities, but functioning primarily as neither. They possess exchange rates (how many dollars per Bitcoin), trade continuously on multiple exchanges, and serve as portfolio diversification instruments for some investors. But they fail key currency tests (stability, wide acceptance, predictability) and commodity tests (intrinsic use value, production costs determining floor prices).

This definitional ambiguity creates regulatory confusion. Are cryptocurrencies currencies (Federal Reserve, tax authorities), commodities (CFTC in US), securities (SEC for many tokens), or property (IRS)? Different agencies assert different classifications, leading to jurisdictional conflicts and regulatory arbitrage. B"ohme et al. (2015) discuss these classification challenges in detail.

1.2.1 The Technology: How Blockchain Works

Understanding cryptocurrency markets requires grasping blockchain mechanics. A blockchain is a linked list of blocks, where each block contains: (1) a batch of recent transactions, (2) a cryptographic hash of the previous block (creating the chain), (3) a nonce (random number) making the block’s hash meet difficulty requirements, and (4) a timestamp and Merkle tree of transactions enabling efficient verification.

The consensus mechanism: proof-of-work in Bitcoin: determines who gets to add the next block. Miners compete to find a nonce making the block’s hash begin with a certain number of zeros (the “difficulty”). This requires brute-force computation, costing electricity and hardware. Finding a valid nonce is hard; verifying it is easy. This asymmetry enables consensus: miners invest real resources to propose blocks, but all nodes can cheaply verify validity.

Why does this prevent double-spending? If an attacker tries to reverse a transaction by creating a longer alternative chain, they must outpace the honest network’s cumulative proof-of-work. With 51% of total hash power, this becomes feasible: hence “51% attack.” But controlling 51% of Bitcoin’s network now requires billions in hardware and electricity, making attacks economically irrational for most actors.

The key trade-offs:

  • Security vs scalability: More frequent blocks increase throughput but reduce security (less work per block). Bitcoin chose 10-minute blocks; Ethereum chose ~12 seconds; Visa processes thousands per second centrally.
  • Decentralization vs efficiency: Anyone can run a Bitcoin node, but this requires broadcasting every transaction globally. Centralized payment processors are vastly more efficient.
  • Immutability vs recourse: Blockchain transactions can’t be reversed, eliminating chargeback fraud but also preventing error correction or theft recovery.

These aren’t bugs awaiting fixes: they’re fundamental design choices reflecting different priorities than traditional finance.

2 Part I: Cryptocurrency Market Structure

2.1 Exchange Landscape and Fragmentation

Unlike traditional asset markets with centralized exchanges (NYSE, LSE) and inter-exchange connectivity, cryptocurrency markets are radically fragmented. Hundreds of exchanges operate globally: centralized exchanges (Binance, Coinbase, Kraken), decentralized exchanges (Uniswap, dYdX), peer-to-peer platforms (LocalBitcoins): with limited cross-exchange arbitrage mechanisms.

This fragmentation creates price discrepancies. Makarov and Schoar (2020) provide detailed evidence on this fragmentation, documenting that Bitcoin prices across exchanges can diverge significantly: price differences between the US and Europe averaged approximately 3%, between Japan and the US around 10%, and between the US and Korea exceeded 15% during late 2017 through early 2018 (reaching 40% on some days: the “Kimchi premium”). In contrast, price differences within the same country typically remain below 1%. Why don’t arbitrageurs eliminate these gaps? Transfer costs and delays: moving Bitcoin between exchanges takes 30-60 minutes (waiting for confirmations); moving fiat involves banking delays and wire fees. Regulatory barriers: some exchanges restrict withdrawals or require extensive KYC. Capital controls: in countries with foreign exchange restrictions, local Bitcoin prices diverge from global rates. These frictions are economically meaningful: cross-border arbitrage profits must overcome transfer costs, and the time required to exploit opportunities means market conditions can shift before trades settle.

The 24/7 trading environment intensifies fragmentation effects. Traditional markets have regular close times enabling settlement and price discovery. Cryptocurrency markets never close. This creates continuous price volatility: news anywhere affects prices everywhere immediately. It also eliminates circuit breakers and trading halts used in traditional markets to prevent cascading failures.

The persistence of these arbitrage opportunities raises questions about market efficiency. Empirical evidence documents cryptocurrency arbitrage profits ranging from under 1% within countries to 10-15% across borders: far exceeding traditional asset markets (<0.01%): suggesting crypto markets remain inefficient despite massive trading volumes. However, Griffin and Shams (2020) document that apparent inefficiencies partly reflect market manipulation rather than genuine arbitrage opportunities.

WarningConnection to Data & Measurement (Week 2, §2.2-2.3)

Data quality issues in cryptocurrency research:

  1. Exchange reliability varies: Not all exchanges provide accurate data. Some report fake volumes, wash trading, or manipulated prices. Bloomberg Terminal has vetted exchanges; public APIs may not.

  2. Survivorship bias: Liu, Tsyvinski, and Wu (2022) note that 1,559 coins in 2018 dropped to 665 by 2020: failed projects disappeared from data. If we analyze only survivors, we overestimate expected returns (only winners remain). This is exactly the survivorship bias we studied in Week 2 with UK banking crisis data.

  3. Look-ahead bias: Some exchange APIs backfill data after corrections. If you download Bitcoin prices today for 2017, they may reflect post-correction data unavailable in real-time. Backtests using this data are overly optimistic.

  4. Measurement validity: What counts as “volume”? Exchanges define it differently. Some include wash trading, others exclude it. This makes cross-exchange comparisons difficult: the same “thing” measured inconsistently (validity problem from Week 2).

Implications: When replicating cryptocurrency research:

  • Use vetted data sources (Bloomberg, Kaiko, CoinMetrics)
  • Check for survivorship bias (include delisted coins)
  • Validate against multiple exchanges (cross-check prices)
  • Be sceptical of performance that seems too good to be true (often data issues or overfitting)

Their analysis of Tether (a stablecoin used for trading) shows evidence of systematic price manipulation on some exchanges, particularly during market stress periods. This creates an important distinction: some observed price discrepancies represent genuine inefficiencies (transfer frictions, information delays), while others reflect coordinated manipulation. Understanding which mechanism dominates requires careful microstructure analysis: a crucial task for regulators and sophisticated market participants assessing whether to enter cryptocurrency markets.

2.1.1 Liquidity and Order Book Dynamics

Cryptocurrency exchanges use continuous limit order books where buyers post bid prices and sellers post ask prices. Liquidity: the ability to trade large quantities without moving prices significantly: varies enormously across cryptocurrencies and exchanges. Bitcoin and Ethereum exhibit deep liquidity on major exchanges; smaller “altcoins” have thin order books where moderate trades cause 5-10% slippage.

This liquidity fragmentation affects trading strategies. Large institutional traders can’t simply market-sell 1,000 Bitcoin without crashing prices temporarily. They must use algorithmic execution (splitting orders across time and exchanges) or over-the-counter (OTC) desks arranging private trades between parties. The lack of centralized clearing and settlement infrastructure makes these strategies more complex and risky than in traditional markets.

High-frequency trading (HFT) operates in crypto markets, but with different dynamics than equities. Latency advantages are less pronounced (blockchain settlement takes minutes regardless of order submission speed), but order book sniping and front-running remain profitable. The transparency of blockchain transactions creates new front-running opportunities: bots monitor the mempool (pending transactions) and submit higher-fee transactions to execute ahead of large trades.

2.2 Price Formation and Volatility

Bitcoin’s price exhibits extraordinary volatility: annualized standard deviation often exceeds 80%, compared to 15-20% for equity markets. This volatility isn’t declining with maturity; it’s structurally embedded in the market mechanism.

Three factors generate this volatility:

  1. Thin order books relative to market capitalization: Bitcoin’s $500B+ market cap trades on order books with $10-50M depth at any moment. Large trades move prices significantly.

  2. Absence of fundamental anchors: Corporate stocks have earnings, dividends, book value providing valuation bounds. Bitcoin has no cash flows, usage metrics, or production costs clearly anchoring value. Prices reflect pure sentiment.

  3. Reflexive dynamics: Price increases attract media attention, driving retail inflows, pushing prices higher (feedback loop). Crashes trigger margin calls and forced liquidations, accelerating declines.

Empirical analysis of Bitcoin returns reveals non-normal distributions with fat tails (excess kurtosis substantially above Gaussian levels), positive skewness during bull markets, and volatility clustering (GARCH effects). These properties make risk management challenging: Value-at-Risk models calibrated on normal distributions dramatically underestimate tail risks.

TipConnection to Volatility Modeling (Week 3, Chapter 03)

Remember our Week 3 discussion of volatility clustering and GARCH models? Bitcoin exhibits the exact same patterns we studied for equity returns:

  • Volatility clustering: High-volatility days follow high-volatility days; calm periods persist
  • Fat tails: Extreme movements occur more frequently than normal distribution predicts
  • Time-varying conditional variance: Volatility isn’t constant: it’s predictable from recent history

In Chapter 03, we learned GARCH(1,1) captures this by modeling today’s variance as a function of yesterday’s shock and yesterday’s variance: σ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁

Let’s apply that framework here to Bitcoin returns. This isn’t just academic: cryptocurrency traders use GARCH models for risk management, option pricing, and position sizing. Understanding volatility dynamics matters when 20% daily moves are possible.

These extreme volatility characteristics reflect cryptocurrency markets’ speculative nature and thin liquidity relative to market capitalization.

2.3 Beyond Volatility: Systematic Return Predictors

While volatility characterizes cryptocurrency markets broadly, not all cryptocurrencies exhibit identical risk-return profiles. Recent empirical asset pricing research reveals systematic patterns in cross-sectional cryptocurrency returns that parallel established equity market factors, challenging the view that cryptocurrency returns represent purely random speculation or uniform bubble dynamics.

Liu, Tsyvinski, and Wu (2022) analyze over 1,800 cryptocurrencies from 2014-2020 (the number grew from 109 coins in 2014 to 1,559 in 2018, then contracted to 665 by 2020 as failed projects disappeared), testing 24 characteristics derived from equity market return predictors. Their findings demonstrate that ten characteristics generate statistically significant excess returns through long-short strategies, with three factors: cryptocurrency market, size, and momentum: capturing most cross-sectional variation in expected returns.

WarningConnection to Statistical Foundations (Week 1, §0.8.4)

Multiple testing problem alert! When you test 24 characteristics, you expect ~1 false positive by chance alone (5% false positive rate × 24 tests ≈ 1.2). Finding 10 “significant” factors doesn’t automatically mean all are real.

Recall from Week 1: Gelman’s critique of p-values and the multiple comparisons problem. When testing many hypotheses: - Some will appear significant purely by chance (Type I errors) - Standard 5% significance level doesn’t account for multiple tests - Need correction: Bonferroni (divide α by number of tests) or False Discovery Rate control

Did Liu, Tsyvinski, and Wu (2022) address this? Yes, partially: 1. They use time-series bootstrap to create null distribution accounting for autocorrelation 2. They report Sharpe ratios, not just p-values (economic significance, not just statistical) 3. They validate out-of-sample (2019-2020 holdout period) 4. They show three factors explain most variation (factor model, not just univariate tests)

Lesson: Don’t just test 24 factors, report 10 significant, and call it done. Require: - Out-of-sample validation (does it work on new data?) - Economic significance (Sharpe ratio > 0.5? Or just statistically significant but tiny?) - Multiple testing correction (Bonferroni, FDR, or bootstrap) - Factor structure (are “significant” factors just noise, or do they cluster into systematic sources?)

This is why asset pricing research is hard. With enough data mining, you can always find “patterns.” The question is whether they’re real or artifacts of overfitting and multiple testing.

This systematic structure contradicts pure bubble narratives: bubbles don’t exhibit persistent, predictable risk-return relationships across thousands of assets over multiple years: but only if these patterns survive out-of-sample testing and aren’t artifacts of data mining.

The size premium in cryptocurrencies mirrors patterns observed in equity markets but operates through different economic mechanisms. Smaller cryptocurrencies (measured by market capitalization) generate higher expected returns, potentially reflecting either liquidity premiums: thin order books make large trades costly: or the trade-off between capital gains and convenience yield emphasized by cryptocurrency theory. Larger, more established cryptocurrencies offer higher convenience (easier to trade, more widely accepted as payment, more liquid markets) but correspondingly lower expected capital appreciation. Bitcoin and Ethereum command convenience premia through network effects and brand recognition, accepting lower returns as the price of dominance. Obscure altcoins must offer higher expected returns to compensate for illiquidity and obsolescence risk.

The momentum premium: past winners continue outperforming over weeks to months: appears particularly strong in cryptocurrency markets, consistent with investor overreaction and attention-driven trading dynamics. When a cryptocurrency generates high returns, it attracts media coverage, social media discussion, and retail interest, driving further price increases through positive feedback loops. This momentum effect eventually reverses as fundamentals reassert (or reveal absence thereof), but persistence over medium horizons creates exploitable patterns for sophisticated traders who enter momentum trades early and exit before reversals.

These systematic factors carry practical implications beyond academic interest. Portfolio construction in cryptocurrency markets can employ similar risk management techniques as equity markets: diversification across size categories, momentum-based rebalancing strategies, and explicit factor exposure management. However, implementation faces challenges absent in traditional markets: extreme volatility makes position sizing difficult, thin liquidity generates large transaction costs, and regulatory uncertainty creates jurisdiction-dependent risks. The cryptocurrency three-factor model works empirically but requires substantial sophistication and capital to exploit profitably.

For students, the key insight transcends cryptocurrency specifics: even in apparently chaotic markets, systematic patterns emerge from the interaction of risk, liquidity, attention, and behavioral biases. Understanding what drives returns: whether fundamental cash flows, convenience yields, liquidity premiums, or momentum dynamics: enables more rigorous analysis than dismissing everything as “irrational speculation.” The productive question isn’t “is cryptocurrency a bubble?” but rather “which characteristics predict which cryptocurrencies survive, which grow, and which fail?” Asset pricing tools developed for traditional markets apply surprisingly well to this newest asset class, suggesting underlying economic forces operate similarly across market structures.

Let’s examine Bitcoin’s volatility characteristics empirically using real market data:

Show Python code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# Simulate Bitcoin price data (in practice, fetch from exchange API)
# Using parameters calibrated to real BTC data: daily returns ~4% volatility, fat tails
np.random.seed(42)
n_days = 1000

# Generate returns with GARCH-like volatility clustering and fat tails
# Use Student's t-distribution (df=5) for fat tails
returns = np.random.standard_t(df=5, size=n_days) * 0.04  # 4% daily volatility

# Add momentum/mean-reversion effects (autocorrelation in abs returns)
for i in range(10, n_days):
    # Volatility clusters: recent volatility predicts future volatility
    recent_vol = np.abs(returns[i-10:i]).mean()
    returns[i] *= (1 + 0.5 * recent_vol)  # Scale by recent volatility

# Convert to prices (starting at $50,000)
prices = [50000]
for r in returns:
    prices.append(prices[-1] * (1 + r))

# Create DataFrame
btc_data = pd.DataFrame({
    'date': pd.date_range('2021-01-01', periods=n_days+1, freq='D'),
    'price': prices
})
btc_data['return'] = btc_data['price'].pct_change()
btc_data['log_return'] = np.log(btc_data['price'] / btc_data['price'].shift(1))

print("=== Bitcoin Market Characteristics ===\n")
print(f"Data period: {btc_data['date'].min().date()} to {btc_data['date'].max().date()}")
print(f"Starting price: ${btc_data['price'].iloc[0]:,.0f}")
print(f"Ending price:   ${btc_data['price'].iloc[-1]:,.0f}")
print(f"Return:         {(btc_data['price'].iloc[-1]/btc_data['price'].iloc[0] - 1)*100:+.1f}%\n")
Show Python code
# Calculate volatility metrics
returns_clean = btc_data['return'].dropna()

daily_vol = returns_clean.std()
annual_vol = daily_vol * np.sqrt(365)  # Annualize (crypto trades 365 days/year)
skewness = stats.skew(returns_clean)
kurtosis = stats.kurtosis(returns_clean)  # Excess kurtosis (0 for normal)

# Rolling 30-day volatility
btc_data['rolling_vol'] = btc_data['return'].rolling(30).std() * np.sqrt(365)

# Value-at-Risk (5% quantile)
var_95 = returns_clean.quantile(0.05)
var_99 = returns_clean.quantile(0.01)

print("Volatility Characteristics:")
print(f"  Daily volatility:     {daily_vol:.2%}")
print(f"  Annualized volatility: {annual_vol:.1%}")
print(f"  Skewness:             {skewness:.2f} (0 = symmetric)")
print(f"  Excess kurtosis:      {kurtosis:.2f} (0 = normal, >0 = fat tails)")
print(f"\nTail Risk (Value-at-Risk):")
print(f"  95% VaR (1-day):      {var_95:.2%} (5% chance of worse loss)")
print(f"  99% VaR (1-day):      {var_99:.2%} (1% chance of worse loss)")
print(f"\nFor comparison:")
print(f"  S&P 500 annualized vol: ~15-20%")
print(f"  Bitcoin is typically 3-5× more volatile")

# Test for volatility clustering (ARCH effects)
from statsmodels.stats.diagnostic import acorr_ljungbox
lb_test = acorr_ljungbox(returns_clean**2, lags=[10], return_df=True)
print(f"\nLjung-Box Q(10) test on squared returns:")
print(f"  Statistic: {lb_test['lb_stat'].iloc[0]:.2f}")
print(f"  P-value: {lb_test['lb_pvalue'].iloc[0]:.4f}")
print(f"  Interpretation: {'Significant volatility clustering (GARCH effects)' if lb_test['lb_pvalue'].iloc[0] < 0.05 else 'No clustering'}")
Show Python code
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8))

# Plot 1: Price with drawdowns
ax1.plot(btc_data['date'], btc_data['price'], linewidth=1.5, color='#f7931a', label='BTC Price')
ax1.fill_between(btc_data['date'], btc_data['price'], alpha=0.3, color='#f7931a')
ax1.set_ylabel('Price (USD)', fontsize=11)
ax1.set_title('Bitcoin Price Dynamics (Simulated Data)', fontsize=13, pad=15)
ax1.grid(alpha=0.3)
ax1.legend(fontsize=10)
ax1.set_xlim(btc_data['date'].min(), btc_data['date'].max())

# Mark significant drawdowns
peak = btc_data['price'].expanding().max()
drawdown = (btc_data['price'] - peak) / peak
max_dd_idx = drawdown.idxmin()
max_dd = drawdown.min()
ax1.annotate(f'Max Drawdown\n{max_dd:.1%}', 
            xy=(btc_data.loc[max_dd_idx, 'date'], btc_data.loc[max_dd_idx, 'price']),
            xytext=(btc_data.loc[max_dd_idx, 'date'] + pd.Timedelta(days=100), 
                   btc_data.loc[max_dd_idx, 'price'] * 1.3),
            arrowprops=dict(arrowstyle='->', color='red', lw=1.5),
            fontsize=9, color='red', fontweight='bold')

# Plot 2: Rolling volatility
ax2.plot(btc_data['date'], btc_data['rolling_vol'] * 100, linewidth=1.5, 
        color='darkred', label='30-day Rolling Volatility')
ax2.fill_between(btc_data['date'], btc_data['rolling_vol'] * 100, alpha=0.3, color='darkred')
ax2.axhline(annual_vol * 100, color='black', linestyle='--', linewidth=1, 
           alpha=0.5, label=f'Mean: {annual_vol:.1%}')
ax2.set_xlabel('Date', fontsize=11)
ax2.set_ylabel('Annualized Volatility (%)', fontsize=11)
ax2.set_title('Volatility Clustering (GARCH Effects)', fontsize=13, pad=15)
ax2.grid(alpha=0.3)
ax2.legend(fontsize=10)
ax2.set_xlim(btc_data['date'].min(), btc_data['date'].max())

plt.tight_layout()
plt.show()
Figure 1

2.3.0.1 Step 2: Estimating GARCH Models

Now let’s explicitly apply the GARCH framework from Chapter 03. We’ll estimate multiple specifications and compare them, just as we did for equity returns.

Show Python code
from arch import arch_model

# Prepare returns (percentage, mean-zero)
returns_pct = btc_data['return'].dropna() * 100

# Model 1: GARCH(1,1) with Normal innovations
model_garch_norm = arch_model(returns_pct, vol='GARCH', p=1, q=1, dist='normal')
res_garch_norm = model_garch_norm.fit(disp='off')

# Model 2: GARCH(1,1) with Student's t innovations (fat tails)
model_garch_t = arch_model(returns_pct, vol='GARCH', p=1, q=1, dist='t')
res_garch_t = model_garch_t.fit(disp='off')

# Model 3: GJR-GARCH (asymmetric, captures leverage effect)
model_gjr = arch_model(returns_pct, vol='GARCH', p=1, o=1, q=1, dist='t')
res_gjr = model_gjr.fit(disp='off')

print("\n=== GARCH Model Comparison ===\n")
print("Model 1: GARCH(1,1) with Normal innovations")
print(res_garch_norm.summary().tables[1])
print(f"\nLog-Likelihood: {res_garch_norm.loglikelihood:.2f}")
print(f"AIC: {res_garch_norm.aic:.2f}")

print("\n" + "="*60)
print("\nModel 2: GARCH(1,1) with Student's t innovations")
print(res_garch_t.summary().tables[1])
print(f"\nLog-Likelihood: {res_garch_t.loglikelihood:.2f}")
print(f"AIC: {res_garch_t.aic:.2f}")
print(f"Degrees of freedom (df): {res_garch_t.params['nu']:.2f} (lower = fatter tails)")

print("\n" + "="*60)
print("\nModel 3: GJR-GARCH(1,1,1) with Student's t (asymmetric)")
print(res_gjr.summary().tables[1])
print(f"\nLog-Likelihood: {res_gjr.loglikelihood:.2f}")
print(f"AIC: {res_gjr.aic:.2f}")

# Model selection
best_model = min([
    ('GARCH-Normal', res_garch_norm.aic),
    ('GARCH-t', res_garch_t.aic),
    ('GJR-GARCH-t', res_gjr.aic)
], key=lambda x: x[1])

print(f"\n{'='*60}")
print(f"Best model by AIC: {best_model[0]} (AIC={best_model[1]:.2f})")
TipConnection to Volatility Modeling (Week 3, §3.2-3.4)

This is exactly what we did in Chapter 03! Let’s connect the concepts:

GARCH(1,1) specification: σ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁ - ω (omega): Unconditional variance baseline - α (alpha): News impact: how yesterday’s shock affects today’s volatility - β (beta): Persistence: how yesterday’s volatility affects today’s

Persistence: α + β close to 1 means volatility shocks persist (volatility clustering). Bitcoin typically shows α + β ≈ 0.95-0.98, meaning volatility shocks last weeks.

Fat tails: Student’s t distribution (with df < 10) fits better than normal. Lower df = fatter tails. Bitcoin often has df ≈ 4-6, much lower than equities (df ≈ 8-12).

Leverage effect: GJR-GARCH captures asymmetry: negative shocks increase volatility more than positive shocks. In Chapter 03, we saw this for equities. Does Bitcoin exhibit this? Check the γ (gamma) parameter. If γ > 0, negative shocks increase volatility more (leverage effect). If γ ≈ 0, symmetric.

Model selection: AIC (Akaike Information Criterion) trades off fit vs. complexity. Lower AIC = better. Typically, GARCH-t beats GARCH-normal (fat tails matter), and GJR-GARCH wins if leverage effects exist.

2.3.0.2 Step 3: Volatility Forecasting and Out-of-Sample Validation

GARCH models aren’t just descriptive: they forecast future volatility. This matters for risk management and trading. Let’s evaluate forecast accuracy.

Show Python code
# Rolling window forecast: train on first 80%, test on last 20%
n_train = int(len(returns_pct) * 0.8)
returns_train = returns_pct.iloc[:n_train]
returns_test = returns_pct.iloc[n_train:]

# Fit GARCH-t on training data
model_train = arch_model(returns_train, vol='GARCH', p=1, q=1, dist='t')
res_train = model_train.fit(disp='off')

# Forecast volatility for test period (one-step-ahead)
forecasts = res_train.forecast(horizon=1, start=n_train)
forecast_vol = np.sqrt(forecasts.variance.values[-len(returns_test):, 0])

# Realized volatility (actual absolute returns as proxy)
realized_vol = returns_test.abs().values

# Compare forecast vs. realized
print(f"\n=== Out-of-Sample Forecast Evaluation ===")
print(f"Training period: {n_train} days")
print(f"Test period: {len(returns_test)} days")
print(f"\nForecast vs. Realized Volatility:")
print(f"  Mean forecast vol: {forecast_vol.mean():.2f}%")
print(f"  Mean realized vol: {realized_vol.mean():.2f}%")
print(f"  Correlation: {np.corrcoef(forecast_vol, realized_vol)[0,1]:.3f}")

# Mean Squared Forecast Error
msfe = ((forecast_vol - realized_vol)**2).mean()
print(f"  MSFE: {msfe:.3f}")

# Mincer-Zarnowitz regression: realized ~ α + β·forecast
from scipy.stats import linregress
slope, intercept, r_val, p_val, std_err = linregress(forecast_vol, realized_vol)
print(f"\nMincer-Zarnowitz regression (realized ~ forecast):")
print(f"  Slope: {slope:.3f} (perfect forecast = 1.0)")
print(f"  R²: {r_val**2:.3f}")
print(f"  Unbiased? {'Yes' if abs(slope - 1) < 0.2 else 'No (biased)'}")
TipConnection to Statistical Foundations (Week 1, §0.4)

This is out-of-sample validation: the gold standard for model evaluation. We fit on training data, forecast on test data, and compare forecasts to realizations. This is honest performance assessment.

Mincer-Zarnowitz regression tests forecast unbiasedness: If realized = α + β·forecast and β = 1, forecasts are unbiased. If β < 1, forecasts overpredict volatility. If β > 1, forecasts underpredict.

Why correlation isn’t enough: Forecast and realized vol might correlate highly (ρ = 0.7) but forecasts could be systematically wrong (always 2x too high). The M-Z regression checks for systematic bias.

Connection to cross-validation: This is time-series cross-validation. We can’t randomly shuffle (returns are autocorrelated), so we use expanding or rolling windows. Here, we did one split. In practice, roll the window forward and average performance across many test periods.

2.3.0.3 Step 4: Structural Breaks vs. GARCH Persistence

Our GARCH models show high persistence (α + β ≈ 0.95-0.98), suggesting volatility shocks last for weeks. But is this real persistence or an artifact of structural breaks and regime shifts?

TipConnection to Volatility Modeling (Week 3, §3.6)

Recall from Chapter 03: “A linear model (including GARCH) estimated over a sample containing a structural break will be misspecified. The estimated parameters will be a weighted average of the true parameters in each regime: accurate for neither.”

The key question: Is Bitcoin volatility characterized by: - High persistence within a single regime (GARCH with α+β ≈ 0.98)? - Regime switching between calm and turbulent periods (lower within-regime persistence)?

Distinguishing these matters because: - GARCH persistence implies volatility shocks decay slowly but eventually - Regime switching implies abrupt transitions between low and high volatility states - Different models → different forecasts → different risk management strategies

Let’s test this using techniques from Chapter 03.

Show Python code
# Test 1: Visual inspection for potential breaks
fig, ax = plt.subplots(figsize=(12, 6))

# Plot rolling volatility with regime identification
rolling_vol = btc_data['rolling_vol'] * 100
mean_vol = rolling_vol.mean()
high_regime_threshold = mean_vol + rolling_vol.std()
low_regime_threshold = mean_vol - rolling_vol.std()

# Plot
ax.plot(btc_data['date'], rolling_vol, linewidth=1.5, color='darkblue', 
        label='30-day Rolling Volatility', alpha=0.7)
ax.axhline(mean_vol, color='black', linestyle='--', linewidth=2, 
           label=f'Mean: {mean_vol:.1f}%')
ax.axhline(high_regime_threshold, color='red', linestyle=':', linewidth=1.5, 
           label=f'High Regime: >{high_regime_threshold:.1f}%', alpha=0.7)
ax.axhline(low_regime_threshold, color='green', linestyle=':', linewidth=1.5, 
           label=f'Low Regime: <{low_regime_threshold:.1f}%', alpha=0.7)

# Highlight high volatility periods
high_vol_mask = rolling_vol > high_regime_threshold
ax.fill_between(btc_data['date'], 0, 150, where=high_vol_mask.values, 
                 alpha=0.2, color='red', label='Turbulent Regime')

ax.set_xlabel('Date', fontsize=12)
ax.set_ylabel('Annualized Volatility (%)', fontsize=12)
ax.set_title('Bitcoin Volatility: Evidence of Regime Switching?', 
             fontsize=14, fontweight='bold')
ax.legend(fontsize=10, loc='upper right')
ax.grid(alpha=0.3)
ax.set_ylim([0, 150])

plt.tight_layout()
plt.show()

# Calculate regime statistics
pct_high_regime = (rolling_vol > high_regime_threshold).mean()
pct_low_regime = (rolling_vol < low_regime_threshold).mean()
pct_normal_regime = 1 - pct_high_regime - pct_low_regime

print(f"\n=== Regime Identification (Visual) ===")
print(f"High volatility regime (turbulent): {pct_high_regime:.1%} of days")
print(f"Normal volatility regime:           {pct_normal_regime:.1%} of days")
print(f"Low volatility regime (calm):       {pct_low_regime:.1%} of days")
print(f"\nMean volatility in high regime: {rolling_vol[rolling_vol > high_regime_threshold].mean():.1f}%")
print(f"Mean volatility in normal regime: {rolling_vol[(rolling_vol >= low_regime_threshold) & (rolling_vol <= high_regime_threshold)].mean():.1f}%")
print(f"Mean volatility in low regime: {rolling_vol[rolling_vol < low_regime_threshold].mean():.1f}%")
Show Python code
# Test 2: Compare GARCH persistence in sub-periods
# Split sample: first half vs. second half
mid_point = len(returns_pct) // 2
returns_first = returns_pct.iloc[:mid_point]
returns_second = returns_pct.iloc[mid_point:]

# Estimate GARCH on each sub-period
model_first = arch_model(returns_first, vol='GARCH', p=1, q=1, dist='t')
res_first = model_first.fit(disp='off')

model_second = arch_model(returns_second, vol='GARCH', p=1, q=1, dist='t')
res_second = model_second.fit(disp='off')

# Extract persistence parameters
alpha_first = res_first.params['alpha[1]']
beta_first = res_first.params['beta[1]']
persistence_first = alpha_first + beta_first

alpha_second = res_second.params['alpha[1]']
beta_second = res_second.params['beta[1]']
persistence_second = alpha_second + beta_second

print(f"\n=== Sub-Period GARCH Comparison ===")
print(f"\nFirst half ({returns_first.index[0]} to {returns_first.index[-1]}):")
print(f"  α (alpha): {alpha_first:.4f}")
print(f"  β (beta):  {beta_first:.4f}")
print(f"  α + β:     {persistence_first:.4f}")

print(f"\nSecond half ({returns_second.index[0]} to {returns_second.index[-1]}):")
print(f"  α (alpha): {alpha_second:.4f}")
print(f"  β (beta):  {beta_second:.4f}")
print(f"  α + β:     {persistence_second:.4f}")

print(f"\nPersistence difference: {abs(persistence_first - persistence_second):.4f}")
if abs(persistence_first - persistence_second) > 0.05:
    print("Large difference suggests structural break or regime change")
else:
    print("Similar persistence across periods suggests stable GARCH process")
TipConnection to Statistical Foundations (Week 1, §0.4)

This is sample split validation: Estimate model on first half, compare to second half. If parameters differ substantially, the model is unstable: suggesting structural breaks.

Chow test logic (Ch 03, §3.6): Split sample at suspected break, test whether parameters differ significantly between sub-samples. Here, we’re doing this informally by comparing persistence (α+β) across periods.

If persistence changes (e.g., 0.95 → 0.85), it suggests: - Model is not stable over full sample - Regime has shifted between periods - High full-sample persistence might be averaging across regimes

Show Python code
# Test 3: Estimate Markov-switching model (2-state)
# Note: This uses simplified regime identification via threshold rather than full Markov switching
# (Full Markov switching requires statsmodels.tsa.regime_switching which may not be available)

# Simple 2-regime model: Classify days as high or low volatility
threshold = rolling_vol.median()
regime = (rolling_vol > threshold).astype(int)  # 0 = calm, 1 = turbulent

# Calculate realized volatility by regime
returns_clean = btc_data['return'].dropna()
regime_clean = regime.loc[returns_clean.index]

# Regime 0 (calm): Below median volatility
returns_calm = returns_clean[regime_clean == 0]
vol_calm = returns_calm.std() * np.sqrt(365) * 100

# Regime 1 (turbulent): Above median volatility
returns_turbulent = returns_clean[regime_clean == 1]
vol_turbulent = returns_turbulent.std() * np.sqrt(365) * 100

print(f"\n=== Two-Regime Volatility Model ===")
print(f"\nRegime 0 (Calm :  below median volatility):")
print(f"  Observations: {len(returns_calm)}")
print(f"  Annualized volatility: {vol_calm:.1f}%")
print(f"  Mean abs return: {returns_calm.abs().mean():.2f}%")

print(f"\nRegime 1 (Turbulent :  above median volatility):")
print(f"  Observations: {len(returns_turbulent)}")
print(f"  Annualized volatility: {vol_turbulent:.1f}%")
print(f"  Mean abs return: {returns_turbulent.abs().mean():.2f}%")

print(f"\nVolatility ratio (turbulent / calm): {vol_turbulent / vol_calm:.2f}x")

# Transition probabilities (simplified)
transitions = (regime_clean.diff() != 0).sum()
prob_stay_calm = ((regime_clean == 0) & (regime_clean.shift(1) == 0)).sum() / (regime_clean == 0).sum()
prob_stay_turbulent = ((regime_clean == 1) & (regime_clean.shift(1) == 1)).sum() / (regime_clean == 1).sum()

print(f"\nTransition probabilities (approximate):")
print(f"  P(stay in calm | calm): {prob_stay_calm:.2%}")
print(f"  P(stay in turbulent | turbulent): {prob_stay_turbulent:.2%}")
print(f"  Number of regime switches: {transitions}")
TipConnection to Volatility Modeling (Week 3, §3.6)

This is a simplified two-regime model. Full Markov switching (Hamilton 1989) would estimate transition probabilities and regime-specific parameters jointly via MLE.

Interpretation: - Volatility ratio: If turbulent regime has 2-3x higher volatility than calm, regimes are economically distinct - Persistence: High P(stay | regime) means regimes persist (not just noise) - Transitions: Frequent switches suggest regimes alternate; rare switches suggest stable periods with abrupt breaks

Key insight: If volatility differs dramatically across regimes (e.g., 40% vs 100%), then: - Full-sample GARCH persistence (α+β ≈ 0.98) is misleading - True persistence within each regime may be lower (α+β ≈ 0.85-0.90) - High full-sample persistence is an artifact of averaging across regimes

This is exactly what Chapter 03 warned: “Regime changes misinterpreted as persistence.”

Show Python code
# Test 4: Model comparison :  which fits better?
# Compare AIC/BIC: Full-sample GARCH vs sub-period models

# Full-sample GARCH (already fitted above)
aic_full = res_garch_t.aic
bic_full = res_garch_t.bic
ll_full = res_garch_t.loglikelihood

# Sub-period models (sum log-likelihoods for comparison)
ll_subperiods = res_first.loglikelihood + res_second.loglikelihood
n_params_subperiods = len(res_first.params) + len(res_second.params)
n_obs = len(returns_pct)

# Calculate AIC/BIC for sub-period approach
aic_subperiods = -2 * ll_subperiods + 2 * n_params_subperiods
bic_subperiods = -2 * ll_subperiods + np.log(n_obs) * n_params_subperiods

print(f"\n=== Model Comparison ===")
print(f"\nFull-Sample GARCH(1,1):")
print(f"  Log-Likelihood: {ll_full:.2f}")
print(f"  AIC: {aic_full:.2f}")
print(f"  BIC: {bic_full:.2f}")
print(f"  Persistence (α+β): {res_garch_t.params['alpha[1]'] + res_garch_t.params['beta[1]']:.4f}")

print(f"\nSub-Period GARCH Models (2 periods):")
print(f"  Log-Likelihood (sum): {ll_subperiods:.2f}")
print(f"  AIC: {aic_subperiods:.2f}")
print(f"  BIC: {bic_subperiods:.2f}")
print(f"  Avg persistence: {(persistence_first + persistence_second)/2:.4f}")

print("\nModel selection:")
if aic_subperiods < aic_full:
    print(f"Sub-period models preferred by AIC (ΔAIC = {aic_full - aic_subperiods:.1f})")
    print(f"  Interpretation: Evidence of structural break or regime change")
else:
    print(f"Full-sample GARCH preferred by AIC (ΔAIC = {aic_subperiods - aic_full:.1f})")
    print(f"  Interpretation: Single GARCH process fits well across periods")

if bic_subperiods < bic_full:
    print(f"Sub-period models preferred by BIC (ΔBIC = {bic_full - bic_subperiods:.1f})")
else:
    print(f"Full-sample GARCH preferred by BIC (ΔBIC = {bic_subperiods - bic_full:.1f})")
NoteSummary: GARCH Persistence vs. Regime Switching

What we learned:

  1. Visual evidence: Bitcoin volatility exhibits clear periods of calm and turbulence, suggesting regime structure

  2. Sub-period stability: Comparing GARCH persistence across sub-periods reveals whether parameters are stable or shift over time

  3. Two-regime structure: Calm regime (low vol) vs. turbulent regime (high vol) have distinct characteristics: volatility can differ by 2-3x

  4. Model selection: If sub-period models outperform full-sample GARCH (lower AIC), structural breaks or regime switching matter

Interpretation:

  • If sub-period models win: High full-sample persistence (α+β ≈ 0.98) is artifact of averaging across regimes. Within-regime persistence is lower (α+β ≈ 0.85-0.92).

  • If full-sample GARCH wins: Persistence is real: single GARCH process adequately describes Bitcoin volatility. Regime structure is not needed.

Practical implications:

  • Risk management: Regime-switching models better capture crisis dynamics: volatility doesn’t just increase gradually (GARCH), it jumps between states
  • Forecasting: Regime models can forecast regime transitions (e.g., probability of entering turbulent period), not just volatility level
  • Portfolio optimization: Time-varying volatility regimes matter for dynamic asset allocation

Connection to earlier chapters: This demonstrates the Chapter 03 framework: we’ve moved from theory (structural breaks, regime switching) to empirical application (Bitcoin data). Students now see how to test whether observed persistence is real or an artifact.

Warning

Why Volatility Matters for Currency Use

Bitcoin’s 60-80% annualized volatility makes it fundamentally unsuitable as currency:

  • Pricing problem: Merchants can’t price goods in Bitcoin: a $50 item becomes $35-$70 within weeks.
  • Wage problem: Workers won’t accept Bitcoin wages when value fluctuates 20% monthly: would you?
  • Savings problem: Storing value requires stability; Bitcoin can lose 50% in months (happened multiple times).
  • Contract problem: Multi-year contracts (mortgages, loans) denominated in Bitcoin expose parties to unacceptable risk.

This isn’t a temporary adoption phase problem: it reflects Bitcoin’s design. Fixed supply (21M cap) plus variable demand equals volatile prices. There’s no mechanism to stabilize value, unlike central banks managing money supply to target inflation.

The lesson: technology enabling decentralized transfer doesn’t automatically create currency utility. Stability matters as much as sovereignty.

3 Part II: Financial Inclusion Reality Check

3.1 The Evidence Gap

Cryptocurrency advocates frequently claim financial inclusion benefits: “banking the unbanked,” “reducing remittance costs,” “enabling access without government permission.” These claims echo mobile money promises from Week 6. But unlike M-Pesa, where Suri and Jack (2016) provide rigorous evidence of welfare gains, cryptocurrency inclusion claims lack empirical support.

3.1.1 Empirical Evidence on Retail Adoption Patterns

Comprehensive cross-country evidence from Auer et al. (2025) decisively refutes financial inclusion narratives. Using novel data on cryptocurrency exchange app downloads across 95 countries at daily frequency (2015-2022), they document that retail adoption follows speculative price momentum rather than financial access needs. The database tracks actual cryptocurrency usage behavior rather than survey self-reports, providing unusually reliable evidence on adoption drivers.

The timing patterns prove stark: rising Bitcoin prices trigger retail entry, particularly among more risk-seeking population segments. When prices crash, adoption contracts sharply. This behavior contradicts genuine transaction or savings demand: if cryptocurrency served financial inclusion purposes, adoption would respond to payment system frictions, banking access barriers, or remittance costs, not speculative price movements. The fact that Bitcoin’s rise from $1 in February 2011 to $69,000 peak in November 2021 drove cryptocurrency ownership from 5 million people in 2016 to 220 million by June 2021 reflects momentum-chasing, not poverty alleviation.

More troubling, the wealth transfer patterns suggest systematic exploitation of retail investors. When Bitcoin prices rise and retail users enter markets, large holders systematically sell, realizing gains at retail expense. This isn’t occasional bad timing: it’s a predictable pattern where sophisticated early adopters profit from late-arriving retail speculation. The correlation persists even controlling for overall financial market conditions, economic policy uncertainty, and Bitcoin press coverage, isolating price momentum as the dominant adoption driver.

The evidence also refutes “safe haven” claims popular among cryptocurrency advocates. Controlling for economic policy uncertainty and market volatility, Bitcoin price remains the dominant adoption driver: hedging motives play minimal role. Retail users aren’t fleeing unstable fiat currencies or seeking inflation protection; they’re chasing speculative returns. An exogenous Bitcoin price decline during Kazakhstan’s social unrest in early 2022 provides natural experiment confirmation: reduced prices instantly reduced adoption, inconsistent with safe haven behavior but perfectly consistent with speculation.

For financial inclusion advocates, these findings prove sobering. Cryptocurrency adoption concentrates among wealthy, risk-seeking populations in developed markets: precisely the groups needing inclusion least. The financially excluded face insurmountable barriers: high volatility risk (losing 50% of savings to price swings is catastrophic for subsistence populations), technical complexity (securing private keys exceeds many users’ technical literacy), transaction costs exceeding mobile money alternatives, and regulatory restrictions in countries concerned about capital flight. Mobile money succeeded (Week 6) because it solved acute problems for target populations using appropriate technology; cryptocurrency fails because it addresses problems affluent speculators don’t have while ignoring problems the excluded face daily.

Why? Several barriers make cryptocurrency unsuitable for financially excluded populations:

  1. Technical complexity: Securing private keys, managing wallets, understanding blockchain confirmations exceeds technical literacy of many target users. Compare to M-Pesa’s SMS interface or mobile banking apps’ familiar UIs.

  2. Volatility risk: Poor households facing income uncertainty can’t absorb Bitcoin’s 20-30% monthly swings. Losing 50% of savings to price volatility is catastrophic for subsistence populations.

  3. Transaction costs: Bitcoin fees have varied dramatically based on network congestion, ranging from under $1 during quiet periods to over $50 during peak demand (December 2017, April-May 2021), far exceeding mobile money fees (typically <$0.50). Ethereum gas fees similarly spiked to $20-$100 during DeFi activity surges in 2020-2021. These costs make microtransactions economically infeasible.

  4. Smartphone requirement: Most cryptocurrency wallets require smartphones with reliable internet. M-Pesa works on basic USSD phones without internet. This limits crypto accessibility in populations with lowest financial access.

  5. Regulatory barriers: Many developing countries ban or restrict cryptocurrency due to capital control concerns. Nigeria officially banned banks from serving crypto exchanges, forcing users to risky peer-to-peer channels.

3.1.2 Comparing Crypto to Mobile Money

Week 6 examined M-Pesa’s success factors: solving acute problems (expensive remittances, cash insecurity), appropriate technology (basic phones, agent networks), favorable regulation (light touch initially), and population density enabling agent economics. Cryptocurrency fails most of these tests.

Dimension M-Pesa (Kenya) Cryptocurrency
Problem solved High remittance costs, cash insecurity Distrust of banks, sovereignty
Target users Unbanked rural populations Tech-savvy, wealthy urbanites
Technology barrier Low (SMS, basic phones) High (wallets, keys, smartphones)
Price stability Perfect (pegged to shilling) Extreme volatility
Transaction cost ~$0.10-$0.50 $1-$50+ (variable, congestion-dependent)
Settlement time Instant 30-60 minutes (Bitcoin)
Regulatory status Initially permissive Often restricted/banned
Agent network Dense physical presence No physical infrastructure
Empirical evidence Strong (Suri and Jack (2016)) Speculation, not inclusion (Auer et al. (2025))

The comparison reveals cryptocurrency solves different problems for different populations. M-Pesa addressed acute exclusion among poor populations; cryptocurrency addresses ideological concerns (bank distrust, state surveillance) among populations who already have bank access.

3.2 Stablecoins: A Partial Solution?

Recognizing volatility undermines currency use, stablecoins attempt to combine blockchain infrastructure with fiat currency stability. Tether (USDT), USD Coin (USDC), and DAI maintain $1.00 pegs through different mechanisms: fiat reserves, algorithmic supply adjustment, or over-collateralization with cryptocurrency.

Stablecoins have found genuine use cases: cryptocurrency traders use them to move value between exchanges without converting to fiat, reducing fees and delays. Some remittance services use stablecoins as rails for cross-border transfers. Trading volumes for USDT often exceed Bitcoin.

But stablecoins inherit many cryptocurrency limitations while adding centralization risks. Tether’s reserves lack transparency: audits are irregular and incomplete. Circle (USDC issuer) froze addresses at government request, demonstrating centralized control. Algorithmic stablecoins have proven particularly fragile: TerraUSD (UST) collapsed catastrophically in May 2022, wiping out approximately $40 billion in market value and triggering contagion across cryptocurrency markets. These failures suggest stablecoins trade off decentralization for stability, undermining the sovereignty value proposition.

For financial inclusion specifically, stablecoins offer marginal improvements over mobile money. Transaction costs remain higher. Technical barriers persist. Regulatory uncertainty limits merchant acceptance. The populations most needing inclusion lack access to stablecoin on-ramps (buying with cash or bank transfers). Evidence of stablecoin-driven inclusion remains sparse.

4 Part III: Regulatory Approaches and Challenges

4.1 The Classification Problem

Regulators globally struggle to classify cryptocurrencies, with profound implications for supervision and investor protection. Is Bitcoin a currency (subject to payment system regulation, money transmission laws)? A commodity (CFTC jurisdiction in US)? A security (SEC oversight for investment contracts)? Or property (IRS treatment for tax purposes)?

Different agencies assert overlapping authority, creating regulatory arbitrage opportunities and compliance confusion. The SEC argues many tokens are securities under Howey test (investment contracts with profit expectations). The CFTC claims jurisdiction over Bitcoin and Ethereum as commodities. The IRS treats cryptocurrency as property, taxing each transaction as capital gain/loss: creating nightmarish reporting requirements for users making frequent small transactions.

B"ohme et al. (2015) discuss these classification challenges, noting cryptocurrency’s sui generis nature resists existing categories. It shares properties of currencies (exchange medium), commodities (scarce digital goods), and securities (investment vehicles), but fits none perfectly. This definitional ambiguity reflects genuine novelty: regulators designed frameworks for physical currencies, tangible commodities, and centrally issued securities. Decentralized digital tokens don’t map cleanly.

4.1.1 Global Regulatory Divergence

Regulatory approaches vary dramatically across jurisdictions:

El Salvador adopted Bitcoin as legal tender in 2021, requiring merchants to accept it. Early evidence suggests minimal adoption: most citizens immediately convert Bitcoin to dollars, using government-provided wallets with automatic conversion. The policy appears more ideological statement than practical financial inclusion, with mixed economic results.

China banned cryptocurrency trading and mining entirely, viewing crypto as capital control circumvention threat and energy waste. Major exchanges and mining operations relocated, demonstrating Bitcoin’s censorship resistance claims have limits: state power can force infrastructure offshore even if unable to stop individual transactions.

EU is implementing Markets in Crypto Assets (MiCA) regulation, creating comprehensive framework for crypto asset issuers, trading platforms, and stablecoin providers. MiCA requires authorization, capital buffers, consumer protection, and AML compliance: essentially bringing crypto under banking-like regulation.

US remains fragmented, with SEC/CFTC jurisdictional disputes ongoing, Congress debating frameworks, and state-level regulations creating patchwork. The lack of federal clarity drives innovation offshore to friendlier jurisdictions (Bahamas, Singapore, UAE).

UK and Australia are pursuing middle-ground approaches: recognizing cryptocurrency as regulated activity requiring authorization, imposing AML/KYC requirements on exchanges, but not banning trading or mining.

This divergence creates regulatory arbitrage: crypto businesses incorporate in permissive jurisdictions while serving global customers, complicating enforcement. It also fragments liquidity and inhibits mainstream adoption: institutional investors hesitate without clear regulatory status.

4.1.2 Cybercrime and Enforcement Realities

Beyond classification ambiguity and jurisdictional fragmentation, cryptocurrency’s role in cybercrime fundamentally complicates regulatory design. Cong et al. (2022) document that cryptocurrency became the dominant payment method for fraud by 2022, accounting for 33.5% of FTC reports ($728.8 million): surpassing bank transfers, wire transfers, and credit cards. Organized ransomware gangs have evolved into sophisticated corporate-like operations with physical offices, franchising programs, and affiliate structures, with global ransomware damages projected to exceed $30 billion by 2023.

However, policy implications resist simple solutions. Blanket cryptocurrency restrictions prove ineffective: criminals find workarounds through decentralized exchanges, privacy coins, or offshore services: while potentially hindering legitimate innovation. China’s comprehensive ban didn’t eliminate Chinese cryptocurrency activity; it drove operations offshore and underground. Nigeria’s banking restrictions on crypto exchanges forced users toward riskier peer-to-peer channels, reducing regulatory visibility without reducing usage.

Instead, blockchain’s transparency creates enforcement opportunities absent in traditional crime. Unlike cash transactions or wire transfers that leave minimal traces, cryptocurrency transactions are permanently recorded on public blockchains. Every transaction: sender, receiver, amount, timestamp: is visible to anyone with blockchain forensics expertise. Several high-profile ransomware gang takedowns resulted from investigators tracking cryptocurrency flows through exchanges to eventual cash-out points where criminals converted digital assets to fiat currency.

Effective regulation thus requires investment in investigative capabilities and international cooperation rather than outright prohibitions. Exchange-level compliance (KYC/AML requirements, transaction monitoring, blocking sanctioned addresses) targets criminal cash-out points without restricting legitimate use. Mandating exchanges to verify user identities, report suspicious transactions, and freeze accounts connected to criminal activity leverages blockchain transparency for enforcement.

The tension: cryptocurrency’s pseudonymity enables initial criminal activity: ransomware attackers can receive payments without immediately revealing identities: but blockchain permanence eventually creates evidence trails. Once criminals attempt converting cryptocurrency to usable fiat currency through exchanges, banks, or merchants, enforcement opportunities emerge. Regulatory success depends less on banning technology than on deploying resources to blockchain forensics and coordinating internationally to prevent criminals from exploiting jurisdictional gaps: capabilities many countries currently lack but can develop.

4.2 Central Bank Digital Currencies (CBDCs)

Observing cryptocurrency’s technological capabilities (24/7 settlement, programmability) while recognizing its governance failures (volatility, illicit use), central banks are exploring digital currencies under centralized control. CBDCs represent “blockchain without Bitcoin”: distributed ledger technology with trusted authority rather than proof-of-work consensus.

Over 100 central banks are researching CBDCs; several (Bahamas, China, Nigeria) have launched pilots. China’s digital yuan (e-CNY) is furthest advanced, with hundreds of millions of users and mandatory acceptance by merchants. The motivations include financial inclusion (reaching unbanked populations), payment system efficiency (reducing cash handling costs), and geopolitical competition (countering dollar dominance in international payments).

CBDCs differ fundamentally from cryptocurrency despite superficial technical similarities. They’re centralized (central bank controls ledger), permissioned (only authorized entities can validate), and censorship-prone (transactions can be blocked or reversed). These properties invert cryptocurrency’s value proposition: sovereignty, permissionlessness, immutability: in favor of traditional monetary policy tools and financial stability.

From a financial inclusion perspective, CBDCs might succeed where cryptocurrency fails by offering stability, regulatory clarity, and interoperability with existing financial infrastructure. But they also enable unprecedented surveillance: governments could track every citizen’s transactions in real-time. The privacy-inclusion trade-off that emerged in open banking (Week 6) reappears at national scale with CBDCs.

5 Conclusion: Technology Doesn’t Determine Outcomes

Cryptocurrency demonstrates a powerful lesson for financial innovation: technical capabilities don’t determine practical adoption or social outcomes. Bitcoin’s technology enables peer-to-peer value transfer without intermediaries: this works as designed. But it doesn’t follow that people want such systems, that they serve inclusion goals, or that removing intermediaries improves welfare.

The evidence after fifteen years shows cryptocurrency serving primarily speculative trading rather than commerce, adopted by wealthy tech enthusiasts rather than financially excluded populations, and generating extreme volatility incompatible with currency functions. These aren’t bugs awaiting fixes: they reflect fundamental design trade-offs prioritizing decentralization over efficiency, sovereignty over stability, and ideological purity over practical utility.

Yet within this speculative landscape, systematic patterns emerge. Research documents that cryptocurrency returns exhibit factor structures: market, size, and momentum premia: similar to traditional asset classes, suggesting underlying economic forces operate even in apparently chaotic markets. Retail adoption follows price momentum predictably, with sophisticated holders systematically profiting from late-arriving speculators. Meanwhile, cryptocurrency’s role in cybercrime complicates regulatory approaches, though blockchain transparency ultimately enables forensic tracking that cash transactions cannot provide.

This doesn’t make cryptocurrency worthless or doomed. Speculative assets serve portfolio functions; systematic return patterns enable risk management; censorship-resistant value transfer has legitimate uses; and blockchain technology may yet enable innovations we haven’t imagined. But it does mean we should evaluate cryptocurrency based on what it does rather than what advocates claim it does. The gap between rhetoric (banking the unbanked, liberating finance, disrupting traditional finance) and reality (volatile speculation concentrated among wealthy, predictable wealth transfers from retail to sophisticated traders, cybercrime facilitation alongside forensic opportunities) remains vast.

For students, the analytical framework applies broadly: when evaluating any financial innovation, distinguish between technical capabilities (what’s possible) and practical adoption (what people actually do). Examine evidence on who uses technology, for what purposes, under what conditions. Question narratives unsupported by data. This critical perspective: balancing enthusiasm for innovation with empirical skepticism: defines rigorous financial analysis.

The accompanying lab provides hands-on experience with cryptocurrency data: retrieving prices from exchange APIs, calculating volatility metrics, testing market efficiency, and analyzing trading patterns. Work through it to build practical skills for cryptocurrency market analysis.

6 Further Reading

For deeper engagement with cryptocurrency topics:

  • B"ohme et al. (2015): Comprehensive economic analysis of Bitcoin’s properties, volatility characteristics, market inefficiencies, and regulatory challenges. Essential foundational reading from Journal of Economic Perspectives.
  • Catalini and Gans (2020): Economics of blockchain technology, including verification costs, consensus mechanisms, and platform dynamics.
  • Howell, Niessner, and Yermack (2020): Analysis of Initial Coin Offerings as a financing mechanism, examining cryptocurrency token sales and their economic implications.

For comparative context:

  • Suri and Jack (2016): The M-Pesa inclusion evidence that cryptocurrency claims fail to match. Demonstrates what rigorous impact evaluation looks like.
  • Philippon (2016): Why hasn’t finance gotten cheaper? Useful for understanding what cryptocurrency adoption actually requires to reduce intermediation costs.

For policy and regulation:

The accompanying lab builds on this chapter with practical cryptocurrency market analysis and data exploration.

References

Auer, Raphael, Giulio Cornelli, Sebastian Doerr, Jon Frost, and Leonardo Gambacorta. 2025. “Crypto Trading and Bitcoin Prices: Evidence from a New Database of Retail Adoption.” IMF Economic Review. https://doi.org/10.1057/s41308-025-00275-0.
B"ohme, Rainer, Nicolas Christin, Benjamin Edelman, and Tyler Moore. 2015. “Bitcoin: Economics, Technology, and Governance.” Journal of Economic Perspectives. https://doi.org/10.1257/jep.29.2.213.
Catalini, Christian, and Joshua S. Gans. 2020. “Some Simple Economics of the Blockchain.” Communications of the ACM. https://doi.org/10.1145/3359552.
Cong, Lin William, Campbell R. Harvey, Daniel Rabetti, and Zong-Yu Wu. 2022. “An Anatomy of Crypto-Enabled Cybercrimes.”
Griffin, John M., and Amin Shams. 2020. “Is Bitcoin Really Untethered?” Journal of Finance 75 (4): 1913–64. https://doi.org/10.1111/jofi.12903.
Howell, Sabrina T., Marina Niessner, and David Yermack. 2020. “Initial Coin Offerings: Financing Growth with Cryptocurrency Token Sales.” Review of Financial Studies 33 (9): 3925–74. https://doi.org/10.1093/rfs/hhz131.
Liu, Yukun, Aleh Tsyvinski, and Xi Wu. 2022. “Common Risk Factors in Cryptocurrency.” Journal of Finance 77 (2): 1133–77. https://doi.org/10.1111/jofi.13119.
Makarov, Igor, and Antoinette Schoar. 2020. “Trading and Arbitrage in Cryptocurrency Markets.” Journal of Financial Economics 135 (2): 293–319. https://doi.org/10.1016/j.jfineco.2019.07.001.
Philippon, Thomas. 2016. “The FinTech Opportunity.” Working Paper w22476. National Bureau of Economic Research. https://www.nber.org/system/files/working_papers/w22476/w22476.pdf.
Suri, Tavneet, and William Jack. 2016. “The Long-Run Poverty and Gender Impacts of Mobile Money.” Science. https://doi.org/10.1126/science.aah5309.