门罗币 CLSAG 签名是什么?环签名怎么换格式变小、验证怎么提速 图 1
门罗币 CLSAG 签名是什么?环签名怎么换格式变小、验证怎么提速 · 图 1

Monero 的隐私靠三层机制叠出来:环签名藏付款方、一次性地址藏收款方、RingCT 藏金额,层次关系见门罗币的三层匿名。这三层各自都会换代,这一篇讲其中最容易被忽略的一层换代:环签名格式本身从 MLSAG 换成 CLSAG 时,链上到底发生了什么变化。

签名格式为什么值得单独写一篇

环签名的思路是”一群可能的付款人里,有一个真的签了字”。匿名集越大,交易体积越大,每个节点验证时要做的椭圆曲线运算也越多。Monero 官方在 v0.17.0.0 发布说明里对这次网络升级(说明原文写作 October 17th network upgrade)的核心表述非常直接:新的 CLSAG 交易格式”提高验证速度、减小交易体积”。换句话说,这一层改动不增加任何新的隐私属性,纯粹是把同样的隐私承诺做得更便宜、更快。

换了格式,没换匿名语义

机制示意图

CLSAG 全称是紧凑版可链接自发匿名组签名,它替代的是 RingCT 早期沿用的 MLSAG 方案。两件事没有变:其一,匿名集仍由你选进环的那些输出构成,环的大小决定观察者能把付款方缩小到几个人之内;其二,可链接性仍然靠 key image 维持——同一把支出钥匙生成的图像在链上唯一,花过就不能再花,这一步不依赖签名格式的名字。改的是环里每个成员需要携带的承诺数量和验证流程:更少的分量、合并后的挑战结构,让体积和验证成本一起下降。金额一侧的体积账则是另一篇从 Borromean 换到 Bulletproofs 的体积账讲过的事,两条瘦身路线互相独立。

落地细节:从序列化到硬件钱包

一次签名格式换代是全方位的工程。Monero 仓库的记录显示,CLSAG 主体合并进主干后,紧接着就有修复硬件钱包交互、修正序列化方式的后续提交;ZMQ 推送接口后来也单独补上了 CLSAG 的序列化支持。这些信息拼出一幅很实际的图景:链上格式变了,钱包、节点、第三方数据服务都要跟着变,任何一环没跟上,就会出现”新格式交易发得出去、某类下游读不懂”的经典兼容窗口。对普通用户来说,这轮兼容期的长度取决于生态各方的更新节奏,而不是协议本身——格式规则一旦激活就是全网统一生效,没有”先升级先安全”的余地。

为什么这笔账值得算

环签名对节点的负担是乘法式的:一个输入要携带与环大小成比例的组件,一笔交易可能有多个输入,而每个同步节点的验证成本又与全链历史成比例。MLSAG 时代的体积与验证开销,会随时间只在变大、不会变小——已上链的旧交易永远要按旧格式重验一遍。所以官方发布说明把 CLSAG 的收益写成两句话并不奇怪:对新增交易,同样的环大小占更少的字节,区块装得下更多有效负载;对所有节点,验证一条环签名要做的事少了,历史重验与日常同步一起受益。一次纯格式层面的”减肥”,价值恰恰在这种全链条、永久的摊销上。

用户会看到什么

日常转账里,这个换代是静默的:新版钱包默认使用新格式,旧格式在过渡期内仍被接受。能观察到的差异主要是同环大小下交易更短、节点同步时验证更快。需要留意的场景是交易所充提:给平台的 Monero 充值地址是旧式还是集成地址、平台节点是否已跟进新版本,会直接影响到账体验,可以先看集成地址与子地址那篇的核对方法。若遇到长期未确认的转账,先把钱包、节点、平台三方的版本口径对齐,再下结论。

风险提示

签名格式的变化不改变 Monero 的发行模型,也不改变任何持有者的账面数量;围绕隐私实现的改进历史上都伴随兼容与审计成本。本文为机制说明,不构成投资建议,涉及版本与兼容性判断请以官方发布说明为准。