譯者前言:來自Coinmonks的研究者MicahZoltu日前披露了MakerDAO治理系統存在的漏洞,其表示任何擁有約40000MKR的人,都可以竊取MakerDAO的所有抵押品,包括DAI、SAI以及來自Compound、Uniswap以及其它Maker集成系統的大量資產,共計超過3.4億美元。目前,Maker基金會已發布了緊急公告,稱會通過修改治理規則修復這一問題。
(圖片來自:pexels.com/)
以下是MicahZoltu披露的漏洞細節及Maker基金會的公告內容:
摘要
任何擁有約40000MKR的人,都可以竊取MakerDAO的所有抵押品,包括DAI、SAI以及來自Compound、Uniswap以及其它Maker集成系統的大量資產,共計超過3.4億美元。
MakerDAOv2版本本應啟動安全措施,以防惡意的MKR持有者竊取所有抵押品。然而,他們并沒有選擇這樣去做。
一家銀行
MakerDAO,正是這個東西讓DAI在工作,目前,它在v1和v2版本中鎖定了價值約3.4億美元的ETH。它也是一個“被治理”的系統,與uniswap.exchange或者augur.net不同,這意味著一些財閥可以控制系統的行為。
當前以太坊未確認交易數為155158筆:Etherscan.io數據顯示,以太坊未確認交易數155158筆。以太坊全網算力為204.30TH/s,當前挖礦難度2547.91TH,交易處理能力14.0TPS。[2020/8/9]
MakerDAO的設計
治理系統可以調用各種各樣的內部函數,這些函數允許管理者做他們想做的任何事情。治理是一個相當簡單的“staketheleader”系統,在這個系統中,你將你的MKR質押在你想要控制系統的合約當中,而質押最多MKR的合約,就擁有這樣的控制權。
由于當前的執行合約上大約質押了80,000MKR,所以,做任何你想做之事的原始成本大約是80000MKR。
為了減輕惡意參與者的威脅,系統有一種機制,其在選擇新的執行合約后,在采取任何行動之前會有一個延遲。在此延遲期間,任何擁有足夠MKR的人,都可以觸發整個系統的全局結算,在新的執行合約做出任何不利的事情之前有效地將其關閉。這意味著,如果一個竊賊出現,并試圖在他們自己的執行合約中投票,而該合約的程序是竊取所有抵押品,即使他們擁有比其他執行合約更多的權益,他們也將不得不等待這一延遲,并希望在此期間沒有人觸發防御機制。
疏忽之處
而問題在于,Maker基金會決定此治理延遲的適當值為0秒。好的,防御者有0秒的時間來防御一方發起的攻擊。
微妙之處
鑒于上述情況,攻擊者可以執行以下操作:
HT在15分鐘內漲幅超過3.00%:據火幣全球站數據顯示,HT/USDT在15分鐘內出現劇烈波動,漲超3.00%,達到3.09%。當前報價為 3.95 美元,行情波動較大,請注意風險控制。[2020/4/23]
盡一切可能獲得80000MKR;
創建一個執行合約,它會把所有抵押品從Maker系統轉走;
立即對合約進行投票表決;
立即激活合約;
帶走價值3.4億美元的ETH;
這種攻擊的回報率是令人難以置信的,但它的執行成本很高,幸運的是,只要耐心一點,我們就能把這次攻擊的成本降低50%。
還記得上面我們如何描述現行投票制度的運作方式嗎?即擁有最多投票權的執行合約擁有著所有控制權。無論何時提出治理投票,都會有一段時期,讓MKR質押權益從舊的執行合約轉移到新的執行合約。這種情況從來不會一下子發生,通常是隨著時間的推移,個人將把他們的選票向前遷移。因此,將會有一個時間點,其中80,000枚積極參與的MKR將被分割在兩個執行合約當中,其中每個都有大約40000MKR。一個擅長寫腳本的家伙,可以很容易地確定交易的時間,這樣當MKR在兩個合約之間以最佳方式分配時,它就可以在這個時候執行上述攻擊,而只需要花費40000MKR的金額。
取款機
如果對你而言,偷竊3.4億美元還不夠的話,你還可以在執行攻擊的過程中為自己鑄造千萬億DAI。在搶劫Maker的同一筆交易中,你可以將這些DAI轉到Uniswap,并竊取DAI:ETH交易對中可用的ETH。為了從倒霉的銀行客戶口袋里得到一點額外的零錢,你也可以去Compound借出一千萬億DAI,并借入所有可用的借貸資本。如果你行動迅速,你甚至可以在鑄造所有DAI后立即在IDEX、Paradex、RadarRelay等半去中心化交易所進行套現。
行情丨BTC在15分鐘內跌幅超過1.00%:據火幣全球站數據顯示,BTC/USDT在15分鐘內出現劇烈波動,跌超1.00%,達到-1.02%。當前報價為 10151.61 美元,行情波動較大,請注意風險控制。[2020/2/13]
群體
但是等等,還有更多!以太坊是一個建立在有約束力合約之上的系統!這意味著一個人可以創建一個智能合約,在這個合約中,不信任對方的多個人可以在一套嚴格的規則下進行合謀。
規則集可能是這樣的:
如果這個合約收集40000MKR,那么任何人都可以觸發它,它將立即搶劫Maker。搶劫成功后,贓物將平均分配給貢獻者。而搶劫失敗后,MKR可被參與者撤回。任何人都可以隨時收回他們的MKR。
這個非常簡單的合約對于參與MKR貢獻的人來說是一個有約束力的協議,他們沒有必要信任他人,這與傳統的搶劫有很大的不同。
任何人都不能帶著所有的戰利品逃跑,任何人都不能竊取任何其他參與者的貢獻,任何人都不能將貢獻的MKR用于除執行約定的搶劫之外的任何事情。
有人可能會爭辯,任何攻擊者都必須將他們的存在通知眾源,而Maker基金會可以簡單地破壞“我們不參與治理”的規則來阻止攻擊,將基金會所有的MKR扔進投票,從而使攻擊花費達到400,000,000MKR,而不是40,000MKR。
雖然Maker基金會確實可以阻止這種情況的發生,但并不能保證他們會立刻看到這種情況的發生。例如,攻擊者可能在其他地方有資金,他們可以利用這些資金在交易所外獲得MKR。攻擊者也可能是MKR持有者,他們知道其他MKR持有者也有這種攻擊意圖,然后就可以私下進行協調。
行情丨BNB在15分鐘內漲幅超過3.00%:據Binance數據顯示,BNB/BTC在15分鐘內出現劇烈波動,漲超3.00%,達到3.07%。當前報價為 30.05 美元,行情波動較大,請注意風險控制。[2019/7/20]
即使有約束力的協議合約是公共知識,它也可以設計成一種混淆參與者的方式。例如,你可以讓感興趣的每個人向中心服務提供商提交一筆預先簽署的交易,然后中心服務提供商將等待廣播這些交易,直到有足夠的MKR。在這種情況下,Maker基金會要么在不知道是否有人真正參與的情況下介入到集中控制系統,要么他們什么也不做,而冒著隨時可能發生攻擊的風險,屆時攻擊發生時,他們將無力及時做出反應。
內部攻擊的可能
值得注意的是,如果Maker基金會愿意的話,他們現在就可以用這種方式攻擊系統,他們持有的MKR超過了所需的80,000數量,更糟糕的是,a16z現在也有足夠的MKR,另外還有幾個MKR持有者或者機構,他們的身份對我來說是未知的,而他們也有足夠的MKR來執行這種攻擊,而其它人則需要進行合謀才能執行這樣的攻擊。
所以,讓人害怕的是,這并不是DeFi,而是CeFi,但它并非是一家能讓個人能偷走你所有錢的銀行,而是說銀行或任何一個大股東,或一群小股東可以決定在任何時候偷走你所有的錢。
攻擊帶來的后果
那么,如果有人執行這樣的攻擊,Maker用戶會發生什么情況呢?首先,每個擁有CDP/金庫的人都會被傷害到。因為攻擊者盜竊的就是所有的抵押品,由此產生的連鎖反應是,DAI將變得100%缺乏抵押,其價格可能會歸零。之后,MKR的價值也可能會歸零,因為它的整個系統基本上都失敗了,并且在這種失敗之后,它不太可能會恢復。以太坊也可能會因此而受傷,因為這將是以太坊生態系統中的又一次大失敗。但我認為以太坊仍然會復蘇,因為它是一個很好的平臺,但這很好地提醒了人們,“不要把壞事建立在好事之上”。
行情 | ETH15分鐘內漲超2%:據火幣全球站數據顯示,ETH15分鐘出現劇烈波動,最高漲至164.65美元,漲幅超過2%,現回落至160.15美元。波動較大,請做好風險控制。[2019/4/26]
辯方的回應
我已經向Maker提出了這個攻擊場景,他們已經明確表示,這不值得他們放棄即時的治理控制來抵御這種攻擊。他們的辯護理由一般如下,以及我的反駁:
1、攻擊向量已經存在相當長的一段時間,但到目前為止一切都很好。
反駁:Heartbleed存在10年后才被發現。Maker的源代碼是出了名的難以理解,并且這些抱怨是來自以太坊開發社區中的很大一部分人。我之前曾親自告訴他們,我沒有審核Maker的合約,因為閱讀他們的代碼實在太難了。在Makerv2推出之后,我終于還是嘗試了,因為理論上它應該是安全的。僅僅因為還沒有人執行攻擊,并不意味著他們將來不會執行攻擊。當向量變得更加廣為人知時,這一點尤其正確。
2、這種攻擊的代價對任何人來說都太昂貴了,只有少數人才能執行。
反駁:參見上面的“群體”部分,還要注意的是,它只需要一個人來攻擊,因此“太貴了,只有少數人擁有這種可能”并不能保證系統的安全。
3、攻擊者必然會泄露他們的攻擊。
反駁:只有當攻擊來自一大批共同工作的MKR持有者,只有當Maker愿意在一個可能有人準備攻擊的提示下進行防御時才發生。
4、我們會對任何攻擊者采取法律行動。
反駁:這基本上是在打臉#DeFi,以太坊生態系統中的很多人明確地試圖保護自己免受政府的侵害,“你的錢是安全的”的這種聲明,根本就不讓人放心。
此外,這還假定攻擊者不是匿名的。
5、在以太坊平臺上很難實現匿名。
反駁:是的,在以太坊是實現匿名是有點棘手,盡管如此,TheDAO的攻擊者至今都還是一個未知數,許多非常富有的ETH持有者至今也是未知的。對于一次大賺一筆的攻擊而言,強硬并不是一個好的防御措施。
6、這是一個已知的風險,但還有一些未知的風險可能更糟。
反駁:我強烈反對這種風險評估,你有一個已知的風險,而通過它攻擊系統會是非常有利可圖的,然后去拿未知影響和未知風險進行比較。這種思路大致是這樣的:“沒有任何攻擊向量值得我們放棄控制。”
披露
Maker在Makerv2發布之前就已經意識到了這個問題,而且可能是從一開始就知道。盡管如此,他們還是選擇不堵住這個漏洞。正因為如此,我不認為讓我閉嘴是我的責任,也不希望任何攻擊者知道誰應該明白Maker的治理模式。
Maker基金會回應
截至發稿時,Maker基金會已發布新的治理規則提議,將延遲時間從0增加到24小時,該基金會在博客中這樣寫道:
“自MCD啟動以來,延遲時間設置為0,這使得社區能夠立即采取行動,減少技術錯誤、預言機故障或異常情況,如市場恐慌或經濟攻擊。
由于這些事件的可能性在MCD啟動后開始降低,現在就快到審查GSM關于制定最佳延遲量討論的時候了。
由于基金會收到一篇博文的通知,該博文詳細介紹了一系列可能導致利用治理系統的事件,因此該版本現在已經升級。
此前,社區曾考慮過該漏洞的可能性,但這并不是一個緊迫的問題。然而,由于來自上述博客的潛在宣傳,利用此漏洞的可能性增加了。出于這個原因,在我們典型的辯論和尋求共識的過程之前,社區正在接受一項民意測驗,以減輕這種假設性的利用。
”
譯者簡評:Maker基金會已快速作出反應,以解決這一潛在漏洞的威脅,但這也同時印證了漏洞提出者的說法。創新的同時,也需要謹慎,否則就容易重現TheDao式的慘劇,所幸的是,這一漏洞的執行要求非常高,而符合這一條件的幾個機構,也不太可能去進行這樣的攻擊,否則,這又是一場大禍。
相關鏈接:
1、https://medium.com/coinmonks/how-to-turn-20m-into-340m-in-15-seconds-48d161a42311
2、https://blog.makerdao.com/governance-security-module-gsm/
作者:?Chaosmos 來源:?幣新區塊 一份新研究報告認為,利用區塊鏈拒絕服務攻擊?(BDoS:BlockchainDenialofService).
1900/1/1 0:00:00來源:小蔥區塊鏈 沃倫·巴菲特——有史以來最偉大的投資者之一。半個多世紀以來,他在傳統金融市場上的成功使他積累了大量財富,先如今,沃倫·巴菲特的個人資產已經超過了850億美元.
1900/1/1 0:00:00作者:KyleSamani,MulticoinCapital管理合伙人原文標題:《Web3堆棧,2019年版》來源:multicoin.capital一年前,我描述了我當時理解的?Web3堆棧.
1900/1/1 0:00:00目前還不清楚誰將領導Bakkt進入2020年,但該公司的產品路線圖在某種程度上已經非常明了。 圖片來源:visualhunt在最近發表的一篇博文中,這家洲際交易所旗下公司宣布將推出兩種新的合約,
1900/1/1 0:00:00來源:光明日報 作者:熊志 近日,據央視新聞報道,安徽省合肥市查獲了一起號稱“神仙水”的非法傳銷案件,涉案嫌疑犯聲稱旗下的“SSG生命能量水”包治百病.
1900/1/1 0:00:00來源:萬向區塊鏈 本文為純白矩陣CEO吳嘯,在萬向區塊鏈蜂巢學院第十二期活動“技術改變世界:即將到來的Web3.0時代”上的演講內容《淺談智能合約的多鏈設計與跨鏈交互》.
1900/1/1 0:00:00