10 月 15 日我分两笔把 一些 BRL1 从 Polygon 桥到 Rayls,换成 BRL1.p 存进了 Rayls 第一个金库的启动存款。页面上写着每一枚 BRL1.p 都由 BRL1 一比一背书,但说实话,我按下确认的时候并没有办法自己核对这句话。这篇就是事后把"怎么核对"完整做了一遍。
先说答案
跨链桥上的稳定币说"1:1 背书",其实是三件事叠在一起。最直观的是桥的金库里锁着的币够不够,这一件加上"有没有人能绕过金库多印币",都可以在链上直接查;剩下那件,也就是被锁的稳定币本身有没有真实储备,已经出了区块链,只能看发行方的报告。
打个比方,桥就像衣帽间:你交一件外套,拿一张存衣牌。数一数衣架上的外套和发出去的牌是不是一样多,这是最容易的检查;更要紧的是谁手里有空白牌,以及外套本身是不是真货。
我在 2026 年 10 月 17 日 07:21 UTC 对 BRL1.p 做了这三层检查。金库和流通量完全对上:Polygon 金库里锁着 250,013.482911 枚 BRL1,Rayls 上 BRL1.p 的总量也是 250,013.482911 枚,一位小数都不差。铸造权按代码只交给了桥合约,不过能修改规则的权限目前集中在一个普通钱包地址上。至于 BRL1 的储备,发行方 10 月 1 日的报告写的是 111.35% 抵押,报告里链上的那一半我核对上了,银行那一半报告自己写明还没有经过独立审计。
下面每一步都写了在哪里查、查什么,读者可以照着重复。
"1:1 背书"到底是哪三件事?
BRL1 是巴西几家机构(Mercado Bitcoin、Bitso、Foxbit、Cainvest)组成的联盟在 Polygon 上发行的雷亚尔稳定币。BRL1.p 是它在 Rayls 链上的桥接版本,用的是 LayerZero 的"锁定再铸造"模式:你在 Polygon 上把 BRL1 存进桥的金库,Rayls 上就给你铸出等量的 BRL1.p;反过来赎回时,Rayls 上先销毁 BRL1.p,Polygon 上的金库再把 BRL1 放出来。
Rayls 文档对这件事的说法是,每一枚 BRL1.p 都由金库里的 BRL1 一比一背书,任何人都可以在链上检查这个金库。这句话本身没错,但它只覆盖第一层。我想弄清楚的是,一个普通用户能把这三层各自查到什么程度。

第一层:金库余额和流通量对得上吗?
第一层不需要写任何代码。打开区块浏览器,读两个数字就行。
Polygon 这边,打开 BRL1 合约(0x5C067C80C00eCd2345b05E83A3e758eF799C40B5)在浏览器上的"读取合约"页面,因为它是代理合约,要点"Read/Write proxy"。找到 balanceOf,填入桥的金库地址 0x3Ea6BaC7d4138BcC126D0F17aE10122B3620abA6,点 Read。我读到的结果是 250013482911000000000000,BRL1 有 18 位小数,换算后就是 250,013.482911 枚。
Rayls 这边,打开 BRL1.p 合约(0xA069d3798FEAb32994aC5D98A9F011DA6024f334)在 explorer.rayls.com 上的同一个页面,读 totalSupply,结果同样是 250013482911000000000000。
这里有个小坑值得说一下。我在 Polygon 的 Blockscout 浏览器上直接看金库地址的"Tokens"栏,07:11 UTC 显示的是 0 个代币,而一分钟后读合约得到的是 25 万多枚。余额栏是浏览器自己整理的索引,可能滞后或缺项,合约里的数才是链上状态。所以验证的时候,读合约,别看余额栏。
还要知道一个细节:健康的状态是"金库 ≥ 流通量",而不一定是严格相等。跨链要等消息送达,我统计了这座桥迄今为止全部 13 笔从 Polygon 到 Rayls 的转账,从金库收到 BRL1 到 Rayls 铸出 BRL1.p,用时在 248 到 274 秒之间,中位数 265 秒;两笔反方向的赎回分别用了 57 秒和 63 秒。这和文档写的"约 5 分钟""约 2 分钟"一致。在这段时间里,金库会比流通量多出正在路上的那一笔。反过来,如果哪天流通量大于金库余额,那才是需要警惕的信号。
我从 07:04 到 07:21 UTC 之间一共读了四次,每次两边都是 250,013.482911。
只看余额够吗?把流水也对一遍
余额对上,只能说明此刻对得上。更进一步的检查,是把这座桥从部署到现在的每一笔进出都对一遍。
Polygon 上,金库自 10 月 13 日部署以来一共收到 13 笔 BRL1,合计 259,589.937257 枚;Rayls 上 BRL1.p 一共铸造了 13 次,合计也是 259,589.937257 枚。金库一共放出 2 笔,合计 9,576.454346 枚;Rayls 上销毁也是 2 笔,合计 9,576.454346 枚。我按"金额相同、地址相同、时间先后"把它们一一配对,13 对和 2 对全部配上,每一对的发送地址和接收地址都是同一个钱包。需要说明的是,这个配对是我按金额和地址做的,没有去逐条解码 LayerZero 的消息编号。
其中有两笔是我自己的:分别用了大概 260 秒和 250 秒到账。
第二层:谁能多印、谁能改规则?
衣架和存衣牌数量一样,不代表没人能偷偷印牌。这一层要看合约代码和权限。
BRL1.p 的合约代码已在 Rayls 浏览器上验证公开。按代码,只有持有 MINTER_ROLE 的地址能铸造,只有持有 BURNER_ROLE 的地址能销毁,普通持有人不能直接销毁。代码注释里写的设计目标正是"Polygon 上锁定的 BRL1 等于 BRL1.p 总量"。我从链上事件里读到,这两个角色从部署到现在只授予过一个地址:Rayls 上的桥接合约 0xE56dDf65E311CddB71f69c0aC4D27E58B239D69a,没有任何撤销记录,也没有授予给其他地址。
两边的桥合约也互相指认:Polygon 金库登记的对端是这个 Rayls 合约,Rayls 合约登记的对端是这个 Polygon 金库。跨链消息要过三个"验证网络"(LayerZero 叫 DVN)都签字才算数,分别是 LayerZero Labs、Nethermind 和 Canary,三个全部必需,没有可选项。从 Polygon 发出的消息要等 120 个区块确认,从 Rayls 发出的要等 10 个。这和 LayerZero 自己的集成检查清单里"不止一个 DVN、至少有一个不是 LayerZero Labs 运营"的建议是一致的。
真正值得留意的是另一组权限。BRL1.p 是一个可升级合约,持有 DEFAULT_ADMIN_ROLE 的地址可以给任何地址授予铸造权,持有 UPGRADER_ROLE 的地址可以换掉合约代码。这两个角色,加上暂停权、两边桥合约的 owner,以及 LayerZero 端点上的配置代理人,截至我查询时都在同一个地址0x633Ac5e2315b973417e8caa6B3Ad2162e0461ce1 上,而这个地址在两条链上都没有合约代码,也就是一个普通钱包,不是多签。
这不等于有人会作恶,它说明的是"1:1"在这一层依赖的是这把钥匙的保管,而不是数学。LayerZero 的集成检查清单建议把合约 owner 和端点代理人都设成多签或治理合约。启动存款现在还是试点阶段,后续这些权限会不会迁到多签或时间锁,是值得持续观察的一点,也是任何人都能用下面的脚本重新读出来的。
顺带一提,Polygon 金库在浏览器上验证的源码名字叫 WDATAAdapter,注释里写的也是另一个代币。读到这里可能会让人一愣。这个合约文件本身只写了一个构造函数,其余逻辑都来自 LayerZero 的 OFTAdapter 库,而部署时的构造参数指向的就是 BRL1,链上读 token() 返回的也是 BRL1 的地址。看起来是复用了模板没改名,我没有找到它影响功能的证据。
第三层:BRL1 自己的储备,链上查得到吗?
前两层都在链上。第三层要问的是:被锁在金库里的 BRL1,背后真的有雷亚尔吗?
BRL1 官网上我能打开的储备报告,参考日是 2026 年 10 月 1 日。报告写的是:当天 16:07:25 UTC、Polygon 第 94777137 区块,BRL1 流通量为 17,381,384.54 枚;储备合计 R$19,354,372,抵押率 111.35%。储备构成是银行存款 3.25%、巴西国债 LFT 32.31%、回购协议 64.44%,存放在 Banco XP 以联盟名义开立的独立账户。
报告里链上的那一半,我用存档节点读了同一个区块的 totalSupply,结果正是 17,381,384.54 枚,区块时间是 16:07:26 UTC,和报告差一秒。银行那一半就到不了链上了。报告自己写明,它由 BRL1 团队内部编制、经联盟董事会批准,"has not yet been audited by an independent entity"。而 Rayls 的 BRL1.p 文档里的措辞是"the consortium publishes audited proof-of-reserves reports"。
另外,BRL1 合约本身接了一个名为 DenyList 的访问控制合约:被拒绝的地址不能转账,持有恢复权限(RECOVERY_ROLE)的地址还可以把被拒绝地址里的币转走。很多受监管的稳定币都有类似设计,它意味着金库里的 BRL1 也处在发行方这一层规则之下。我查询时桥的金库是允许状态,BRL1 也没有暂停。金库里的 250,013 枚 BRL1,大约占 Polygon 上 BRL1 总量 16,575,367.54 枚的 1.51%。
一份能带走的复查清单
把以上步骤写成了一个只读脚本,不需要钱包,也不需要 API 密钥,浏览器按 F12 粘贴进控制台,或者用 Node 18 以上运行都可以。脚本、运行日志和截图都放在 GitHub 上,链接固定在这次运行对应的提交(commit 9d09d0c):https://github.com/hansonhan0520-lang/rayls-verify/tree/9d09d0cdca2c5446d22777db57513a46e0bace86/2026-10-brl1p-backing 。它会依次输出六项:金库余额与流通量、全部进出流水、两边是否互指、谁持有哪些权限、DVN 配置、BRL1 发行方层面的状态。
需要分清的是,文中的余额、流水、权限和配置都是我直接从链上读出来的;"复用了模板"和"权限后续会不会迁移"是我的推断或观察点,不是链上能证明的事。
测试时我还遇到一个情况:Rayls 官方公共 RPC 对部署那几个区块(12437224 附近)不返回事件日志和交易回执,而 Rayls 浏览器有这些记录,所以脚本里 Rayls 一侧的历史事件改从浏览器接口读取,当前状态仍然从 RPC 读。
以后再看任何一个"1:1 桥接"稳定币,可以先问这几个问题:金库余额是不是大于或等于流通量;铸造权是不是只在桥合约手里;能改规则的权限是不是多签;跨链消息要几个独立验证方签字;底层稳定币最近一份储备报告是哪天的、有没有经过独立审计。
本文的余额、流水、权限和配置数字来自 2026 年 10 月 17 日 07:04 到 07:21 UTC 之间的读取,储备报告那个历史区块是同一天稍后核对的,之后的数字会随着存取变化。这些都是本文第一次测量的新数据,没有沿用我之前文章里的结论。
风险提示:启动存款锁定到最晚 11 月 19 日,金库条款尚未定稿;Rayls 官方列出的风险包括 BRL1.p 可能贬值或无法赎回、智能合约故障等。参与需要完成 KYC,部分地区居民不在参与范围内。本文不构成投资建议。
参考来源:
Rayls 文档,Get BRL1.p(读取于 2026-10-17):https://docs.rayls.com/docs/get-brl1p
Rayls 博客,First vault on Rayls: launch deposits open(2026-10-15):https://www.rayls.com/blog/first-vault-on-rayls-launch-deposits-open
BRL1 储备报告 Proof of Reserves,参考日 2026-10-01:https://drive.google.com/file/d/1BuRUC6u3UTzf17kOChhKby_L9hE5IU73/view
BRL1.p 合约源码(Rayls 浏览器,2026-10-16 验证):https://explorer.rayls.com/address/0xCAcBa996CA4c2AC37144BA30BFEBC5f7cDBD36D7?tab=contract
Polygon 桥金库合约(Blockscout,2026-10-15 验证):https://polygon.blockscout.com/address/0x3Ea6BaC7d4138BcC126D0F17aE10122B3620abA6?tab=contract
LayerZero 集成检查清单(读取于 2026-10-17):https://docs.layerzero.network/v2/tools/integration-checklist
LayerZero DVN 公开名录(读取于 2026-10-17):https://metadata.layerzero-api.com/v1/metadata/dvns
本文核查脚本与证据(commit 9d09d0c):https://github.com/hansonhan0520-lang/rayls-verify/tree/9d09d0cdca2c5446d22777db57513a46e0bace86/2026-10-brl1p-backing
#Rayls $RLS #BRL1 #稳定币 #跨链桥
