一文了解DeFi項目之Aave
過去的P2P一般指person to person的借貸形式,這種借貸有三種角色借款人、存款人和中介平臺。借款人在中介平臺上發布借款信息,中介審核信息然後存款人出借資金給借款人。相比傳統的在銀行存款和借款,P2P一般有以下特點:
借款人無抵押
存款人的資金直接轉移給借款人,沒有資金池
通過互聯網的掛單和喫單形成交易,效率要比銀行高的多
由於借款人無抵押(但常常需要中介審核借款人的資產水平,比如房產、汽車等)所以存款人就需要冒很大的風險,而一般的中介平臺往往沒有能力做到對借款人的盡職調查。Defi中的借貸產品比如Aave和Compound一般都是person to pool,這點跟銀行類似,存款人先把錢給銀行,然後由銀行放貸給借款人。Defi中要借貸必須有足額的抵押,雖然都需要抵押,但是Defi的抵押品的估值成本非常低,而銀行往往要找專業機構對抵押人的資產進行估值。
類別 | 銀行 | P2P | Defi |
---|---|---|---|
是否需要抵押 | 需要 | 不需要 | 需要 |
抵押品範圍 | 廣 | 廣 | 僅限數字資產 |
是否有資金池 | 有 | 沒有 | 有 |
放款速度 | 慢 | 較快 | 瞬時 |
中介成本 | 高 | 較高 | 低 |
是否有存款利率 | 是 | 沒有 | 沒有 |
在Aave中存款人將幣存入Pool中,比如存100個ETH,那么這個存款人就有能力從Pool中借走其它的資產。Aave會限定借款的比率,比如存100個ETH最多可以借走其它價值50個ETH的資產。Aave還會設置清算的比率,比如當借走的資產上漲到了80個ETH時就會面臨清算的風險。整個流程跟你向銀行抵押房產借人民幣類似,不同的是銀行給房產估值然後再給你放款的時間是較長的,如果房產貶值銀行需要拍賣房產變現的時間也是較長的。而在類似Aave這種去中心化借貸的Defi項目中,給抵押品估值和拍賣抵押品一般都是瞬時的,這點既提高了借款人的放款效率,也提高了對存款人的保護。
體系結構
Aave協議如下圖所示:
User向LendingPool存入資產會得到對應的aToken,比如存入DAI能得到aDAI。aToken是有息資產,隨着時間的增長aToken上的存款收益會增加其淨值也會增加。當User在aToken淨值為1時存入100個DAI會得到100個aToken,等到aToken的淨值增長到1.2贖回100個aToken則會得到120個DAI。User在有足額抵押或者授信之後可以從LendingPool中借出資產,借出資產的同時會收到對應的dToken(Debt token)。跟aToken類似,dToken也有淨值,比如在dToken淨值為1時借出100個DAI會收到100個dToken,隨着時間的增長dToken會累積借款利息,等到dToken的淨值增長到1.2時,還款時銷毀100個dToken需要向LendingPool償還120個DAI。
Aave中的資產價格依賴Oracle提供,固定借款利率也由Rate Oracle提供,系統中的一些控制參數比如active、freeze等由Configrator合約設置。
利率
如果你打开Aave的官網,你能看到各種資產的存款和借款利率如下圖所示:
在Aave中如果沒有借款,則就沒有收益也就無從有存款年收益率,這點跟銀行不一樣,銀行即使沒有借貸收入也會按照存款利率支付利息。實際上Aave的代碼中並沒有某個幣種存款年收益率這樣的變量,只配置了借款年利率(對於可變借款模式來說配置的是基礎利率,對於固定借款模式來說依賴Rate Oracle來提供)。存款收益率來源於借款利率,兩者之間的利差是利息累積的計算方式的不同產生的。存款收益採用單利(Simple Interest)計算,借款利息採用復利(Compound Interest)計算。
假如從LendingPool中借走100個ETH,借款年利率是10%,借5年,採用單利計算的利息是:
而採用復利計算的利息是:
可以看到復利計算的利息會比單利高,兩者之間的利差就是Aave這個產品的收入。
借款利率跟資產利用率正相關,資產利用率越高表示資產的需求越旺盛,因此借款利率應該也要越高。Aave中利率的更新時重新計算得到的利率與資產利用率關系如下圖所示:
當資產利用率超過一個閾值Uo時,利率增長的速度會更加快,因此實際的利率曲线是兩段曲线,隨着U的變大其斜率也會越來越大,以可變借款利率為例,如圖所示:
在Aave的首頁上我們可以發現DAI的存款利率為9.45%,可變借款利率為17.97%,兩者之間差8個百分點,難道Aave的收入如此之高?實際上不是的,在Aave中存款的收益率=借款利率*資產利用率,比如說存100個DAI,其中50個DAI借出去了,這50個DAI的借款利率是10%,但這部分借款的利息是歸所有存款的,因此存款的收益率也就只有5%,實際上Aave的收益率不會有這么高。
淨值
淨值這個概念常用於基金中,比如基金淨值為1時,花100塊錢就能得到100份,當基金淨值為2時花100塊錢只能得到50份,如果淨值又下降到1.5,那么50份基金只值75塊錢。在Aave中每種資產都有兩個淨值,分別是aToken的淨值和variableDebtToken的淨值。通過淨值就可以很方便的計算出用戶存款的收益和可變利率借款需要支付的利息。當aDAI的淨值為1時存入100個DAI能得到100個aDAI,等到aDAI的淨值上漲到1.2時,銷毀100個aDAI能得到120個DAI。類似的當varaibleDebtDAI的淨值為1時借100個DAI能得到100個varaibleDebtDAI,等到varaibleDebtDAI上漲到1.2時,需要還120個DAI才能銷毀100個varaibleDebtDAI。
前文提到過aToken的淨值累積按照單利計算,varaibleDebtToken的淨值累積按照復利計算。假定aToken當前的淨值是LI(t-1),當前每秒的存款收益率為r,則經過一段時間dt(從t-1時刻到t時刻)之後新的LI(t)為:
假定varaibleDebtToken當前的淨值為VI(t-1),當前每秒的可變借款利率為r,則經過一段時間dt(從t-1時刻到t時刻)之後新的NI(t)為:
aToken
aToken是存款憑證,用戶在存款時LendingPool會給用戶發放資產對應的aToken,持有aToken可以獲得借貸產生的利息收入。有借才有借款利息,然後才有存款收益,借的越多資產收益率就越高。在取款時用戶將aToken交給LendingPool進行銷毀,然後按照aToken淨值*aToken的數量轉給用戶對應的資產。LendingPool會檢測用戶是否能銷毀aToken,如果用戶沒有借款當然可以取款,如果用戶有借款並且在取款之後用戶依然有足額的抵押品來擔保債務則也可以取款。
如果取款時恰好池子中的資產沒有那么多怎么辦呢?這個沒有辦法,如果取款數量超過池子中擁有的資產數量則取款會失敗。但是利率會隨着借貸數量的增加而越來越高,這會迫使借款人及時還款,否則將會面臨被清算的風險。
將存款代幣化的好處是可以流通,比如aToken可以去其它的項目進行流動性挖礦或者質押,能給用戶帶來更多的收益。雖然aToken可以自由轉移,但是一定要注意轉移之後自己的債務是否有足額的資產進行擔保,否則債務會被清算掉。
用戶有了抵押品之後可以自己去借貸,也可以把借貸額度給其它用戶,這個過程叫授信,被授信的用戶就可以從Aave中進行無抵押借貸了。比如下面的場景都可以用到授信無抵押借貸:
使用冷錢包進行存款,然後授信給熱錢包由熱錢包進行借款和還款,冷錢包就無需再頻繁的觸網。
金融機構可以开展信用借貸,比如用戶在支付寶上的信用很好,支付寶就可以授信給用戶,用戶能直接從aave上借錢。
dToken
dToken有兩種分別是stableDebtToken和variableDebtToken,對應着固定利率借款和可變利率借款。可變利率借款的好處是當市場借貸需求較低時利率會比較低,不過缺點是隨着借貸需求的增加所有借款人的借貸利率都會增加。比如用戶在DAI的可變利率為1%時借了100個DAI,等過了1個星期DAI的借款利率上漲到了5%,則用戶只有在這7天內的利息是按照1%計算的,之後的利息就會按照5%計算。
對於打算長期借貸的用戶來說,可變利率將使得他們的資金成本不可控,因此固定利率借款的優勢就體現出來了。Aave的固定利率由Rate Oracle提供的基准固定利率和當前的資金利用率決定。用戶可以持有多筆固定利率借貸,多筆借貸的利息按照加權平均利率計算,比如:
借貸次數 | 系統固定利率 | 用戶借貸數量 | 用戶借貸平均利率 |
---|---|---|---|
第一次 | 2% | 100 | 2% |
第二次 | 5% | 200 | 4%=(200*5%+100*2%)/300 |
固定利率借款時的額度不能超過資產剩余可借額度的25%,而可變利率借款沒有這個限制。因為可變利率借款隨着使用率的增加借貸利率會急速上升,借款人把所有的資產借空的代價很高。一般情況下固定借貸的利率>可變借貸的利率>存款利率,如果固定利率借貸不受限制,則可以將剩余資產以固定利率借走很大一部分。此時由於資產利用率上升會導致可變借貸利率和存款利率都上升,甚至可能會出現可變借貸的利率>存款利率>固定借貸的利率的情況。然後用戶可以將固定利率借出來的資產再存進去產生套利,而損失則由可變利率借貸的用戶承擔。
用戶可以將自己的可變利率借貸和固定借貸利率進行互換,比如將可變利率換成固定利率就是犧牲借貸利率的穩定性獲得借貸成本的降低,反過來則是提升借貸成本獲得借貸利率的穩定性。如果Aave出現固定借貸利率低於可變借貸利率的情況,理性的用戶都應該將可變利率借貸換成固定利率借貸。
固定借貸的利率有可能會被Aave強制性的重新調整,比如剛开始在固定借貸利率較低時有用戶借了很多固定利率的資產,後來這種資產的需求增加使得可變借貸利率上升,但是由於大量的資產以較低固定利率借走了導致存款收益率並不是很高,這樣會傷害存款用戶的利益。當資產的利用率超過95%,並且存款利率不及可變借貸利率最大值的40%時,用戶的固定借貸利率會被重新調整到最新值。
dToken雖然也是一種ERC20代幣,但是並不能進行transfer,approve等操作,也就說債務並不能在不同的用戶間轉移。
閃電貸
可以通過Aave進行閃電貸,可以同時借出多種資產,只需要付出0.09%的手續費。閃電貸的流程如下:
上述流程只描述了閃電貸的常用模式:借了之後立即還款。Aave還支持借了之後不用立即還的模式,也就是像普通的借貸一樣,只要抵押品足夠就行。通過閃電貸可以做如下的操作:
套利。資產在不同的去中心化交易所中的價格隨時會存在價差,比如LINK在Uniswap中的價格是100DAI,而在Bancor中的價格是105DAI,那么可以通過閃電貸借1個LINK給receiver合約。在receiver合約中將LINK在Bancor中賣掉得到105DAI,然後在Uniswap中买入1個LINK還給Aave,最後能得到5個DAI的收益(不考慮網絡交易手續費和各個去中心化交易所的交易費用)。
抵押資產交易。假如Alice在LendingPool中存入了100個LINK和20個UNI,現在她想把LINK和UNI都換成AAVE。常規做法是先把LINK和UNI從Pool中取出來,然後去Uniswap這樣的去中心化交易所兌換成AAVE,然後再存到Pool中。上述操作需要多個交易才能完成,而使用閃電貸可以一個交易就完成。Alice通過閃電貸先借100個LINK和20個UNI發送給receiver合約,在recevier合約中將LINK和UNI換成AAVE後存到Pool中。Alice會在閃電貸的參數中增加approve籤名,這樣receiver合約就能將Alice的aLINK和aUNI贖回成LINK和UNI,最後償還閃電貸借出來的LINK和UNI。
使用抵押資產來償還債務。假如Alice在LendingPool中存入了LINK,Alice後來從Pool中借了UNI,如果要還UNI正常的流程是需要將UNI轉給Pool。假如現在Alice手中的UNI都虧掉了,沒有UNI可以償還貸款,Alice可以使用閃電貸先借出LINK給receive合約,然後在receive合約中去Uniswap上賣掉換成UNI,得到UNI之後轉到Pool來償還債務。Alice會在閃電貸的參數中增加approve籤名,這樣receiver合約就能將Alice的aLINK贖回成LINK償還閃電貸借出來的LINK。
清算
Aave中給每個資產都設置了兩條线:ltv(loan to value)和liquidityThreshold,ltv<liquidityThreshold。ltv是指資產的借貸能力,liquidityThreshold是指資產對債務的擔保能力。比如存款價值100個eth,ltv是30%,liquidityThreshold是60%,則最多只能借出價值30個eth的債務,假如債務隨着價格的變動增長了,那么當債務的價值達到60個eth時這種資產的存款就會被清算。
用戶可以在Aave中存入多種資產,也可以借多種資產,存入的資產可以選擇是否作為債務的擔保,如果不做擔保,則即使債務被清算時也不會波及到,這樣做相當於給存款做了一個保護。只有當總債務跟總擔保資產的比超過清算线時債務才可以被清算,每次清算只能清算一種擔保的存款資產。
清算時的最多能清算掉債務人50%的債務,優先清算可變利率的貸款,然後再清算固定利率貸款。清算能得到一定的獎勵,Aave中每種資產都有一個liquidationBonus屬性,比如liquidationBonus=105%,清算價值100個ETH的債務將能得到價值105個ETH的抵押品資產,清算收益為5%。
安全問題
每個Defi項目都會面臨各種各樣的安全問題,對於Aave的業務來說有一些特定的安全問題需要考慮:
能否存進去低價值借出高價值的資產?低價值就跟Oracle的報價有關,比如鏈外市場上UNI的價格是100DAI,而Aave中如果Oracle給的報價是1000DAI,則存入UNI就能借出比實際價值高很多的資產。這種報價風險是有的,不過Aave對報價採用了雙重保險機制,首先報價由Chainlink提供,如果Chainlink的報價有問題,價格會由Aave自己提供的oracle提供。
能否存進去低流動性的資產?如果可以的話就可以隨便拉升某個垃圾幣種的價格,然後存入這種垃圾幣,把流動性好的資產借出來。在Aave中能夠被作為存款的資產並不是开放式的,Aave的治理組織會控制哪種資產能進入LendingPool。不同資產的ltv也不一樣,高流動性的資產ltv才高。
能否控制利率,使自己借某種資產的利率極低?借款利率跟資產利用率有關,資產利用率越低借款利率就越低,要人為的壓低資產利用率就必須要存入大筆的資產。比如DAI這個資產當前的存款量是1000個DAI,由Alice存入,市場上公允的借貸利率是5%。此時如果Bob存入100萬個DAI,然後借走1000個DAI,則由於資產利用率極低(為0.1%)導致借貸利率就會很低,那么Bob就可以用遠低於5%的資金成本使用這1000個DAI,這會損害前面存款人(Alice)的利益。Aave中考慮到了這種大戶侵害小戶利益的問題,處理的辦法是Bob可以借DAI,但是Bob必須借出超過他存款的DAI,也就是要么不借,要么借的量要超過100萬DAI。
是否會出現借款利率比存款利率低的問題?是有可能出現的,固定利率是隨行就市的,每次新產生的固定利率貸款都能反映當前市場上資產借貸利率的公允值。但是如果早期的固定利率比較低,後來資產的借貸需求高了導致存款利率上升,就可能出現當下的存款利率高於早期的固定借貸利率。一般情況下這是允許的,畢竟借貸利率是固定的,不可能隨隨便便就把用戶的固定利率貸款變更利率。只有當資產的利用率超過95%,並且存款利率不及可變借貸利率最大值的40%時,早期那些低利率的借貸才會被重新調整固定借貸利率,這也是Aave對存款人利益的一種保護。
能否擡升可變借貸利率使可變借貸利率貸款的擔保不足,然後通過清算債務獲利?理論上是可以的,尤其是資產收益率在超過Uo之後的增長速度會快很多,不過債務要達到清算线需要累積利息,而這是需要時間的。擡升利率依然也需要付出利息,而清算債務的收益並不是特別高,所以實施這種攻擊需要對特定的高負債率用戶才有效。
結束語
Aave給市場提供了一種無固定期限的抵押借貸產品,資產准入制度給存款方提供了較高的安全保證,同時能進入Aave的資產也是一種實力的證明,無論是市值、流動性和持倉分散程度來說都是市面上的佼佼者,給幣圈投資提供了一種非常有價值的參考。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。