知名 DAO 案例分析:一部链上治理的判例集
阶段 5(DAO)第四篇·专栏收官:承接上篇结尾「规则、激励、钥匙都齐了——现实里跑得怎么样」的钩子。内容:The DAO 2016 事件始末与重入漏洞(史上第一次大型 DAO 众筹,一个月左右募集当时以太坊流通量一成多的 ETH;split 机制提款顺序错误让攻击合约在余额清零前递归提款,催生 checks-effects-interactions 模式与以太坊唯一一次大规模干预性硬分叉,分出的原链延续为 ETC——「代码即规则」与「人治干预」的争论由此定调)
规则、激励、钥匙都齐了——现实判例怎么说
上一篇的结尾停在一句问话上:规则(治理与投票)、激励(代币经济学)、钥匙(多签与权限分层)都齐了——现实里这些制度跑得到底怎么样?哪些 DAO 活成了教科书,哪些成了反面教材?本篇就是这个约定的兑现:拿三个真实案例做一次判例复盘,也为整个五阶段专栏收官。
选案逻辑正好对应三个层次:The DAO 是「组织还没学会走路,代码先摔了跟头」——它定义了安全底线;MakerDAO 是「治理机器真的转了近十年」——它证明这套制度可以长期存活;Uniswap 是「组织活着,但权力归谁没吵完」——它暴露治理参与与权责分配的现实困境。一个关于死,一个关于活,一个关于争。
The DAO(2016):一次重入,半个行业的安全课
始末
2016 年 4 月底,一个叫 The DAO 的项目在以太坊上启动众筹。它的愿景在今天看毫不新鲜——去中心化风投基金,DAO 代币持有者投票决定投什么项目——但在当时是第一个把「组织本身」搬上链的大型实验。众筹期约一个月,募得数百万枚 ETH,占当时以太坊流通量的一成多(量级表述):当时的社区 excitement 到了什么程度,从这个占比就能读出来。
同年 6 月,攻击发生。攻击者利用提款函数的顺序缺陷,从合约中递归提走当时流通 ETH 的数个百分点量级——这是重入攻击(重入攻击 )第一次以「行业级事故」的规模进入公众视野。
漏洞拆解:split 与提款顺序
The DAO 允许持有者用 split 机制退出:不满治理方向的人可以分拆出去、取回自己的份额。漏洞不在「允许退出」,而在提款的执行顺序——合约先把 ETH 转给退出者,之后才把账面余额清零:
重入攻击的调用时序(The DAO split 提款漏洞,简化版):
攻击者合约 The DAO 合约
│ │
│──── 发起 split 提款 ───────▶│
│ │ ① 检查:你的余额是 100
│ │ ② 转账:先给你发 100 ETH(外部调用)
│◀──────── 100 ETH ───────────│ ⚠ ③ 清零余额:还没轮到它执行
│ │
│── 收到 ETH 的回调里再次提款 ─▶│ 攻击合约的接收函数被自动触发
│ │ ① 检查:余额「还是」100(未清零)
│ │ ② 再转 100 …… 循环,直到 Gas 耗尽
│ │ ③ 清零余额:被递归绕过,永远晚一步
一句话总结病因:外部交互(转账)发生在状态更新(清零余额)之前。把正确顺序与 The DAO 的顺序并排画出来:
提款函数的两种写法(对照):
正确顺序(checks → effects → interactions) The DAO 的顺序(反例)
───────────────────────────────────────── ─────────────────────────────
① checks 校验:余额够不够 ① checks 校验:余额够不够
② effects 清零余额(状态先落地)✓ ② interactions 转账(外部调用先行)✗
③ interactions 转账(外部调用放最后) ③ effects 清零余额(被递归绕过)
—— 攻击合约在 ② 与 ③ 之间反复插队
修复模式由此得名并沿用至今——checks-effects-interactions:先检查(checks)、再改状态(effects)、外部交互(interactions)永远放最后;工程上再叠一道「重入锁」拒绝递归调用。这个在 The DAO 废墟上学到的模式,成了 ERC-20 时代智能合约开发的标准安全姿势——EVM 篇讲「安全的复利:EVM 的坑(重入、整数溢出等)被研究得最透」,最重要的经验来源就是这一课。
硬分叉:唯一一次大规模干预先例
被盗资金按合约规则要静止一个月才能转移,社区在窗口期内做了罕见的决定:修改以太坊协议本身,把被盗资金转移到一个退款合约。这是一次干预性硬分叉 ——节点必须升级,否则留在旧链;拒绝分叉的少数派延续的原链,后来被称为 ETC。
它留下了两笔遗产:技术上的(整个行业学会了一整套重入防御与审计规范)和治理上的(**「代码即规则」还是「社会共识可以覆盖代码」**的争论,至今没有终审判决)。从那以后,以太坊再没有为任何单一事件动过这种规模的干预——先例之所以叫先例,是因为它只发生了一次。
MakerDAO:治理机器的十年长跑
如果说 The DAO 讲的是「怎么死」,MakerDAO 讲的是「能不能一直活着」。借贷篇已经讲过它的业务面——「抵押品当印钞机」的超额抵押铸 DAI、实质上是去中心化央行;本篇看它的治理面。
治理结构一句话带过:MKR 持有者通过治理投票(定方向、选人)与执行投票(授权具体参数变更生效)两级流程运转,加上经选举产生的核心贡献者单元负责日常执行——两院式的分工。这套结构与治理篇讲的「提案-投票-时间锁 」生命周期同构,只是把「谁长期值守」这件全职工作显式化了:
MakerDAO 治理的两级流程(示意):
治理投票(定方向)──▶ 风险参数该不该动、核心单元选谁
│
▼
执行投票(授权生效)──▶ 具体变更进入执行队列
│
▼
核心贡献者单元(日常执行)──▶ 全职值守风险参数与基础设施
不是每个投票者都懂风险参数,于是治理权的一部分被有意识地委托给专业小组——这是对 1 token = 1 票理想主义的现实修正。
现实压力测试也真实发生过:极端暴跌行情下(市场级别的单日双位数下跌),抵押品清算的零元拍失灵让部分金库以近乎免费的价格被拍走,靠社区紧急表决与人工干预才稳住局面。教训与 The DAO 镜像对称:纯粹依赖自动化参数的治理,在极端行情里需要一条人类可以踩的刹车——而这条刹车本身又必须是流程化、可审计的,否则它就是新后门。另外值得一提:MKR 的增发-回购机制(系统亏损时增发兜底、盈利时回购销毁)是代币经济学篇「价值捕获」一讲的正面样本——治理代币的价值支撑可以真的来自协议责任,而不只是炒作叙事。
存活结论:MakerDAO 是运转至今的最老牌链上治理之一,稳定币 DAI 经历多轮极端行情仍在场——治理上未必优雅,但确实活着。
Uniswap:活着,但权力归谁没吵完
第三个案例是进行时。业务面读者已经熟悉(AMM 篇的 x*y=k 与 V4 Hook);治理面的争议集中在两件事上:
- **费开关(fee switch)。**协议从诞生起就手握「把部分交易费收归协议」的开关,却长期不开——开了,费用给 UNI 质押者还是留给 LP?协议有了收入,会不会改变它「中立基础设施」的定位?这是一个价值取向问题,不是技术问题,所以吵了很多年。
- **国库与参与率。**UniswapDAO 手握的国库是十亿美元量级(大部分是自家 UNI 代币),是最大的公共资金池之一;但大型提案的链上投票参与率常只占代币总量的少数比例(量级表述),实际话语权集中在少数大户与机构代理票手里——个别场合,单一机构公开动用的票数就足以左右提案走向。
这里没有事故,只有经典的治理难题:治理代币 把「所有权」发给了很多人,却没有自动把「参与」发给任何人。把三个案例的治理现实并排看,能看出一条演化线:
三个案例的治理成熟度(示意):
The DAO ──「一次投票定终身」:众筹即全权,无日常治理经验
└─ 事故后无预案,只能靠改协议兜底
MakerDAO ──「制度化的日常」:两级投票 + 专业小组 + 委托
└─ 极端行情暴露自动化极限,补上人工刹车
Uniswap ──「大规模的沉默」:国库巨大,参与率有限
└─ 委托与链下投票缓解,但权责分配仍无技术解
治理篇讲过的Snapshot 链下投票、委托机制等缓解手段,在这个案例里都能看到现实投影——也包括它们的局限。争议未决不是失败:一个能长期容纳争议、按流程吵架而不散伙的组织,已经比大多数链上实验活得好了。
案例总结表:三个判例,三面镜子
| 维度 | The DAO(2016) | MakerDAO | Uniswap |
|---|---|---|---|
| 金库/募集资金规模 | 全网级:占当时流通 ETH 一成多(量级) | 系统内抵押资产 + 国库达数亿美元量级 | 国库达十亿美元量级,多为自家代币 |
| 治理参与形态 | 众筹即投票,单点高热度 | 常态化两级投票,专业小组深度参与 | 参与率有限,巨鲸与机构代理票影响显著 |
| 关键教训 | 状态更新晚于外部调用 = 递归提款;无干预预案 | 极端行情需要可审计的人工刹车 | 权责分配没有技术解,只有流程解 |
| 幸存状态 | 已死(事件后清盘退款) | 存活近十年,稳定币老牌发行方 | 存活,核心治理争议未决 |
三行合起来读:The DAO 死于代码,MakerDAO 活于制度,Uniswap 吵于权力。DAO 的成败从来不只是「有没有上链」——安全工程、治理流程、权力制衡,缺一样都长跑不了。
收官总结:从转一笔账,到管一个组织
本篇是五阶段专栏的最后一篇。按惯例做个总回顾——五个阶段,其实是同一个问题的五次放大:不靠中心机构,陌生人之间能协调到什么程度?
- 价值转移(Bitcoin)——「钱怎么在无机构的世界里记账转账」:UTXO 像现金找零,数学代替信任背书。代表篇:UTXO 模型:比特币的会计学。
- 去中心化计算(Ethereum)——「规则怎么自动执行」:账户模型给状态、EVM 给引擎、Gas 给计价、智能合约给可编程性。代表篇:EVM 是什么,为什么重要、智能合约到底是什么。
- 去中心化应用(DApp)——「普通人怎么用上它」:从 Solidity 到 Hardhat 到测试网,到第一个连上钱包的完整应用。代表篇:第一个完整 DApp。
- 去中心化金融(DeFi)——「金融行为怎么无中介运转」:AMM 定价、超额抵押借贷、闪电贷与原子性、聚合器与收益策略。代表篇:借贷协议、闪电贷与套利。
- 去中心化组织(DAO)——「协议群由谁做主」:投票模型、代币经济学、多签与权限分层,最后落到本篇的判例复盘。代表篇:DAO 治理与投票、Multi-sig 与权限管理。
回头看,系列第一篇开讲的是「怎么给陌生人转 60 块钱要用掉两张钞票找零」;五年知识长度走完,终点是「一群陌生人怎么共同看管十亿美元而不散伙」。起点是转账,终点是组织——中间每一步,都是在给「不需要信任任何具体的人」这句话增加一点可行性。这不是乌托邦:The DAO 摔过的跟头、MakerDAO 熬过的行情、Uniswap 吵不完的架,都是这句话的真实成本。专栏到此完结,愿你带着这套地图继续往深处走。
相关文章:
- Multi-sig 与权限管理:谁有权动 DAO 的金库 — 前篇:本篇承接其「规则、激励、钥匙都齐了——现实里跑得怎么样」结尾钩子
- 智能合约到底是什么,能做什么 — The DAO「不可变即错误的不可变」呼应其升级代理权限风险的论述
- EVM 是什么,为什么重要 — 「安全的复利」论点出处,The DAO 重入教训是其最大经验来源
- UTXO 模型:比特币的会计学 — 系列第一篇,收官总回顾呼应其「转 60 块钱」开篇视角
- DAO 治理与投票:没有 CEO 的组织怎么做决定 — MakerDAO 两级投票与 Uniswap 参与率争议的治理机制背景
- 借贷协议:没有信用记录的世界怎么借钱 — MakerDAO「去中心化央行」业务视角与 DAI 机制的出处
- AMM 机制与 Uniswap — Uniswap 案例的业务面背景(x*y=k 与 V4 Hook)
- Web3 深度研究报告 — 五阶段完整路线图与各主题深度展开的索引页