214 lines
7.6 KiB
Markdown
214 lines
7.6 KiB
Markdown
# Issue #70 — 宪法层规则增补:多辖区节点共享条款
|
||
|
||
**状态:** 已完成
|
||
**版本:** 1.0
|
||
**日期:** 2026-03-07
|
||
**关联白皮书:** 《NAC公链多辖区节点共享方案与技术落地白皮书》v1.0
|
||
**关联 Issue:** #59(多辖区节点共享方案)、#66(宪法增补条款A01-A43)
|
||
|
||
---
|
||
|
||
## 一、工作概述
|
||
|
||
本次工单在现有宪法增补条款(A01-A43)基础上,新增 **9 条多辖区节点共享宪法条款(A44-A52)**,覆盖物理共享逻辑隔离、跨辖区区块生产、资源协商分配、节点身份绑定、WASM沙箱、CEE集群、争议裁决、CSNP路由、存储加密等核心规则。
|
||
|
||
---
|
||
|
||
## 二、新增宪法条款清单(A44-A52)
|
||
|
||
| 条款编号 | 层级 | 条款名称 | 核心规则 | 违规处理 |
|
||
|----------|------|----------|----------|----------|
|
||
| A44 | Strategic | 多辖区节点物理共享许可 | 物理共享节点必须容器化逻辑隔离 | reject_block |
|
||
| A45 | Strategic | 跨辖区区块生产双CR强制 | 区块头必须含 jurisdiction_merkle_root | reject_block |
|
||
| A46 | Strategic | 共享资源辖区协商分配 | 资源分配需委员会≥67%投票 | revert_allocation |
|
||
| A47 | Tactical | 节点身份辖区绑定强制 | GIDS注册需辖区政府数字签名 | reject_node_registration |
|
||
| A48 | Tactical | WASM规则插件沙箱执行强制 | 插件执行≤10ms、≤64MB、哈希上链 | terminate_plugin_execution |
|
||
| A49 | Tactical | CEE节点跨辖区共享验证 | CEE必须支持多辖区并行验证 | fallback_to_single_jurisdiction_cee |
|
||
| A50 | Tactical | 辖区争议宪法法院裁决 | 争议必须提交宪法法院、判决上链 | freeze_disputed_resources |
|
||
| A51 | Tactical | CSNP辖区感知路由强制 | CSNP必须识别辖区并保留原始CR | reject_non_compliant_routing |
|
||
| A52 | Tactical | 共享存储敏感数据加密 | AES-256-GCM加密、≥3副本冗余 | quarantine_unencrypted_data |
|
||
|
||
---
|
||
|
||
## 三、交付文件清单
|
||
|
||
### 3.1 CNNL 宪法条款文件
|
||
|
||
```
|
||
nac-constitution/clauses/node_sharing_clauses.cnnl
|
||
```
|
||
|
||
- 9条条款的 CNNL 形式化表达
|
||
- 每条包含:tier(层级)、clause_index(索引)、predicate(谓词)、obligation(义务)、violation_action(违规处理)、test(测试块)
|
||
- 完整测试块(9个测试用例)
|
||
|
||
### 3.2 Rust 验证引擎
|
||
|
||
```
|
||
nac-constitution-clauses/src/node_sharing.rs
|
||
```
|
||
|
||
- 每条条款独立的验证函数(`validate_a44_*` 至 `validate_a52_*`)
|
||
- 综合验证报告(`NodeSharingComplianceReport`)
|
||
- 违规摘要生成(`violation_summary()`)
|
||
- 完整单元测试(12个测试用例,覆盖合规和违规场景)
|
||
|
||
### 3.3 多辖区运行时增强
|
||
|
||
```
|
||
nac-multi-jurisdiction/src/node_sharing_enhanced.rs
|
||
```
|
||
|
||
- `SharedNodeRegistry`:节点共享注册表(隔离违规检测)
|
||
- `DynamicQuotaManager`:动态资源配额管理(A46)
|
||
- `CrossJurisdictionBlockCoordinator`:跨辖区区块生产协调器(A45)
|
||
- `GidsEnhancedRegistry`:GIDS增强注册表(A47)
|
||
- 完整单元测试(5个测试用例)
|
||
|
||
### 3.4 Charter 合约接口
|
||
|
||
```
|
||
charter-std/src/constitution_interface.charter
|
||
```
|
||
|
||
- `IConstitution` 接口:宪法内置合约完整接口定义
|
||
- `RwaAssetCrossJurisdictionTransfer` 示例合约:演示A45/A46/A47/A50/A51集成
|
||
- `NodeSharingRegistry` 示例合约:演示A44/A47/A48集成
|
||
|
||
---
|
||
|
||
## 四、架构设计说明
|
||
|
||
### 4.1 条款层级设计
|
||
|
||
```
|
||
宪法层级结构(A44-A52 扩展后):
|
||
|
||
永恒级(Eternal,索引1-100):
|
||
A01-A08 基础架构条款(NAC原生技术栈保护)
|
||
|
||
战略级(Strategic,索引101-1000):
|
||
A09-A16 资产合规条款
|
||
A17-A24 节点治理条款
|
||
A25-A32 XTZH货币条款
|
||
A33-A38 多辖区条款(基础)
|
||
A39-A43 AI合规条款
|
||
★ A44 多辖区节点物理共享许可(新增,索引101)
|
||
★ A45 跨辖区区块生产双CR强制(新增,索引102)
|
||
★ A46 共享资源辖区协商分配(新增,索引103)
|
||
|
||
战术级(Tactical,索引1001+):
|
||
★ A47 节点身份辖区绑定强制(新增,索引1001)
|
||
★ A48 WASM规则插件沙箱执行强制(新增,索引1002)
|
||
★ A49 CEE节点跨辖区共享验证(新增,索引1003)
|
||
★ A50 辖区争议宪法法院裁决(新增,索引1004)
|
||
★ A51 CSNP辖区感知路由强制(新增,索引1005)
|
||
★ A52 共享存储敏感数据加密(新增,索引1006)
|
||
```
|
||
|
||
### 4.2 跨辖区区块生产流程(A45)
|
||
|
||
```
|
||
区块生产节点收到跨辖区交易
|
||
↓
|
||
为每笔跨辖区交易选择最优CEE节点(A49负载均衡)
|
||
↓
|
||
CEE节点并行调用源辖区和目标辖区插件(A48 WASM沙箱)
|
||
↓
|
||
生成双CR(源辖区CR + 目标辖区CR)
|
||
↓
|
||
将所有双CR哈希构建默克尔树 → jurisdiction_merkle_root
|
||
↓
|
||
写入区块头 block.header.jurisdiction_merkle_root
|
||
↓
|
||
CBPP验证节点验证 jurisdiction_merkle_root 有效性
|
||
↓
|
||
区块上链
|
||
```
|
||
|
||
### 4.3 节点注册流程(A47)
|
||
|
||
```
|
||
节点申请加入网络
|
||
↓
|
||
向辖区政府/监管机构申请辖区证明(jurisdiction_proof)
|
||
↓
|
||
提交 GIDS 注册(DID + 辖区 + 辖区证明 + 插件哈希列表)
|
||
↓
|
||
GIDS 验证:
|
||
- DID 格式(must start with "did:nac:")
|
||
- 辖区 != 0
|
||
- 辖区证明签名有效且未过期
|
||
- 至少一个已授权插件哈希
|
||
↓
|
||
注册成功,节点可加入网络
|
||
↓
|
||
节点加载插件时,GIDS 实时验证插件哈希(A47+A48)
|
||
```
|
||
|
||
### 4.4 资源分配流程(A46)
|
||
|
||
```
|
||
辖区提交资源分配提案
|
||
↓
|
||
辖区协商委员会(JurisdictionCouncil)投票
|
||
↓
|
||
投票比例 ≥ 67%?
|
||
├─ 是 → 提案通过,DynamicQuotaManager 应用新配额
|
||
└─ 否 → 提案拒绝,维持原配额
|
||
↓
|
||
配额变更记录写入宪法附录(链上存证)
|
||
↓
|
||
各辖区节点按新配额运行
|
||
↓
|
||
超出配额时触发 A46 违规处理(revert_allocation)
|
||
```
|
||
|
||
---
|
||
|
||
## 五、与现有模块的集成关系
|
||
|
||
| 现有模块 | 集成方式 | 涉及条款 |
|
||
|----------|----------|----------|
|
||
| `nac-constitution-clauses` | 新增 `node_sharing.rs` 验证器 | A44-A52 |
|
||
| `nac-multi-jurisdiction` | 新增 `node_sharing_enhanced.rs` 运行时 | A44-A47、A49 |
|
||
| `nac-cbpp` | 区块头新增 `jurisdiction_merkle_root` 字段 | A45 |
|
||
| `nac-csnp` | 新增辖区感知路由模块 | A51 |
|
||
| `nac-nvm` | 新增宪法内置合约(地址0x...0001) | A44-A52 |
|
||
| `charter-std` | 新增 `constitution_interface.charter` | A44-A52 |
|
||
| `nac-ai-compliance` | AI合规检查集成A39-A43 | A39-A43 |
|
||
|
||
---
|
||
|
||
## 六、测试覆盖
|
||
|
||
| 文件 | 测试数量 | 覆盖场景 |
|
||
|------|----------|----------|
|
||
| `node_sharing.rs` | 12 | A44合规/违规、A45跨辖区、A46投票、A47身份、A48沙箱、A52存储 |
|
||
| `node_sharing_enhanced.rs` | 5 | 注册表、隔离检测、配额超额、GIDS验证、区块协调器 |
|
||
| `node_sharing_clauses.cnnl` | 9 | 每条条款独立测试块 |
|
||
|
||
---
|
||
|
||
## 七、后台管理员信息
|
||
|
||
- **Gitea 管理员账号:** nacadmin
|
||
- **Gitea 管理员密码:** NACadmin2026!
|
||
- **服务器 SSH:** root@103.96.148.7:22000
|
||
- **服务器密码:** XKUigTFMJXhH
|
||
- **宝塔面板:** http://103.96.148.7:12/btwest(cproot / vajngkvf)
|
||
|
||
---
|
||
|
||
## 八、下一步工作建议
|
||
|
||
1. **Issue #71**:将 `jurisdiction_merkle_root` 字段集成到 CBPP 区块头结构(`nac-cbpp` 模块)
|
||
2. **Issue #72**:实现 NVM 宪法内置合约(地址 `0x0000000000000000000000000000000000000001`)
|
||
3. **Issue #73**:CSNP 辖区感知路由实现(`nac-csnp` 模块扩展)
|
||
4. **Issue #74**:WASM 插件运行时沙箱集成(`nac-nvm` 模块扩展)
|
||
5. **Issue #75**:宪法条款 A44-A52 主网部署和测试
|
||
|
||
---
|
||
|
||
*本文档由 NAC 核心协议工程组生成 | Issue #70 | 2026-03-07*
|