原文鏈接:https://medium
//..
源碼
很明顯,當用戶沒有債務時,他們的頭寸不能被清算,所以健康系數默認為type(uint256).max。
否則,"健康系數"定義為:
注:AAVEV2以ETH表示其抵押品和債務價值。
其中"LiquidationThreshold"是通過治理為每個資產獨立定義的,這項任務目前委托給Gauntlet,它為協議提供所有風險參數,包括"LiquidationThreshold"。
穿倉頭寸分析
現在我們已經涵蓋了壞賬的概念,我們將提供一個真實世界的例子來說明其重要性
我們將涉及的頭寸是AAVEV2的以下賬戶:0x227cAa7eF6D955A92F483dB2BD01172997A1a623。
讓我們開始調查它的現狀,通過調用AAVEV2借貸協議上的getUserAccountData函數:
現在讓我們把上面看到的東西分解一下,體會一下這個倉位的水下情況有多嚴重:
債務總額:17.83508595148699eth
抵押品總額:0.013596360502551568eth
這就是我們需要了解的,這個倉位有問題--抵押品的價值對應其所產生的債務的一個微不足道的部分。
但是,這些頭寸是如何達到這種狀態的呢?
為了回答這個問題,我們可以看看這個用戶在AAVE上執行的最新操作:
看起來一切都很好,直到13514857區塊,其中用戶從AAVE借用了一些資產。讓我們看看他們做了什么:
債務人借了700,000MANA,快速檢查一下MANA的美元價格會發現,價格是:
數據:DeFi協議總鎖倉量達2020.1億美元:金色財經報道,據Defi Llama數據顯示,DeFi協議總鎖倉量(TVL)達到2020.1億美元,24小時漲幅為0.97%。TVL排名前五分別為Curve(195.1億美元)、MakerDAO(151.1億美元)、Convex Finance(146.8億美元)、AAVE(112.6億美元)、WBTC(97.5億美元)。[2022/1/24 9:08:37]
每MANA單位0.00032838ETH。
所以通過一些簡單的乘法,我們知道這個用戶對協議的債務增加了:
0.00032838*700000=229.866ETH
也值得回顧一下這個區塊的ETH的美元價格這里,它是4417.40美元。
注意上圖中13517657區塊發生的入金操作,就在借款后的幾個小時。
讓我們看看市場上是否有什么東西動搖了用戶的信心:
?~cast?call?-?b?13517657?0xA50ba011c48153De246E5192C8f9258A2ba79Ca9?"getAssetPrice(address)"0x0F5D2fB29fb7d3CFeE444a200298f468908cC9420x000000000000000000000000000000000000000000000000000131d14dce4400
以上是一個發送到AAVEV2PriceOracle的RPC調用,以獲得指定區塊的1單位MANA的價值,單位為Wei。
如果我們用這個數據轉換前述的價格,我們可以看到發生了什么:
0.00033625*700000=235.375eth
在短短的幾個小時內,產生的債務是~5.5ETH,價值~24000美元。哎喲。
由于我們知道這個頭寸的結局,我們知道它在某些時候是可以清算的,所以讓我們檢查涉及這個用戶地址的liquidationCall的調用:
selectevt_block_number,collateralAsset,debtAsset,debtToCover,liquidatedCollateralAmount,liquidatorfromaave_v2_ethereum.LendingPool_evt_LiquidationCallwhereuser?=?from_hex('0x227cAa7eF6D955A92F483dB2BD01172997A1a623')order?byevt_block_number?desc;
OKEx DeFi播報:DeFi總市值168.5億美元,OKEx平臺DHT領漲:據OKEx統計,DeFi項目當前總市值為168.5億美元,總鎖倉量為174.9億美元;行情方面,今日DeFi代幣普漲,OKEx平臺DeFi幣種漲幅前三位分別是DHT、BOX、SUN;截至17:30,OKEx平臺熱門DeFi幣種如下。[2020/11/24 21:57:56]
可以隨意在DuneAnalytics上運行上述查詢。
一旦我們找到第一個清算事件,我們就可以理解為什么用戶在借貸后不久就存入了資產:
+------------------+--------------------------------------------+--------------------------------------------+-------------------------+----------------------------+--------------------------------------------+|evt_block_number|collateralAsset??????????????|debtAsset?????????????????|debtToCover??????|liquidatedCollateralAmount|liquidator????????????????|+------------------+--------------------------------------------+--------------------------------------------+-------------------------+----------------------------+--------------------------------------------+|????13520838|0x6B175474E89094C44DA98B954EEDEAC495271D0F|0x0F5D2FB29FB7D3CFEE444A200298F468908CC942|17919685927295406794873|??58271102282974799175987|0xB2B3D5B6215D4FB23BF8DD642D385C4B44AADB2A|+------------------+--------------------------------------------+--------------------------------------------+-------------------------+----------------------------+--------------------------------------------+
BitMax與DeFi借貸協議EasyFi達成戰略合作并首發上線EASY:據官方消息,BitMax交易所將于10月8日22:00(北京時間)首發上線EasyFi (EASY),并開放EASY/USDT?,充提已開放。
EasyFi是基于Matic Network的Layer2層DeFi借貸協議,旨在解決第一代DeFi解決方案在交易速度、成本等領域面臨的一些固有挑戰,為小微借貸開辟基礎。同時,EasyFi Networks還在第一代DeFi借貸形態之上,加入了非超額質押借貸、信用違約掉期等產品。據官方消息,BitMax 與EasyFi已達成戰略合作,將在Layer 2借貸領域進行深度協作。未來BitMax 將通過其DeFi挖礦產品形態,為EasyFi Networks帶去更多用戶和資產,為普通散戶參與DeFi挖礦提供系統性支持,同時協助EasyFi Networks治理代幣的進一步去中心化分發。
更多詳情請至BitMax官網查詢。[2020/10/7]
在這里我們可以看到,第一次清算發生在區塊13520838。這次清算是在用戶還沒有存入資金之前。
然后,在區塊13520838-13522070之間發生了一連串的小清算,價值不菲:
selectcount(?*?)?as?num_liquidationsfromaave_v2_ethereum.LendingPool_evt_LiquidationCallwhereuser?=?from_hex('0x227cAa7eF6D955A92F483dB2BD01172997A1a623')and?evt_block_number?<=?13522070?and?evt_block_number?>=?13520838
+?-?-?-?-?-?-?-?-?-?+|num_liquidations|+?-?-?-?-?-?-?-?-?-?+|87|+?-?-?-?-?-?-?-?-?-?+
讓我們檢查一下在這些區塊之間被清算人從用戶那里扣押的所有抵押資產類型:
selectSUM(liquidatedCollateralAmount)?as?amountSeized,??collateralAssetfromaave_v2_ethereum.LendingPool_evt_LiquidationCallwhereuser?=?from_hex('0x227cAa7eF6D955A92F483dB2BD01172997A1a623')and?evt_block_number?<=?13522070?and?evt_block_number?>=?13520838group?by?collateralAsset
DeFi項目總市值為129.30億美元,概念幣種10漲3跌:金色財經DeFi專區行情顯示,DeFi概念幣種24h行情10漲3跌,24h漲幅前三為:AMPL(+11.64%)、BAL(+8.37%)、LRC(+7.91%);跌幅前三為:BNT(-4.25%)、ZRX(-0.6%)、DMG(-0.43%)。
DeFi項目總市值為129.30億美元,市值排名前五的代幣為:LINK(58.98億美元)、LEND(6.9億美元)、SNX(6.55億美元)、UMA(6.23億美元)、MKR(5.67億美元)。[2020/8/23]
我們可以看到只有2種資產,DAI和ETH。
+--------------------------+--------------------------------------------+|amountSeized??????|collateralAsset??????????????|+--------------------------+--------------------------------------------+|387663228503220484547359|0x6B175474E89094C44DA98B954EEDEAC495271D0F|+--------------------------+--------------------------------------------+|499940913071713798854??|0xC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2|+--------------------------+--------------------------------------------+
以及它們的金額:
~50ETH
~387,663DAI
有人可能會問,為什么清算會發生是一小塊一小塊進行的?
好吧,當像這樣巨大的頭寸被一次性清算時,市場會將如此大規模的抵押品清算理解為這些資產類型的賣出信號。記住:根據協議的清算人獎勵政策,清算中獲得的資產是以折扣價購買的。
隨著拋售壓力的增加,一次大規模的清算可能會產生一個清算的雪球。其他市場參與者可能也會出售他們的資產,導致資產價格進一步"拋售",這反過來又會導致協議中其他頭寸的更多清算。
因此,協議通常限制一次清算所能處理的資產量。AAVE的這個限制的版本,作為一個變量,可以看到下面:
pragmasolidity^0.8.13;//from...uint256internalconstantLIQUIDATION_CLOSE_FACTOR_PERCENT=5000;functionliquidationCall(?addresscollateralAsset,?addressdebtAsset,?addressuser,?uint256debtToCover,?boolreceiveAToken)externaloverridereturns(uint256,stringmemory){??//...??vars.maxLiquidatableDebt=???vars.userStableDebt.add(vars.userVariableDebt).percentMul(????LIQUIDATION_CLOSE_FACTOR_PERCENT???);??//...
聲音 | PeckShield研發副總裁:DeFi領域的安全問題比DApp生態更為嚴峻:據悉區塊鏈安全公司PeckShield消息,今天PeckShield宣布與DeFi龍頭項目MakerDAO達成了安全審計戰略合作關系,為MakerDAO多抵押Dai提供安全審計服務。在談及DeFi領域的安全問題時,PeckShield研發副總裁吳家志表示:DeFi項目的安全問題不同于以往DApp生態內頻發的安全事件。DeFi項目管理著大量數字資產,離錢近,更易遭到黑客的持續攻擊,且由于大量DeFi項目目前皆運行在以太坊網絡上,一些漏洞特性很可能存在連帶威脅。就這一點而言,交易所還可通過將資產放在冷錢包進行鏈下存儲,而DeFi項目的資產皆在鏈上,安全問題一旦發生很可能存在致命威脅。[2019/8/14]
我們可以看到,限制比例是50%,這意味著在一次清算中只允許償還頭寸的一半債務。
清算人也有動力將清算分成小塊。如果在清算時,市場上沒有足夠的流動性,無法將抵押資產全額提供給清算人。通過將清算分成小塊,清算人有更大的機會獲得流動資產,并從清算中獲得利潤。
此外,如果市場上的債務資產沒有足夠的流動性,那么清算人甚至在一開始就獲得該資產以償還抵押不足的用戶的債務可能會成本昂貴。
最后,想象一下試圖清算大量的某種你不擁有這么多數量代幣。如果你去DEX并試圖用一些WETH或任何其他資產來交換這個代幣,你也可能會遇到很高的Gas費用,使你的清算無利可圖。
回到我們的例子,為了檢查清算鏈后的頭寸參數,需要解析從getUserAccountData返回給我們的數據:
from?io?import?BytesIOfrom?binascii?import?unhexlifyfrom?dataclasses?import?dataclass@dataclass(frozen=True)class?UserAccountData:????totalCollateralETH:?int????totalDebtETH:?int????availableBorrowsETH:?int????currentLiquidationThreshold:?int????ltv:?int????healthFactor:?intdef?parse_user_account_data(uacd:?str)?->?UserAccountData:????uacd_bytes?=?unhexlify(uacd)????assert?len(uacd_bytes)?==?192????uacd_bytes?=?BytesIO(uacd_bytes)????total_collateral_eth?=?int.from_bytes(bytes=uacd_bytes.read(32),?byteorder="big",?signed=False)????total_debt_eth?=?int.from_bytes(bytes=uacd_bytes.read(32),?byteorder="big",?signed=False)????available_borrows_eth?=?int.from_bytes(bytes=uacd_bytes.read(32),?byteorder="big",?signed=False)????current_liquidation_threshold?=?int.from_bytes(bytes=uacd_bytes.read(32),?byteorder="big",?signed=False)????ltv?=?int.from_bytes(bytes=uacd_bytes.read(32),?byteorder="big",?signed=False)????health_factor?=?int.from_bytes(bytes=uacd_bytes.read(32),?byteorder="big",?signed=False)????return?UserAccountData(????????totalCollateralETH=total_collateral_eth,????????totalDebtETH=total_debt_eth,????????availableBorrowsETH=available_borrows_eth,????????currentLiquidationThreshold=current_liquidation_threshold,????????ltv=ltv,????????healthFactor=health_factor,????)
然后我們用cast來查詢chain的情況:
???~?cast?call?-b?13522070?0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9?"getUserAccountData(address)"?0x227cAa7eF6D955A92F483dB2BD01172997A1a6230x000000000000000000000000000000000000000000000000085b5b5e846685f4000000000000000000000000000000000000000000000002743544e203a3e4ae00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f710000000000000000000000000000000000000000000000000000000000001d9500000000000000000000000000000000000000000000000000260a45667b706b
最后解析輸出:
parse_user_account_data('0x000000000000000000000000000000000000000000000000085b5b5e846685f4000000000000000000000000000000000000000000000002743544e203a3e4ae00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f710000000000000000000000000000000000000000000000000000000000001d9500000000000000000000000000000000000000000000000000260a45667b706b')UserAccountData(totalCollateralETH=602175436690458100,?totalDebtETH=45267162967098778798,?availableBorrowsETH=0,?currentLiquidationThreshold=8049,?ltv=7573,?healthFactor=10707342303391851)
在這里我們看到了清算對頭寸的影響:幾乎沒有任何抵押品了~準確地說,是0.6個ETH。但是債務呢?45.26716296709878ETH!
那么在這個區塊的高度,MANA的價格是多少呢?
?~cast?call?-?b?13522070?0xA50ba011c48153De246E5192C8f9258A2ba79Ca9?"getAssetPrice(address)"0x0F5D2fB29fb7d3CFeE444a200298f468908cC9420x00000000000000000000000000000000000000000000000000031015cc1da8f2
0.000862110734985458eth!
如果你還記得,用戶在幾個小時前剛剛以0.00032838ETH的價格借入MANA。這相當于在一只股票上開了一個空頭頭寸,而這只股票的價格是火箭般的2.65倍--Oof???!
清算者無法在MANA的價格拋售得太厲害之前及時清算全部頭寸,使這個過程無利可圖,我們就剩下一個無力償還的頭寸。
現在我們可以體會到一個有效的流動性閾值的重要性,在避免協議中的壞賬。
小結:
雖然我們不能明確地說,可以用一個方程式來定義頭寸的流動性閾值,但我們肯定可以看到協議之間的相似之處:
所有協議都將其閾值定義為抵押品與債務的某個函數。
所有協議都留有一定的治理空間,以決定每個抵押品風險參數的價值,以應對市場條件的變化,因為一些資產比其他資產更不穩定。
所有協議都使用預言機對其抵押品和債務價格進行計價,并使用廣泛接受的貨幣。
我們已經看到,Maker和AAVE選擇使用相同的方程式來表示頭寸的安全性:
作者:Tal研究員@smlXL,感謝SamRagsdale和為本帖提供建議和反饋的smlXL團隊成員。
感謝Chaintool對本翻譯的支持。
作者:DonovanChoy,Bankless翻譯:金色財經xiaozou2021年8月以太坊主網實施EIP-1559,標志著以太坊網絡第一次開始burnETH.
1900/1/1 0:00:00原文作者:西柚,ChainCatcher今天,“BRC?20?代幣?Ordi?價格突破?10?美元,市值突破?2?億美元”的新聞在各大社群流傳.
1900/1/1 0:00:00作者:chengshutong一、初聞Ordinals、BTC-NFT、BRC-20這部分是概念的堆砌,雖然可以幾句話講明白,但是還是想從原理的角度,將每一個知識點穿起來.
1900/1/1 0:00:00昨晚SUI上線各大交易平臺,其中Binance最高價格2USDT,較公募價最高上漲1900%?.
1900/1/1 0:00:00一位幸運的礦工在上周日晚上賺取了6.701枚BTC的交易費用,超過了當前的6.25BTC的區塊獎勵。這一極為罕見的事件說明了與Ordinals協議相關的區塊鏈活動導致了用戶成本的飆升.
1900/1/1 0:00:00原文作者:DeFiCheetah,加密?KOL原文編譯:Felix,PANews核心觀點:CurveFinance?近期除了?crvUSD?最重要的更新之一:TricryptoNewGenera.
1900/1/1 0:00:00