VER:避免治理攻击,蓝筹 DeFi 的治理经验

作者:0xEdwardyw,Tokeninsight

加密领域针对协议的攻击不时都会出现,其中之一是治理攻击。攻击者成功取得协议的治理权,铸造大量通证以及盗取全部协议金库资产。最近一次事件就在2月份,一个风险投资DAO-BuildFinance遭遇了治理攻击导致协议彻底失败。这篇文章会对几个蓝筹DeFi的治理机制进行对比介绍,看看它们是如何避免治理攻击。

不同级别的去中心化治理程度

Source:OurNetwork:DeepDive#2–GovernanceExtractableValue

一个协议发展的早期,控制权往往是由开发团队管理的,并且是由单一密钥控制,这种情况下不会存在治理攻击的可能性。随着协议的发展,开发团队把一部分控制权逐渐分散出去,协议变成由多签的形式管理。控制多签的人可能包括开发团队、社区的重要参与者、或者主要投资机构等等。这种情况同团队完全控制协议在本质上没有不同,都是由可信任的利益相关方一起治理,治理攻击依然不可能出现。

随着协议进一步向去中心化治理发展,发行治理通证将治理权完全分散给治理通证持有者,协议的重要改变由治理通证在链上投票决定,投票通过的治理提案按照预先设定的程序自动执行,这个时候治理攻击的问题才会出现,协议需要仔细的设计治理机制来避免治理攻击的发生。

BuildFinance的治理攻击实例

BuildFinance是一个由DAO进行治理的协议,治理通证持有者可以投票铸造通证和使用金库。2月9日,在协议的Discord中,社区的调解人发言通知有人发起了恶意的治理提案,如果提案通过将导致该攻击者自由铸造协议通证。社区成功投票否决了这个提案,第一次治理攻击没有成功。

攻击者把持有的通证转入了另一个钱包,第二次发起了提案。这一次,协议的Discord机器人没有侦测到新的提案。这一次治理提案在社区没有人注意到的情况下在2月10日获得了通过。

Build协议有两天的时间锁,治理攻击的提案在2月10日通过,开发团队直到2月14日在Twitter上宣告攻击者完全控制了DAO和通证铸造权,并且铸造了110万通证。攻击者将所有新通证在DEX上抛售,协议通证已一文不值。

根据BuildFinance在其Medium页面的介绍,协议采用了GovernorBravo治理机制。GovernorBravo是由CompoundFinance创建的一套成功的治理机制,被很多蓝筹DeFi采用,包括了Uniswap和AAVE。

GovernorBravo允许转移协议的控制权和金库资金,所以攻击者有机会获得协议的全部治理权。尽管被蓝筹DeFi协议广泛的采用,这套治理机制本身并不可以阻止治理攻击的发生。

成功的治理模型GovernorAlpha&Bravo

CompoundFinance的GovernorAlpha以及更新版本GovernorBravo治理模型被很多DeFi协议广泛使用。GovernorBravo的治理流程如下:

Source:Compound

治理提案的提出需要65,000$COMP,提出的提案有两天的审查期。之后进入3天的投票期,如果有超过一半的同意票,且不少于400,000的投票数,提案获得通过并进入时间锁。时间锁为2天,之后提案会被协议自动执行。

Uniswap使用GovernorBravo治理机制,治理的流程与Compound类似。Uniswap大幅提高了提出治理提案与治理提案的通过门槛。提出提案需要250万$UNI通证,按照2月21日价格这大约是2,500万美元。总投票数需要达到4,000万$UNI,接近4亿美元的价值。

AAVE–GovernorBravo修改版

AAVE的治理模型与GovernorBravo类似,但是增加了两个元素。第一是将时间锁分为快与慢两种。重要性较低、风险较低的治理提案可以通过快时间锁,快速得到执行。而影响重大的提案则需要经过慢时间锁,让社区有更多的时间做出反应。比如说一个治理攻击提案被通过了,慢时间锁让社区有充足时间决定怎么补救,要不要将整个协议fork一个新地址。

Source

另一个重要的元素是AAVE的多签卫士。在Governor机制里,是有一个Pause功能的。Pause可以暂停协议的铸造、借款、转移、清算这些功能,但是Pause没办法阻止治理攻击者用足够多的通证来通过一项治理提案。AAVE的卫士功能允许直接取消一个提案,只要这个提案还没有被执行,在整个流程的任何一点都可以直接取消。卫士功能可以最有效的阻止任何恶意治理提案。

安全措施

GovernorBravo的很多元素已经是治理领域的黄金标准,不论其他协议采用了多么不同的治理机制,都或多或少的包含了这些元素。

1.时间锁:几乎所有协议的采用了时间锁。提案通过后与被系统执行之间的缓冲时间给予社区和通证持有者做出反应的时间。理论上,如果协议的使用者和通证的持有者对于某一提案有相反的看法,可以在时间锁期间内退出协议以及卖出通证。时间锁越长对于协议的保护越强,但是过长的时间锁会导致当突发系统问题出现时,没有办法在短时间内修复。

2.对提案通过设定高要求:Uniswap的例子中,通过提案所需要的通证价值非常高,进行治理攻击的成本极高。而且,Uniswap的金库中全部为$UNI通证,就算攻击成功,拿到了金库控制权,$UNI的市场价会迅速下跌导致攻击者的收益未必能高过前期所付出的成本。

Source:TokeninsightAnnualDeFireport

3.多签护卫:只要恶意治理提案被发现,这是最有效阻止治理攻击的方法。但是在一个去中心化治理的框架中,应该把这种过大的权利赋予给谁是一个问题。AAVE采用社区投票来决定10个护卫成员,在其中5个同意的情况下可以否决任何提案。

MakerDAO的投票机制

MakerDAO有一个和上述Governor治理机制完全不同的投票方式。在Governor中,治理通证持有者对某一项治理提案进行投票,无论最终通过还是否决,这一个投票流程都会终止,治理通证也会返还。

MakerDAO使用持续的同意投票制(continuousapprovalvoting)。特点在于你对某一个提案用治理通证$MKR进行投票,当这个提案获得通过及执行后,你的$MKR仍然在这个提案内,而不会像其他投票机制会将治理通证自动退还。你持有的$MKR仅能对某一提案进行投票,无法复投。因此如果你想对新的提案进行投票时,需要手动将$MKR从旧的提案中取出来。

新的提案获得通过的条件是投票的数量超过前一个成功获得通过的提案。

Source:MakerDao

例如2022年2月25日的提案收到82,001.5$MKR的投票,并且获得通过等待执行。如果此时有新的提案需要进行投票,通过新提案所需要的票数便是82,001.5$MKR。

更早之前已经获得投票通过并且已经执行的提案,例如2022年1月24日获得通过并且在1月26日已执行的提案。我们可以看到仍有20,050个$MKR留存在这个提案里没有被手动取出。

这种投票方法增大了新提案通过的门槛。由于很多$MKR留存在旧的提案里,市场上可用来投票的通证数量相应的变少了,新提案要获得通过需要吸引用户把票从旧的提案中手动取出来。

Curve的Vote-Lock治理机制

在GovernorBravo和MakerDAO的持续同意投票制,每一个治理通证代表一票。治理通证可以在公开市场交易,也可以从借贷协议中借出。理论上,只要有足够的抵押品,例如$ETH,就可以借到足够多的治理通证,例如$UNI。可以用借来的治理通证发起治理攻击,这样就无需担心成本的问题,如果$UNI跌倒一文不值,攻击者可以无成本还回给借贷协议。

在vote-lock机制里,治理通证本身没有投票权,需要将$CRV质押锁定为veCRV才获得投票权。锁定期可以长达4年,锁定期越长,投票权越大,投票权会随着锁定期时间流逝而减少。这令从市场上借来$CRV投票的可行性大大降低。

ve机制广受欢迎

自去年开始,veto-lock(ve机制)这种治理机制热度快速提升,受到很多新项目的采用。其中一个例子是IzumiFinance,主打流动性即服务的项目。与Curve相似,Izumi有两类通证,$iZi和veiZi。$iZi持有者质押锁定后获得有治理权的veiZi,veiZi无法交易和转让。治理权和锁定期成比例变化。

新型ve机制的出现

原始的ve机制无法交易和转让,近期像IzumiFinance和AndreCronje支持的Solidly项目开始尝试一个新模式,veNFT。

IzumiFinance的$iZi质押锁定后获得的将是veiZiNFT。原本的治理通证依然无法交易,但是代表治理权的NFT可以在NFT市场,例如Opensea进行交易。这个方法解决了ve机制资本利用效率低的问题,但是会对治理安全产生什么影响还没有出现相关的讨论。

结语

蓝筹DeFi协议所使用的治理机制都经受了时间的考验,但他们并非完美,问题还是会时不时出现。没有100%安全的治理机制,安全性是由不同类别的机制组合在一起达成的。这包括了一个好的治理机制,一个活跃的社区,以及一个经济激励机制来反激励治理攻击,让攻击的潜在收益无法覆盖成本。

在风险管理领域,有一个瑞士奶酪理论。奶酪的每一切片就像是一个风控措施,但是每一个切片都有众多小孔,就像每一个措施都有其弱点。当把这些奶酪切片堆积在一起时,其他切片就可以覆盖别的切片上的小孔,风险事件穿透所有切片的几率大幅降低。

Source:https://thedecisionlab.com/reference-guide/management/swiss-cheese-model/

就像BuildFinance,攻击者的第一次治理攻击成功被社区否决,第二次攻击由于社区没有注意到才导致了提案被通过。一个活跃的社区就是一道风险防线,让这类攻击无法成功。又比如发起治理攻击的成本过大,可能根本不会有人做出尝试。

点击下载TokenInsight?APP

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-6:23ms