北京時間2019年05月07日,區塊鏈安全公司Zeppelin對以太坊上的DeFi明星項目MakerDAO發出安全預警,宣稱其治理合約存在安全漏洞,希望已鎖倉參與投票的用戶盡快解鎖MKR提并出。MakerDAO的開發者Maker公司亦確認了漏洞存在,并上線了新的治理合約,并宣稱漏洞已修復。
該安全威脅曝出后,PeckShield全程追蹤了MKR代幣的轉移情況,并多次向社區發出預警,呼吁MKR代幣持有者立即轉移舊合約的MKR代幣。截止目前,絕大多數的MKR代幣已經完成了轉移,舊治理合約中尚有2,463個MKR代幣待轉移。
05月07日當天,經PeckShield獨立研究發現,確認了該漏洞的存在,具體而言:由于該治理合約實現的投票機制存在某種缺陷,允許投票給尚不存在的slate。等用戶投票后,攻擊者可以惡意調用free()退出,達到減掉有效提案的合法票數,并同時鎖死投票人的MKR代幣。
MakerDAO社區投票選出第一批孵化生態系統參與者:金色財經報道,MakerDAO社區民意投票根據新的Maker章程參數選出第一批四個孵化生態系統參與者:dewiz、Sidestream、Phoenix Labs和Viridian Protector Advisory Company。
dewiz預算分配為每月15萬DAI與21枚MKR,目標包括以RWA為重點的Collateral Onboarding Technical工作與一般智能合約開發;
Sidestream預算分配為每月70,912.5枚DAI,目標為全棧智能合約與前端開發;
Phoenix Labs在民意投票通過后將立即分配347,100枚DAI,每月將為開發者關系一職分配1.7萬枚DAI與10枚MKR,目標為交付Spark協議并維護12個月;
Viridian Protector Advisory Company在民意投票通過后將立即分配257,250枚DAI,每月分配85,750枚DAI,目標為提供Protector咨詢工作。[2023/4/1 13:38:15]
次日05月08日,PeckShield緊急和Maker公司同步了漏洞細節,05月10日凌晨,MakerDAO公開了新版合約。Zeppelin和PeckShield也各自獨立完成了對其新合約的審計,確定新版本修復了該漏洞。
MakerDAO與Lido Finance的新保險庫WSTETH-B上線Oasis.app和DeFi Saver:5月18日消息,MakerDAO與Lido Finance的新保險庫WSTETH-B上線DeFi平臺Oasis.app,可用來自Lido Finance的wstETH以0.75%的穩定費鑄造Dai,WSTETH-BVault的清算比率為最大15%,債務上限為1.5億枚Dai,WSTETH-B是WSTETH-AVault類型的低費用版本。此外,一站式資產管理解決方案DeFi Saver將WSTETH-B添加到其平臺,0.75%穩定費,185%清算率。[2022/5/18 3:24:51]
在此我們公布漏洞細節與攻擊手法,也希望有引用此第三方庫合約的其它DApp能盡快修復。
a16團隊成員等提出新的MakerDAO代幣經濟模型提案:金色財經報道,據MakerDAO論壇公告,a16z團隊成員與RIpplewoodAdvisors成員@luca_pro共同提出新的MakerDAO代幣經濟模型提案。重點包括:(1)通過鏈下融資結構中的額外資本緩沖為MKR代幣創建新用例;建立二級計息保險基金,作為二級盈余緩沖的補充層;對MakerDAO中的某些拍賣實施支持MKR的激勵措施。(2)通過新的MKR質押獎勵系統,提升投票參與度和一致性;為核心單位提供更大的運營靈活性,減少投票要求;通過社區撥款創建新的MakerDAO治理儀表板。以及(3)增加系統盈余緩沖等。[2022/3/24 14:14:22]
細節
聲音 | Bitrefill的首席財務官:MakerDAO缺乏權力下放所需的數量:據AMBcrypto消息,Bitrefill的首席財務官John Carvalho表示,MakerDAO使用“權力下放”這個詞“太過寬泛”。Carvalho強調了權力下放在數量上的必要性。他說:“當你有少量的演員時,他們可以合謀。而你手中真正掌握的是一個企業聯盟。你沒有去中心化的東西。”此外,Carvalho強調治理永遠不能成為區塊鏈的一部分。[2019/11/25]
在MakerDAO的設計里,用戶是可以通過投票來參與其治理機制,詳情可參照DAO的FAQ。
以下是關于itchyDAO的細節,用戶可以通過lock/free來將手上的MKR鎖定并投票或是取消投票:
在lock鎖定MKR之后,可以對一個或多個提案(address數組)進行投票:
注意到這里有兩個vote函數,兩者的傳參不一樣,而vote(addressyays)最終亦會調用vote(bytes32slate),其大致邏輯如下圖所示:
簡單來說,兩個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==
簡介:單個請求向/wallet/deploycontract提交幾兆字節碼以及CPU密集型長解析將消耗CPU大約10分鐘,同時仍然在堆中保存幾兆字節碼.
1900/1/1 0:00:00親愛的用戶:?? IDAX將上線EMI。開通EMI/ETH交易,立即前往。充值開放時間:2019年6月25日21:00(UTC8)交易開放時間:2019年5月25日21:00(UTC8)公鏈LU.
1900/1/1 0:00:00西聯新發布的一項專利顯示,該公司設想了一種可以管理重復傳輸通知和加密貨幣網絡的安全支付系統。總部位于英國恩格爾伍德的西聯是世界上最大的轉賬服務公司.
1900/1/1 0:00:00周報摘要 上周全球數字貨幣資產日均市值為?2375.91億美元,較上一周大漲22.70%,日均交易量?957.34?億美元,較上一周大漲?56.31%。全球30家代表性交易所,新上交易對11個.
1900/1/1 0:00:00PlatON與IRISnet開展生態合作,除了PlatON近期已實現基于IRISnet主網的驗證人節點部署工作外,雙方未來還將在隱私解決方案、黑客攻擊風險、社區建設開展合作.
1900/1/1 0:00:00近日,360公司Vulcan團隊宣布發現了區塊鏈平臺EOS的一系列高危安全漏洞。經驗證,其中部分漏洞可以在EOS節點上遠程執行任意代碼,即可以通過遠程攻擊,直接控制和接管EOS上運行的所有節點.
1900/1/1 0:00:00