NAC_Blockchain/docs/NAC_CONSENSUS_CORE.md

163 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NAC共识机制核心知识
## ⚠️ 重要声明
**NAC使用CBPP共识机制不是DAG共识**
这是NAC与其他区块链的核心区别之一必须牢记。
---
## CBPP - 宪政区块生产协议
**CBPP** = **Constitutional Block Production Protocol**(宪政区块生产协议)
### 核心理念
**"宪法即共识"** - Constitution as Consensus
NAC的共识不是基于算力PoW、权益PoS或有向无环图DAG而是基于**宪法**。
### CBPP核心组件
#### 1. 宪法收据系统CR - Constitutional Receipt
- 交易进入区块链的唯一凭证
- 每个交易都必须获得宪法收据才能上链
- 收据包含:
- 交易哈希48字节
- 宪法版本哈希48字节
- 触发的宪法条款索引
- AI引擎执行结果哈希
- 收据ID48字节
#### 2. 开放生产网络OPN - Open Production Network
- 任何满足宪法要求的节点都可以参与区块生产
- 不是"挖矿",而是"生产"
- 生产者需要通过宪法验证
#### 3. 流体区块模型FBM - Fluid Block Model
- 区块不是固定大小
- 根据网络状态和宪法规则动态调整
- 支持并行区块生产
#### 4. 三维区块坐标系统
- **Epoch纪元**:宪法版本,每次宪法升级递增
- **Round轮次**:共识轮次,单调递增
- **Branch分支**支持并行区块32字节哈希
---
## NAC不使用的共识机制
### ❌ 不是DAG共识
- NAC **不使用** Directed Acyclic Graph有向无环图共识
- 不是IOTA、Nano、Fantom等DAG链
- 虽然可能使用DAG作为**数据结构**,但不是**共识机制**
### ❌ 不是PoW工作量证明
- 不需要挖矿
- 不需要算力竞争
### ❌ 不是PoS权益证明
- 不是基于代币质押
- 不是基于财富分配
### ❌ 不是传统BFT
- 不是PBFT、Tendermint等传统拜占庭容错
- 虽然有容错机制,但基于宪法而非投票
---
## 代码中的体现
### 正确的模块
-`constitutional_receipt.rs` - 宪法收据系统
-`cbpp_integration.rs` - CBPP集成
-`block_coordinate.rs` - 三维区块坐标
-`open_production_network.rs` - 开放生产网络
-`fluid_block.rs` - 流体区块模型
### 错误的理解
-`dag.rs` 如果包含"DAG共识算法" - 这是错误的
- ❌ 任何试图实现DAG共识的代码 - 应该删除或修正
---
## 开发指导原则
### 1. 永远记住
**NAC = CBPP共识 ≠ DAG共识**
### 2. 遇到"DAG"时
- 如果是**数据结构** → 可能正确
- 如果是**共识机制** → 肯定错误
### 3. 核心文件
所有共识相关的代码都应该围绕CBPP的四大组件
1. 宪法收据CR
2. 开放生产网络OPN
3. 流体区块模型FBM
4. 三维区块坐标
### 4. 类型系统
- Address: 32字节
- Hash: 48字节SHA3-384
- Branch Hash: 32字节从48字节截取
---
## 常见错误
### 错误1实现DAG共识
```rust
// ❌ 错误
// NVM-L0 DAG图结构和共识算法
pub struct DagGraph {
// DAG共识相关代码
}
```
### 错误2混淆数据结构和共识
```rust
// ⚠️ 需要澄清
// 如果DAG只是数据结构应该明确说明
/// DAG数据结构用于存储交易关系不是共识机制
pub struct DagGraph {
// 仅作为数据结构使用
}
```
### 正确做法基于CBPP
```rust
// ✅ 正确
/// CBPP共识集成
pub struct CBPPConsensus {
constitutional_receipt_manager: ConstitutionalReceiptManager,
open_production_network: OpenProductionNetwork,
fluid_block_manager: FluidBlockManager,
coordinate_manager: BlockCoordinateManager,
}
```
---
## 总结
1. **NAC使用CBPP共识** - 宪政区块生产协议
2. **不是DAG共识** - 不要实现DAG共识算法
3. **宪法即共识** - 所有共识逻辑都基于宪法
4. **四大组件** - CR、OPN、FBM、三维坐标
---
## 参考文档
- `/home/ubuntu/NAC_Clean_Dev/docs/CBPP_WHITEPAPER.md` - CBPP白皮书
- `/home/ubuntu/NAC_Clean_Dev/nvm_v2/NVM-l0/src/constitutional_receipt.rs` - 宪法收据实现
- `/home/ubuntu/NAC_Clean_Dev/nvm_v2/NVM-l0/src/cbpp_integration.rs` - CBPP集成
- `/home/ubuntu/NAC_Clean_Dev/nvm_v2/NVM-l0/src/block_coordinate.rs` - 三维区块坐标
---
**最后提醒NAC是原生公链不是以太坊的衍生或扩展。CBPP是NAC独创的共识机制。**