原文鏈接: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平臺EXRD上線KuCoin,開盤上漲52%:據KuCoin消息,KuCoin已上線 Radix (EXRD)項目并支持EXRD/USDT交易對。EXRD開盤價為0.0955USDT,當前報價0.1455USDT,上線漲幅52%。
Radix是一個開發人員可以在其中快速構建應用的DeFi平臺。
KuCoin旨在發掘優質區塊鏈項目,為來自207個國家的800萬用戶提供現貨、杠桿、合約、Staking 、借貸等一站式服務。[2021/6/25 0:06:14]
每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;
DeFi數據平臺DefiLlama正式收錄Depth數據:據網站首頁顯示,DeFi數據平臺DefiLlama已完成對HECO穩定幣資產管理協議Depth的收錄。據了解,Depth為該網站收錄的第一家HECO原生項目。 截至發稿前,Depth TVL在該網站DeFi項目DEX類別全球排名13位,DeFi項目全球綜合排名41位。
DeFiLlama是DeFi項目行情網站,是CMC,Coingecko等頂級行情站的DeFi TVL數據供應商。
Depth是一個安全、高效的資產管理協議,基于HECO公鏈開發。作為HECO安全資產管家,Depth可以讓資產在安全穩定、低滑點、深度好、低手續費的鏈上環境中儲蓄生息和交易。[2021/5/21 22:28:25]
可以隨意在DuneAnalytics上運行上述查詢。
一旦我們找到第一個清算事件,我們就可以理解為什么用戶在借貸后不久就存入了資產:
+------------------+--------------------------------------------+--------------------------------------------+-------------------------+----------------------------+--------------------------------------------+|evt_block_number|collateralAsset??????????????|debtAsset?????????????????|debtToCover??????|liquidatedCollateralAmount|liquidator????????????????|+------------------+--------------------------------------------+--------------------------------------------+-------------------------+----------------------------+--------------------------------------------+|????13520838|0x6B175474E89094C44DA98B954EEDEAC495271D0F|0x0F5D2FB29FB7D3CFEE444A200298F468908CC942|17919685927295406794873|??58271102282974799175987|0xB2B3D5B6215D4FB23BF8DD642D385C4B44AADB2A|+------------------+--------------------------------------------+--------------------------------------------+-------------------------+----------------------------+--------------------------------------------+
超過20個DeFi協議的鎖倉量在1億美元以上:據歐科云鏈OKLink數據顯示,截至今日11時30分,以太坊上DeFi協議總鎖倉量為180.3億美元。其中排名前三的協議分別是Maker 25.7億美元(-0.94%),WBTC 22.5 億美元(+0.62%)以及Compound 17.2億美元(+0.26%)。
此外當前包括Uniswap、Aave等共計8個協議的總鎖倉量已經突破10億美元,鎖倉量超過1億美元的協議數量則已超過20個。[2020/12/16 15:21:10]
在這里我們可以看到,第一次清算發生在區塊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
我們可以看到只有2種資產,DAI和ETH。
+--------------------------+--------------------------------------------+|amountSeized??????|collateralAsset??????????????|+--------------------------+--------------------------------------------+|387663228503220484547359|0x6B175474E89094C44DA98B954EEDEAC495271D0F|+--------------------------+--------------------------------------------+|499940913071713798854??|0xC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2|+--------------------------+--------------------------------------------+
IOST X ProDeFi:構建去中心化的金融解決方案:IOST正式宣布與去中心化的金融網絡ProDeFi達成合作,以安全、可信賴和及時的方式將IOST DApp生態與傳統金融服務連接起來。IOST和ProDeFi將通過加強在區塊鏈和傳統金融解決方案集成方面的合作,共同創建一個將區塊鏈落地商用的去中心化世界。
ProDeFi是下一代開放式生態系統。通過將去中心化金融的最佳要素與可衡量的監管控制相結合,ProDeFi致力于將DeFi和傳統金融結合在一起,構建一個擁有去中心化架構的透明且安全的金融解決方案。[2020/7/22]
以及它們的金額:
~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???);??//...
我們可以看到,限制比例是50%,這意味著在一次清算中只允許償還頭寸的一半債務。
清算人也有動力將清算分成小塊。如果在清算時,市場上沒有足夠的流動性,無法將抵押資產全額提供給清算人。通過將清算分成小塊,清算人有更大的機會獲得流動資產,并從清算中獲得利潤。
獨家 | 褚康:DeFi目前大規模應用的可能性仍然較低:犇睿資本創始人褚康在接受金色財經獨家采訪時表示:“DeFi本身在解決傳統金融體系的問題上確實存在可取之處,但目前大規模應用的可能性仍然較低,一方面是DeFi系統的用戶數量不足,另一方面是DeFi本身存在的兼容和安全性問題。很多研究認為DeFi的市場可以達到萬億美元的級別,但在目前DeFi尚不存在成熟應用的情況下,預計未來規模還為時尚早。”[2020/4/26]
此外,如果市場上的債務資產沒有足夠的流動性,那么清算人甚至在一開始就獲得該資產以償還抵押不足的用戶的債務可能會成本昂貴。
最后,想象一下試圖清算大量的某種你不擁有這么多數量代幣。如果你去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對本翻譯的支持。
一方水土,孕育一種精氣神。2023年,奇點已至,AI正開啟新一輪的科技革命。而溫州,正以“敢闖敢拼、勇猛精進”的精氣神,快速擁抱AIGC.
1900/1/1 0:00:00原文標題:《AfterShapella,anewdawnforETHyieldproducts》原文作者:CHRISPOWERS原文編譯:Kxp.
1900/1/1 0:00:00對于經歷了上一輪牛市的投資者來說,「以太坊基金會賣幣」一直是一個頗為可靠的逃頂信號。另一個為人津津樂道的逃頂信號,即memeCoin的爆發。目前的加密市場,已經集齊這兩點.
1900/1/1 0:00:00概述 在上一篇文章中,我們提出了一個構建鏈上游戲的框架——ActionRegistryCore。在深入探討ARC的復雜性之前,我們有必要先退一步,探討一下構建鏈上游戲的初衷.
1900/1/1 0:00:00作者:lesley@footprint.network 主要觀點 即使市場深陷寒冬,但web3游戲每天依然有八十萬的用戶.
1900/1/1 0:00:00作者:MilesDeutscher,加密KOL;翻譯:金色財經0x25PEPE在短短21天內上漲375,000倍之后,改變了許多人的生活。你也可以通過Meme幣改變你的生活.
1900/1/1 0:00:00