Skip to content

Phase 92 — DAO治理2.0设计

版本: v4.2.0 创建日期: 2026-03-10 状态: ✅ 已实现 (v4.2.0)


一、模块概述

Phase 92 将DAO治理升级至2.0版本,引入二次方投票(Quadratic Voting)、投票权委托、国库管理和完整的提案生命周期(Draft → Active → Queue → Execute)。实现更公平、更高效的去中心化治理,防止大户垄断投票权,保障社区利益。

1.1 核心目标

  1. 二次方投票: 投票成本随票数二次增长(n票花费n²代币),平衡大小持有者话语权
  2. 投票权委托: 支持投票权委托给信任代表,可随时撤回,支持多级委托链
  3. 国库管理: DAO国库的资金管理、预算分配和支出审计
  4. 提案生命周期: Draft → Active → Queue → Execute 四阶段,含时间锁和仲裁机制

1.2 技术架构

┌──────────────────────────────────────────────────────────┐
│             DAO Governance v2.0 (Phase 92)                │
│                                                           │
│  ┌──────────────────────────────────────────────────────┐ │
│  │               Proposal Lifecycle                      │ │
│  │   [Draft] → [Active] → [Queue] → [Execute]           │ │
│  │     ↓          ↓          ↓          ↓                │ │
│  │   起草       投票中      时间锁     自动执行           │ │
│  └──────────────────────────────────────────────────────┘ │
│  ┌─────────────────────┐  ┌───────────────────────────┐  │
│  │  QuadraticVoting     │  │  DelegationEngine         │  │
│  │  二次方成本计算      │  │  委托链管理               │  │
│  │  反女巫攻击          │  │  权重计算+撤回            │  │
│  └─────────────────────┘  └───────────────────────────┘  │
│  ┌─────────────────────┐  ┌───────────────────────────┐  │
│  │  TreasuryManager     │  │  GovernanceStats          │  │
│  │  资金池+预算分配     │  │  参与率+提案分析          │  │
│  │  支出审计+报告       │  │  投票分布+委托图谱        │  │
│  └─────────────────────┘  └───────────────────────────┘  │
│  ┌──────────────────────────────────────────────────────┐ │
│  │          DAO v2.0 IPC Layer (8 handlers)              │ │
│  └──────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘

二、核心模块设计

2.1 DAOGovernanceV2 (blockchain/dao-governance-v2.js)

DAO治理2.0核心模块。

常量:

  • PROPOSAL_STATUS: DRAFT, ACTIVE, QUEUE, EXECUTE, PASSED, REJECTED, CANCELLED
  • VOTE_TYPE: FOR, AGAINST, ABSTAIN
  • DELEGATION_STATUS: ACTIVE, REVOKED, EXPIRED
  • TREASURY_TX_TYPE: ALLOCATION, WITHDRAWAL, REFUND, REWARD

核心方法:

  • initialize() — 初始化DAO治理,加载活跃提案和国库状态
  • createProposal({ title, description, proposerDid, type, actions, votingDurationMs }) — 创建治理提案(状态初始为DRAFT,需激活后进入投票)
  • vote({ proposalId, voterDid, voteType, voteCount }) — 二次方投票(n票花费n²代币,自动校验余额和反女巫)
  • delegate({ fromDid, toDid, weight, expiresAt }) — 委托投票权(支持部分委托,检测循环委托)
  • execute(proposalId) — 执行通过Queue阶段的提案(自动执行关联动作)
  • getTreasury() — 获取国库状态(总余额、各资产明细、待执行拨款、近期支出)
  • allocateFunds({ proposalId, recipient, amount, asset, memo }) — 从国库拨款(需关联已通过的提案)
  • getGovernanceStats() — 治理统计(总提案数、参与率、平均投票数、委托覆盖率、国库健康度)
  • configure({ votingDuration, quorumPercentage, timelockMs, quadraticEnabled }) — 配置治理参数

三、核心文件

文件路径说明
src/main/blockchain/dao-governance-v2.jsDAO治理2.0核心(二次方投票、委托、国库、提案生命周期)
src/main/blockchain/dao-v2-ipc.jsIPC接口层(8个handler)
src/renderer/stores/daoGovernanceV2.tsPinia Store — 提案列表、投票记录、委托关系、国库状态
src/renderer/pages/DAOGovernanceV2Page.vue前端页面 — 提案管理/投票/委托/国库/统计

四、数据库设计

sql
-- Phase 92: DAO v2.0 Proposals
CREATE TABLE IF NOT EXISTS dao_v2_proposals (
  id TEXT PRIMARY KEY,
  title TEXT NOT NULL,
  description TEXT,
  proposer_did TEXT NOT NULL,
  type TEXT DEFAULT 'standard',
  status TEXT DEFAULT 'draft',
  actions TEXT,
  votes_for INTEGER DEFAULT 0,
  votes_against INTEGER DEFAULT 0,
  votes_abstain INTEGER DEFAULT 0,
  quadratic_weight_for REAL DEFAULT 0.0,
  quadratic_weight_against REAL DEFAULT 0.0,
  quorum_reached INTEGER DEFAULT 0,
  voting_start INTEGER,
  voting_end INTEGER,
  queue_end INTEGER,
  executed_at INTEGER,
  cancelled_at INTEGER,
  created_at INTEGER,
  updated_at INTEGER
);

-- Phase 92: DAO v2.0 Votes
CREATE TABLE IF NOT EXISTS dao_v2_votes (
  id TEXT PRIMARY KEY,
  proposal_id TEXT NOT NULL,
  voter_did TEXT NOT NULL,
  vote_type TEXT NOT NULL,
  vote_count INTEGER DEFAULT 1,
  quadratic_cost INTEGER,
  delegated_from TEXT,
  reason TEXT,
  created_at INTEGER,
  FOREIGN KEY (proposal_id) REFERENCES dao_v2_proposals(id),
  UNIQUE(proposal_id, voter_did)
);

-- Phase 92: DAO v2.0 Treasury
CREATE TABLE IF NOT EXISTS dao_v2_treasury (
  id TEXT PRIMARY KEY,
  tx_type TEXT NOT NULL,
  proposal_id TEXT,
  recipient TEXT,
  amount REAL NOT NULL,
  asset TEXT DEFAULT 'native',
  memo TEXT,
  balance_after REAL,
  executed_by TEXT,
  created_at INTEGER,
  FOREIGN KEY (proposal_id) REFERENCES dao_v2_proposals(id)
);

五、IPC接口设计

DAO v2.0 IPC (8 handlers)

通道说明
dao:create-proposal创建治理提案
dao:vote二次方投票
dao:delegate委托投票权
dao:execute执行提案
dao:get-treasury获取国库状态
dao:allocate-funds国库拨款
dao:get-governance-stats治理统计
dao:configure配置治理参数

六、前端集成

Pinia Store

  • daoGovernanceV2.ts — 提案列表、投票记录、委托关系、国库余额、治理统计

Vue Page

  • DAOGovernanceV2Page.vue — 提案生命周期/二次方投票/委托管理/国库面板/治理统计

Route

  • /dao-governance-v2 — DAO治理2.0

七、配置选项

javascript
daoGovernanceV2: {
  enabled: false,
  quadraticVotingEnabled: true,
  delegationEnabled: true,
  maxDelegationDepth: 3,
  votingDurationMs: 604800000,
  timelockMs: 172800000,
  quorumPercentage: 10,
  proposalThreshold: 100,
  treasuryConfig: {
    maxSingleAllocation: 100000,
    approvalThreshold: 2,
    auditIntervalMs: 2592000000,
  },
},

八、测试覆盖

  • 测试文件: src/main/blockchain/__tests__/dao-governance-v2.test.js
  • 测试数量: 21 tests
  • 覆盖范围:
    • 提案生命周期(创建Draft/激活Active/进入Queue/执行Execute/取消)
    • 二次方投票(成本计算验证/余额不足/反女巫/投票统计)
    • 投票权委托(单级委托/多级委托/循环检测/撤回/过期)
    • 国库管理(余额查询/拨款/无提案拨款拒绝/余额不足)
    • 提案执行(时间锁校验/未达法定人数/已执行重复执行)
    • 治理统计(参与率/投票分布/委托覆盖率/国库健康度)
    • 配置更新(参数校验/运行中修改限制)

九、Context Engineering

  • step 5.5: setDAOGovernanceV2Context() — 注入DAO治理2.0上下文

基于 MIT 许可发布