抵押品转换链:每一层都有超额抵押,加起来是 9 倍杠杆
同一份 100mm 国债,经过 10 层抵押品转换后支撑了 896mm 融资——重复使用倍数 8.96x,而每一层参与者账本上看到的都是「我有 2% 超额抵押、杠杆 50x」这个与链长完全无关的数字。恒等式检验:底层跌 5% 引发的总融资收缩放大倍数精确等于重复使用倍数(最大误差 2.31e-14)。三条安慰剂锁死机制:折扣率 100% 时融资精确为 0、链长 1 时重复使用精确等于 1−h、零折扣时精确等于 N。最反直觉的是相关性——层间冲击从完全独立到完全相关,「任一层断裂」概率从 90.4% 降到 24.9%(降 72%),但「系统性全断」从 0.44% 升到 24.86%(升 56.1 倍),两个指标方向相反,而风控报告通常只看前一个。折扣率 2%→4% 时 N=1 只萎缩 2.04%、N=10 萎缩 10.26%,长链对折扣率的敏感度接近线性放大 N 倍。政策对比:最低折扣 8% 把断裂概率从 64.10% 压到 2.47% 且保住 650mm 融资,而链长上限 N=3 只把断裂降到 43.82% 却砍掉 68% 融资——每单位风险融资效率差 40 倍。12 宇宙 CV=0.0078
2008 年之后,监管把「超额抵押」写进了几乎所有场外交易的标准合同。逻辑无懈可击:我借你钱,你压给我价值更高的资产,中间那道折扣(haircut)就是我的安全垫。
问题是,同一份资产可以被压很多次。
A 把国债压给 B 换现金,B 把这笔国债再压给 C,C 再压给 D。每一步都有 2% 的折扣,每一步的合同都符合监管要求,每一个参与者的风控系统都会告诉他「本笔交易有超额抵押、风险可控」。
把底层资产精确设为 100mm 国债、折扣率 2%,看看链条走完之后系统里发生了什么。

| 链长 N | 总融资 (mm) | 重复使用倍数 | 末层余额 | 底层跌 5% → 总收缩放大 |
|---|---|---|---|---|
| 1 | 98.00 | 0.980x | 98.00 | 0.980x |
| 3 | 288.16 | 2.882x | 94.12 | 2.882x |
| 5 | 470.79 | 4.708x | 90.39 | 4.708x |
| 8 | 731.26 | 7.313x | 85.08 | 7.313x |
| 10 | 896.34 | 8.963x | 81.71 | 8.963x |
一份 100mm 的国债,支撑了 896mm 的融资。
最后一列是恒等式检验:让底层资产跌 5%,整条链必须收缩的总融资额 ÷ 底层损失额,精确等于重复使用倍数,最大误差 2.31e-14。这不是巧合,是因为链条是线性齐次的——它同时也说明了「重复使用倍数」这个数字的真实含义:底层每损失 1 块钱,系统里要蒸发 8.96 块钱的融资。
一、三条安慰剂:先确认账本是对的#
在讨论任何结论之前,先证明实现没有 bug。三条对照的真值都由构造精确已知:
| 安慰剂 | 设定 | 实测 | 理论真值 | 误差 |
|---|---|---|---|---|
| A:完全不接受抵押 | h = 100%, N=5 | 0.0000000000 | 精确 0 | — |
| B:单层链 | h = 2%, N=1 | 0.9800000000 | 1−h = 0.98 | 0.00e+00 |
| C:零折扣 | h = 0%, N=7 | 7.0000000000 | 精确 = N = 7 | 0.00e+00 |
安慰剂 C 是最有说明性的一条:折扣率为零时,重复使用倍数精确等于链长 N。 也就是说,折扣率的全部作用就是让这个等比数列收敛——它把 N 倍压成 ,但压不到 1 倍以下。
只要 h 足够小、N 足够大,重复使用倍数的上界是 。h=2% 时这个上界是 49 倍。
二、每一层看到的杠杆,与链长完全无关#
这是整个机制里最关键、也最少被讨论的一点。
计算「总融资 ÷ 累计折扣缓冲」这个比值:
这个数字与 N 无关。 链长 1 是 49x,链长 10 还是 49x。
这不是模拟的缺陷,这就是问题本身:每一层参与者的风险敞口比例是恒定的,无论链条有多长。 站在任何一个中间节点上,你的账本、你的压力测试、你的监管报表,全都看不出你身处一条 10 层链的第 7 层还是一条 2 层链的第 1 层。

左图把这个错觉画了出来。6 层链的情况:
- 单层自查:我的敞口占底层资产的 98%(最大一层),且有 2% 超额抵押 —— 完全合规
- 全链加总:6 层对同一份底层资产的总索偿权 = 559.4%
- 比值:5.71 倍
没有任何一张资产负债表上会出现 559% 这个数字。它不属于任何一个参与者,它只存在于系统层面,而系统没有账本。
import numpy as np
def chain(base, haircuts):
"""抵押品转换链:每层用上层拿到的资产再质押"""
out, cur = [], base
for h in haircuts:
cur = cur * (1.0 - h)
out.append(cur)
return np.array(out)
def unwind_amplification(base, haircuts, shock):
"""底层跌 shock 后,全链必须收缩的总融资 / 底层损失额"""
f0 = chain(base, haircuts).sum()
f1 = chain(base * (1.0 - shock), haircuts).sum()
return (f0 - f1) / (base * shock)
BASE, H0 = 100.0, 0.02
for N in [1, 3, 5, 10]:
layers = chain(BASE, [H0] * N)
total = layers.sum()
amp = unwind_amplification(BASE, [H0] * N, 0.05)
ratio = total / (BASE - layers[-1]) # 与 N 无关,恒等于 (1-h)/h
print(f"N={N:2d} 总融资={total:7.2f} 重复使用={total/BASE:5.3f}x "
f"收缩放大={amp:5.3f}x 总融资/缓冲={ratio:6.2f}x")python三、质量下沉:链条实际在转换什么#
现实中的转换链不是同一种资产反复质押,而是质量逐级上升:养老金手里的股票 → 券商换成公司债 → 再换成国债 → 最终去中央清算所做保证金。
| 经过层 | 折扣率 | 剩余可融资 | 累计折扣 |
|---|---|---|---|
| 股票 | 15% | 85.00mm | 15.00% |
| 公司债 | 8% | 78.20mm | 21.80% |
| 国债 | 2% | 76.64mm | 23.36% |
加总折扣 25.00%,复合折扣 23.36%,差 1.64pp。
这个差值本身不大,但它的符号很重要:复合永远小于加总。也就是说,如果你用「把各层折扣加起来」的方式估算全链安全垫,你会高估安全性。链条越长、折扣越大,这个幻觉越明显。
更关键的是这条链的方向性:它把最差的抵押品转换成了最好的抵押品,而中间没有任何一层承担了信用升级的成本。 每一层只承担了自己那一格的折扣风险,但整条链输出的是一份「可以进中央清算所」的国债——信用质量凭空升级了三档,而升级的对价只有 23.36% 的累计折扣。
四、压力期:长链的敏感度接近线性放大 N 倍#
平静期的折扣率不是常数,压力期它会同步上升。这时链长的代价才真正显现。

折扣率从 2% 提到 4%(只翻一倍,在真实危机中这是很温和的移动):
| 链长 N | 融资萎缩 |
|---|---|
| 1 | 2.04% |
| 3 | 4.00% |
| 5 | 5.88% |
| 8 | 8.56% |
| 10 | 10.26% |
近似线性放大 N 倍。而更极端的场景下,N=8 的链在折扣率升到 30% 时只剩 30.1% 的原始融资能力。
这里的机制是复利:每一层都乘以 ,h 上升时 N 层的乘积以 N 次方衰减。链条不是把风险分散了,是把折扣率的敏感度乘以了 N。
五、相关性:两个指标方向相反#
这一节是全文最反直觉的部分,也是风控报告最容易读错的地方。
设定 N=8,每层折扣冲击 = 系统性成分 + 特质成分(总方差与 ρ 无关,因此 ρ 扫描是干净的结构对照,不掺方差变化):
| 层间相关 ρ | 任一层断裂 | 系统性全断(≥75% 层) | 断裂时中位断层数 |
|---|---|---|---|
| 0.0 | 90.40% | 0.44% | 2 |
| 0.2 | 80.22% | 3.37% | 2 |
| 0.4 | 70.46% | 7.45% | 2 |
| 0.6 | 60.28% | 11.89% | 3 |
| 0.8 | 48.52% | 16.84% | 4 |
| 1.0 | 24.86% | 24.86% | 8 |
两列的方向完全相反。
相关性从 0 升到 1:「任一层断裂」的概率降了 72%(90.4% → 24.9%),而「系统性全断」的概率升了 56.1 倍(0.44% → 24.86%)。
原因是概率论而非金融:独立冲击下,8 层里至少有一层倒霉几乎必然发生( 很大),但 8 层同时倒霉几乎不可能;完全相关时,8 层要么都没事要么全完蛋。
后果是:一个只监控「我们的对手方有没有违约过」的风控体系,会在相关性上升的过程中看到指标持续改善。 断裂事件变少了,报表变好看了,而系统正在从「经常有小事故」滑向「要么没事要么全灭」。
最后一列印证了这一点:断裂时的中位断层数从 2 层涨到 8 层。同样叫「断裂」,含义已经完全变了。
两条安慰剂锁死了实现:零冲击时 N=10 断裂概率 0.0000000000;无限缓冲时同样 0.0000000000——两者真值都精确为 0。
def simulate_chain_break(n_layers, h_base, shock_sd, corr, rng,
n_sim=30000, buffer_mult=0.5, base=100.0):
"""
每层折扣率 = h_base + 冲击
冲击 = sqrt(corr)*系统性 + sqrt(1-corr)*特质(总方差与 corr 无关)
"""
sys_shock = rng.normal(0, shock_sd, size=(n_sim, 1))
idio = rng.normal(0, shock_sd, size=(n_sim, n_layers))
h = np.clip(h_base + np.sqrt(corr) * sys_shock
+ np.sqrt(1 - corr) * idio, 0.0, 1.0)
cur = np.full(n_sim, base)
broke = np.zeros(n_sim, dtype=bool)
n_broken = np.zeros(n_sim)
for j in range(n_layers):
raised = cur * (1.0 - h[:, j])
shortfall = cur * (1.0 - h_base) - raised # 折扣上升带来的缺口
fail_now = shortfall > cur * h_base * buffer_mult
n_broken += fail_now
broke |= fail_now
cur = np.maximum(raised, 0.0)
return broke, n_broken
for c in [0.0, 0.5, 1.0]:
br, nb = simulate_chain_break(8, 0.02, 0.015, c, np.random.default_rng(20260807 + 900))
print(f"ρ={c:.1f} 任一断裂={br.mean()*100:5.2f}% "
f"系统性全断={np.mean(nb >= 6)*100:5.2f}%")python六、政策旋钮:提高折扣率还是限制链长#
监管有两个可用的工具。它们的效率差异很大:
| 政策 | 融资总量 (mm) | 断裂概率 | 每单位风险的融资 |
|---|---|---|---|
| 无监管 h=2% N=10 | 896.34 | 64.10% | 13.98 |
| 最低折扣 5% N=10 | 762.40 | 20.82% | 36.62 |
| 最低折扣 8% N=10 | 650.45 | 2.47% | 262.99 |
| 链长上限 N=3 h=2% | 288.16 | 43.82% | 6.58 |
| 链长上限 N=5 h=2% | 470.79 | 52.90% | 8.90 |
| 组合 h=5% N=3 | 270.99 | 10.52% | 25.77 |
最低折扣 8% 把断裂概率从 64.10% 压到 2.47%(降 96%),同时保住了 650mm 融资(只损失 27%)。
链长上限 N=3 只把断裂概率降到 43.82%(降 32%),却砍掉了 68% 的融资。
按「每单位风险换来多少融资」这个效率指标,两者差 40 倍(262.99 vs 6.58)。
原因在第四节已经埋好了:链长上限砍的是总量(等比数列的项数),而折扣率砍的是每一层的敏感度(公比)。等比数列对公比的敏感度远高于对项数的敏感度,因为项数是线性的、公比是指数的。
这解释了为什么巴塞尔 III 和 SFTR 走的是「最低折扣率 + 报告披露」路线,而不是「限制再抵押次数」。 不是因为链长不重要,是因为直接砍链长的融资代价太高而风险收益太小。
已知偏差#
链条被建模成一条单线,真实网络是有环的图。 本文假设 A→B→C→D 的线性传递,但真实的抵押品市场里 D 可能又把资产压回给 A(循环再抵押)。有环网络下重复使用倍数可以突破 的上界,断裂传播也会出现本文没有的反馈路径。这个方向的偏差是低估,本文的 8.96x 应视为下界。
断裂条件是一个简化的阈值规则。 「缺口 > 本层缓冲 = 基础折扣的一半」这个设定(buffer_mult=0.5)是构造出来的,不是从真实保证金协议推导的。断裂概率的绝对水平(60% 这个量级)严重依赖这个参数,不应被当作真实市场的估计值。有判别力的是相对关系——相关性扫描里两个指标的反向、政策对比里的效率排序——这些在合理的 buffer_mult 范围内都稳健。
折扣率冲击是正态的,没有厚尾和跳跃。 真实的折扣率在危机中是跳变的(雷曼后某些抵押品的折扣从 5% 直接跳到 100%,即完全拒收),而正态假设下这种事件的概率接近零。这意味着本文低估了极端场景,且低估的方向恰好在最重要的那一端。
结果解读#
第一,「超额抵押」是一个局部概念,不能加总。 每层 2% 的折扣确实保护了每一层的债权人,但 10 层加起来不等于 20% 的系统性安全垫——恒等式已经算过了,总融资/缓冲恒等于 49x,与链长完全无关。这个恒定性本身就是警报:如果一个风险指标不随系统复杂度变化,它测的就不是系统性风险。
第二,真正该盯的数字是重复使用倍数,而它需要跨机构数据才能算出来。 底层跌 1 块钱,系统蒸发 8.96 块钱融资——这个放大倍数决定了去杠杆的速度,而没有任何单一参与者能从自己的账本上看到它。这是 SFTR 这类交易报告制度的真正价值:不是为了监管单笔交易,是为了让这个数字可被计算。
第三,相关性上升期的风控指标会系统性误导。 「任一层断裂」降 72%、「系统性全断」升 56 倍,两个指标同时发生,而绝大多数风控报告只有前一个。如果你的违约事件计数在持续改善,先检查一下是不是相关性在上升——事故变少和事故变致命,可能是同一件事的两面。
第四,压力期的敏感度按链长线性放大,这是最容易漏掉的一项。 折扣率只从 2% 动到 4%,N=1 的机构损失 2%,N=10 的链损失 10.26%。危机中折扣率的移动幅度远大于此,而处在长链末端的参与者会发现自己的融资能力在一天之内消失了一半——不是因为他做错了什么,是因为他上游有九个人。
第五,如果只能选一个政策工具,选提高最低折扣率。 效率差 40 倍这个数字很难被推翻,因为它源于等比数列对公比和项数的敏感度差异,而不是某个参数校准。链长上限的正确用法是作为补充——组合方案(h=5% + N=3)把断裂概率压到 10.52%,代价是融资只剩 271mm,这是一个「安全但昂贵」的角落,适合系统重要性机构而非全市场。