# Beyul 技术草案：测试网前架构与披露模型

**Beyul Technical Draft: Pre-Testnet Architecture and Disclosure Model**

**项目名称：** Beyul　**类型：** 隐私公链研究原型（pre-testnet）
**文档状态：** 技术草案。本文不是协议白皮书、生产协议规范、投资文件、合规意见、安全审计报告、代币发行材料或主网公告。
**代币状态：** Tokenomics 未定稿，本文不含代币符号、分配或效用设计。测试网代币（如使用）无任何货币价值，且无主网兑换承诺。
**规范语言：** 英文版（`beyul-technical-draft-pretestnet.en.md`）为唯一规范版本（canonical）；本中文版为对照工作稿，冲突时以英文版为准。

---

## Claims 边界框（请先读这里）

本文档**不**作出以下任何声明：

- 不声明匿名性、不可追踪性或"绝对安全"；
- 不声明生产级零知识安全（当前为开发密钥原型）；
- 不声明生产级隐私（当前存取款金额在链上公开）；
- 不声明监管批准或"合规 by design"；
- 当前设计不包含项目方全局查看密钥；该属性需经开源实现、测试与外部审计验证；
- 无公开测试网、无主网；**测试网就绪工作进行中，多节点 runbook 与相关 gate 尚未完成**；
- 不承诺代币价值、空投、收益、回报或交易所上市；本文不讨论钱包产品或 DeFi；
- 16 字符披露码不是底层密码学安全凭证（第 7 章）。

---

## 1. 摘要

Beyul 是一个处于**研究原型阶段（pre-testnet）**的隐私公链项目，探索"默认隐私 + 用户可控披露"的支付基础设施：交易细节默认不对公众公开，但资产所有者可以自愿、按范围地向指定对象进行披露——以交易披露码（TDC）解释单笔交易，以资产披露码（ADC）披露所选资产快照。

**当前已实现的仅是客户端披露码派生原型**（经本地测试；公开证据包待固化）以及基于 Cosmos SDK 的链应用原型。端到端的服务端授权、链上验证、ZK 余额证明均未实现；无 trusted setup、无外部审计、无公开测试网或主网；存取款金额当前在链上公开。本草案的目的，是在公开测试网上线前，如实记录架构方向、披露模型与当前边界。

## 2. 定位与问题

公开账本将支付关系、余额与资金流向暴露给任意观察者；而多数强隐私系统使"选择性披露"难以操作——向一个对象解释一笔交易，往往意味着交出查看全部历史的能力。Beyul 探索的缺口是：把"披露"做成与"隐藏"同等级的一等公民原语，且披露完全由用户发起。

Beyul 不与"完全匿名、不可追踪"叙事竞争，也不以此为目标。

## 3. 当前状态

| 领域 | 现状 | 说明 |
|---|---|---|
| 链应用 | 原型 | Cosmos SDK / Ignite |
| 共识/验证者模型 | 测试网设计 | CometBFT BFT + PoS 式初始验证者集与 staking 模块；非 PoW；非主网级 PoS 经济安全 |
| Shielded 模块 | 原型 | 存款、取款、花费、viewing key 注册、note 披露 |
| Commitment / Merkle 树 / Nullifier | 原型 | 确定性行为与双花拒绝有测试覆盖 |
| 披露码客户端密钥栈（TDC/ADC 派生） | 原型，本地测试通过 | **公开证据包（commit/CI）待固化** |
| 服务端 grant 栈 / 链上披露验证 / ZK 余额证明 | 未实现 | 计划中 |
| 收支 view key 拆分 / audit key / 披露撤销与过期 | 未实现 | 计划中 |
| Trusted setup / 外部审计 | 未完成 / 未开始 | 生产声明前置条件 |
| 公开测试网 / 主网 | 未部署 | **测试网就绪进行中：多节点 runbook 与相关 gate 未完成** |
| 官方钱包 | 不存在 | 仅开发与测试工具；任何"官方钱包"均为假冒 |
| 代币经济 | 未定稿 | 本文不含代币设计 |

## 4. 技术模型

原型以 shielded-pool 状态机为核心：资产以 note 表示，链上仅存承诺（commitment），承诺插入 Merkle 承诺树；花费公布 nullifier，重复即拒绝，防双花而不暴露被花费的 note。花费验证接入 Groth16 验证代码——**当前使用开发/骨架 verifying key，无 trusted setup，不构成生产 soundness 或隐私**。对外标准措辞：「原型包含一条使用开发密钥的 Groth16 验证路径，尚不提供生产级零知识安全。」

## 5. 隐私模型与当前限制

| 维度 | 目标模型 | 当前原型 |
|---|---|---|
| 屏蔽池内金额与收发关系 | 隐藏 | 原型路径，未达生产 |
| 存款 / 取款金额 | 待设计 | **公开** |
| 交易时间 / 费用侧信道 / mempool | 缓解待设计或范围外 | 未缓解 |
| 验证者排序 / 审查 / MEV | 部分协议外 | 未缓解 |
| 网络层与交易所/桥元数据 | 协议范围外 | 范围外 |

**当前原型不是生产级隐私。**

## 6. 密钥与披露模型

权限从高到低：**Spend Key**（唯一可花费，永不离开用户设备，不参与披露流程）→ **Full View Key**（只读；计划拆分收/支子密钥）→ **Audit Key**（计划中：用户自愿签发、限时、限范围、可撤销；非协议强制通道）→ **Disclosure Credential**（绑定单笔交易或资产快照的最小披露单元）→ **16 字符披露码**（入口短码，不是密钥）。

**项目方查看权限边界**：当前设计不包含项目方 master view key。该属性需通过开源实现、测试与外部审计验证，而非依赖对团队的信任——密钥派生路径随代码开源，任何第三方可审计派生图中不存在通向项目方的分支。外部审计完成前，这是"待验证的设计属性"，不是"保证"。

**助记词口径（设计文档，非已实现产品）**：钱包根密钥默认采用 24 词助记词（BIP39），下游密钥经域分离派生（HKDF + domain tags）。**助记词不得出现在任何披露流程中**；披露码与 `link_secret` 均不得由助记词单独派生——TDC/ADC grant 应在用户主动披露时由 CSPRNG 与本地授权生成。

## 7. TDC / ADC 披露原型

### 7.1 术语与编码

正式术语为「**16 字符 Crockford Base32 披露码**」（剔除易混淆字符 I/L/O/U，短码熵约 80 bit），可简称「16 字符披露码」。不使用「16 位披露码」「16 位数字披露码」「16 位安全码」等表述——中文「位」易被误读为数字位；纯数字方案（≈53 bit）已因熵预算不足被否决。

> **「16 字符披露码不是底层密码学安全凭证。它是用户友好的访问入口，真实授权应由高熵 disclosure credential、签名、权限范围、过期时间和验证逻辑共同保护。」**

### 7.2 当前真实状态（必读）

Beyul 拥有的是一个**经本地测试的 TDC/ADC 客户端派生原型**。端到端的服务端 grant、链上状态验证、ZK 余额证明**均为计划项，未实现**。因此**不得**表述为：已实现可验证披露、已能证明资金状况、ADC 已能证明精确余额、披露码可以链上验证。

客户端原型已覆盖（本地测试）：双因子 KEK（`link_secret` + 16 字符码缺一不可）、规范编码、TDC 收发角色绑定、TDC/ADC 域分离（互不可打开）、AEAD 信封与 AAD 防篡改、慢哈希校验子（目标套件 Argon2id，生产适配器待接线）、擦除密钥 crypto-shredding、跨语言冻结向量。

### 7.3 TDC 与 ADC 语义

| 能力 | 披露什么 | 不披露什么 | 现状 |
|---|---|---|---|
| TDC 交易披露码 | 单笔交易/输出的限定字段，收发角色分离 | 花费权、完整历史、未来交易 | 客户端派生原型；服务端与链上验证未实现 |
| ADC_L1 资产披露码·下界档 | 用户选定的资金证明 / 余额下界声明 | 完整余额、notes、nullifiers、交易对手、历史 | 客户端派生原型；**证明系统未实现** |
| ADC_L2 资产披露码·精确档 | 最终化高度上选定资产的精确余额快照 | notes、nullifiers、交易对手、历史 | **仅设计**；需完整性来源 + ZK 余额证明 |

**披露三难**：隐藏所有权的系统无法同时承诺"余额完整、不泄露历史、不交出查看密钥"——用户能证明拥有某些 notes，但无额外完整性来源时无法证明"没有遗漏"。故 ADC 必须分档，且 ADC 披露的就是所选资产集在所选高度的余额，不得描述为"不泄露余额"。

ADC 风险（保持公开）：向同一对象重复出示快照会泄露余额变化趋势；净值暴露构成人身安全与胁迫风险（ADC 应默认关闭、显式确认）；轮换无法收回对方已见信息。

### 7.4 披露码 FAQ

| 问题 | 答案 |
|---|---|
| TDC 是什么 | 交易披露码，只披露一笔交易/输出的 scoped 信息 |
| ADC 是什么 | 资产披露码，披露用户选择的资产余额快照 |
| ADC 是否披露余额 | 是——ADC 披露所选余额快照（selected balance snapshot） |
| 披露码能否花钱 | 不能。所有 disclosure credential 必须 `canSpend=false`（协议层不变量） |
| 披露码是否永久 | 不应默认永久：设计含 expiry / maxViews / 撤销 / 擦除密钥；但撤销完成前，已披露内容应视为不可收回 |
| 披露码如何被保护 | 双因子（`link_secret` + 16 字符码）、AEAD 信封、AAD 绑定、慢哈希校验子；**服务端限流与统一错误响应仍待实现** |
| 披露码是私钥吗 | 不是。它转不走资产，也不能替代 Spend/View/Audit Key；但别乱发——发出去的信息收不回来 |

## 8. 测试网计划（当前焦点）

### 8.1 验证者模型

测试网采用 **PoS 式 BFT 验证者模型**：Cosmos SDK + CometBFT、初始验证者集、staking 模块测试流程。它不是 PoW，也**不是主网级 PoS 经济安全**——主网经济模型属远期研究，不在本草案范围内。

### 8.2 测试网就绪状态（如实）

测试网就绪**进行中**：多节点 runbook 与相关 gate 尚未完成（相关 PR 未全部合并、检查未通过）。在这些 gate 关闭并登记证据前，本项目不使用 testnet-ready 口径。

上线前置清单：证据包闭合、testnet chain-id 与 genesis、验证者接入指南、3+ 节点多节点 runbook、水龙头政策与限流、公共 RPC/API 政策、监控面板、事件响应流程、已知限制清单、参与者命令流、测试代币无价值声明。

### 8.3 测试网能验证什么 / 不能证明什么

**能验证**：节点运行与出块、staking 模块流程、水龙头、RPC、监控与事件响应、披露码演示流程、shielded 模块原型流程。
**不能证明**：生产隐私、主网 PoS 经济安全、代币价值、监管接受度、生产 ZK soundness。测试网上线不得被宣传为"生产验证"。

### 8.4 参与须知

测试网代币无任何货币价值、无主网兑换承诺；没有官方钱包——参与仅使用官方发布的命令行工具与文档；**任何流程都不需要你的助记词进入披露环节**，索要助记词的"官方"均为骗子；当前不存在任何代币销售、私募、白名单或空投登记。

## 9. 威胁模型（保持公开直至缓解）

时间/金额关联、费用侧信道、mempool 观察、验证者排序与审查（未缓解）；网络层与桥/交易所元数据（范围外）；披露转发不可控、撤销未实现、ADC 时间序列与净值暴露、胁迫签发（未缓解/如实公开）；钓鱼与社工、假冒钱包与假冒官方渠道（未缓解，以用户教育与官方渠道清单应对）；电路缺陷、trusted setup、外部审计（未验证/未解决/未完成）；测试网代币价值混淆与收益混淆（不允许——测试币无价值，任何奖励记账均为模拟）。

## 10. Roadmap（gate-based，无日期承诺）

> 每个能力只能处于以下状态之一：Implemented / Local tested / Prototype / Documentation only / Planned / Unverified / Not implemented。任何给不出 commit、CI、测试命令与输出的声明，不得写成已实现。

| 阶段 | 目标 | 退出标准（摘要） |
|---|---|---|
| Phase 0 证据闭合与文档收束 **← 当前阶段** | 证据附录补齐、公开叙事收束到测试网 | 所有已实现声明有证据；无代币/钱包/DeFi/主网暗示 |
| Phase 1 测试网 readiness | 完成 8.2 前置清单 | 3+ 节点 devnet 稳定出块、runbook 可复现、PR checks green |
| Phase 2 公开测试网 | 受控公开实验 | 外部节点可加入、水龙头滥用可控、无主网或收益误导 |
| Phase 3 TDC MVP | 单交易 grant 端到端 | 错码/过期/超额访问行为安全、不泄露 grant 存在性、只返回 scoped fields |
| Phase 4 ADC_L1 | 下界资金证明 | 不被写成精确余额、时间序列风险公开、TDC/ADC 互不可打开 |
| Phase 5 链上披露验证 | root-bound verification | 错链/错 root/错 scope/错 asset 均被拒绝、重放保护 |
| Phase 6 生产 ZK 路线 | 可审计证明系统 | 不再使用 dev VK、外部密码学审计、完成前不得说 production ZK |
| Phase 7 ADC_L2 | 精确余额快照 | 完整性可证、不泄露历史、不变成长期 viewing key |
| Phase 8 外部审计与 pre-mainnet | 主网候选前审查 | 协议/密码学/实现审计、法律审阅、证据包公开 |

顺序不可倒置：**测试网 → TDC MVP → ADC_L1 → root-bound verification → production ZK → ADC_L2 → audit → pre-mainnet**。

## 11. 合规边界

Beyul 不是合规方案：不实现 AML、KYC、travel rule、冻结、制裁筛查或报告工作流，不声称"合规 by design"。所有披露由用户发起；协议无强制披露通道；当前设计不包含项目方全局查看密钥（待开源实现与审计验证）。机构与个人应自行评估所在司法辖区对隐私资产的监管立场。

## 12. 风险声明与 Disclaimer

本文件仅供信息参考，不构成且不应被解释为：任何证券、商品或金融工具的发行或销售要约；投资、法律、税务或财务建议；对任何司法辖区合规性的陈述。本文包含前瞻性陈述（设计目标、测试网计划、路线图），均受重大不确定性影响，实际结果可能与之存在重大差异。

本项目当前**没有**发行任何代币；测试网代币（如使用）无任何货币价值。参与加密资产网络存在重大风险。请自行研究并咨询专业顾问。任何翻译版本与英文规范版本冲突时，以英文版为准。本 Disclaimer 为通用模板，正式对外发布前须经属地律师审阅。

## 13. 结论

Beyul 的方向是"默认隐私 + 用户可控披露"。当前可信的资产：链应用原型、经本地测试的 TDC/ADC 客户端派生原型、与实现严格对齐的现状表与威胁模型。当前唯一焦点是**公开测试网上线前置条件**：证据闭合、多节点 runbook、水龙头与监控、参与者文档。在相应证据存在前，本项目不作主网、代币、生产隐私或合规声明。
