公司动态

从零理解AMA Protocol的BLS阈值签名与DKG:VRF Stage 2前瞻

📅 2026/8/21 15:54:28
从零理解AMA Protocol的BLS阈值签名与DKG:VRF Stage 2前瞻
从零理解AMA Protocol的BLS阈值签名与DKGVRF Stage 2前瞻【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/nodeAMA ProtocolAmadeus Protocol是一个面向 AI Agent 的隐私 Layer 1共识签名全部基于 BLS12-381。本文面向新手带你从零理解 BLS阈值签名BLS Threshold Signature与 DKG分布式密钥生成Distributed Key Generation并前瞻其随机数机制 VRF Stage 2 的升级方向。读完你会明白为什么 Stage 1 的随机数可以被单个作恶节点“操控”而 Stage 2 升级后需要 67% 节点合谋才能攻破。为什么区块链需要 VRF公平随机的源头共识协议里“谁来出下一个块”“随机数是多少”这类问题必须既随机又可验证。普通随机数比如本地Math.random()无法被全网验证存在被操纵的风险。VRF可验证随机函数Verifiable Random Function的妙处在于输入一个种子签名者用自己的私钥生成一个可被公钥验证的随机输出。任何人都能验证“这个随机数确实是你算出来的”但没人能提前预测它。这正是公平出块与公平抽奖的基石。AMA Protocol 现状VRF Stage 1 如何工作在 AMA Protocol 中每个 entry区块头部都携带一个vr字段即 VRF 输出。你可以查看创世 entry 的生成代码 entry_genesis.exvr BlsEx.sign!(sk, drdrdr, BLS12AggSig.dst_vrf())VRF 本质上就是用 BLS 私钥对某个消息签名签名结果本身就是随机数。链上专门的 DST 常量AMADEUS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_VRF_用于区分 VRF 与其他签名用途见 bls12_aggsig.ex 与 Rust 侧的 aggsig.rs。在 3_nft.ts 的注释中项目明确写明了当前状态当前VRF Stage 1。种子是当前验证者对前一个 VRF 输出的签名。恶意验证者可以进行扣押攻击不包含交易如果随机数不利。也就是说Stage 1 的随机种子由单个验证者决定。他看到了结果后才决定是否“配合”这给了单点作恶的空间。VRF Stage 1 的隐患单点的扣押攻击扣押攻击Withholding Attack很好理解假如掷骰子游戏的结果对我不利我就“假装没掷”或者不把交易打包上链直到等到一个对我有利的结果再放行。Stage 1 中生成随机数的密钥掌握在单个验证者手里因此他拥有完全的“挑选权”。这并不代表整个网络不安全但随机数公平性确实依赖单点诚信——这对 DeFi、NFT 抽奖等场景不够友好。BLS12-381 聚合签名一个签名代表一群人要理解 Stage 2先看 AMA Protocol 已经在用的 BLS 聚合签名。BLS12-381 的一个神奇性质是签名可聚合多个节点的签名可以合并成一个签名验证时只做一次配对运算即可。BLS12AggSig模块bls12_aggsig.ex正是干这个的用mask位掩码记录哪些验证者已签名add_padded/4把新签名聚合进已有的aggsigscore/3计算已签名人数占比达到阈值即可放行。在 special_meeting_gen.ex 中slash惩罚动议就是等聚合签名占比达到0.67才执行——这个 67% 阈值和 VRF Stage 2 的设计一脉相承。从聚合签名到阈值签名t-of-n 的奥秘聚合签名要求“谁签了谁就是签名者”而BLS 阈值签名更进一步一个群体共享同一个“群体私钥”只要收集到 t 个比如 67%成员的签名分片就能拼出代表整个群体的有效签名而无需知道私钥本身。这就是 “t-of-n”n 个成员任意 t 个合在一起就能签名少于 t 个则什么都签不出来。攻击者想伪造群体签名至少要控制 t 个成员。DKG 分布式密钥生成不信任任何人也能生成密钥问题来了群体私钥怎么产生如果由一个“中心”生成再分发中心就成了单点故障。DKG 解决的就是这个问题每个成员各自生成一部分秘密多项式分片通过 Feldman 等协议广播承诺互相验证分片合法性最终没有一个人知道完整的群体私钥但每个人都握有自己的分片。DKG 与 BLS 阈值签名天生一对DKG 负责“安全地生成密钥”阈值签名负责“安全地使用密钥”。即使部分节点离线剩下的 t 个节点依然能继续签名链不会停摆。BLS 阈值签名 DKG 如何让 VRF Stage 2 更安全回到开头那条注释的结尾即将到来VRF Stage 2 将使用 BLS 阈值签名 /w DKG只有 67% 节点是恶意的时才能被攻击。Stage 2 的升级思路非常清晰对比项VRF Stage 1VRF Stage 2随机种子来源单个验证者私钥签名群体私钥的阈值签名单点操控可以扣押攻击不可以攻击门槛1 个恶意节点67% 节点合谋当 VRF 输出由群体私钥决定时单个节点既无法预测结果也无法在结果不利时“拒绝签名”改变结果——因为其他 t 个成员照样能完成签名。随机数的公平性从“信任一个人”升级为“信任 67% 的网络”。67% 恶意阈值意味着什么67% 是一个精心选择的数字。在经典拜占庭容错BFT共识中超过 1/3 恶意节点即可作恶超过 2/3 则可完全控制链。AMA Protocol 把随机数攻击门槛设在 67%意味着除非攻击者掌控了绝大多数验证者否则随机数无法被操纵即使部分节点离线或作恶剩余 67% 仍能正常出随机数对普通用户而言抽奖、NFT 铸造、DeFi 清算的公平性得到了质的提升。在代码中寻找 VRF Stage 2 的踪迹想进一步研究可以关注这些文件3_nft.tsStage 1/Stage 2 官方注释含掷骰子 NFT 示例bls12_aggsig.exBLS 聚合签名与掩码实现aggsig.rsRust 侧的聚合签名验证entry_genesis.ex创世 entry 的 VRF 生成示例special_meeting_gen.ex67% 阈值的实际应用。如需本地编译运行节点并观察链上行为可 clone 仓库git clone https://gitcode.com/GitHub_Trending/node95/node。小结从单点到群体的安全跃迁一句话总结VRF 保证“随机且可验证”BLS 阈值签名保证“群体决策”DKG 保证“密钥安全分发”。AMA Protocol 的 VRF Stage 2 把三者组合起来将随机数的信任模型从“1 个验证者”提升到“67% 网络共识”为链上公平性打下了更坚实的底座。对于 DeFi、链上游戏和 Agent 场景这是一次值得期待的升级。【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/node创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考