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

10 KiB
Raw Permalink Blame History

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 消息格式

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 锁定机制

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 解锁机制

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开发团队