Gerrad Zhang
Multi-sig 与权限管理:谁有权动 DAO 的金库

Multi-sig 与权限管理:谁有权动 DAO 的金库

阶段 5(DAO)第三篇:承接上篇结尾「钥匙归谁管」的钩子。内容:单私钥的风险(一把钥匙一个单点:钓鱼、助记词失窃、持有人失联,任何一种都等于金库全损);多签的 m-of-n 模型(Gnosis Safe 3/7——7 人持有密钥、3 人签名即可执行,叠加 48 小时时间锁与插件化独立权限,与 Web3 深度报告 5.4 节口径一致;m 与 n 的权衡:m 太小防不住合谋、m 太大卡住执行);多签 vs MPC 的取舍(MPC 私钥分片、签名时协同运算、用户无感,多签签名权独立、链上可审计——信任模型与恢复语义不同,二者并非互斥)

Gerrad Zhang
Wuhan, China
2 min read

钥匙归谁管:治理机器的最后一环

上一篇(代币经济学设计)的结尾停在一个问题上:规则有了(治理合约)、激励有了(代币经济学),**钥匙归谁管?**金库的提取权限、紧急路径的触发权、升级指针的掌控权——上一篇把这几样统称为「最锋利的那几把钥匙」,并预告要把它们从「单票多数」手里收回到「多签 + 权限分层」。本篇就来兑现这张期票。

先说为什么这是治理机器的最后一环。前两篇解决的是「决定怎么做出」(投票模型)与「动力从哪来」(代币经济学),两者都默认了一个前提:决定做出来之后,有人去执行。链上世界的执行就是签名——一笔交易凑齐签名就上链,不可撤销。于是「谁握着能签名的私钥」这个最物理的问题,反而成了最顶层的设计问题:提案可以再提、票可以再投,金库被签走就是被签走了。本篇讲的正是这层钥匙管理:多签 (m-of-n 签名模型)与围绕它的权限分层。

口径说明:本篇机制描述与站内词典、Web3 深度报告 5.4 节(报告页)保持一致(3/7 多签、48 小时时间锁、插件化独立权限);报告口径之外的数字只用「量级/约」表述,全文为机制科普,不构成任何投资建议。


单私钥:一把钥匙一个单点

最朴素的配置:金库就是一个普通钱包地址,私钥在创始人(或某个运维)手里。这个配置把整个组织的安全预算,押在一个人的操作卫生上,而死法至少有三种:

  • **钓鱼。**骗走一笔交易不需要偷走私钥——只需要骗到一次签名。伪装成空投领取页、假的合约交互界面,都是冲着「让你亲手签」去的。
  • **助记词失窃。**私钥抄在备忘录里、截图存网盘、输入过钓鱼网站——任何一个泄露通道打开,金库清零:没有冻结、没有挂失、没有客服。
  • **持有人失联。**唯一持钥人丢了设备、忘了密码,或者单纯长期失联——组织最有价值的资产变成谁也动不了的死库。
单私钥金库的攻击面(示意):

  钓鱼页面 ──────┐
  助记词泄露 ────┼──▶ 唯一私钥 ──▶ 金库全损(任一条通道即达)
  持钥人失联 ────┘

注意这三条的严重性是同级的:任何一条发生,都等于金库全损。这不是概率问题,是结构问题——单私钥意味着「一个人的任何意外,都是组织的全部意外」。

问题的解法也就顺理成章:既然一把钥匙是单点,那就把一把钥匙拆成 n 把


m-of-n:n 把钥匙,m 把才能开

多签的标准形态是 m-of-n 模型:n 把私钥共同持有钥匙,任意 m 把签名即可执行交易。以 Web3 深度报告 5.4 节(报告页)的典型配置为例——Gnosis Safe 3/7 多签:

m-of-n 签名与执行流程(以 Gnosis Safe 3/7 为例):

  任意签名人发起交易提案(转多少、给谁、调哪个合约)


  ┌──────────────────────────────────────┐
  │  Safe 合约的待确认队列(链上公开可见)  │ ◀── 其余人先审查再表态
  └──────────────────────────────────────┘

   ①签名   ②签名   ③签名        …其余 4 人可以不签
        └────────┼────────┘

        凑满 m = 3,满足执行条件

   (重大决策叠加时间锁:48 小时延迟窗口)

        交易上链执行,提案-确认-执行全程可审计

逐项读 3/7 的两组数字:7 人持有密钥(n=7,钥匙不集中在一人手里)、3 人签名即可执行(m=3,不必等全员到齐)。两道设计分别对住单私钥的两类死法——有 m 道门槛,单人失窃或离线不足以动金库(一把钥匙被盗,还差 2 票);有 n 把分散,少数人合谋也不足以独断(3 人串通虽可凑齐执行,但提案在队列里公开可见,其余 4 人有充足时间审查与反应;把 m 调高,合谋门槛同步抬高)。再叠上报告 5.4 的另外两组口径:时间锁 48 小时延迟(重大决策需等待窗口期,给链上观察者留出反应时间)、插件化(每个插件独立权限——能动 A 模块的钥匙,开不了 B 模块的门)。

为什么这套东西要建在 智能合约 上?因为「已凑几票」本身是需要记账的状态:谁签了、签的是什么、还差几票,得有一个所有签名人共同信任的地方记录。多签钱包把这个账本放在链上——提案、确认、执行三步全程公开可审计。这也正是 Account Abstraction 词条所列能力的代表:让钱包从「私钥控制」升级为「智能合约控制」,多签是其中最成熟、落地最广的一种。

m 和 n 不是随手选的,它们是一道「防合谋 vs 防卡死」的对偶题:


多签 vs MPC:拆钥匙的两条路

把单点拆开,还有另一条路线:MPC (安全多方计算)。词典词条的口径:私钥分片给多个参与者,任何单点都无法获取完整私钥。签名时,各分片持有方协同运算直接产出一笔合法签名——完整私钥不必在任何时刻出现在任何单一参与者手里,对用户全程无感:体验上它就是一个普通钱包,只是背后没有一把「完整的钥匙」。

两条路线解的是同一道题,但信任模型与恢复语义完全不同:

维度多签(m-of-n)MPC(私钥分片)
拆的是什么签名权:n 个独立的人各持一把完整私钥私钥本身:一把私钥切成 n 片,无人持全钥
信任对象治理主体本身——信任「人」,且其行为链上可见分片协议与参与方集合——信任「协议与运营方」
审计语义提案-确认-执行全在链上,谁签了什么可追溯协同计算在链下,链上只见一笔普通签名,审计靠参与方记录
恢复语义丢一把钥匙只要没丢到低于 m,可轮换新钥匙分片丢失依赖参与方的再分片流程恢复
使用体验每次操作要凑人签名,慢,但每步有人把关用户无感,像单签钱包一样用

所以二者并非互斥,而是各管一段:MPC 常用于「个人/服务内侧」——托管钱包、交易所、AI Agent 钱包用它把单个用户的私钥拆开托管,词条里「AI Agent 钱包常用 MPC」说的正是这个场景;多签用于「组织侧」——多个独立主体共管一份资产,要的恰恰是「每个动作都有人签字画押」。一个 DAO 完全可以两条都用:金库走多签,而每位签名人保护自己那把钥匙时再用 MPC——外层防「少数人合谋」,内层防「单把钥匙失窃」。


权限分层:DAO 金库的三道闸

钥匙的形态定了,下一个问题是钥匙挂在哪些门上。治理篇的安全清单有一条「敏感操作叠加多签(防单点)」——「叠加」二字说的就是权限分层:多签不是替代治理流程,而是治理流程的最后执行闸。把一座 DAO 金库的完整动线画出来:

DAO 金库的三道闸(权限分层示意):

  第一道 治理提案 —— 方向由投票定
        │        (改什么参数、花多少钱、批给谁,写进提案过投票)

  第二道 时间锁窗口 —— 给反对者留退出权
        │        (投票通过不立即生效,48 小时级延迟窗口,
        │          有时间发现恶意提案的人可以在生效前离开)

  第三道 多签执行 —— m-of-n 钥匙串实际签名动金库
                 (敏感操作必须过这道闸;日常小额走低门槛路径)

三道闸各司其职:提案层决定「该不该做」,时间锁层保住「不同意的人有时间离开」,多签层是最后的物理执行闸——即使前两道都被骗过(投票被操纵、时间锁被熬穿),攻击者仍要面对「凑不齐 m 个真实签名人」这道人肉防线。分层还体现在额度分级上:大额走「多签 + 时间锁」全套,日常小额运营走限额内的低门槛路径——报告 5.4 的「插件化:每个插件独立权限」正是这个思想的合约化表达:不是一把万能钥匙开所有门,而是每扇门配自己的钥匙与限额。

最后收回治理篇埋的伏笔。那篇讲 时间锁 时提过一条紧急路径:预言机失效后的参数抢救等不了 48 小时,所以不少协议配了「由多签小组触发快速通道,用少数受信人换响应速度」的侧门。现在可以把代价说透了:紧急路径本质是把权限分层临时压扁成「少数人单点」——换来的响应速度是真实的,引入的单点风险同样真实。


操作安全:普通人的钥匙管理

组织级的保险丝装好了,本篇最后给个人级的现实建议——三条都朴素,但每一条都在替你挡真金白银的损失:

  1. **测试专用账户隔离。**跟新 DApp 交互、领空投、尝鲜协议,用一个小额专用账户,与主资产账户物理隔离(不同钱包实例、不同助记词)。钓饵永远先咬最活跃的那只钩。
  2. **签名前核对 calldata 与目标地址。**钱包弹出签名请求时,「函数名 + 目标合约地址 + 金额」三项逐一核对——钓鱼页面可以在前端显示「领取奖励」,背后让你签的却是无限授权。前端说什么不算数,calldata 说什么才算数
  3. **大额操作先小额试路。**第一次向新地址或新合约转大额资产前,先转一小笔并确认到账——用一次小额成本验证整条路径(地址没抄错、合约行为符合预期),再执行主交易。多签场景同理:先提交小额测试交易、确认执行结果无误,再提交正式额度。

这三条对个人是卫生习惯,对多签签名人则是职责:m-of-n 的 m 道门槛之所以有价值,前提是每个签名人真的在审查——不看 calldata 闭眼签的 3/7,实际安全等级约等于 1/1,还附赠「三个人都签了」的责任稀释。


总结:权限分层是治理机器的保险丝

复盘本篇:单私钥把组织安全押在一个人的操作卫生上(钓鱼、助记词失窃、失联,任一发生即全损);多签用 m-of-n 把单点拆开(Gnosis Safe 3/7 + 48 小时时间锁 + 插件化独立权限,口径同报告 5.4),m 防合谋、n 防卡死,两头都要留缓冲;多签与 MPC 是拆钥匙的两条路(签名权独立可审计 vs 私钥分片用户无感),信任模型与恢复语义不同、并非互斥;DAO 金库靠权限分层上三道闸(提案定方向、时间锁留退出、多签执行敏感操作),紧急路径是范围受限、事后可审计的侧门。一句话收束:投票决定组织的意志,多签守住组织的财产——权限分层是治理机器的保险丝,电流异常时它先熔断,机器才烧不掉

至此,阶段 5 的零件全部到齐:规则(治理与投票)、激励(代币经济学)、钥匙(多签与权限分层)。但纸面零件与真实运转之间还差最后一步检验——现实里这些制度跑得到底怎么样?哪些 DAO 活成了教科书,哪些成了反面教材?下一篇「知名 DAO 案例分析」(M5.4)将做案例复盘,并为整个五阶段专栏收官。

相关文章:

Comments

Link copied to clipboard!