NAC_Blockchain/nac-wallet-core/WHITEPAPER_REQUIREMENTS.md

8.1 KiB
Raw Blame History

NAC钱包核心技术白皮书 - 实现要点

一、钱包架构

核心模块

  1. 密钥管理模块 - 生成/存储/签名
  2. 账户管理模块 - 地址派生、余额查询、历史记录
  3. 交易构造模块 - 转账、合约调用、资产发行
  4. 宪法收据模块 - 向CEE请求CR、验证CR
  5. 资产解析模块 - GNACS解析、代币标准识别
  6. 网络通信模块 - 与节点RPC交互、与CEE交互
  7. 宪法沙箱模块 - 模拟交易合规性

底层依赖

  • nac-primitives (Address, Hash, 编码转换)
  • nac_serde (序列化)
  • nac-toolbox (可选,用于一键上链)
  • 密码学库 (Ed25519, BLS, Dilithium)

二、密钥管理与账户模型

2.1 密钥生成

支持三种签名算法:

  1. Ed25519 - 默认账户密钥,用于普通交易
  2. BLS - 用于需要聚合签名的场景(如多签、跨链中继)
  3. Dilithium5 - 后量子备选,用于高安全需求账户

助记词: 遵循BIP39生成种子。派生路径遵循NAC标准: m/44'/626'/0'/0/index (其中626是NAC的BIP44 coin type需向SLIP注册)

2.2 结构化地址生成

公钥经SHA3-384哈希取前26字节加上版本、类型、KYC等级、区域等字段拼接成32字节Address。钱包应提供从公钥到结构化地址的完整计算。

地址字段:

  • version: 地址格式版本 (当前1)
  • type: 账户类型 (个人/企业/合约/系统)
  • kyc_level: KYC等级 (0-3)
  • region: 司法管辖区代码 (ISO3166-1)
  • pubkey_hash: 公钥哈希 (26字节)

2.3 密钥存储

  1. 加密: 使用AES-256-GCM加密私钥密码派生自用户口令
  2. 存储格式: JSON文件 (类似Web3 Secret Storage)包含加密私钥、地址、元数据账户类型、KYC凭证哈希等
  3. 硬件钱包支持: 计划支持Ledger、Trezor等硬件钱包通过NAC App集成

三、交易构造与宪法收据

3.1 交易结构

NAC交易包含两部分交易体 + 宪法收据 (CR)。CR必须在交易广播前获取。

message Transaction {
    bytes transaction_payload = 1; // 原始交易数据(类型、金额、目标等)
    ConstitutionalReceipt receipt = 2; // 宪法收据
}

3.2 交易构造流程

  1. 用户输入: 选择资产、输入接收地址、金额等
  2. 交易体构造: 钱包根据资产类型XTZH、XIC、ACC-20代币构造相应的交易体
  3. 向CEE请求CR:
    • 钱包将交易体或交易哈希及辅助信息如资产GNACS、KYC凭证发送给CEE节点
    • CEE验证交易符合宪法条款返回CR
  4. 签名: 用户用私钥对交易体+CR的联合哈希签名确保交易和CR绑定
  5. 广播: 将完整交易含签名发送至NAC节点

3.3 宪法收据 (CR) 格式回顾

message ConstitutionalReceipt {
    bytes32 transaction_hash;
    bytes32 constitutional_hash;
    uint64 clause_mask;
    bytes32 execution_result_hash;
    uint64 timestamp;
    uint64 validity_window;
    repeated bytes signatures; // CEE节点签名
    bytes32 receipt_id;
}

钱包需验证CR的签名、宪法哈希是否匹配当前网络、是否在有效期内。

3.4 多CEE节点策略

钱包可配置多个CEE节点地址。请求CR时可并行请求取第一个有效响应或等待多个签名对于高价值交易。若CEE节点无响应可切换备用节点。

四、资产支持

4.1 原生代币

  1. XTZH: 稳定币,用于支付、储备。单位: xtzh (精度1e6)。钱包需显示XTZH余额、汇率与SDR/USD
  2. XIC: 治理币,用于支付交易费、质押。单位: xic (精度1e18)

4.2 ACC-20代币

  1. 通过合约地址识别从链上获取GNACS编码
  2. 钱包解析GNACS显示资产类型、风险等级、合规要求等信息
  3. 支持发送ACC-20代币调用合约的transfer方法

4.3 ACC-1400证券型代币

  1. 支持分区余额(如普通股、员工股)
  2. 发送时需指定分区ID
  3. 钱包应展示不同分区的余额

4.4 GNACS解析

钱包内置GNACS解析器将48位编码转换为人类可读信息

  1. 资产类型(如"不动产收益权"
  2. 风险权重巴塞尔III
  3. 合规等级(完全合规/高风险等)
  4. 实时状态(正常/冻结/注销)

五、与CEE交互协议

5.1 CEE节点发现

钱包可从链上系统合约CEEList获取当前活跃CEE节点列表公钥、端点。建议钱包缓存此列表定期更新。

5.2 请求CR的API

POST /cee/v1/issue-receipt
Content-Type: application/json

{
    "transaction_hash": "0x...",
    "transaction_payload": "base64...", // 可选
    "auxiliary_data": {
        "kyc_proof": "...",
        "asset_gnacs": "..."
    }
}

响应:

{
    "receipt": { ... }, // CR对象
    "signature": "0x..." // CEE节点签名已包含在CR中
}

5.3 错误处理

CEE可能返回错误如"KYC等级不足"、"资产已冻结"),钱包应解析错误信息并友好提示用户。

5.4 离线CR高级

对于特殊场景如完全离线环境CEE可提供预签名收据但有效期较短。钱包需在有效期内广播交易。

六、离线与在线模式

6.1 在线模式

默认模式。钱包连接节点实时查询余额、发送交易、获取CR。

6.2 离线模式

  1. 用户可在离线环境构造交易,导出待签名文件
  2. 将文件导入在线设备或通过二维码获取CR和广播
  3. 离线钱包需存储宪法状态文件定期更新用于本地解析宪法条款、验证CR签名、估算费用等

6.3 宪法状态同步

钱包定期从节点同步最新的宪法状态文件constitutional_state.json用于本地解析宪法条款、验证CR签名、估算费用等。

七、宪法沙箱集成

钱包应集成宪法沙箱nac sandbox允许用户在发送真实交易前模拟交易结果。

  1. 用户选择"测试模式"钱包调用本地沙箱API模拟交易执行返回合规性结果、预估费用、CR等
  2. 沙箱模式不消耗真实XIC适合新手学习和复杂交易验证

八、与nac-toolbox及一键上链系统的联动

钱包将作为nac-toolbox的一部分提供CLI和API同时也有独立的图形界面版本桌面/移动/Web。所有钱包实现必须通过宪法法院的审计确保不泄露私钥、不篡改交易。

  1. 一键上链过程中,需要用户签名资产发行交易,钱包负责签名并将交易提交
  2. 钱包提供"资产发行"界面,引导用户完成信息填写(可复用一键上链前端部分逻辑)

九、安全与审计

9.1 私钥安全

  1. 私钥永不离设备,不通过网络发送
  2. 支持硬件钱包、生物识别等额外保护

9.2 交易验证

  1. 钱包在签名前必须向用户展示完整的交易详情包括接收地址、金额、资产类型、CR信息
  2. 高风险交易(如资产发行、大额转账)需二次确认

9.3 代码审计

  1. 钱包代码必须开源,并接受宪法法院授权的第三方审计
  2. 每次发布新版本,需提交审计报告,版本哈希上链存证

9.4 宪法免疫集成

钱包可集成宪政免疫系统客户端,定期检查自身代码哈希与链上合法版本是否一致,防止篡改。

十、路线图

阶段 时间 交付物
Phase 1 2026.02-03 CLI钱包原型支持XTZH/XIC转账、CR获取
Phase 2 2026.03-04 ACC-20/ACC-1400资产支持、GNACS解析
Phase 3 2026.04-05 图形界面钱包Web/桌面)
Phase 4 2026.05-06 移动端钱包iOS/Android
Phase 5 2026.06 硬件钱包支持、宪法沙箱集成
Phase 6 2026.07 主网上线,通过宪法法院审计

十一、结论

NAC钱包是连接用户与宪法区块链的桥梁。它不仅管理密钥和资产更确保每一笔交易在宪法框架内合规执行。通过深度集成CEE、GNACS、宪法状态等NAC原生特性钱包成为NAC生态中不可或缺的"合规入口"。所有实现均遵循开源、可审计原则与NAC"宪美中心化框架下的去中心化"理念一脉相承。


制定人: NAC钱包工作组 最后更新: 2026年2月14日 文档状态: 正式发布