# BLS(Boneh–Lynn–Shacham)门限签名聚合 + 分布式密钥生成模拟器

端到端模拟 BLS12-381 BLS 签名:Joint-Feldman DKG 仪式、带 Lagrange 插值的 t-of-n 门限签名、流氓密钥攻击与保有性证明防御,以及 Ethereum 2 证明聚合。

> 标准页面: https://elysiatools.com/zh/tools/bls-boneh-lynn-shacham-threshold-signature-aggregation-distributed-key-gen-simulator

- **分类:** Cryptography

- **关键词:** bls 签名模拟, bls12-381, 门限签名, dkg 仪式, joint feldman, 流氓密钥, 保有性证明, 以太坊2 bls, 证明聚合, shamir lagrange

## 概述

BLS 签名方案(Boneh–Lynn–Shacham 2001,标准化于 draft-irtf-cfrg-bls-signature-04)的教学模拟器——该方案是以太坊 2.0 信标链证明、Chia、Polkadot 与 Filecoin 的底层签名。

标量域采用真实的 BLS12-381 子群阶 r,因此私钥、Shamir 份额、Lagrange 系数与流氓密钥消除全部使用与生产环境完全相同的模数。群则是教学用的素阶乘法群,配对抽象为 e(g^a, g^b) = g^(ab):BLS 所依赖的双线性恒等式(σ = H(m)^sk 以 e(σ, g) = e(H(m), g^sk) 验证)被原样保留;椭圆曲线与 hash-to-curve(SSWU)算术不被执行。

场景:

1. Joint-Feldman DKG——每个参与者发放一条随机 t−1 次多项式,公布 Feldman 承诺 C_i,k = g^{a_i,k}(可加 Pedersen 隐藏承诺),私下分发份额。份额校验能揪出作恶分发者;组公钥 Π C_i,0 等于 g^{组密钥},而组密钥从不成形。随后 t-of-n 门限签名:部分签名 σ_i = H(m)^{s_i} 经 Lagrange 系数组合成与完整签名者完全相同的签名;不足法定人数会被拒绝。

2. 流氓密钥攻击——攻击者发布 pk* = g^α·Πpkᵢ⁻¹(仅凭公钥即可算出),伪造出朴素聚合验证会接受的签名。保有性证明防御(PopProve = 对自己公钥哈希签名)在注册阶段即拒绝流氓密钥。

3. Ethereum 2 证明聚合——n 个验证者对相同证明数据签名;σ_agg = Πσᵢ 恒为 96 字节,FastAggregateVerify 只需 2 次配对与 n 无关;⅔ 法定人数的子聚合可增量验证。

给定种子文本后所有运行均确定,仪式可逐字节复现。

## 输入项

- **场景** (select)
- **参与者数 n(3–9)** (number): 4
- **门限 t(2–9)** (number): 3
- **消息 / 证明数据** (text): committee attestation: block 9182
- **确定性种子(复现同一场仪式)** (text): ceremony-2026
- **为 DKG 附加 Pedersen 隐藏承诺** (checkbox)

## 适用场景

- 需要理解并验证分布式密钥生成（DKG）及无单点私钥的 t-of-n 门限签名构造过程时。
- 评估签名聚合方案中的流氓密钥漏洞（Rogue-Key Attack）及验证保有性证明（Proof of Possession）防御有效性时。
- 模拟以太坊 2.0 信标链验证者对同一证明数据的批量签名聚合与 FastAggregateVerify 校验逻辑时。

## 工作原理

- 选择目标场景（DKG 门限签名、流氓密钥攻击或以太坊 2 证明聚合）并配置参与者数、门限值及消息内容。
- 基于 BLS12-381 标量域生成确定性多项式、承诺与份额分发矩阵，并计算双线性群元素。
- 执行 Lagrange 局部签名重构、流氓公钥计算或等长 96 字节签名聚合计算。
- 生成结构化 HTML 报告，呈现承诺矩阵、份额校验结果、签名验证状态及双线性配对判定结论。

## 使用案例

- 区块链协议研发：测试并推演共识层门限签名与验证者聚合逻辑。
- 密码学教学演示：直观展示多项式承诺、Shamir 门限重构与双线性映射验证过程。
- 智能合约与签名系统安全审计：验证聚合签名协议中针对流氓密钥的防御措施是否健全。

## 常见问题

### 模拟器中的标量域计算与生产环境一致吗？

是的，私钥、Shamir 份额与 Lagrange 系数均采用真实的 BLS12-381 子群阶 r 模数计算。

### 什么是 Joint-Feldman DKG？

每个参与者独立分发多项式并公布 Feldman 承诺，最终在私钥从未完整成形的前提下合成组公钥与各自的私钥份额。

### 流氓密钥攻击（Rogue-key Attack）是如何发生的？

攻击者通过反向构造包含其他公钥逆元的伪造公钥，使得仅凭自己的私钥即可伪造出令朴素聚合验证通过的签名。

### 保有性证明（Proof of Possession）如何防御流氓密钥攻击？

要求参与者在公钥注册时提供对其公钥哈希的有效签名，攻击者因无法求得复合公钥的离散对数而无法通过注册。

### 确定性种子（seedText）的作用是什么？

提供相同的种子文本可以使随机数生成完全确定，从而百分之百逐字节复现整场密码学仪式的执行细节。

## 相关工具

- [哈希算法对比器](https://elysiatools.com/zh/tools/hash-algorithm-comparator): 对同一输入同时用 MD5、SHA-1、SHA-256、SHA-512、BLAKE2b、BLAKE3 哈希并横向对比：输出长度、十六进制/Base64 摘要、安全状态（已破解/现代）以及相对速度基准。适合教学、选择哈希算法或核对校验和。
- [HMAC + BLAKE3 + SHA-3/Keccak + Poly1305 + BLAKE2 带密钥 MAC 构造审计器](https://elysiatools.com/zh/tools/hmac-blake3-sha3-keccak-keyed-hash-and-mac-construction-linter): 跨 HMAC-SHA-2/SHA-3、带密钥 BLAKE2、BLAKE3、KMAC 与 Poly1305 计算 MAC 并做安全审计，内置官方已知答案自测、密钥/标签长度检查与跨构造兼容性矩阵。
- [OCR PDF 转结构化 JSON 桥](https://elysiatools.com/zh/tools/ocr-pdf-to-structured-json-bridge): 按几何结构抽取 PDF 文本层（y 坐标分行、列间隙识表、字号识标题、冒号键值对），然后逐字段填入用户提供的 JSON Schema——标签按归一化键名匹配、值按声明类型归一化，并用 ajv 校验。
- [OpenTelemetry W3C traceparent / tracestate / baggage 与 OTLP 头传播验证器](https://elysiatools.com/zh/tools/opentelemetry-w3c-traceparent-tracestate-baggage-and-otlp-protobuf-headers-propagation-validator): 按 W3C Trace Context ABNF 校验 traceparent（版本/16 字节 trace-id/8 字节 parent-id/1 字节 trace-flags，全零与 ff 版本拒绝、大写告警）、tracestate（≤32 个成员、simple 与 tenant@system 键、重复键告警）、baggage（百分号编码值 + 不透明属性）；校验 OTLP 导出 Content-Type 与 gRPC grpc-trace-context-bin 的 25 字节二进制上下文往返一致性；并对两个独立 traceparent 做关联 round-trip（trace-id 稳定性 + 随机子 span-id 冲突检查），输出可直接重发的规范化头。
- [PDF 逻辑结构树 WCAG 角色映射验证器](https://elysiatools.com/zh/tools/pdf-logical-structure-tree-validator): 审计 PDF/UA-1 逻辑结构树：RoleMap 是否映射到标准结构类型、H1–H6 标题层级是否跳级或首个标题非 H1、Figure/Formula 是否缺失 Alt 替代文本、语言标签继承链是否可判定、结构与内容流 MCID 阅读顺序是否分歧，并输出带 Matterhorn 检查点编号的结构大纲。
- [SMT-LIB 2.7 / AIGER / BTOR2 形式验证编排器（CDCL + BMC + k-归纳 + Craig 插值 + IC3）](https://elysiatools.com/zh/tools/smt-smtlib-2-7-cvc5-z3-btor2-aiger-k-induction-cddr-dbg-invariant-synthesis-orchestrator): 一套完整的页内形式验证栈——无需 cvc5/Z3 二进制：SMT-LIB 2.7 脚本解析器覆盖 QF_BV + Bool 核心（FixedSizeBitVectors 算子的 Tseitin 位爆破：加减乘除取模、移位、比较、拼接/截取/扩展、ite），AIGER 读取器（ASCII aag 与二进制 aig delta 解码；输出按坏属性解释），带字级位爆破的 BTOR2 读取器，以及底座上的手写 CDCL SAT 引擎（双监视文字、VSIDS 活性、1-UIP 学习、重启）。顺序模型上运行带反例见证轨迹的有界模型检测、带唯一状态强化的 k-归纳、从反驳计算并经独立 SAT 复核后方可信任的 McMillan 式 Craig 插值，以及带前驱立方阻塞的 IC3/PDR-lite 帧循环。
- [字幕平台规范检查器](https://elysiatools.com/zh/tools/subtitle-platform-spec-checker): 按交付规范验证字幕：Netflix Timed Text（20/17 CPS 阅读速度、42 字符/行、两行、5/6 秒下限与 7 秒上限、2 帧间隙）、BBC 电视指南（37 字符/行、160-180 wpm、1.5 秒停顿间隙）与 YouTube 字幕规则（纯 UTF-8、样式标记不被识别）——附逐条 findings 报告。
- [训练/测试集分层切分器](https://elysiatools.com/zh/tools/train-test-split-with-stratification): 读取 CSV/JSON 数据集,按目标列做分层抽样的 train/validation/test 切分(默认 70/15/15,随机种子可复现),或分层 k 折交叉验证;输出每折类别分布报告与偏差条、重复行泄漏检查、SMOTE 过采样预览(仅在训练折上做最近邻插值),并可导出各折 CSV 为 ZIP。

## 示例

- [分布式追踪示例](https://elysiatools.com/zh/samples/distributed-tracing-samples): 使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例，适用于微服务架构
- [分布式系统模式示例](https://elysiatools.com/zh/samples/distributed-systems): 全面的分布式系统模式，涵盖一致性、共识算法、分片和容错机制
- [无版权MP3音频样本](https://elysiatools.com/zh/samples/mp3-samples): 免费使用和测试的无版权音频样本集合，包括自然声音、冥想音乐和环境音频，适用于测试和开发目的
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
