比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > DOGE > Info

DeFi安全審計的盲區,一文了解Curve的最新安全漏洞_DEF

Author:

Time:1900/1/1 0:00:00

截至發稿時,這份報告已獲得了Curve官方的認可,而作者也因此獲得了漏洞獎勵,目前Curve正為舊的合約池部署解決方案,而新的合約池不受此漏洞的影響。

以下是漏洞報告內容:在9月19日凌晨的幾個小時,我發現了一個針對Curve合約的漏洞,當合約的放大系數A更新時,攻擊者可提取大量代幣余額。而使用了Curve合約的Swerve,其一度更新了它的A系數,因此用戶的潛在損失是巨大的,占到了合約余額的36.9%,假設進行一次優化后的攻擊,那么大約會損失9200萬美元。幸運的是,Swerve更新順利通過,沒有發生意外情況。那天下午晚些時候,我通知了Curve團隊。幾個小時后,他們確認了漏洞的存在,我們開始一起研究解決方案。實際上,這種攻擊在A向上和向下調整時都可能發生。但是,由于向下調整的潛在損失要大一個數量級,因此我們將重點討論這類攻擊。這些攻擊的嚴重程度與A的變化幅度成正比。事實證明,代幣余額份額的最大損失受如下等式的限制,其中A_old是初始參數值,A_new是更新的參數值,而n是合約中代幣類型的數量。

花旗高管:機構投資者對加密行業和DeFi的興趣日益濃厚:金色財經報道,花旗銀行全球外匯主管Itay Tuchman表示,機構投資者對加密的興趣日益濃厚,在大流行期間轉向比特幣的機構投資者很快對更廣泛的加密行業產生了興趣。他指出,這些投資者中的許多人仍然希望在DeFi方面有一定的參與度。當被問及是什么阻礙了機構投資者從對加密貨幣的被動好奇轉向積極交易時,Tuchman指出了監管以及對風險和合規性的擔憂。值得注意的是,目前還沒有銀行擁有自己的加密托管人。 然而Tuchman稱,這是他們的客戶所要求的。[2021/10/9 5:48:57]

利用漏洞造成的損失,取決于參數A的百分比變化例如,yCurve合約的更新,發生在同一周的早些時候。該合約有n=4個代幣類型,更新從A_old=2000更改為A_new=1000。使用方程1中的公式,攻擊者可利用該漏洞提取高達12.9%的yCurve合約余額。這種攻擊只可能在預定的參數A更新過程中進行。Curve合約在正常操作下不易受到攻擊,因此,沒有必要采取緊急行動來保護用戶資金。但是,在發生其它關于A的更改之前修補此漏洞是至關重要的。Curve團隊正在對更新A的程序進行改進,這些改進應允許Curve合約以安全的方式繼續更新參數A。平均數和代幣聯合曲線

為了理解攻擊,我們有必要了解下代幣聯合曲線。我將解釋一些概念,以便讀者能夠形成一個概念性的理解。我對這一主題采用了一種稍有不同的方法,重點是代幣聯合曲線與一組變量平均值之間的關系。在數學中,平均數是表示一組數據集中趨勢的量數。因此,如果x_1是n個數集合中最小的數,x_n是最大的數,則這個集合的平均數將呈現為介于x_1和x_n之間的中間值。兩種最常見的平均數類型是算術平均數和幾何平均數。

DeFi基準利率下跌較前日0.11%至3.89%:金色財經報道,據同伴客數據顯示,05月27日DeFi去中心化金融基準利率為3.89%,較前一日下跌0.11%。同期美國國債抵押回購率(Repo Rate)為0.01%,二者利率差為3.88%。

DeFi基準利率代表了DeFi融資難易程度,利率越高說明融資成本越高,利率越低說明融資成本越低。其與Repo Rate的利率差則便于DeFi與傳統市場作進行同類比較。[2021/5/27 22:49:10]

算術平均數

幾何平均數平均數在代幣聯合曲線中起到了關鍵作用。AMM合約允許用戶交易任何組合的代幣,這樣AMM合約代幣余額的平均值在交易發生前后保持不變。在不同的AMM設計中,會使用不同類型的平均數方法。對于Uniswap,它使用的是未加權的幾何平均數,對于Balancer,它使用的是加權幾何平均數,對于mStable,它使用的則是未加權的算術平均數。而Curve使用的是算術平均數和幾何平均數的加權平均數,我稱之為Curve平均數。Curve平均數的權重由所謂的放大參數A決定。隨著A向無窮大方向增加,Curve的平均數收斂到mStable使用的算術平均數。相反,如果A設置為0,Curve的平均數將與Balancer和Uniswap使用的幾何平均數相同。對于A的中間值,Curve的代幣聯合曲線將位于這兩個極端的中間。

BM:真正的DeFi沒有能夠執行任何操作的中心化機構:EOS創始人BM(Daniel Larimer)表示,DeFi是授權個人行使他們的自然權利進行和平易貨,而不會豐富特權階級,或包含我們對經濟隱私的需求。真正的DeFi沒有能夠執行任何操作的中心化機構。[2021/3/21 19:04:49]

圖1:代幣聯合曲線圖1顯示了四種代幣聯合曲線。Uniswap保持幾何平均常數,這產生了一個非常陡峭的曲率。mStable則是算術平均值常量,它是一條直線,而Curve則位于兩者之間。在參數值A=1時,Curve類似于Uniswap,在A=10時,Curve更接近于mStable。平均數和AMM合約持有的價值

參考圖1,我們可以看到,所有四條曲線在距離圖形原點45度線的一個點相交。我們可以利用這個交點到原點的距離,來快速測量AMM合約代幣投資組合的價值。例如,如果這個交叉點到原點的距離增加了20%,那么,假設沒有無常損失,AMM合約持有的價值也將增加20%。這適用于我們所有的四種聯合曲線類型。當我們考慮Curve時,這一特性尤其有用,因為Curve具有一個獨特的特性:當A更新時,其聯合曲線的形狀會發生變化。對于Curve,我們可以使用距離原點的距離來衡量參數更新前后合約投資組合的價值。顯然,如果在更新A之后這個距離明顯減少,這將是一個嚴重的問題。關于參數A的盈虧平衡更新

DeFi平臺Mantra DAO通過IMO籌集590萬美元:由社區管理的DeFi平臺Mantra DAO于8月16日宣布完成其初始會員資格發行,該項目總共籌集590萬美元。

據此前報道,近日了得資本(LD Capital)宣布投資Mantra DAO早期初始會員資格發行(IMO),與Mantra DAO共同探索DeFi協議與跨鏈自治金融的業務融合方式,并參與一系列Polkadot生態上DeFi和治理生態活動。Mantra DAO是一個社區自治驅動,建立在RioChain公鏈之上并專注于Staking、借貸和治理的DeFi平臺。(Cointelegraph)[2020/8/17]

再次參考圖1,假設Curve合約的代幣余額正好位于45度線的交點處。當所有Curve代幣以一比一的價格比率交易時,就會出現這種情況。從這個起點更新A時,就沒有貨幣損失的風險。例如,假設Curve從這一點開始將參數設置A_old=10改為A_new=1。此更新不會更改聯合曲線到原點的距離。因此,參數變化將是完全無害的,不會使Curve流動性提供者面臨財務損失的風險。直覺上,如果初始余額不完全在交叉點,但接近于這個交點,則損失的風險仍然很小。關于參數A的虧損更新

現在讓我們看看圖2。該圖說明了當更新A時,攻擊者如何可能操縱初始條件以實現巨大的利潤。為了便于說明,我展示了從A_old=10到A_new=1的變化,而不是Swerve從A_old=1000到A_new=100的更新。然而,事實證明,漏洞的嚴重程度只取決于新舊比率,因此該數字準確地描述了Swerve的情況。另外,圖中所示的攻擊只捕獲了合約代幣庫存的15%。而一個完全優化的攻擊將交易更極端的金額,從而可捕獲多達36.9%的代幣庫存。

金色相對論 | dForce創始人:DeFi挖礦最根本的問題是會導致資產負債表錯配:7月16日消息,在今日舉行的金色相對論中,針對“上線幾天的Compound憑借 “COMP作為一種治理權益,目前是以一種類似饋贈的方式,獎勵給使用Compound進行借貸的用戶,作為補貼手段,COMP背后似乎并沒有價值支撐,如何評價這種借貸即挖礦的方式?這種流動性挖礦的補貼手段,會像Fcoin一樣出現崩盤嗎?”的問題。

dForce創始人楊民道表示,所有的挖礦行為,首先的大前提是產品本身有用,這個是區別于空氣和業務冷啟動的根本區別。因為dForce之前有做過類似Compound的借貸產品,流動性挖礦還沒搞之前,業務量接近Compound的三分之一,我們對Compound的協議邏輯比較了解。他們的產品在沒有挖礦之前,鎖倉額已經不小, 排在前三,所以搞挖礦,即使COMP的價格是0,對他們本身的產品也沒影響。

Compound的挖礦和Fcoin的早期挖礦我兩者都參與過,他們還有一個重要的區別, DeFi的挖礦行為都是在鏈上的,公開透明,抵押物、借款額、分發完全都是透明的,Fcoin的機制完全是一個黑盒子。

所以,不會像Fcoin那樣崩盤。 但是,收益率會下降到一個市場平均的利率水平。

早期我挖COMP的年化能到200%,現在都基本是只有10%不到,個別的資產比如DAI的挖礦收益會更高。我覺得DeFi挖礦最根本的問題是,會扭曲資產負債表,如果長期化,會導致資產負債表錯配。[2020/7/16]

圖2:在惡意交易之間增加一個變化假設Curve合約余額最初位于45度線的交點處,且初始參數值為A_old=10。現在假設一個攻擊者在兩筆惡意交易之間夾了一個參數更新。在第一次惡意交易中,攻擊者出售大量代幣,以導致庫存失衡。接下來,攻擊者將觸發一個更新,更新的值為10和1。如圖所示,這會改變曲線的形狀。最后,攻擊者以更低的價格買回他出售的代幣。此操作將使合約沿45度線返回到完全平衡的狀態。如圖所示,此次攻擊將導致AMM代幣庫存的15%丟失。利用漏洞的可行性

那這樣的攻擊真的有可能嗎?令人驚訝的是,答案是yes。Curve合約要求提前幾天安排A的變更,并通過去中心化的鏈上治理流程達成共識。但是,一旦通過治理批準了A中的更改,并且超過了激活截止日期,合約允許任何調用方觸發更新。因此,攻擊者可自由地從Uniswap快速租借大量穩定幣,將其出售給Curve以觸發極端不平衡,觸發對A的更新,然后從Curve購買穩定幣以獲得巨大的利潤。而完全優化的攻擊會涉及到更多,這里就不再深入細節。而我上面所描述的簡單攻擊,就足以捕獲大部分潛在利潤。修復關于A更改的智能合約邏輯

目前,Curve合約有兩個生產版本。對于未修補的舊版合約,上面提到的內容就是漏洞的原理。而對于較新的合約,仍然存在一個潛在的漏洞,盡管其嚴重性要小的多。我將首先描述舊合約的建議更改。修復舊Curve合約

在舊的Curve合約中,A的變化發生在一個大的離散步驟中。此外,合約邏輯允許攻擊者在單筆交易中以不同的A值執行交易。特別是,攻擊者可以利用其初始交易來迫使庫存極度失衡,然后觸發A的變化,然后以更新后的A值執行更多交易。這使攻擊者可執行涉及數以億計資金量交易的整個攻擊,而不會涉及到風險。為了解決這個問題,我建議更新舊的合約,以便只有受信任的多重簽名帳戶才能激活對A的更新。此外,激活A應需要檢查代幣余額,以確認代幣余額從廣播參數更新交易的時間點起沒有發生顯著變化。這種余額檢查可防止流氓礦工的攻擊。特別是,一個流氓礦工可重新排序交易,這樣他在更新A之前執行一筆大交易,然后在A更新后執行另一筆大交易。余額檢查可防止在合約處于意外不平衡狀態時激活對A的更改,這足以保護CurveLP免受此類攻擊。修復新的Curve合約

在較新的Curve合約中,A的變化是在每次交易開始前以一系列離散的小步驟逐漸發生的。我的理解是每一區塊只能調整一步。此外,合約要求在執行任何交易之前進行預定的步驟調整。這足以抵御普通攻擊者,但不一定能抵御流氓礦工。特別是,一個流氓礦工可以連續鑄造兩個區塊,并在兩個區塊中插入惡意交易。這將允許礦工在第一個區塊中以較高的A值進行初始交易,并在第二個區塊中以較低的A值進行最終交易。更糟糕的是,流氓礦工有一個擴展的窗口來嘗試這些攻擊。只要A還在更新過程中,流氓礦工就可以繼續嘗試挖取兩個區塊序列。為了保護這些較新的合約,我建議將A中的步驟長度減小到每個區塊不超過0.1%。為什么小的的步驟長度有幫助?這涉及到一個我還沒有介紹的因素——Curve合約會收取一筆費用,由于這筆費用,任何交易都會導致代幣聯合曲線稍微偏離原點。這也適用于攻擊者的巨額交易,這使得攻擊的利潤略有下降。如果A的變化足夠小,則完全優化的攻擊所獲得的收益,將被攻擊者支付給合約的費用所抵消。因此,攻擊者再也不可能通過在兩筆交易之間夾雜一個變化來獲利。關于安全審計和智能合約設計的經驗教訓

關于這種攻擊,它要求設計者深入理解代幣聯合曲線,對于智能合約審計者來說,發現利用高度專業化知識的漏洞可能并不現實。實際上,Curve合約已經過了多次安全審計,在我寫這篇文章時,Swerve合約剛剛通過了另一次審計。在我看來,一個通用的,可通過強力探測而不是理論檢測的漏洞審計程序,將是非常有用的。為了檢測這類漏洞,我建議代幣聯合曲線審計納入任意兩步交易程序的模擬。在這些過程中,審計人員將針對合約運行一筆隨機交易,觸發一個智能合約操作,然后運行另一筆隨機交易。在此,智能合約操作將激活對A的更新。對于此漏洞,此模糊測試過程將揭示合約遭受災難性損失的場景。然后,審計人員可以進一步調查,以了解根本原因。對于智能合約設計師來說,了解審計的局限性是有幫助的。當合約允許一次執行一系列復雜的交互時,全面的模糊測試就變得不可行了。問題在于,用戶交互的可能組合太多,我們無法探究每一種可能性。因此,限制用戶在短時間內可采取操作的數量和種類是很有幫助的。這里的想法是避免創建一個非常復雜的智能合約,以至于無法通過暴力手段進行審計。感謝Curve團隊為我的漏洞報告工作支付了一筆非常慷慨的漏洞獎金,另外,特別要提下我在0x的好友GregHysen,是他挖掘了Curve的代碼,幫助我理解更新A的智能合約邏輯。

Tags:CurveCURDEFIDEFYCURVEpubliccurrencydefi communityDeFiDrop

DOGE
加密藝術春天來了?《心靈肖像》在佳士得創下NFT拍賣最高成交記錄_RAI

Odaily星球日報譯者|Moni編者按:系列加密藝術品《PortraitsofaMind》系列的第21幅作品在佳士得創下131,250美元的NFT拍賣最高成交記錄.

1900/1/1 0:00:00
麥子錢包(MathWallet)完成A+輪780萬美元融資,由Alameda Research、Multicoin Capital領投_TAL

日前,麥子錢包宣布完成A+輪780萬美元融資,由AlamedaResearch、MulticoinCapital領投。麥子錢包是一個多平臺的跨鏈錢包,現已支持超過50個公鏈.

1900/1/1 0:00:00
鉆石金庫將于今晚8點開啟公測,將如何攪動EOS生態?用戶會有哪些收益?_EFI

這個國慶假日EOSDeFi還挺熱鬧的,TP的合成資產項目上線測試網,大豐收繼續帶頭搞事情,大豐收SWAP資金池中的資產和大寶SWAP資金池中的資產數量也越來越接近了.

1900/1/1 0:00:00
iPhone12來了,5G網絡跟得上嗎?_CIPHER

經歷今年9月的第一場“擱淺”發布會后,10月7日,蘋果官方公眾號發布“快訊”,宣布于北京時間10月14日凌晨1點舉行發布會.

1900/1/1 0:00:00
Deribit期權市場播報:1013—成交量爆發_OIN

比特幣很長一段時間以來都是一個方向價格移動,昨日出現了一次兩個方向打針,日內波動600美元。一般而言,這種行情對賣方很不友好,對沖成本很大.

1900/1/1 0:00:00
2020加密金融市場報告:CeFi和DeFi有結合可能,并釋放新金融能量_DEFI

編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。《2020加密金融市場報告》報告主要分為四部分:主權數字貨幣、無主權私人數字貨幣、加密衍生品市場以及近期十分火熱的D.

1900/1/1 0:00:00
ads