原文標題:《AC 推出新產品 StableCredit》
早在 8 月,AC 就提出了 StableCredit 的概念,我在文章?YFI 的星辰大海?中有過簡單介紹,本次 AC 發文,說明醞釀 4 個多月的想法要正式實施了。
簡單說 StableCredit 是一個基于抵押型穩定幣設計的存借貸與 AMM 綜合運用協議,思路借鑒了?ARCx,抵押萬物發債。
舉個例子說明:
用戶將價值 100 萬的房子抵押給 YFI,YFI 給用戶 100 萬的穩定幣貸款額度。這個穩定幣貸款額度可以用來借出其他資產,比如一輛汽車。與此同時,協議會根據房子的投放收益(LP)來給用戶分潤。當房子價值上漲時,用戶手里的借貸額度還可以向上浮動。
這個模式跟?Uniswap+Maker?很類似。用當下的場景做類比的話,就是用戶將 ETH 存進 Uniswap 做市,賺收益的同時,Uniswap 還會給你一筆錢讓你花。這是不是很爽?
下文將對 AC 的文章做進一步解讀:
Beosin:sDAO項目遭受攻擊事件簡析:金色財經報道,根據區塊鏈安全審計公司Beosin旗下Beosin?EagleEye 安全風險監控、預警與阻斷平臺監測顯示,BNB鏈上的sDAO項目遭受漏洞攻擊,Beosin分析發現由于sDAO合約的業務邏輯錯誤導致,getReward函數是根據合約擁有的LP代幣和用戶添加的LP代幣作為參數來計算的,計算的獎勵與用戶添加LP代幣數量正相關,與合約擁有總LP代幣數量負相關,但合約提供了一個withdrawTeam的方法,可以將合約擁有的BNB以及指定代幣全部發送給合約指定地址,該函數任何人都可調用。而本次攻擊者向其中添加了LP代幣之后,調用withdrawTeam函數將LP代幣全部發送給了指定地址,并立刻又向合約轉了一個極小數量的LP代幣,導致攻擊者在隨后調用getReward獲取獎勵的時候,使用的合約擁有總LP代幣數量是一個極小的值,使得獎勵異常放大。最終攻擊者通過該漏洞獲得的獎勵兌換為13662枚BUSD離場。Beosin Trace追蹤發現被盜金額仍在攻擊者賬戶,將持續關注資金走向。[2022/11/21 7:53:09]
基本概念
AC 文章開頭,先介紹了幾個基本概念,包括:
抵押型穩定幣(代幣化債務),典型代表 Maker 的 DAI
慢霧簡析Qubit被盜原因:對白名單代幣進行轉賬操作時未對其是否是0地址再次進行檢查:據慢霧區情報,2022 年 01 月 28 日,Qubit 項目的 QBridge 遭受攻擊損失約 8000 萬美金。慢霧安全團隊進行分析后表示,本次攻擊的主要原因在于在充值普通代幣與 native 代幣分開實現的情況下,在對白名單內的代幣進行轉賬操作時未對其是否是 0 地址再次進行檢查,導致本該通過 native 充值函數進行充值的操作卻能順利走通普通代幣充值邏輯。慢霧安全團隊建議在對充值代幣進行白名單檢查后仍需對充值的是否為 native 代幣進行檢查。[2022/1/28 9:19:19]
借貸協議,典型代表?Aave、Compound
自動做市商(AMM),典型代表 Uniswap、Sushi
單邊 AMM,典型代表:DoDo、CoFiX
利用率,可以理解為抵押率或清算線,是借貸類協議的核心數據
這里可以單獨說下利用率,AC 支出當利用率為 0% 時,借 1DAI 就是 1DAI,沒有溢價。當利用率為 90% 時,借 1DAI 的成本要大于 1DAI,就是借 1DAI,可能實際得到 0.98DAI,存在溢價。
慢霧:Avalanche鏈上Zabu Finance被黑簡析:據慢霧區情報,9月12日,Avalanche上Zabu Finance項目遭受閃電貸攻擊,慢霧安全團隊進行分析后以簡訊的形式分享給大家參考:
1.攻擊者首先創建兩個攻擊合約,隨后通過攻擊合約1在Pangolin將WAVAX兌換成SPORE代幣,并將獲得的SPORE代幣抵押至ZABUFarm合約中,為后續獲取ZABU代幣獎勵做準備。
2.攻擊者通過攻擊合約2從Pangolin閃電貸借出SPORE代幣,隨后開始不斷的使用SPORE代幣在ZABUFarm合約中進行`抵押/提現`操作。由于SPORE代幣在轉賬過程中需要收取一定的手續費(SPORE合約收取),而ZABUFarm合約實際接收到的SPORE代幣數量是小于攻擊者傳入的抵押數量的。分析中我們注意到ZABUFarm合約在用戶抵押時會直接記錄用戶傳入的抵押數量,而不是記錄合約實際收到的代幣數量,但ZABUFarm合約在用戶提現時允許用戶全部提取用戶抵押時合約記錄的抵押數量。這就導致了攻擊者在抵押時ZABUFarm合約實際接收到的SPORE代幣數量小于攻擊者在提現時ZABUFarm合約轉出給攻擊者的代幣數量。
3.攻擊者正是利用了ZABUFarm合約與SPORE代幣兼容性問題導致的記賬缺陷,從而不斷通過`抵押/提現`操作將ZABUFarm合約中的SPORE資金消耗至一個極低的數值。而ZABUFarm合約的抵押獎勵正是通過累積的區塊獎勵除合約中抵押的SPORE代幣總量參與計算的,因此當ZABUFarm合約中的SPORE代幣總量降低到一個極低的數值時無疑會計算出一個極大的獎勵數值。
4.攻擊者通過先前已在ZABUFarm中有進行抵押的攻擊合約1獲取了大量的ZABU代幣獎勵,隨后便對ZABU代幣進行了拋售。
此次攻擊是由于ZabuFinance的抵押模型與SPORE代幣不兼容導致的,此類問題導致的攻擊已經發生的多起,慢霧安全團隊建議:項目抵押模型在對接通縮型代幣時應記錄用戶在轉賬前后合約實際的代幣變化,而不是依賴于用戶傳入的抵押代幣數量。[2021/9/12 23:19:21]
這個現象用 AMM 解釋會非常清晰,當 DAI 和債務 1:1 添加到 50:50 的 AMM 池時,對債務的需求越多,交易滑點就越高,這也就解釋了溢價的存在。
慢霧:BSC項目Value DeFi vSwap 模塊被黑簡析:據慢霧區情報,幣安智能鏈項目 Value DeFi 的 vSwap 模塊被黑,慢霧安全團隊第一時間介入分析,并將結果以簡訊的形式分享,供大家參考:
1. 攻擊者首先使用 0.05 枚 WBNB 通過 vSwap 合約兌換出 vBSWAP 代幣;
2. 攻擊者在兌換的同時也進行閃電貸操作,因此 vSwap 合約會將兌換的 vBSWAP 代幣與閃電貸借出的 WBNB 轉給攻擊者;
3. 而在完成整個兌換流程并更新池子中代幣數量前,會根據池子的 tokenWeight0 參數是否為 50 來選擇不同的算法來檢查池子中的代幣數量是否符合預期;
4. 由于 vSwap 合約的 tokenWeight0 參數設置為 70,因此將會采用第二種算法對池子中的代幣數量進行檢查;
5. 而漏洞的關鍵點就在于采用第二種算法進行檢查時,可以通過特殊構造的數據來使檢查通過;
6. 第二種算法是通過調用 formula 合約的 ensureConstantValue 函數并傳入池子中緩存的代幣數量與實時的代幣數量進行檢查的;
7. 在通過對此算法進行具體分析調試后我們可以發現,在使用 WBNB 兌換最小單位(即 0.000000000000000001) vBSWAP 時,池子中緩存的 WBNB 值與實時的值之間允許有一個巨大的波動范圍,在此范圍內此算法檢查都將通過;
8. 因此攻擊者可以轉入 WBNB 進行最小單位的 vBSWAP 代幣兌換的同時,將池子中的大量 WBNB 代幣通過閃電貸的方式借出,由于算法問題,在不歸還閃電貸的情況下仍可以通過 vSwap 的檢查;
9. 攻擊者只需要在所有的 vSwap 池子中,不斷的重復此過程,即可將池子中的流動性盜走完成獲利。詳情見原文鏈接。[2021/5/8 21:37:37]
穩定幣信貸
Harvest.Finance被黑事件簡析:10月26號,據慢霧區消息 Harvest Finance 項目遭受閃電貸攻擊,損失超過 400 萬美元。以下為慢霧安全團隊對此事件的簡要分析。
1. 攻擊者通過 Tornado.cash 轉入 20ETH 作為后續攻擊手續費;
2. 攻擊者通過 UniswapV2 閃電貸借出巨額 USDC 與 USDT;
3. 攻擊者先通過 Curve 的 exchange_underlying 函數將 USDT 換成 USDC,此時 Curve yUSDC 池中的 investedUnderlyingBalance 將相對應的變小;
4. 隨后攻擊者通過 Harvest 的 deposit 將巨額 USDC 充值進 Vault 中,充值的同時 Harvest 的 Vault 將鑄出 fUSDC,而鑄出的數量計算方式如下:
amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());
計算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的變化將導致 Vault 鑄出更多的 fUSDC;
5. 之后再通過 Curve 把 USDC 換成 USDT 將失衡的價格拉回正常;
6. 最后只需要把 fUSDC 歸還給 Vault 即可獲得比充值時更多的 USDC;
7. 隨后攻擊者開始重復此過程持續獲利;
其他攻擊流程與上訴分析過程類似。參考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。
此次攻擊主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在鑄幣時采用的是 Curve y池中的報價(即使用 Curve 作為喂價來源),導致攻擊者可以通過巨額兌換操控預言機的價格來控制 Harvest Finance 中 fToken 的鑄幣數量,從而使攻擊者有利可圖。[2020/10/26]
StableCredit 是一個結合了代幣化債務穩定幣、借貸、AMM 和單邊 AMM 的協議,以創建一個完全去中心化的借貸協議。
用戶可以提供任何資產并創建名為 StableCredit USD 的代幣化信用(也可以支持 EUR、JPY 等)。
具體創建流程如下:
提供一定金額的 USDC
調用 USDC 價格預言機,確定 1 個 USDC 的美元價值
協議鑄造相應美元價值的 StableCredit USD
將 USDC 和 StableCredit USD 按照 50:50 的比例提供到 AMM
該協議計算系統利用率,最高可達 75%
所提供的 USDC 的利用率(或 75% 的最大值)以 StableCredit USD 的形式計算
此時,用戶得到的 StableCredit USD 就是「借貸信用」。可以用它來借貸通過 AMM 抵押的其他資產。所以如果有其他用戶提供 LINK 作為抵押,你可以通過 「賣出」借貸信用來借貸 LINK。當你想還債的時候,你可以把 LINK 「賣」回去換成 StableCredit USD,還清債務,然后收到你的 USDC。
實際案例
下面舉幾個具體實例來說明這個過程:
用戶 A 提供 1000DAI 進行借款:
將 1000DAI 存入 StableCredit 協議
系統調用預言機查詢 DAI 價值 1020USD
系統鑄造 1020 個 USD
系統將用戶 A 的 1000DAI 和 1020USD 添加到 AMM
系統計算利用率(根據全局抵押情況動態變化),最高為 75%
系統為用戶 A 提供 75% 額度的借貸信用,即 1020*0.75=765 StableCredit USD
此時用戶 A 提供了 1000DAI,得到 765 個 StableCredit USD。
用戶 B 提供 2 個 ETH 進行借款:
將 2ETH 存入 StableCredit 協議
系統調用預言機查詢 ETH 價值 1400USD
系統鑄造 1400 個 USD
系統將用戶 B 的 2ETH 和 1400USD 添加到 AMM
系統為用戶 B 提供 75% 額度的借貸信用,即 1400*0.75=1050 StableCredit USD
此時用戶 B 提供了 2ETH,得到 1050 個 StableCredit USD。
同理,有用戶 C 提供了 1 個 WBTC,得到 26000 個 StableCredit USD;用戶 D 提供了 1 個 YFI,得到了 23000 個 StableCredit USD,等等…
此時系統中存在多個借貸 AMM 池:
DAI:StableCredit USD
ETH:StableCredit USD
YFI:StableCredit USD
WBTC:StableCredit USD
其他各類用戶添加的抵押資產池
用戶 A 想借出 1 個 ETH,于是他將 525 個 StableCredit USD 提供給 AMM,得到 1 個 ETH。用戶幣想借出 500DAI,他將 510 個 StableCredit USD 提供給 AMM,得到 500 個 DAI。
他們想要贖回本金時,是需要向提供償還對應借出資產即可從 LP 中提取本金。當提取本金時,系統會燒毀對應數量的 StableCredit USD。比如,用戶 A 贖回 1000DAI,此時系統會調用預言機價格,假設此時價格仍為 1020USD,協議將燒毀對應數量的 StableCredit USD,以保證整個借貸資產的平衡。
這個贖回并燒毀 StableCredit USD 的過程,AC 文章中并沒有提,是我個人的猜測和判斷。主要依據是 EMN 當時的設計,也是鑄造信貸和銷毀信貸,遺憾的是當時被黑客利用導致項目沒有繼續。
StableCredit 的優勢
StableCredit 的設計充分利用了代幣化債務、借貸、AMM 的特點,相對單獨存在 AMM 和借貸協議具有很多優勢:
首先,系統的借貸利率實際是根據需求自動平衡的,用戶需求多的借出資產,在償還時會支付更高的利息。原理是需求多資產,在 AMM 中被賣出更多,用戶在償還借貸購買對應資產時,會支付更多的 StableCredit USD。
StableCredit USD 類似于 Uniswap 的 ETH,是 AMM 全部池交易的中間介質,這就讓借貸信用可以享受交易手續費,間接的實現了資產提供者收取利息。即借貸用戶支付的交易手續費和交易滑點等溢價,間接的提供給了代幣提供者。
如果用戶只提供代幣而不進行借貸,會一直積累整個系統的借貸溢價,也就實現了存款收益。
這種方式還實現了非常優美的借貸最大化利用率,像 AAVE 這些借貸協議,一旦用戶的抵押率達到紅線便會被清算。StableCredit 的模式基本不存在被清算風險,只有相對的整體系統風險,即利用率。
舉例來說:用戶 A 存入的 1000DAI,得到 765 個 StableCredit USD。之后他全部用于借出 ETH,根據之前的案例,計算得出可借 765/700=1.09 個 ETH (由于實際存在滑點等,數量會有偏差)
假設經過 1 個月,ETH 價格上漲至 1000,用戶償還 1.09 個 ETH,會得到 1.09*1000=1090 StableCredit USD。此時用戶償還 765 StableCredit USD,可贖回 1000DAI。
經過以上過程,我們發現用戶最初抵押了 1000DAI,得到了 75% 的購買力,然后他購買了 ETH,享受了 ETH 價格上漲的紅利,當他結清頭寸時,最終收回本金 1000DAI,同時還結余 1090-765=325 USD。
但其實我這個案例有些過于理想,在真實的系統運行環境中,由于套利者的存在,StableCredit USD 與各類資產的匯率會實時的通過 AMM 交易進行調整,因此在抵押和贖回過程中,不可能是按照原比例兌換。
以上的一些內容純粹是我個人根據一些零散信息拼湊后的猜想,具體 StableCredit 的運作模式,還要等系統正式上線后再來詳細驗證。
但不難想象,這樣的一種設計,絕對能釋放更多的購買力,吸收更多的流動性。
寫在最后
之前文章中我也有說, StableCredit 的設計,是 YFI 整個戰船中非常關鍵的一環,它為整個金融帝國提供了一個吸收流動性的接口,最終可能發展成為流動性黑洞。
通過大量的吸收存款,疊加?yearn?的智能理財服務,yearn 的愿景正在一步一步實現。
簡單說,YFI 的愿景是要讓「收益最大化」。
AC 的初心一句話概括,「獲得持續安全穩定便捷的最大化收益」。
幣圈仲達:市場不會過度依賴灰度增持的提振作用,BTC兩萬美元關口仍不會輕易突破:據官方消息,Gate.io直播專訪節目《周五分析是道》20201204期已結束,本期直播邀請KOL為幣圈仲達.
1900/1/1 0:00:00根據Coin Metrics的鏈上分析數據,11月比特幣礦工的收入估計為5.22億美元,較10月增長48%.
1900/1/1 0:00:00比特幣這波下跌最低打到了17570美金,隨后跌勢遇阻,回升迅速,目前價格再度上行到19000美金附近,整個反彈快速又強勢.
1900/1/1 0:00:00DeFi數據 1.DeFi總市值:182.56億美元 市值前十幣種漲跌幅,金色財經制圖,數據來源Coingecko2.過去24小時去中心化交易所的交易量:6.4億美元 金色晨訊 | 以太坊君士坦.
1900/1/1 0:00:001.加密項目團隊必讀:如何讓代幣不被認定為證券?究竟有沒有一種解決辦法來使創始團隊傳達給用戶的是控制權/所有權,而不是證券呢?其實.
1900/1/1 0:00:00這真的是一個神奇的項目,不管價格漲跌,都有人罵。2020 年,除了 Voice 上線,推出企業服務產品 EOSIO for Business 和母公司 Block.one(B1) 持有超 24.
1900/1/1 0:00:00