北京時間2019年05月07日,區塊鏈安全公司Zeppelin對以太坊上的DeFi明星項目MakerDAO發出安全預警,宣稱其治理合約存在安全漏洞,希望已鎖倉參與投票的用戶盡快解鎖MKR提并出。MakerDAO的開發者Maker公司亦確認了漏洞存在,并上線了新的治理合約,并宣稱漏洞已修復。
該安全威脅曝出后,PeckShield全程追蹤了MKR代幣的轉移情況,并多次向社區發出預警,呼吁MKR代幣持有者立即轉移舊合約的MKR代幣。截止目前,絕大多數的MKR代幣已經完成了轉移,舊治理合約中尚有2,463個MKR代幣待轉移。
05月07日當天,經PeckShield獨立研究發現,確認了該漏洞的存在,具體而言:由于該治理合約實現的投票機制存在某種缺陷,允許投票給尚不存在的slate。等用戶投票后,攻擊者可以惡意調用free()退出,達到減掉有效提案的合法票數,并同時鎖死投票人的MKR代幣。
Maker協議移除BAT-A 等5個代幣作為Maker Vault抵押品:10月17日消息,Maker協議移除BAT-A 、LRC-A、ZRX-A、UNIV2AAVEETH-A、UNIV2LINKETH-A等5個代幣作為Maker Vault抵押品。這些代幣的資本化、在其他DeFi協議中的使用維度或它們的流行度不是100%有效的變量。[2021/10/17 20:35:24]
次日05月08日,PeckShield緊急和Maker公司同步了漏洞細節,05月10日凌晨,MakerDAO公開了新版合約。Zeppelin和PeckShield也各自獨立完成了對其新合約的審計,確定新版本修復了該漏洞。
在此我們公布漏洞細節與攻擊手法,也希望有引用此第三方庫合約的其它DApp能盡快修復。
MakerDAO發起有關穩定費變更及等一系列執行投票:據官方消息,1月16日,治理促進者和Maker Foundation智能合約團隊已將一系列執行投票納入投票系統,投票內容如下:1.將變更多種保險庫類型的穩定費;2.將Set Protocol列入多個oracle白名單;3.將Gnosis列入多個oracle白名單;4.增加盈余拍賣緩沖(也稱“系統盈余”)從400萬枚DAI至1000萬枚DAI;5.撤銷禁用清算的穩定幣保險庫類型的清算斷路器的權限,這將意味著清算不能在沒有等待GSM暫停延遲的情況下啟用這些保險庫類型。[2021/1/16 16:18:48]
細節
在MakerDAO的設計里,用戶是可以通過投票來參與其治理機制,詳情可參照DAO的FAQ。
MakerDAO宣布將DAI集成加密借記卡:6月9日,MakerDAO官方博客發文,宣布將DAI與加密借記卡進行集成。至此可將DAI與傳統支付系統掛鉤,用戶可在任何接受加密借記卡支付的地方進行DAI支付。[2020/6/10]
以下是關于itchyDAO的細節,用戶可以通過lock/free來將手上的MKR鎖定并投票或是取消投票:
在lock鎖定MKR之后,可以對一個或多個提案(address數組)進行投票:
注意到這里有兩個vote函數,兩者的傳參不一樣,而vote(addressyays)最終亦會調用vote(bytes32slate),其大致邏輯如下圖所示:
聲音 | MakerDAO中國社區負責人潘超:需要分不同模式來看穩定幣的瓶頸:MakerDAO中國社區負責人潘超近日接受Odaily星球日報采訪時表示,需要分不同模式來看穩定幣的瓶頸。法幣托管模式面臨兩難的困境,USDT就有流動性和兌付性的兩難問題。同時還有監管層面,它其實并不是區塊鏈上的產品,只是一種憑證。它的方向可能是如何成為已有監管模式下的一個子產品。 另一種,數字資產抵押模式的瓶頸就是區塊鏈的瓶頸。這種模式的穩定幣最終還是要合規,但它并不依賴機構的信用,依靠區塊鏈本身的發展和擴大。[2019/1/6]
簡單來說,兩個vote殊途同歸,最后調用addWeight將鎖住的票投入對應提案:
可惜的是,由于合約設計上失誤,讓攻擊者有機會透過一系列動作,來惡意操控投票結果,甚致讓鎖定的MKR無法取出。
這里我們假設有一個從未投過票的黑客打算開始攻擊:
1、調用lock()鎖倉MKR,此時deposits會存入鎖住的額度。
2、此時黑客可以線下預先算好要攻擊的提案并預先計算好哈希值,拿來做為步驟3的傳參,因為slate其實只是address數組的sha3。
這里要注意挑選的攻擊目標組合必須還不存在于slates中(否則攻擊便會失敗),黑客亦可以自己提出一個新提案來加入組合計算,
如此便可以確定這個組合必定不存在。
3、調用vote(bytes32slate),因為slate其實只是address數組的sha3,黑客可以線下預先算好要攻擊的提案后傳入。
這時因為votes還未賦值,所以subWeight()會直接返回。接下來黑客傳入的sha3(slate)會存入votes,之后調用addWeight()。從上方的代碼我們可以看到,addWeight()是透過slates取得提案數組,此時slates獲取到的一樣是未賦值的初始數組,所以for循環不會執行
4、調用etch()將目標提案數組傳入。注意etch()與兩個vote()函數都是public,所以外部可以隨意調用。這時slates就會存入對應的提案數組。
5、調用free()解除鎖倉。這時會分成以下兩步:
deposits=sub(deposits,wad),解鎖黑客在1.的鎖倉
subWeight(wad,votes)
從對應提案中扣掉黑客的票數,然而從頭到尾其實攻擊者都沒有真正為它們投過票。
從上面的分析我們了解,黑客能透過這種攻擊造成以下可能影響:
一、惡意操控投票結果
二、因為黑客預先扣掉部份票數,導致真正的投票者有可能無法解除鎖倉
時間軸
時間
事件
2019.05.07
PeckShield復查并確認了漏洞存在
2019.05.08
PeckShield與Maker基金會討論并確認了漏洞細節
2019.05.09
Maker基金會公布新版DSChief合約源碼,PeckShield披露了漏洞相關細則
*文章為作者獨立觀點,不代表BSCEC立場
轉載此文章須經作者同意,并請附上出處及本頁鏈接。原文鏈接https://mp.weixin.qq.com/s?__biz=MzU3MTU2NTU1MA==
Tags:MakerMAKEDAOMKRMasterpiece MakerMaker BasicRatsCoin Team Daomkr幣最新價格
鏈聞ChainNews:Solidity是以太坊上最主流的函數修改器。本篇文章從技術角度展示了如何針對異常情況在代碼層面進行詳細分析,最后總結出異常情況最易出現的一些場景,并給出相對應的建議.
1900/1/1 0:00:00在這個世界上,如果聰明也分等級,那么最最聰明的人,一定是在玩金融。華爾街聚集了全世界最聰明的人,在這里,有數學天才、有心理學大師、有經濟學家……他們每幾秒鐘就能設計出一款風靡全球的金融產品,可以.
1900/1/1 0:00:00搜索巨頭谷歌表示,將在今年6月改變其金融產品政策,此舉將導致與數字貨幣相關的廣告被有效禁止。在周二發布的一篇博客文章中,該公司表示,將在今年6月修改現有的金融產品限制清單,將一些廣告內容列入黑名.
1900/1/1 0:00:00尊敬的BITKER用戶:“TRP交易大賽”活動已經于2019年5月15日23:59:59圓滿結束,感謝用戶的大力支持,所有獎勵都已經發放至您的個人賬戶,敬請查收,感謝您的支持與參與.
1900/1/1 0:00:00幣客BITKER已經開放創世挖礦,創世挖礦地址:https://www.bitker.com/static/trade_bkb創世時間:7月25日10點-7月29日24點.
1900/1/1 0:00:00據TheBlock報道,Ethfinex聯合創始人WillHarborne表示:Bitfinex不會是唯一一家受到監管機構關注的交易所.
1900/1/1 0:00:00