يوجد تسع صفوف في جدول مقارنة مورّدي Rayls في الموقع، وقد اخترتُ الصف بعنوان «الخصوصية». والسبب بسيط جدًا: الخصوصية مهمة، وBesu مفتوح المصدر، ويمكنني مراجعة توثيقه وكوده.

في جدول المقارنة، يضع Rayls علامة في السطرين «الخصوصية المعزولة» و«الخصوصية التشفيرية»، بينما يضع Besu علامة في السطر الأول فقط. كنت أنوي التحقق عبر وثائق الطرف الآخر، لذلك بحثتُ في وثائق Besu، ثم حمّلت كوده وعددتُ الأسطر/الأجزاء بدقة مرةً أخرى.

الاستنتاج ليس «أن Besu لا يصلح». الفرق الحقيقي هو أن الشركتين تضعان الخصوصية في طبقات مختلفة، وأن Besu نقل ذلك في وقت أبكر مما يظن الكثيرون.

Besu 那边:从文档到代码

Besu 官方文档里,隐私相关的页面顶部现在都挂着同一条横幅:基于 Tessera 的隐私功能自 24.12.0 版本起弃用。

真正的移除发生在 25.6.0。这个版本的发行说明把它列为破坏性变更,条目是移除 Tessera 隐私功能,编号 #8369,同一批还移除了链上权限管理。

我自己核实的部分是这样做的。先用三个版本号去取同一个文件:25.4.0 里 PrivateTransaction.java 和 Enclave.java 都返回 200,25.6.0 和 26.2.0 都返回 404。再看接口:25.4.0 的 RpcMethod 枚举里有 23 个 priv_、eea_、privx_ 开头的方法,26.2.0 的同一个文件里一个都没有。命令行也一样,25.4.0 有 12 个 --privacy 开头的启动参数,26.2.0 的 BesuCommand.java 里连 privacy 这个词都搜不到。规模上,25.4.0 里与隐私和 enclave 相关的非测试 Java 文件有 153 个,合计 17,875 行。


Besu 为什么要这么做

这一段必须写,否则就成了挑刺。

Besu 维护者在 2024 年 9 月 24 日的公告里给了理由:代码库变成了一把臃肿的瑞士军刀,Tessera 这类功能在它本来要解决的场景里性能不够,而应用层已经有成熟和新兴的方案。公告里还提到,一个面向 EVM 的可编程隐私开源项目即将提交给 LF Decentralized Trust 实验室。

那个项目就是 Paladin,现在已经从实验室升为 LF Decentralized Trust 的正式项目,Apache 2.0 许可,用零知识证明或发行方预验证两种方式实现隐私代币,跑在任何 EVM 链之上。

所以准确的说法是:Besu 没有放弃隐私,它把隐私从客户端移到了应用层。

两种放法,各自的价钱

Rayls 的做法是把隐私放进协议:Enygma 用 AES-256 加密交易内容、用 Pedersen 承诺记录余额、用 Groth16 证明这笔账是对的,走的是普通交易路径。

这条路的价钱可以量出来。上一篇我实测过证明生成,单核环境下 6 人匿名集每笔 1.96 秒。今天我又量了另一件事:证明本身只有 164 字节,而且 2 人档和 6 人档一样大,因为 Groth16 的证明是定长的。但随证明一起公开的数据不是定长的:2 人档 588 字节,6 人档 1,612 字节。

这个数字顺带纠正了一个常见说法。离开私有环境的不只是「一个证明」,而是加密载荷、证明和必要的公开数据,内容保持隐藏,同时系统仍然能验证和结算。

顺便说一下对比表另一行的事。Rayls 在「隔离式隐私」上打勾,靠的是部署结构:每家机构的 Sovereign 账本装在自己的边界内,官网的说法是私有数据不离开该实例,只有完成一笔交易所必需的最小载荷才会发往外部网络。所以这两行对 Rayls 来说是两层东西,机构之间靠部署隔离,跨机构结算靠密码学。这一点我只看了官网和文档,没有实际部署过。

许可这边也要摆出来。Rayls 的开放栈是 Apache 2.0,但 Enygma 和 Axyl 两个模块是 BUSL 1.1,测试免费、生产需授权,每个版本发布四年后自动转为 Apache 2.0。Paladin 则是 Apache 2.0。

这对一家机构意味着什么

如果一家机构的私有网络跑在 Besu 上,并且用了 priv_ 或 eea_ 接口,那么升到 25.6.0 这一步不是升级,是迁移。23 个接口和 12 个启动参数同时消失,隐私逻辑要搬到应用层重写;不搬就只能停在 25.4 系列,之后所有性能改进和安全修复都与你无关。

如果选 Rayls,隐私和账本属于同一套东西,版本、审计和支持是一条线,不用自己拼。代价是每笔机密交易都要先算证明,匿名集越大公开的数据越多,以及 Enygma 那部分要按 BUSL 授权。

那个「越多」有多多,可以估一下,下面是我算的。一笔 6 人档的机密转账,证明加公开数据合计约 1,776 字节。按英国 CHAPS 2025 年日均 210,483 笔的规模去套,一天约 374 MB,一年约 136 GB。对机构存储来说这不算什么,但它是随笔数线性增长的固定开销,而且匿名集是可调的:降到 2 人档,每笔只有 752 字节。这里假设每笔交易只产生一个证明,没有算存入、提取和 DvP 那几类电路。

从这一行里能抽出来的通用问题只有三个字:在哪层。问供应商隐私功能住在哪一层、由谁维护、它的生命周期和账本是不是绑在一起。Besu 这两年的变化说明,答案会变,而且变起来是破坏性的。


我确认了什么,我推断了什么

确认的部分:文件在不同版本里的存在与否、接口和启动参数的数量、官方公告和发行说明的内容、证明与公开数据的字节数、上一篇的证明耗时。这些都能照着截图里的命令重跑。

推断的部分:升级会中断现有隐私业务,这是从接口消失推出来的,我没有真的把一个 25.4 的私有网络升到 25.6 去试。Paladin 能不能接住某一家机构的具体场景,我也没有评估。

范围上,我只看了转账电路和隐私这一行。Besu 的用户完全可以自己维护分支或写插件,这是它的许可允许的。对比表的其他八行我没有碰。


我的看法

对比表是一张静态的图,而开源项目的能力是会移动的。这一行两年内从「客户端内置」变成了「应用层自理」,表格却只能显示一个勾。

所以我更愿意把这类表当成检查清单的起点:每一行都去对方的仓库里看一眼当前版本。这次花的时间不到一小时,命令都在截图里。下次 Rayls 更新这张表时,值得看的是它是否给 Besu 那一栏加上版本说明。

参考来源:Rayls 官网 Sovereign 产品页与供应商对比表;Besu 官方文档隐私章节的弃用横幅;Besu 25.6.0 发行说明,条目 #8369;LF Decentralized Trust 2024 年 9 月 24 日公告(Sunsetting Tessera and Simplifying Besu)与 Paladin 项目公告;hyperledger/besu 仓库 25.4.0、25.6.0、26.2.0 三个标签(2026 年 9 月 24 日读取);raylsnetwork/rayls-sovereign-gnark-api 提交 67c4c26(本机实测)。

#Rayls $RLS