Maker:MakerDAO治理合约升级背后的安全风波

北京时间2019年05月07日,区块链安全公司Zeppelin对以太坊上的DeFi明星项目MakerDAO发出安全预警,宣称其治理合约存在安全漏洞,希望已锁仓参与投票的用户尽快解锁MKR提并出。MakerDAO的开发者Maker公司亦确认了漏洞存在,并上线了新的治理合约,并宣称漏洞已修复。该安全威胁曝出后,PeckShield全程追踪了MKR代币的转移情况,并多次向社区发出预警,呼吁MKR代币持有者立即转移旧合约的MKR代币。截止目前,绝大多数的MKR代币已经完成了转移,旧治理合约中尚有2,463个MKR代币待转移。05月07日当天,经PeckShield独立研究发现,确认了该漏洞的存在(我们命名为itchyDAO),具体而言:由于该治理合约实现的投票机制存在某种缺陷,允许投票给尚不存在的slate。等用户投票后,攻击者可以恶意调用free()退出,达到减掉有效提案的合法票数,并同时锁死投票人的MKR代币。次日05月08日,PeckShield紧急和Maker公司同步了漏洞细节,05月10日凌晨,MakerDAO公开了新版合约。Zeppelin和PeckShield也各自独立完成了对其新合约的审计,确定新版本修复了该漏洞。在此我们公布漏洞细节与攻击手法,也希望有引用此第三方库合约的其它DApp能尽快修复。细节

去中心化流动性协议Tokemak筹集400万美元:去中心化流动性协议Tokemak获得400万美元的投资,由DeFi投资基金Framework Ventures领投,Electric Capital、Coinbase Ventures、North Island Ventures、Delphi Digital和ConsenSys等参投。这笔资金将为Tokemak于2021年第二季度末的推出做准备,其将在以太坊主网上部署其流动性网络。(Cointelegraph)[2021/4/21 20:41:46]

在MakerDAO的设计里,用户是可以通过投票来参与其治理机制,详情可参照DAO的FAQ。以下是关于itchyDAO的细节,用户可以通过lock/free来将手上的MKR锁定并投票或是取消投票:在lock锁定MKR之后,可以对一个或多个提案(address数组)进行投票:注意到这里有两个vote函数,两者的传参不一样(address数组与byte32),而vote(addressyays)最终亦会调用vote(bytes32slate),其大致逻辑如下图所示:简单来说,两个vote殊途同归,最后调用addWeight将锁住的票投入对应提案:可惜的是,由于合约设计上失误,让攻击者有机会透过一系列动作,来恶意操控投票结果,甚致让锁定的MKR无法取出。这里我们假设有一个从未投过票的黑客打算开始攻击:调用lock()锁仓MKR,此时deposits会存入锁住的额度。此时黑客可以线下预先算好要攻击的提案并预先计算好哈希值,拿来做为步骤3的传参,因为slate其实只是address数组的sha3。这里要注意挑选的攻击目标组合必须还不存在于slates中(否则攻击便会失败),黑客亦可以自己提出一个新提案来加入组合计算,如此便可以确定这个组合必定不存在。调用vote(bytes32slate),因为slate其实只是address数组的sha3,黑客可以线下预先算好要攻击的提案后传入。这时因为votes还未赋值,所以subWeight()会直接返回。接下来黑客传入的sha3(slate)会存入votes,之后调用addWeight()。从上方的代码我们可以看到,addWeight()是透过slates取得提案数组,此时slates获取到的一样是未赋值的初始数组,所以for循环不会执行调用etch()将目标提案数组传入。注意etch()与两个vote()函数都是public,所以外部可以随意调用。这时slates就会存入对应的提案数组。调用free()解除锁仓。这时会分成以下两步:deposits=sub(deposits,wad)解锁黑客在1.的锁仓subWeight(wad,votes)从对应提案中扣掉黑客的票数,然而从头到尾其实攻击者都没有真正为它们投过票从上面的分析我们了解,黑客能透过这种攻击造成以下可能影响:一、恶意操控投票结果二、因为黑客预先扣掉部份票数,导致真正的投票者有可能无法解除锁仓时间轴

EOSDT首席执行官:MakerDAO抵押漏洞扩大至550万美元,系统缺乏冗余:金色财经报道,周四的市场崩溃使MakerDAO留下了500万美元的漏洞,该项目现在正努力填补。EOSDT首席执行官Alex Melikhov表示,MakerDAO漏洞的最大原因是MakerDAO的喂价使用了专有的oracle,由于未完成的交易的突增而出现了故障。在价格大幅波动的时期,系统中的链上价格为166美元,而市场价格已跌至133美元。根据Melikhov的说法,这引发了一场“理想风暴”,在该风暴中,Maker的保管人不愿以20%的市场溢价而不是通常3%的折扣购买以太坊。Melikhov解释称,MakerDAO的逻辑允许在拍卖中进行零投标,因此一些市场参与者免费获得了清算的ETH。因此,MakerDAO累积了400万美元的无抵押债务。考虑紧急关闭之后,Maker Foundation没有采取果断行动,Melikhov表示,截至3月13日,抵押漏洞扩大到了550万美元。Melikhov强调MakerDAO最近的问题是技术问题,而不是经济问题。这些情况显示了MakerDAO系统缺乏冗余,以太坊网络容量的不足。[2020/3/14]

PeckShield是面向全球顶尖的区块链数据与安全服务提供商。商业与媒体合作,请通过Telegram、Twitter或邮件与我们联系。

公告 | Kraken将于12月2日开通MakerDAO多抵押DAI存取款业务:12月2日,Kraken官方发布公告称,最迟于12月2日,将重新开通akerDAO多抵押Dai(MCD)存款和取款,且不再支持SAI。若用户在11月18日升级之前拥有Dai资产,目前其资产将被反映为MakerDAO多抵押Dai(MCD)。此前11月19日消息,MakerDAO多抵押Dai正式上线,而此前发行的Dai已更名为Sai。[2019/12/3]

动态 | MakerDAO的债务抵押债券将被更名为Vault:金色财经报道,根据Maker Foundation的博客文章,MakerDAO将为其债务抵押债券(CDP)更名,以为其即将于2019年11月发行的多抵押品Dai(MCD)做准备。MCD发行后,Maker协议的新用户界面会将CDP标记为“Vault”。据悉,CDP是一种系统,用户可以在其中存入抵押资产以生成Dai。此外,在发布MCD之后,通过单个抵押DAI生成的Dai将被更名为Sai,而MCD生成的Dai将保留原始名称。[2019/11/1]

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

地球链

火星币DAPP:为什么类DAPP不需要发币?

2017年11月,以太坊上的「加密猫」成为了区块链上的第一个DApp,一只只能看却摸不到的卡通猫足足可以卖到17万美元的高价,不让吸引了全世界所有投资者的目光,也引领了DApp的潮流.

[0:0ms0-0:807ms