我从预承诺阶段就开始质押 RLS,读官方博客算是习惯。9 月 12 日这篇讲可审计性的文章,后半段列了六条标准,说数学强制按构造全部满足。这句话我认同,但"按构造满足"是个可以查的说法,不是只能相信的说法。所以我花了一周,把这六条逐条拿去公开源码、技术文档和链上接口里找对应的东西,现在分享给大家。
先说它的分类,我认为比大多数"隐私还是透明"的讨论有用。做可审计性有三条路:数学强制,边界写在密码学构造里;硬件信任,靠可信执行环境的完整性;策略访问控制,谁能看到什么由网络运营方配置说了算。
它据此提出六条机构级可审计性的标准,然后说数学强制按构造满足全部六条。
为了不越说越虚,下面固定一个场景:一家银行参与央行数字货币试点,央行审计员要查看这家银行在网络上的交易。巴西的 Drex 就是这个场景,Rayls 正在里面做试点。要回答的只有一个问题,审计员看到的东西凭什么可信。
第一条与第二条,选择性披露与范围限定
这两条的落点是同一样东西:观察密钥。
Rayls 的 GitHub 公开,relayer 仓库的 cryptography 目录里有个 mlkem.go。里面 GenerateSalt 用接收方的 ML-KEM-768 观察公钥封装共享密钥,RecoverSalt 用本地的 ML-KEM-768 观察私钥解封装,调用的是 Go 标准库的 NewEncapsulationKey768 和 NewDecapsulationKey768。变量名写的就是 view public key 和 view secret key。
所以观察密钥的密码学底座是 ML-KEM-768,这一条有据可查。
多说一句它的意义。8 月 30 日 Rayls 那篇讲量子准备的文章专门强调过:一个量子安全的说法如果不写参数级别,就不是主张只是标签,并且举的例子恰好就是 ML-KEM-512 和 ML-KEM-1024 不是一回事。那篇讲到自己的升级时只写了"已替换为 ML-KEM"。代码里写了,是 768。这不是缺陷,768 是 NIST 正式参数档,也是业界对企业部署的推荐默认值。它只是一个此前需要读代码才知道、现在可以直接引用的事实。
既然档位确定了,换档的代价就能算。 FIPS 203 把尺寸写死:768 的封装公钥 1184 字节、密文 1088 字节,1024 两者都是 1568 字节。
关键是频率,而密钥管理文档把这个也写了:封装按每一对参与方在建网时做一次,密文存在私有网络枢纽上,此后每条消息只带一个小标签。所以它不随交易量增长。一个 30 家机构的网络有 435 对,两档相差约 215 KB;就算是 60 家机构、1770 对,差额也不到 1 MB,而且是一次性的。
这个量小到没有意义,而这正是结论所在:如果某个部署需要更高档位,阻力不会来自带宽或存储,它就是一次改代码。 通用的后量子迁移讨论里参数选择往往是性能取舍,在这一层不是。
范围限定这一条,技术文档补上了另一半:观察能力可以按时间窗口、按账户来限定。
第三条,可见性与权限分离
技术文档的说法比博客更硬:支出密钥与观察密钥在数学上相互独立,无法从一方推导出另一方。安全审查小结里那句更直接,观察权限与支出权限由密码学而非配置分开,所以一次配置错误无法把读权限变成写权限。
密钥管理那份文档还纠正了我一个想当然。机构侧所有密钥材料由一个叫 Cryptographic Trust Suite 的组件统一处理,跑在机构自己的边界内,Relayer 从不持有任何密钥,只是请它代为加解密。审计员的读取权限来自:每家机构把自己的观察密钥用运营方公钥加密,连同一个认证码存到私有网络枢纽,作为参与方记录的一部分,审计服务在启动时取回。
这里有个副产品文档自己点出来了:机构能在枢纽上看到存在哪些参与方记录,也就知道自己有哪些东西被设为可读。 授予可见性这件事本身是可见的。
顺带,这一页的三类密钥表也印证了我在代码里看到的:签名密钥 secp256k1 上的 ECDSA,观察密钥 ML-KEM,支付花费密钥 BN254 上的 Baby JubJub。文档和源码完全对得上。
第四条,正确性可验证
这一条博客靠的是零知识证明,Rayls 有专门的 gnark-api 服务做 Groth16 证明的生成与验证。
Enygma 交易那份文档给了几个平时没人引用的具体参数。匿名集的规模是 2 或 6,也就是每笔转账会和另外一笔或五笔打包在一起,观察者分不清是谁发起的。一次 crossTransfer 最多指向 5 条目标链、携带 5 个可调用动作。批次的原子性由私有网络枢纽上的 Enygma 合约保证,它先验证整批的证明,任何一个目的地才会铸币。
还有一个运营上的代价文档写得很直白:批处理、证明生成和枢纽验证加起来是数十秒量级,所以要按这个来规划,而不是按机构内部交易那种亚秒级最终性。正确性可验证不是免费的,它的价格就是这几十秒。
但这里有一处措辞值得单独拿出来说,因为它牵涉到四份材料。
技术文档说 Pedersen 承诺"隐藏一个值,同时把承诺方绑定到这个值上,使其事后无法更改",把绑定性当作成立的性质在陈述。8 月那篇量子文章把这一项标为无需处理,意思是本来就抗量子。代码里 enygma_math.go 显示它用 BabyJubJub 曲线上两个独立生成元,计算 v 乘 G 加上 r 乘 H,是标准且正确的 Pedersen 构造。而 Rayls 的两篇学术论文,IACR 编号 2025/1639 和 2025/1638,形容整个设计用的词是 quantum-private 也就是量子隐私,解释是量子对手无法推断交易的付款人、收款人和金额。这是一个纯粹关于机密性的主张。
我的读法是,四份材料里只有论文的用词是精确的。 BabyJubJub 建在 BN254 标量域上,所以隐藏性对量子对手成立,这正是论文主张的那部分;绑定性依赖离散对数,这正是论文没有主张的那部分。
对一家要证明合规态势经得起对抗审查的机构来说,"量子对手看不到我的余额"和"量子对手无法伪造一个假余额"是两件不同的事,而它们在文档和博客里被写成了一件。论文没有犯这个合并。
第五条,可撤销
这一条我查了很久,Rayls的文档有一页叫私有网络设计选项的文档里找到答案。但它和博客说的不是同一件事,而且我认为更有意思。
审计员是运营方指派的角色,与之并列的还有参与方和发行方。关键是审计员的可见性不是开关而是档位,这份文档用三个实例把档位画了出来。
央行数字货币网络那一档,审计员可以解密节点之间的交易。代币化资产交易平台那一档,审计员靠验证各节点发布到枢纽的 Pedersen 承诺来监控,文档明写审计员没有直接访问加密交易载荷数据的权限,只看证明不看内容。DAO 运营的 NFT 市场那一档最极端,审计角色由公链证明验证者担任,默认零访问权,只有证明校验显示欺诈时才启用对那笔交易的解密。
三档摆在一起,审计员浏览器那句"解密程度可在搭建阶段配置"就落地了。
回到博客那一条。 博客说的是可见性可以被收回、收回由密码学强制。文档给的是另一种设计:可见性在建网时按档位设定,而不是事后收回。 都能限制审计员,一个事前约束,一个事后撤销。
治理层的撤销手段确实有:角色可更新,成员状态分活跃、冻结、停用,冻结由运营方通过 ParticipantStorage 治理合约执行。但收回一位审计员已拿到的可见性,我没有找到实现描述。有个细节让这问题很具体:文档说审计员是在每个新节点加入时收到一次 Diffie-Hellman 密钥交换,访问能力是以密钥材料形式交付的。撤角色能挡住将来的授予,能不能让已交付的密钥材料失效这一步我还在研究。
第六条,持久性
这一条和第五条相反:博客把自己说轻了。
它说持久性属于密钥管理、是可以解决的,读起来像个留白。但密钥管理文档已经把这个"可以解决"写成了具体方案。密钥存储可插拔到机构已有的东西:AWS KMS、Google Cloud KMS、Azure Key Vault、本地 HSM,开发环境才用本地文件。静态走信封加密,持久化下来的是密文而非密钥材料。
最关键的是这一句。 因为每次加解密都经过机构自己的密钥管理服务,那些服务本来就产生的审计轨迹,覆盖 Rayls 的密钥操作就和覆盖机构自己跑的其他东西一样。文档给合规部门的结论是:不需要为此新建一套审计面。 这正是持久性想要的东西,审计轨迹挂在机构自己的体系上,而不是某个供应商的专有日志上。
轮换也写得很细:每条链可有多把签名密钥,按使用情况轮换,每把单独跟踪 nonce,已为待处理交易签过名的密钥保持有效直到那些交易结算完成。这解决的正是轮换中最容易出事的缝隙。
不过有一处边界:描述轮换的那一节讲的是签名密钥,观察密钥的轮换我没在这几页里看到。而持久性关心的恰好是多年后审计轨迹还能不能读,那更依赖观察密钥那一侧。
审计员实际用的那个工具
前面都在读密码学,但审计员真正坐下来用的是一个工具。文档写明私有网络审计员浏览器只有审计员能访问,运营方和其他参与方都不能,它给出跨链交易的解密后视图。
范围有限定:只覆盖记录到私有网络枢纽的跨链交易,发生在某家机构自己 Sovereign 账本内部的交易审计员访问不了。所以审计的可见面是机构之间,不是机构内部。
那么有没有一个能完整验证的实例
有,而且只有一个,因为架构本身决定了大部分东西看不到。
官方文档说明了原因:Enygma 交易从各机构自己的 Sovereign 账本发出,每家机构自行部署浏览器监控自己那条账本,跨链部分落在私有网络枢纽由审计员浏览器查看。机构活动按设计就不在公链上,所以公链浏览器上找不到 Enygma 交易,这不是缺失,是三层架构的必然结果。
但 Parfin 那笔锁仓合约在公链上,而且它正好是"数学强制"的一个完整样本。

地址 0x1463889D 开头那个,合约名 RlsTokenLock,源码已验证,不是代理合约。这意味着它是少数几个既能读代码又能查当前状态的对象。我把两边对上了。
构造函数声明的 totalAmount 是 1,070,493,535 RLS。合约当前实际持有的 RLS 是 1,070,493,535。一 wei 不差,完全足额。
解锁时间表更值得说。构造函数里有 48 个时间戳,我全部解码了:首档 2027 年 12 月 1 日,之后每月 1 日一档,末档 2031 年 11 月 1 日,跨度约 3.92 年,每档约 2230 万 RLS。此前公开材料强调的是锁定至 2027 年 12 月,那是第一档,准确;构造函数给出的完整图景是首档之后还有近四年的按月释放。
合约自己的注释把设计意图写得很直白:不可升级,部署时的条款就是永远的条款;无提前解锁,任何密钥都无法在到期日之前移动一档。这两条我在代码里逐一对上了,时间表写在 constructor 里没有 setter,合约也确实不是代理。
这就是"数学强制"在一个我能完整验证的实例上的样子:说法与代码一致,而且代码比说法更具体。 六条标准里那些我只能在源码和文档里找到痕迹的东西,在这里能一路看到底。
另外两处外部引用
博客讲 TEE 时说 Intel SGX 有过破坏隔离保证的已记录漏洞。这句对,但它把自己的论点说轻了。隔离类的有 Foreshadow、Plundervolt、EPIC Leak、SmashEx,编号分别是 CVE-2018-3615、CVE-2019-11157、CVE-2022-21233、CVE-2021-0186 与 CVE-2021-33767。真正最要命的是 2020 年的 SGAxe,它用 CVE-2020-0549 从 Intel 生产环境的认证飞地里提取出认证密钥本身,之后可以签发被 Intel 自家认证服务判定为合法的任意声明。
博客的论证是 TEE 的担保由硬件出具的证明提供,而 SGAxe 攻破的正是出具证明那个环节。最严重的一次失败不是数据被偷,是担保本身被伪造。 把话说公平,这些都已通过微码更新和 TCB recovery 修复,今天的 SGX 不是 2018 年的 SGX,准确表述是硬件信任根有一个滚动的漏洞面。
另一处是它说 BIS 的 Project Agora 正在收敛到同一架构。我翻了 BIS 5 月 27 日的原型报告,拓扑上确实像,双层结构、共享账本加各辖区独立账本。但 Agora 那条边界是靠管辖权划的,报告没说明辖区账本内部的访问控制如何实现,所以收敛是否延伸到信任模型层面,现有公开资料看不出来。
哪些是确认的,哪些是我的推断
确认的:ML-KEM-768 用于观察密钥,见 relayer 的 cryptography/mlkem.go;Pedersen 为 BabyJubJub 双生成元构造,见 enygma_math.go;审计私钥经 relayer 加密下发,见治理服务的 cryptography/service.go;支出密钥与观察密钥数学独立、观察范围可按时间与账户限定、审计员浏览器仅覆盖跨链交易且解密程度可在搭建阶段配置,均见官方技术文档。Cryptographic Trust Suite 统一持有密钥且 Relayer 从不持有密钥、密钥存储可插拔至 KMS 或 HSM、静态信封加密、机构自有密钥管理服务的审计日志即为密钥操作审计轨迹、签名密钥按使用轮换且已签待结算交易的密钥保持有效、封装按参与方对在建网时一次性完成、匿名集规模为 2 或 6、单次 crossTransfer 最多 5 条目标链、最终性为数十秒量级、冻结参与方经治理合约 ParticipantStorage 由运营方执行,均见官方技术文档。RlsTokenLock 的验证状态、非代理属性、48 档时间表、声明金额与实际余额,均为 2026 年 9 月 12 日通过公开浏览器接口读取。SGX 各漏洞编号来自 CVE 记录与 SGAxe 论文。Agorá 的结构与数据来自 BIS 公开材料。
我的推断:四份材料里只有论文对 Pedersen 的用词是精确的。"边界由数学强制"描述的是执行而非分发。SGAxe 比隔离类漏洞更能支撑博客的论点。这三条资料里没有这么写。
没能核实的:第五条的事后收回机制。我查了密钥管理、审计员浏览器、Enygma 密码学基础、参与方冻结、私有网络设计选项、私有网络枢纽六份文档,加上 relayer 与治理服务两个代码仓库,找到了可见性的三档配置、授予机制、以及参与方冻结与停用,没有找到收回已授予可见性并由密码学强制的实现。观察密钥的长期轮换同样没有查到,文档里描述轮换的那一节讲的是签名密钥。
最后说一件和技术无关的事
写这篇的同一周,官方宣布 55% 的质押档位延长到 9 月 15 日,并说在调整质押机制期间会让早期支持者继续拿到这部分收益,后续关于质押和更广泛代币经济包括销毁的更新会另行公布。
我从预承诺阶段就在质押,完整参与了三个月。原本的档位是 9 月 9 日结束,那几天我在界面上看到额度用满、无法追加,一度以为是前端出了问题。现在看是机制正在调整。
这段是我的个人看法,不是事实陈述:在改机制的窗口期里,选择延长而不是直接切断,并且把日期明确写出来,我觉得是有诚意的做法。机制调整期最容易出现的是含糊其辞,给一个确切日期意味着到期要么兑现要么再解释一次。
这只是一次具体事件,不构成对任何长期安排的判断。我不预测收益,也不建议任何人据此做决定。
参考来源:Rayls 官方博客 Auditability without surveillance: why mathematical enforcement beats trusting the code,2026 年 9 月 12 日;Rayls 官方技术文档的 Enygma 密码学基础与私有网络审计员浏览器两页;GitHub 组织 raylsnetwork 的 rayls-sovereign-relayer 与 rayls-sovereign-pnh-governance 仓库;Rayls 公链浏览器 explorer.rayls.com 的 addresses 与 smart-contracts 接口,取数时间 2026 年 9 月 12 日;NIST FIPS 203;CVE 记录 2018-3615、2019-11157、2020-0549、2021-0186、2021-33767、2022-21233 与 SGAxe 论文;BIS Project Agorá 原型报告 othp110;IACR 密码学电子档案 2025/1638 与 2025/1639;Rayls 官方 X 账号 2026 年 9 月 12 日公告。


