bZIP 把 Zcash 的屏蔽交易模型带到 BNB Smart Chain:存入时只留下承诺,支取时只出示证明。下面是它的工作方式,以及你如何亲手核验每一步。
协议参数
- 网络
- BNB Smart Chain · chainId 56
- 证明模型
- ZEC Proof · Sapling 同源
- 承诺树
- 增量 Merkle 树 · 深度 20
- 容量
- 1,048,576 张凭证
- 哈希
- keccak256 mod BN254 r
- 面额
- 1 BNB 固定面额
- 根历史
- 最近 30 个根
- 凭证前缀
- omni-bsc-1
01bZIP 是什么
bZIP 是 BNB Smart Chain 上的隐私工具集,把共享屏蔽池、私密发送、代币风险检查与链上核验放进同一个界面。资金进入共享池后,链上只看得见“池子”,看不见“你”。
02ZEC Proof:零知识证明模型
bZIP 沿用 Zcash Sapling 的屏蔽思路:每笔存款都是一张凭证。支取时你要证明的是——“我知道树中某一张凭证的秘密,而且它从未被花费”,却不透露是哪一张。
public root, nullifierHash, recipient, relayer, fee
private nullifier, secret, pathElements[20], pathIndices[20]
assert commitment = H(nullifier, secret)
assert MerkleRoot(commitment, path) == root
assert nullifierHash = H(nullifier)- 公开输入只有 root、nullifierHash、收款地址、中继器与手续费。
- nullifier、secret 与 Merkle 路径始终留在你的浏览器,从不上传。
- 证明与收款地址、手续费绑定,中继器无法改写收款人或多收费用。
03凭证(Note)格式
凭证是取回资金的唯一钥匙,由浏览器在本地生成。它把两个随机数编码进一串可复制的文本里。
omni-bsc-1-0x<nullifier · 31 bytes><secret · 31 bytes>- nullifier 与 secret 都是 248 位随机域元素,由浏览器 CSPRNG 生成。
- commitment = H(nullifier, secret);nullifierHash = H(nullifier)。
- 与 omniZEC 凭证格式兼容。丢失凭证即丢失资金,没有任何人能够恢复。
04承诺树
每个 commitment 被写入一棵 20 层的增量 Merkle 树。节点哈希为 keccak256(left ‖ right) 再对 BN254 标量域取模,使数值可以直接进入 SNARK 电路。合约保留最近 30 个根,所以基于稍早状态生成的证明依然有效。
05双花防护
支取时公开的 nullifierHash 会被合约标记为已花费。同一张凭证无法使用第二次,而 nullifierHash 本身不泄露它对应树中的哪一片叶子。
06私密发送与中继器
凭借凭证,你可以从池中向任意地址付款。中继器代为提交交易并垫付 gas,从池中扣取约定手续费,收款方看不到你的钱包,你的钱包也不需要持有 BNB。
07钱包与网络
钱包连接由 Privy 提供,支持 MetaMask、Binance Wallet、OKX、Trust、WalletConnect 等主流 EVM 钱包,以及邮箱登录的内嵌钱包。网络锁定为 BSC(chainId 56),连接后若不在 BSC 会自动请求切换。
08隐私的边界
存入动作本身在链上可见。为了更好的匿名性,请在存入后等待一段时间再支取,并避免金额和时间上的明显关联。本项目仍处于实验阶段,切勿存入无法承受损失的资金。
09自行核验
所有读取都直接请求公开的 BSC RPC 节点。你可以把任意交易哈希粘贴到“核验”,把代币地址粘贴到“检查”,再到 BscScan 交叉比对结果。