cover_image

【论文速递】DilithiumRK:基于Dilithium签名的后量子比特币区块链

Kurt Pan XPTY
2025年10月26日 17:57
  • https://cic.iacr.org/p/2/3/3

Michel Seck and Adeline Roux-Langlois, Towards Post-Quantum Bitcoin Blockchain using Dilithium Signature. IACR Communications in Cryptology, vol. 2, no. 3, Oct 06, 2025, doi: 10.62056/ak5wom2hd.

核心贡献

Michel Seck和Adeline Roux-Langlois提出首个针对比特币的后量子确定性钱包方案DilithiumRK,通过可重随机化密钥的Dilithium签名实现隐私保护和量子安全。该方案在量子随机预言机模型(QROM)下满足不可伪造性(Uf-CMA-HRK)和不可链接性(Unl-PK),为价值2.4万亿美元的比特币市场在2028-2030量子威胁来临前提供了理论严格、实践可行的迁移路径。

关键权衡: 公钥扩大41倍(1312字节 vs 32字节),签名扩大34倍(2420字节 vs 71字节),交易吞吐量降至18%(维持1MB区块时),但换取量子时代的长期安全性。


技术创新

比特币现用ECDSA的BIP32层级钱包通过加法派生子密钥: 。Dilithium基于MLWE问题的格结构不支持简单加法,需要重新设计密钥派生机制,同时保持热/冷钱包分离和隐私保护。

DilithiumRK方案

通过扩展Dilithium签名方案,添加两个确定性重随机化函数:

  • RandSK(sk, ρ): 从参数ρ确定性更新秘密密钥
  • RandPK(pk, ρ): 从相同ρ确定性更新公钥,保持密钥对一致性

利用MLWE的加法结构 ,通过添加小向量实现更新:

关键是从随机种子ρ确定性派生  并维持安全性。UpdatePk算法接收公钥  和参数ω,通过SHAKE256派生小向量 ,确定性展开矩阵A,重构  (此处丢失  精度),计算 ,最后用Power2Round重新分割得到 

Power2Round问题: 该函数非同态性导致  可能偏离真实值,DilithiumRKC通过传输t1_diff增量纠正累积误差。

安全参数: 模数  (支持256次单位根的NTT优化),维度  (Dilithium3),噪声界 ,范数界 

三种变体

DilithiumRK0(基础): 直接应用重随机化,公钥/签名尺寸与标准Dilithium相同(1952/3293字节)。

DilithiumRK(标准): 优化参数,公钥1472字节,签名2701字节。

DilithiumRKC(压缩): 通过t1_diff机制解决Power2Round非同态性问题,公钥压缩至约1000字节,但签名增至约3200字节。传输增量而非完整公钥,实现前向安全。

确定性钱包设计

DilithiumDW(无状态)

热钱包存储  可独立派生子公钥生成接收地址,冷钱包存储  可派生私钥签名。密钥派生: ,然后调用UpdatePk/UpdateSk。无需维护派生历史,备份仅需主密钥和链码。

DilithiumSDW(有状态)

增加派生状态追踪,支持强化派生(需秘密密钥计算ω,热钱包无法派生),防止密钥重用,安全性更高但需维护索引集合。

安全性证明

不可伪造性(Uf-CMA-HRK)

定理: 如果格基签名方案在QROM下是 -EUF-CMA安全,则DilithiumRK是 -EUF-CMA-HRK安全,其中 

证明利用格基委派技术:给定 ,对重随机化查询生成 ,使用BasisDel为  生成短基,无需原始秘密密钥即可签名,将DilithiumRK伪造归约到底层格问题。

不可链接性(Unl-PK)

定理: DilithiumDW满足DWUNL安全,优势界 

证明使用O2H(One-way to Hiding)引理:在挑战点重编程随机预言机,派生的子公钥与独立生成公钥计算不可区分,确保不同地址间隐私。

量子安全: 经典BKZ格归约需  位运算,量子格筛算法需  量子操作(Dilithium3达192位量子安全)。

代码实现

GitHub仓库

  • https://github.com/mseckept/dilithium-rk-wallet 
  • 提供Python概念验证实现。基于Giacomo Pope的dilithium-py库,优先可读性而非常数时间或性能优化。
src/
├── dilithiumrk.py         # 标准DilithiumRK
├── dilithiumrk0.py        # 基础变体
├── dilithiumrkc.py        # 压缩变体
└── test-*.ipynb           # 交互式测试

实测数据(test-dilithiumrk.ipynb):

  • 公钥: 3712字节 (理论1952字节, +90%冗余)
  • 签名: 3232字节 (理论3293字节, -2%)
  • 验证: 成功通过密钥更新后签名验证


核心算法示例

密钥更新(UpdatePk):

def update_pk(pk, rho_prime):
    rho, t1 = pk
    delta1, delta2 = expand_from_seed(rho_prime)
    A = expand_matrix(rho)
    t_new = t1 * (2**d) + A @ delta1 + delta2  # 重构并更新
    t1_new, _ = power2round(t_new, d)
    return (rho, t1_new)

拒绝采样签名:平均需6.6次迭代,检查范数界  和  (关键区别:调整了β项以适应重随机化)。

安全警告: 实现非常数时间,存在侧信道风险。生产环境需恒定时间库(如libpqcrypto)和形式化验证(CryptoVerif)。

性能与影响

尺寸对比

方案
公钥
签名
总和
量子安全
ECDSA
32B
71B
103B
Dilithium2
1312B
2420B
3732B
128位
Dilithium3
1952B
3293B
5245B
192位
DilithiumRKC
~1000B
~3200B
~4200B
192位
Falcon512
897B
690B
1587B
128位

比特币网络影响

交易吞吐量(1MB区块):

  • 当前ECDSA: ~2000笔/区块
  • Dilithium2: ~365笔/区块 (-82%)
  • 需增至4-8MB区块维持吞吐

存储增长:

  • 当前: 50-60 GB/年
  • Dilithium2: 270-324 GB/年 (5.4×)
  • 10年: ~3 TB vs 当前600 GB

经济影响: 节点运营成本增5.4倍,可能推动中心化;交易费用因容量稀缺上涨;激励Layer-2(闪电网络)采用。

计算性能与方案对比

方案
密钥生成
签名
验证
Dilithium2
124K周期
333K周期
118K周期
DilithiumRK
+20-30%
+10-15%
+5-10%

密钥派生(UpdatePk/UpdateSk)增加20-30%开销,但绝对时间仍在毫秒级,实用可接受。

与先前工作对比: Alkadri等人(CCS 2020)首次提出基于qTESLA的通用后量子HD钱包框架,但缺乏针对NIST标准Dilithium的优化和完整QROM证明。本文创新点包括:首个Dilithium HD钱包实现,Power2Round问题的DilithiumRKC解决方案,完整的Uf-CMA-HRK和Unl-PK证明,以及详细的Bitcoin网络影响分析。

技术准备

协议层需硬分叉增加区块限制至4-8MB,引入新地址类型。钱包需升级至DilithiumDW/SDW标准,硬件钱包需扩容(当前2-5KB存储不足)。网络过渡期必须维持ECDSA+Dilithium混合签名,已暴露公钥的665万BTC在量子威胁下即刻脆弱。

结论

DilithiumRK证明后量子比特币在技术上可行,在QROM下可证明安全,迁移路径清晰可操作。代价是41倍公钥膨胀和82%容量下降(维持1MB),但这恐怕是这个价值2.4万亿美元的市场在量子时代生存的必要成本。