构筑Web3稳健治理:技术、社会与经济风险剖析
TLDR: 治理风险源于多方面,可能是社会、经济或技术领域的风险,有时甚至是这三者的交集。构筑未来的治理体系,关键在于理解如何降低这些风险,这对我们未来的发展至关重要。更为重要的是,并非每个决策都需要通过投票来确定。
去中心化合约具有一定的持久性特征。对这些合约的任何修改都需要通过治理过程来决定。治理过程本质上是人为的,因此远比合约本身要复杂得多。
本文旨在探讨治理流程可能存在的风险,并为思考治理风险提供一个基本框架。通常,有效的治理流程的目的是为了防止做出偏离项目或协议初衷方向的决策。
在这里,我们将介绍三大主要风险种类:技术风险、社会风险和经济风险。此外,我们还将分享一些在治理流程中获得的关键经验教训。
>> 治理简化过程
最小化治理行为的治理系统更加稳健和有防御力。变动越少越好。然而,协议需要升级,资金需要合理支配,发展方向需要明确。
广泛的治理系统还包括许多非特定于协议的问题,例如,对于赠款的承诺额度,这可以说是一个关键决定,但并不从根本上影响协议本身。一个能够明确区分协议特定决策与社会层面决策的系统,可以有效缩减治理行为的总体范畴。
自治组织旨在实现自主性,缩减治理行为能够减少它们对人工操作的依赖。
正如我们所说,许多工具正在开发中,旨在帮助协议采取不同的治理行动方式,这些方式涉及社会或人类协调性质的治理行为,与那些直接影响协议的治理行为不同。例如,Zodiac Module 的出现,它允许用户提交交易,并通过乐观验证方式对其进行确认。交易可以被提交而无需每一个链上动作都经过投票,只有在对交易性质存在分歧时,才需要进行投票。
>> 技术性漏洞
智能合约的漏洞反复给众多协议——治理协议也不例外——带来严重困扰。许多治理合约以链上投票机制存在,其目的是执行预定的指令集。但只要代码存在于链上,就有可能出现技术上的漏洞被攻击的风险。
其中一个引人注目的案例是 Compound 治理系统遭受的一次 2200 万美元的安全漏洞攻击。Compound 系统中负责分配流动性挖矿奖励的合约出现了缺陷。
唯一被授权修改出现问题的合约是治理合约(Governor contract),这意味着只有通过治理投票才能进行修补错误合约的变更。
治理流程的缓慢实际上阻碍了快速修补漏洞和止住资金流失的步伐。幸运的是,Compound 团队的响应尽可能地迅速,治理系统也以它能够达到的最快速度做出了反应。
从另一个角度看,合约确实严格按照其设计执行了所有操作,包括漏洞。问题在于,合约的实际编程和人们期望它怎么运作的不一样。很多人对这个理由不太买账,Robert Leshner 就是其中之一。
“毫无疑问,这是 Compound 协议历史上最糟糕的一天。” —— Robert Leshner。
无论我们每个人认为什么是对或错,一个不变的事实是:**人类认为代码能做的事情与它被赋予的意图之间总会存在差异。**令人震惊的现实是,我们通常都是在事情发生后才意识到这一点。
>> 社会性漏洞
抛开技术层面,治理的社会层面同样充满挑战。相较于代码,人类的行为和动机要复杂得多。
这一部分的内容足以撰写一篇详尽的论文,然而本文不会深入每一个细节,而是挑选了五个认为是当前趋势性社会风险的要点。
链上与链下投票:如上所述,协议治理行动应当尽量简化到最基本的问题。链上投票应当只用于影响链上合约的决策,而链下投票适用于那些可以通过社会共识达成一致的事项。我常见到许多本可以通过软共识轻易解决的问题,却要进行大量的链上投票,这无疑降低了关键投票与常规操作项目之间的重要性区分。
投票的机制和流程:尽管并非所有投票过程都遵循这种模式,但有足够多的例子让人对某些投票方法感到疲惫。有时,链下的“温度检查”会引发正式的链上投票,而这一投票又由多签名机制执行。这种做法很少有意义,因为它将链上投票到执行的步骤复杂化了。要么放弃链上部分,并且有一个可信的多签名钱包在软共识基础上进行管理决策,要么让链上投票直接触发必要的操作。
治理流程中最宝贵的资源是合格选民的关注度:频繁的投票可能会导致选民的冷漠和长期投票率的降低。确保每次投票都富有意义、针对性强,并且达到全面投票的质量标准,这样才能保证良好的投票参与度。
法定人数及所需参与度:正如我们在先前文章中所述,选民参与度与组织规模之间需要平衡。同样,去中心化程度与创始团队少数成员可能轻易推翻投票结果的能力之间也需要权衡。如果代币分散不够广泛,团队成员就能轻易满足投票的法定人数要求。
投票者的专业知识:治理风险中最严峻的挑战之一是投票者是否具备做出知情决策的专业知识。在许多情况下,用户通过空投或参与流动性挖矿项目等方式低成本获得治理代币,并拥有投票权。这些投票者对他们所投的内容不够了解,结果要么选择弃权,要么跟随多数人的意见而投票,这不会产生真正去中心化和具备代表性的投票结果。
>> 经济性漏洞
经济攻击是攻击者利用资本力量操纵投票过程的行为。通常情况下,治理通过可以购买的治理代币来执行,这就意味着需要支付一定的代价来获得过半数的投票权(例如,51%)。
如果我们观察一些理论数据,为了实施此类攻击,攻击者的金库至少需要有相当于其他任何协议 50%投票权价值的资金。鉴于一些协议的金库规模远超其他协议,这类风险的发生并非不可能。
幸运的是,许多协议有大量的代币处于锁定状态,流通量不足,这使得此类攻击不太可能实现。但随着时间的推移,如果锁仓代币逐渐解锁,流通供应增加,经济攻击的可行性也随之增强。
随着时间推移,这类攻击并不总是为了直接的财务收益。它们可能是为了破坏竞争者、控制投票以影响关键决策,或者甚至是为了造成决策僵局。
经济攻击利用协议的一个例子出现在一个相对鲜为人知的协议:True Seignorage。
简要来说,由于 True Seignorage 的市值较小,一个攻击者购买了该协议 51% 的投票权代币。在获得这些代币之后,攻击者提出了一个提案,要求给他们的地址铸造 11.5 百万亿的代币。这个提案自然轻松通过,之后攻击者便能在 Pancake Swap 平台上自由售卖这些代币。
攻击者出售代币所得利润超过了其买通投票的成本,而且开发者的钱包资金不足,无法制止攻击者的行动。
CertiK 安全团队提出以下建议:从 DAO(去中心化自治组织)的机制设计入手,项目方应具备投票权,以确保提案不会被“挟持”,从而避免攻击事件的重演。
>> 结束语
治理机制不可或缺,我们必须建立一套既能反映我们共同理想的未来,又能不断进步和完善的治理流程。持续识别和应对治理系统中的风险是一项持续的任务。很显然,治理系统并不完美,我们需要认真努力来弥补这些不足,以实现其初衷。
去中心化治理尚处于初期阶段,其背后的技术也同样如此。随着该领域的逐渐成熟,治理面临的潜在攻击点将逐步减少。
原文:Governance Attack Vectors
封面:Unsplash@shubham