Skip to content

去中心化交易辅助模块

本文档是 系统设计主文档 的子文档,详细描述交易辅助模块的设计。


2.3 去中心化交易辅助模块

2.3.1 功能描述

利用AI和区块链技术,在去中心化环境下辅助用户达成可信交易,无需传统中介平台。

2.3.2 架构设计

交易辅助系统
├── 交易发现层
│   ├── 需求发布
│   │   ├── 商品/服务描述 (AI辅助撰写)
│   │   ├── 价格范围
│   │   ├── 交易条件
│   │   └── 有效期
│   │
│   ├── 需求匹配
│   │   ├── 语义搜索 (向量检索)
│   │   ├── AI推荐引擎
│   │   ├── 反向竞价 (买家发需求,卖家报价)
│   │   └── 智能筛选 (基于信任评分)
│   │
│   └── 市场广场
│       ├── 分类浏览
│       ├── 地理位置筛选
│       └── 热门推荐

├── 信任评估层
│   ├── 信誉系统
│   │   ├── 交易历史记录 (区块链存证)
│   │   ├── 评价体系 (5星评分 + 文字评价)
│   │   ├── 信用分计算 (多维度加权)
│   │   └── 信誉证明 (零知识证明)
│   │
│   ├── 身份验证
│   │   ├── DID身份绑定
│   │   ├── 实名认证 (可选,隐私保护)
│   │   ├── 技能认证 (第三方背书)
│   │   └── 押金质押 (高价值交易)
│   │
│   └── 风险评估
│       ├── AI欺诈检测
│       ├── 异常行为识别
│       ├── 交易金额风险评级
│       └── 争议历史查询

├── 交易协商层
│   ├── 智能合约
│   │   ├── 合约模板库
│   │   │   ├── 商品买卖
│   │   │   ├── 服务交付
│   │   │   ├── 租赁协议
│   │   │   └── 合作协议
│   │   │
│   │   ├── 合约编辑器 (可视化)
│   │   ├── AI合约审查 (检查条款合理性)
│   │   └── 多签执行 (双方或多方签名)
│   │
│   ├── 条款协商
│   │   ├── 在线聊天 (端到端加密)
│   │   ├── AI协商助手
│   │   │   ├── 建议合理价格
│   │   │   ├── 起草条款
│   │   │   ├── 风险提示
│   │   │   └── 历史案例参考
│   │   └── 条款版本管理
│   │
│   └── 支付托管
│       ├── 加密货币托管 (智能合约)
│       │   ├── 买家支付到合约
│       │   ├── 满足条件后释放给卖家
│       │   └── 争议时仲裁解锁
│       │
│       ├── 法币托管 (可选第三方)
│       └── 混合支付 (部分押金 + 部分尾款)

├── 交易执行层
│   ├── 里程碑管理
│   │   ├── 交易阶段划分
│   │   ├── 阶段性验收
│   │   ├── 分期付款
│   │   └── 进度跟踪
│   │
│   ├── 证据管理
│   │   ├── 聊天记录存证
│   │   ├── 交付凭证上传 (图片、文件)
│   │   ├── 区块链时间戳
│   │   └── 哈希校验
│   │
│   └── 确认与评价
│       ├── 买家确认收货
│       ├── 卖家确认收款
│       ├── 双向评价
│       └── NFT交易证明 (可选)

└── 争议解决层
    ├── 争议发起
    │   ├── 申诉理由
    │   ├── 证据提交
    │   └── 赔偿要求

    ├── 仲裁机制
    │   ├── 去中心化仲裁员网络
    │   │   ├── 仲裁员DID注册
    │   │   ├── 专业领域标注
    │   │   ├── 仲裁员信誉
    │   │   └── 随机选择 + 双方挑战
    │   │
    │   ├── 仲裁流程
    │   │   ├── 证据展示
    │   │   ├── 双方陈述
    │   │   ├── 仲裁员投票
    │   │   └── 判决执行
    │   │
    │   └── AI辅助仲裁
    │       ├── 相似案例检索
    │       ├── 法律条款匹配
    │       └── 判决建议

    └── 强制执行
        ├── 智能合约自动执行判决
        ├── 信誉惩罚 (降低信用分)
        ├── 黑名单机制
        └── 损失赔付 (从押金扣除)

2.3.3 核心流程

发布交易需求流程:

1. 用户选择交易类型 (买/卖/服务)
2. AI助手帮助用户完善描述
   - 智能提问收集信息
   - 建议合理价格区间 (基于历史数据)
   - 生成专业描述文案
3. 设置交易条件
   - 价格/报价方式
   - 交付时间
   - 质量要求
   - 支付方式
4. 用户签名发布
5. 内容加密后广播到P2P网络
6. 索引到本地和DHT网络
7. AI自动匹配潜在交易方并推送通知

交易撮合流程:

1. 用户B看到用户A的需求
2. 查看A的信誉分和交易历史
3. AI分析交易风险并给出建议
4. B提交报价/意向
5. A收到报价,比较多个报价
6. A选择B,发起协商
7. 双方在加密聊天室讨论细节
8. AI助手实时提供:
   - 条款建议
   - 风险提示
   - 类似交易参考价格
9. 达成一致后选择智能合约模板
10. 双方审阅并签署合约
11. 进入交易执行阶段

智能合约交易流程 (以商品买卖为例):

1. 双方签署智能合约
2. 买家支付金额到合约地址
   - 支持加密货币 (ETH/USDT等)
   - 或托管到可信第三方
3. 卖家看到款项锁定,开始发货
4. 卖家上传发货凭证 (快递单号 + 照片)
   - 哈希存储到区块链
5. 买家收到货物
6. 买家确认收货或提出问题
   - 如满意: 触发合约释放款项给卖家
   - 如不满意: 发起争议流程
7. 双方互相评价
8. 交易记录上链,影响信誉分

争议仲裁流程:

1. 买家/卖家发起争议
2. 冻结合约中的资金
3. 系统从仲裁员池随机选择3-5名仲裁员
   - 选择标准: 信誉高、相关领域经验、无利益冲突
4. 双方各有1次仲裁员挑战权 (更换不信任的仲裁员)
5. 仲裁员查看:
   - 智能合约条款
   - 聊天记录
   - 证据材料 (照片、文件、物流信息)
   - AI提供的相似案例
6. 仲裁员独立投票
   - 完全支持买家
   - 完全支持卖家
   - 折中方案 (比如退50%款)
7. 按多数票执行判决
8. 智能合约自动分配资金
9. 败诉方信誉分下降,仲裁费用由败诉方承担

2.3.4 数据模型

交易数据库表结构:

sql
-- 交易需求/供给表
CREATE TABLE listings (
    id TEXT PRIMARY KEY,
    publisher_did TEXT NOT NULL,
    type TEXT NOT NULL,  -- 'buy', 'sell', 'service_offer', 'service_request'
    category TEXT NOT NULL,
    title TEXT NOT NULL,
    description TEXT NOT NULL,
    price_min REAL,
    price_max REAL,
    currency TEXT DEFAULT 'CNY',
    location TEXT,  -- 地理位置 (可选)
    delivery_method TEXT,  -- 'in_person', 'shipping', 'digital'
    conditions TEXT,  -- JSON: 交易条件
    status TEXT DEFAULT 'active',  -- 'active', 'matched', 'completed', 'cancelled'
    expires_at INTEGER,
    created_at INTEGER NOT NULL,
    updated_at INTEGER NOT NULL,
    FOREIGN KEY (publisher_did) REFERENCES contacts(did)
);

-- 交易订单表
CREATE TABLE transactions (
    id TEXT PRIMARY KEY,
    listing_id TEXT,
    buyer_did TEXT NOT NULL,
    seller_did TEXT NOT NULL,
    amount REAL NOT NULL,
    currency TEXT NOT NULL,
    contract_address TEXT,  -- 智能合约地址 (如果使用区块链)
    contract_terms TEXT NOT NULL,  -- JSON: 合约条款
    milestones TEXT,  -- JSON: 里程碑数组
    current_milestone INTEGER DEFAULT 0,
    status TEXT DEFAULT 'negotiating',
    -- 'negotiating', 'contract_signed', 'payment_locked',
    -- 'in_progress', 'completed', 'disputed', 'cancelled'
    created_at INTEGER NOT NULL,
    signed_at INTEGER,
    completed_at INTEGER,
    FOREIGN KEY (listing_id) REFERENCES listings(id),
    FOREIGN KEY (buyer_did) REFERENCES contacts(did),
    FOREIGN KEY (seller_did) REFERENCES contacts(did)
);

-- 交易聊天消息表 (关联到交易)
CREATE TABLE transaction_messages (
    id TEXT PRIMARY KEY,
    transaction_id TEXT NOT NULL,
    sender_did TEXT NOT NULL,
    message_encrypted BLOB NOT NULL,
    signature TEXT NOT NULL,
    created_at INTEGER NOT NULL,
    FOREIGN KEY (transaction_id) REFERENCES transactions(id),
    FOREIGN KEY (sender_did) REFERENCES contacts(did)
);

-- 交易证据表
CREATE TABLE transaction_evidence (
    id TEXT PRIMARY KEY,
    transaction_id TEXT NOT NULL,
    uploader_did TEXT NOT NULL,
    evidence_type TEXT NOT NULL,  -- 'image', 'document', 'tracking_number', 'receipt'
    file_path TEXT,
    file_hash TEXT NOT NULL,  -- SHA-256哈希
    blockchain_tx TEXT,  -- 区块链存证交易哈希
    description TEXT,
    created_at INTEGER NOT NULL,
    FOREIGN KEY (transaction_id) REFERENCES transactions(id),
    FOREIGN KEY (uploader_did) REFERENCES contacts(did)
);

-- 评价表
CREATE TABLE reviews (
    id TEXT PRIMARY KEY,
    transaction_id TEXT NOT NULL,
    reviewer_did TEXT NOT NULL,
    reviewee_did TEXT NOT NULL,
    rating INTEGER NOT NULL CHECK(rating >= 1 AND rating <= 5),
    comment TEXT,
    tags TEXT,  -- JSON数组: ['professional', 'fast', 'quality']
    signature TEXT NOT NULL,
    created_at INTEGER NOT NULL,
    blockchain_tx TEXT,  -- 评价上链交易哈希
    FOREIGN KEY (transaction_id) REFERENCES transactions(id),
    FOREIGN KEY (reviewer_did) REFERENCES contacts(did),
    FOREIGN KEY (reviewee_did) REFERENCES contacts(did)
);

-- 信誉分表 (定期计算)
CREATE TABLE reputation_scores (
    did TEXT PRIMARY KEY,
    overall_score REAL NOT NULL DEFAULT 0.0,  -- 综合信誉分 0-1000
    transaction_count INTEGER DEFAULT 0,
    completed_count INTEGER DEFAULT 0,
    dispute_count INTEGER DEFAULT 0,
    avg_rating REAL DEFAULT 0.0,
    buyer_score REAL DEFAULT 0.0,  -- 买家信誉
    seller_score REAL DEFAULT 0.0,  -- 卖家信誉
    response_time_score REAL DEFAULT 0.0,  -- 响应速度
    completion_rate REAL DEFAULT 0.0,  -- 完成率
    last_updated INTEGER NOT NULL,
    FOREIGN KEY (did) REFERENCES contacts(did)
);

-- 争议表
CREATE TABLE disputes (
    id TEXT PRIMARY KEY,
    transaction_id TEXT NOT NULL,
    initiator_did TEXT NOT NULL,
    respondent_did TEXT NOT NULL,
    reason TEXT NOT NULL,
    claim_amount REAL,
    evidence_ids TEXT,  -- JSON数组: 证据ID列表
    status TEXT DEFAULT 'pending',
    -- 'pending', 'arbitration', 'resolved', 'rejected'
    resolution TEXT,  -- JSON: 仲裁结果
    created_at INTEGER NOT NULL,
    resolved_at INTEGER,
    FOREIGN KEY (transaction_id) REFERENCES transactions(id),
    FOREIGN KEY (initiator_did) REFERENCES contacts(did),
    FOREIGN KEY (respondent_did) REFERENCES contacts(did)
);

-- 仲裁员表
CREATE TABLE arbitrators (
    did TEXT PRIMARY KEY,
    specialties TEXT NOT NULL,  -- JSON数组: 专业领域
    languages TEXT NOT NULL,  -- JSON数组: 语言能力
    arbitration_count INTEGER DEFAULT 0,
    success_rate REAL DEFAULT 0.0,
    avg_resolution_time INTEGER,  -- 平均仲裁时长(秒)
    reputation_score REAL DEFAULT 0.0,
    is_active INTEGER DEFAULT 1,
    joined_at INTEGER NOT NULL,
    FOREIGN KEY (did) REFERENCES contacts(did)
);

-- 仲裁案件表
CREATE TABLE arbitration_cases (
    id TEXT PRIMARY KEY,
    dispute_id TEXT NOT NULL,
    arbitrators TEXT NOT NULL,  -- JSON数组: 仲裁员DID列表
    votes TEXT,  -- JSON: 仲裁员投票结果
    final_decision TEXT NOT NULL,
    reasoning TEXT,  -- AI生成的判决理由
    created_at INTEGER NOT NULL,
    decided_at INTEGER,
    FOREIGN KEY (dispute_id) REFERENCES disputes(id)
);

2.3.5 智能合约示例 (Solidity伪代码)

solidity
// 简单的托管合约
contract EscrowContract {
    address public buyer;
    address public seller;
    address public arbitrator;
    uint256 public amount;
    bool public buyerConfirmed;
    bool public sellerConfirmed;
    enum State { Created, Locked, Released, Disputed, Refunded }
    State public state;

    constructor(address _seller, address _arbitrator) payable {
        buyer = msg.sender;
        seller = _seller;
        arbitrator = _arbitrator;
        amount = msg.value;
        state = State.Created;
    }

    function confirmReceipt() public {
        require(msg.sender == buyer);
        require(state == State.Locked);
        buyerConfirmed = true;
        if (sellerConfirmed) releaseFunds();
    }

    function releaseFunds() private {
        state = State.Released;
        payable(seller).transfer(amount);
    }

    function raiseDispute() public {
        require(msg.sender == buyer || msg.sender == seller);
        state = State.Disputed;
    }

    function resolveDispute(uint8 buyerPercent) public {
        require(msg.sender == arbitrator);
        require(state == State.Disputed);
        uint256 buyerAmount = (amount * buyerPercent) / 100;
        uint256 sellerAmount = amount - buyerAmount;
        payable(buyer).transfer(buyerAmount);
        payable(seller).transfer(sellerAmount);
        state = State.Released;
    }
}

2.3.6 AI辅助功能

交易描述优化:

python
# AI Prompt示例
system_prompt = """你是一个交易助手,帮助用户撰写清晰、吸引人的交易描述。
请根据用户输入的关键信息,生成专业的交易描述,包括:
1. 标题 (简洁有力,20字以内)
2. 详细描述 (200-500字)
3. 建议价格区间 (参考市场行情)
4. 注意事项
"""

user_input = "我想卖一台用了2年的MacBook Pro, 16GB内存, 512GB硬盘, 95成新"
# AI生成优化后的listing

价格建议:

python
# 基于历史交易数据和市场行情
def suggest_price(item_description, condition, historical_data):
    # 1. 向量检索相似商品的历史交易
    similar_items = vector_search(item_description, top_k=20)

    # 2. 根据成色调整价格
    condition_factor = {'全新': 1.0, '99新': 0.95, '95新': 0.80, '9成新': 0.65}

    # 3. 计算建议价格
    prices = [item.price * condition_factor[condition] for item in similar_items]
    suggested_min = percentile(prices, 25)
    suggested_max = percentile(prices, 75)

    return suggested_min, suggested_max

风险评估:

python
# AI评估交易风险
def assess_transaction_risk(transaction_data, user_reputation):
    risk_factors = []
    risk_score = 0.0

    # 1. 对方信誉检查
    if user_reputation.overall_score < 500:
        risk_factors.append("对方信誉较低")
        risk_score += 0.3

    # 2. 交易金额
    if transaction_data.amount > 10000:
        risk_factors.append("交易金额较大")
        risk_score += 0.2

    # 3. 账号年龄
    if user_reputation.account_age_days < 30:
        risk_factors.append("对方账号注册时间较短")
        risk_score += 0.2

    # 4. AI文本分析 (检测异常用词)
    if detect_fraud_patterns(transaction_data.description):
        risk_factors.append("描述中包含可疑内容")
        risk_score += 0.4

    return {
        'risk_level': 'high' if risk_score > 0.6 else 'medium' if risk_score > 0.3 else 'low',
        'risk_score': risk_score,
        'factors': risk_factors,
        'recommendations': generate_recommendations(risk_factors)
    }

2.3.6 技术选型与实现 (v0.20.0)

区块链技术:

  • ethers 6.16.0 - 以太坊交互库
  • @openzeppelin/contracts 5.4.0 - 智能合约标准库

智能合约 (6个):

  • ERC20 - 代币标准
  • ERC721 - NFT标准
  • Escrow - 托管合约
  • Subscription - 订阅合约
  • Bounty - 赏金合约
  • Bridge - 跨链桥接

实现文件 (12个文件):

  • marketplace-manager.js (29KB) - 市场运营
  • contract-engine.js (39KB) - 智能合约执行引擎
  • asset-manager.js (29KB) - 数字资产管理
  • escrow-manager.js (15KB) - 托管服务
  • credit-score.js (17KB) - 信用评分系统
  • review-manager.js (17KB) - 评价和评级系统
  • knowledge-payment.js (22KB) - 知识付费
  • realtime-trading-engine.js - 实时订单匹配
  • trading-analytics.js - 交易分析和报告

完成状态: 100% ✅ (实时交易引擎,6个智能合约,完整的信用评分系统)

ChainlessChain 系统设计文档 — 面向开发者