验证
自己查,别信我们的话
本站的每一个宇宙都是区块哈希的纯函数。这个函数开源,任何人都能跑一遍,把结果与 BNB Chain 上存的东西比一比。两条命令,不需要账号,不经过服务器。
复算任意宇宙
git clone https://github.com/q3579338/bnbbang-engine
cd bnbbang-engine
node tools/recompute.js 0x0d21840abff46b96c84b2ac9e10e4f5cdaeb5693cb665db62a2f3b02d2d57b5b
recompute.js 仅凭哈希就重建 23 个参数、结局、等级和 cardHash。推导是纯整数运算,所以结果在每个平台上都完全一致。零依赖,Node 18 或更高。
与链上比对
node tools/verify-onchain.js 1
verify-onchain.js 从 BSC 主网的 MirrorUniverse 合约读出 #1 号 token,用随它存储的区块哈希重新计算宇宙,然后逐字节比对参数、结局、等级和 cardHash。被拯救过的宇宙(烧 BANG 推过常数)由区块哈希加上写进交易里的操作日志复算,不需要服务端的存档。
仓库附带 292 项引擎自检和 118 项链上比对测试。node engine/test.js 在本地跑第一组。
签名证明了什么,没证明什么
铸造需要服务端签名:合约只开放 bangSigned()。服务端重新计算参数并盖章,这样没有人能铸一个伪造的宇宙学。签名者地址可通过 signer() 在链上读到,也列在下方;任何人都能核对某个 NFT 的签名恢复出的正是这个地址。协议连同可运行的验证器和真实测试向量,在 docs/signing-protocol.md。
签名不能让服务端凭空发明宇宙:被签名的参数必须等于 recompute.js 从哈希算出的结果,而这正是 verify-onchain.js 检查的东西。
BSC 主网上的合约
chainId 56,部署于 2026-08-22。没有代理,没有升级路径,没有 selfdestruct,没有 delegatecall,没有暂停。
| 合约 | 地址 |
|---|---|
| BangToken(BEP-20) | 0xa5306b022f24b920aeafbff9f0dba1a391c4442d |
| MirrorUniverse(NFT) | 0x1661086ee19cc8ef938e98ad9058e74fa870aa78 |
| MirrorMarket | 0x5f1def4874613b64bac2272424f2041e1359b001 |
| BangNames | 0x6a732c3dd5555ee6c60c380e4e53b9a1f9cb17d6 |
| BangNames2 | 0x36e5d8358b9d97ab41ac9daf1ee962f4ec6001b0 |
| MirrorCrafted | 0x12ce81dbfbfae6614ae98a64a223a9369b43d30a |
| BangVesting(团队 1 亿) | 0xb3e1af9f2b57f9ed6d73a75a895f66f757e6e0e1 |
| BangPromo(上交易所费用 1 亿) | 0xaddd4a144b7371afc37cb590fa5570a0f2e72179 |
| 邀请返利金库(2 亿) | 0xfaec0579f6f15ec7e5048b0e11e273a6e40641c6 |
签名者(链上 signer()) | 0x81F355093ef706bA5a6e74e9F286C28A479D33Ee |
实时检查:/api/health 报告服务端正在使用的链 id 与签名者;它们必须与合约一致。/api/market/status 显示市场索引落后链多少。
跑在真实字节码上的测试
所有合约测试都在本地 EVM 上执行编译后的字节码,来自 bnbbang-economy:
| 测试集 | 检查项 | 测试集 | 检查项 |
|---|---|---|---|
| economytest | 196 | craftedtest | 110 |
| markettest | 127 | vestingtest | 41 |
| nametest | 125 | promotest | 49 |
| names2test | 156 | crosscheck | 110 |
三件仍需信任的事
- 铸造需要服务端盖章。这是合约层面的要求,不是前端的选择;签名者在链上,盖章的参数可以复算。
- 邀请返利经人工核对后发放。一级 10%、二级 5%,按被邀请人的铸造奖励计;女巫(刷号)模式不予发放。链上每一笔发放都带有原因。
- 存在几个 owner 旋钮,全部有界。三个免费铸造开关只能调紧;拯救抽成默认 0(上限 20%);市场手续费上限 10%;每次铸造的发币量落在 100–2000 之间。