一笔隐藏金额的交易要多大:门罗币从 Borromean 换到 Bulletproofs 的体积账 图 1
一笔隐藏金额的交易要多大:门罗币从 Borromean 换到 Bulletproofs 的体积账 · 图 1

隐私链的交易金额是加密的,但加密不能自动保证合法:一笔交易可以把隐藏值伪造成溢出成天文数字,账本照样”平衡”。堵这个洞靠范围证明——让任何人能验证”这个加密数字确实在合法区间内”而不看到数字本身。门罗币在 2018 年 10 月的网络升级里把旧的范围证明 Borromean 换成了 Bulletproofs,官方给出的账本是:典型两输出交易从约 13.2 KB 缩到约 2.5 KB,手续费同比例下降。本文拆解这笔体积账的来龙去脉。

隐藏金额为什么必须带证明

门罗币用 Pedersen 承诺藏金额:输出里放的是”金额加密后的点值”,全网能看到输入总额与输出总额的承诺代数上相等,却看不到每笔多少。漏洞在于:承诺方程允许你把一个输出伪造成远超流通量的天文值,再把差值转到自己兜里——环签名验证得再漂亮,账本也被偷印了。范围证明的存在就是逐输出地声明”此承诺的值小于上限且无溢出”,与输入的求和方程共同构成账本完整性。换句话说,它不是可选项:没有它,隐藏金额的设计本身不成立。

一笔隐藏金额的交易要多大:门罗币从 Borromean 换到 Bulletproofs 的体积账 图 2
一笔隐藏金额的交易要多大:门罗币从 Borromean 换到 Bulletproofs 的体积账 · 图 2

旧方案 Borromean 的线性成本

早期门罗币用的 Borromean 环签名式范围证明,按二进制位逐位构造承诺、逐段拼接环签名,证明尺寸随位数与输出数线性膨胀:一个输出要背六十四个比特的证据,两个输出就是两份证据并排上链——官方给出的那笔典型两输出交易约 13.2 KB,大半字节都花在”我保证金额合法”这句话上。

Bulletproofs 的对数账

2017 年 12 月,团队基于 Bünz、Bootle 等人的新论文发布兼容实现:把逐位承诺换成内积论证结构,证明体积随位数和输出数只按对数增长。官方公告给了两组直接可感的数字——同样的两输出交易,单输出式 Bulletproof 约 2.5 KB(相对旧式约百分之八十的缩减),多输出式还能再小;验证时间也不升反降。2018 年 10 月 18 日的网络升级把 Bulletproofs 与环大小全局固定为十一、工作量证明更新为 CryptoNote v2 等变更一起激活,0.13.0 版本(代号 Beryllium Bullet)负责实现。升级后的连锁反应比省手续费更深:交易密度上升,同等区块装得下更多真实支付;找零与拆分输出的策略开始重新算账;钱包的密钥图像管理与黑单工具也要跟着新结构改版。

体积下降改变的不只是费用

对普通用户,账面上是同样隐私水位下的费率台阶式下降;对协议,是隐私成本结构的改写——范围证明从交易的主角退居配角,环签名的环大小、密钥镜像这些别的部件开始成为新的体积大头,后续优化(比如更新的环签名方案)就是冲着它们去的。对研究者,这是”承诺加零知识”框架里证明成本从线性到对数的教科书案例:内积论证把逐位证据折成对数级的承诺序列,一轮随机挑战逼证明者交出紧凑折痕,官方公告也确认验证时间不升反降。工程史视角再补一笔:同类证明在其他链上走过了相似曲线——证明体积一旦从常数级膨胀压回对数级,费用曲线、区块填充率与钱包隐私默认值会集体重排,门罗这次升级是这条规律最完整的公开样本。

快速问答

问:换成 Bulletproofs 后隐私变弱了吗? 答:没有。金额依旧由承诺隐藏,改的是证明合法性的方式与体积。

问:范围证明能看出金额区间吗? 答:只能确认金额在合法上限内且无溢出,区间内具体多少仍然不可见。

问:现在门罗交易还是这么大吗? 答:体积随环签名与协议版本继续演化,以当期版本与钱包统计为准。

问:聚合证明会不会让一笔交易连坐? 答:多输出聚合成一份证明后,任一输出的问题会使整份证明失效;钱包因此按输出数量在”单输出多份”与”一份聚合”之间权衡,两条路都合法,只是体积与故障半径不同。

风险提示:本文解释隐私协议机制,不构成投资建议。持有与使用隐私资产请同时遵守所在地法律。