NAC_Blockchain/nac-cross-chain-bridge/ARCHITECTURE.md

264 lines
10 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跨链桥接架构设计文档
## 1. 架构概述
NAC跨链桥接模块采用**锁定-铸造-销毁-解锁**模型实现NAC公链与以太坊、BSC等EVM兼容链之间的资产互通。
### 1.1 核心组件
```
┌─────────────────────────────────────────────────────────────┐
│ NAC跨链桥接系统 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 桥接管理器 │───▶│ 中继节点 │───▶│ 验证器池 │ │
│ │ (Manager) │ │ (Relayer) │ │ (Validator) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 资产锁定器 │ │ 消息传递器 │ │ 事件监听器 │ │
│ │ (Locker) │ │ (Messenger) │ │ (Listener) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ NAC主链 │ │ 以太坊/BSC │
│ │ │ │
│ 锁定合约 │◀────────跨链消息────────▶│ 映射合约 │
│ (Lock) │ │ (Wrapped) │
└─────────────────┘ └─────────────────┘
```
### 1.2 工作流程
#### 从NAC到以太坊锁定-铸造)
1. 用户在NAC链上锁定资产
2. 事件监听器捕获锁定事件
3. 中继节点验证事件有效性
4. 验证器池达成共识
5. 在以太坊上铸造对应的包装资产
#### 从以太坊到NAC销毁-解锁)
1. 用户在以太坊上销毁包装资产
2. 事件监听器捕获销毁事件
3. 中继节点验证事件有效性
4. 验证器池达成共识
5. 在NAC链上解锁原始资产
## 2. 跨链协议设计
### 2.1 消息格式
```rust
pub struct CrossChainMessage {
// 消息ID唯一标识
pub id: [u8; 32],
// 源链ID
pub source_chain: ChainId,
// 目标链ID
pub target_chain: ChainId,
// 消息类型(锁定/解锁/铸造/销毁)
pub message_type: MessageType,
// 资产信息
pub asset: AssetInfo,
// 发送者地址
pub sender: Address,
// 接收者地址
pub receiver: Address,
// 金额
pub amount: U256,
// 时间戳
pub timestamp: u64,
// 签名列表(多签验证)
pub signatures: Vec<Signature>,
}
```
### 2.2 验证机制
采用**多签验证**模式:
- 至少需要 2/3 的验证器签名
- 验证器通过质押NAC代币获得资格
- 恶意验证器将被罚没质押资产
### 2.3 安全措施
1. **双花防护**消息ID唯一性检查
2. **重放攻击防护**时间戳和nonce机制
3. **金额限制**:单笔和日累计限额
4. **暂停机制**:紧急情况下可暂停桥接
5. **审计日志**:所有操作完整记录
## 3. 资产锁定/解锁机制
### 3.1 锁定机制
```rust
pub trait AssetLocker {
// 锁定资产
async fn lock_asset(
&self,
asset: AssetId,
amount: U256,
target_chain: ChainId,
receiver: Address,
) -> Result<LockReceipt>;
// 查询锁定状态
async fn get_lock_status(&self, lock_id: [u8; 32]) -> Result<LockStatus>;
}
```
### 3.2 解锁机制
```rust
pub trait AssetUnlocker {
// 解锁资产
async fn unlock_asset(
&self,
lock_id: [u8; 32],
proof: UnlockProof,
) -> Result<UnlockReceipt>;
// 验证解锁证明
async fn verify_unlock_proof(&self, proof: &UnlockProof) -> Result<bool>;
}
```
### 3.3 状态管理
使用状态机模型管理资产状态:
```
Pending → Locked → Confirmed → Minted
Failed → Refunded
```
## 4. 跨链消息传递协议
### 4.1 消息传递流程
```
发送方链 中继网络 接收方链
│ │ │
│──① 发送消息──────────▶│ │
│ │──② 验证消息──────────▶│
│ │ │
│ │◀─③ 确认接收──────────│
│◀─④ 返回收据──────────│ │
```
### 4.2 消息优先级
- **高优先级**:大额转账、紧急操作
- **普通优先级**:常规转账
- **低优先级**:批量操作
### 4.3 消息确认
- **快速确认**1个区块确认适用于小额
- **标准确认**12个区块确认适用于中额
- **安全确认**64个区块确认适用于大额
## 5. 中继节点设计
### 5.1 节点职责
1. 监听源链事件
2. 验证事件有效性
3. 构造跨链消息
4. 提交到目标链
5. 处理失败重试
### 5.2 节点激励
- 每成功中继一笔交易,获得手续费分成
- 质押NAC代币获得中继资格
- 恶意行为将被罚没质押
### 5.3 去中心化
- 任何人都可以成为中继节点
- 通过质押和信誉系统筛选节点
- 多节点竞争提高效率和安全性
## 6. 性能指标
- **吞吐量**100 TPS
- **确认时间**1-5分钟取决于确认级别
- **手续费**0.1%-0.5%
- **最大单笔金额**100,000 USDT等值
- **日累计限额**1,000,000 USDT等值
## 7. 技术栈
- **Rust**:核心逻辑实现
- **Tokio**:异步运行时
- **Ethers-rs**:以太坊集成
- **Sled**:本地状态存储
- **WebSocket**:实时事件监听
## 8. 部署架构
```
┌─────────────────────────────────────────────────────────┐
│ 生产环境部署 │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ 中继节点1 │ │ 中继节点2 │ │ 中继节点3 │ │
│ │ (主节点) │ │ (备份节点) │ │(备份节点) │ │
│ └──────────────┘ └──────────────┘ └───────────┘ │
│ │ │ │ │
│ └────────────────────┴────────────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ 负载均衡器 │ │
│ └─────────┬─────────┘ │
│ │ │
│ ┌────────────────────┼────────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ NAC节点 │ │ ETH节点 │ │ BSC节点 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
```
## 9. 监控和告警
- **健康检查**:节点状态、网络连接、区块同步
- **性能监控**TPS、延迟、成功率
- **异常告警**:交易失败、验证失败、网络异常
- **审计日志**:所有操作完整记录
## 10. 未来扩展
- 支持更多区块链Polygon、Avalanche等
- 支持NFT跨链
- 支持智能合约跨链调用
- 实现跨链流动性池
- 集成去中心化预言机
---
**文档版本**: 1.0
**最后更新**: 2026-02-18
**维护者**: NAC开发团队