“流動性挖礦” 概念的由來

買賣虛擬貨幣
編者注:本文來源於 YFI 創始人 Andre Cronje 在啟動 yearn.finance 專案前撰寫的一系列部落格。在這三篇短文中,第一篇最為重要,它寥寥數語,就勾勒出了 “流動性挖礦” 概念的來歷,以及它給 DeFi 世界帶來的挑戰。後面兩篇短文介紹了作者解決問題的思路,並不易懂,但也都有文獻意義。101 Yield Farming我們開發成功了一款新的被動收益輪植(Yield Farming)產品,但在啟動之前,我希望先解釋幾個概念。在我們開發 iearn 的時候,我們擁有的選擇是非常簡單的:Aave、Compound、Dydx,還有 Fulcrum。每一個產品都為不同的資產提供了借貸市場。你可以出借手中的資產、賺取一份被動收入。單純的年代啊。SNX(Synthetix)專案引入了帶激勵的流動性池(incentivized pool)的概念。他們希望大家來為他們的 sETH 池子提供流動性,也意識到了,最好的辦法就是獎勵早期參與者:如果你在 uniswap 上為 sETH/ETH 交易對提供了流動性,你就可以得到 SNX 代幣作為獎勵。
像我這樣比較老的玩家可能還記得 Havven,記得 SNX 的目標是做成一種新的穩定幣,也就是 Synthetix 交易所中的 sUSD。但那時候只有 Uniswap V1,只有 資產/ETH 這一種流動性池,所以他們無法僅僅激勵一個包含 sUSD/ETH 的流動性池,只能激勵多個池子。然後就是 CRV(Curve),一個新的、更簡單的自動化做市商(AMM)。說它更簡單,不是指它的公式更簡單,而是在設計上更簡潔。有了 Curve,大家就有了新的方法用穩定幣參與獲得被動收入,你只需提供 DAI 以及/或者 USDT,就可以賺到手續費了。所以,一直關注這個領域的人,會知道已經有了一些方法,可以讓我們賺取被動收益率了:1. 透過為 Uniswap 市場提供資產來獲得交易手續費2. 透過為 sETH/ETH 交易隊提供流動性來獲得 SNX 代幣3. 透過為 CRV 市場提供 DAI 或 USDT 來獲得交易手續費
4. 透過在 Aave、Compound、Fulcrum 或者 Dydx 借貸市場存入資產來獲得存款利率iearn V1 就是一個簡單的借貸市場 LP(Liquidity Provider,流動性提供者),每當使用者 存款/取款 就在不同的流動性池子間切換一次。於是我們開始跟 CRV 商量推出一個自動切換收益率的流動性池(yield switching pool),後來就成為 CRV 的 Y Pool。Y Pool 結合了 iearn 和 CRV 的最優點,變成了一個最最佳化出借效率、自動切換獲得手續費的池子。當你在 y.curve.fi 上做交易時,你實際上是在交易 y token,比如 yDAI、yUSDT,等等,但池子本身會意識到 yToken 在交換 token,然後 存入/取出 底層的 token 資產。然後,我們又開始跟 SNX 商量,因為他們即將要啟動自己的穩定幣交易池(就是為了 sUSD),而我們新增了另一層。這樣流動性提供者就可以得到 yToken(存款收益)、curve.fi 的手續費,再加 SNX 獎勵。所以那時候,我們已經有了終極組合:自動切換被動收益率的 token + 交易手續費 + 專案的流動性激勵。這樣美好的時光也已成過去式。
然後各個專案就開始了激勵流動性的戰爭。Compound 用他們的 COMP token 打響了第一槍,然後大家就蜂擁而上。Balancer 很快推出了 BAL,mStable 推出了 MTA,Fulcrum 推出了 BZX,而 Curve 蓄勢待發要推出 CRV。(譯者注:這些專案激勵流動性的模式核心都類似:根據使用者提供的資產體量,按比例獲得增發的協議原生 token;2020 年 8 月 16 日,Curve 推出了 CRV。)但是,這就使得 Yield Farming 變得更加複雜,僅僅根據存款利率來切換選擇就不夠了。現在,策略會複雜成這樣:1. 把 DAI 存入 compound,把 cDAI 存入 Balancer。透過 DAI 賺取 COMP、透過 cDAI 賺取 BAL,再加上 DAI 可獲得的存款利率,和 cDAI 在 Balancer 交易池中的手續費。2. 把 DAI 存入 curve,然後把 curve token 存入 Synthetix Mintr 交易所。透過 DAI 賺取 CRV,透過 curve token 賺取 SNX;再加上在 curve 交易池中可獲得的交易手續費。3. 把 DAI 存入 mStable,把 mStable 存入 Balancer。DAI 可獲得一份利率,mStable token 在 Balancer 協議中獲得 BAL;再加上可以從 Balancer 的交易池中賺取手續費。
4. 把 USDC 存入 Maker,鑄出 DAI,然後重複選項 1,2,3。而且上面幾種策略只是一些例子。幾周以前,最好的策略是從 Compound 市場中借出 BAT;現在則是用 Compound 做 DAI 的槓桿。但是下一週,也許就是參與 Curve 的 SNX 池。上面所有策略面臨的共同問題是,這些策略的意義都基於 COMP、BAL、MTA、SNX、CRV,等等,的價值。而所有這些 token 的價格都是會浮動的。這也意味著,所有這些策略都要依賴於價格資訊傳輸機制。在撰寫文字之時,還沒有 COMP、BAL、MTA、SNX 和 CRV 的價格資訊傳輸機制,除非你使用 Uniswap 交易池或 Balancer 交易池中的價格作為指數;不過一旦你用了,就準備好自己的流動性被閃電貸吸乾吧。本文的目的是想告訴大家,被動收益輪植(Yield Farming)已經變得很複雜了,而且我們預計它以後會變得越來越複雜。所以我們需要提供一種新的產品,不是簡單地在這些選項中作選擇,而是培育出新的選項(instead of trying to choose between these options, seeds these options)。我們已經有思路了。102 更能感知收益的自動化做市商
我們先從幾個基本的例子開始:假設你持有 BAT ,你有以下幾個選擇:1. 將 BAT 存入 Compound ,賺取存款利息和治理代幣 COMP2. 將 BAT 存入 Aave 賺取利息3. 賣掉 50% 的 BAT ,用這筆錢買入 ETH ,將 BAT 和 ETH 存入 Uniswap 的 BAT/ETH 流動性池,賺取手續費,並承擔無常損失(impermanent loss)。4. 賣掉 50% 的 BAT ,用這筆錢買入 ETH ,將 BAT 和 ETH 存入 balancer 的 BAT/ETH 資金池,賺取手續費和治理代幣 BAL ,並承擔無常損失。
再變得複雜一點:將 BAT 存入 Compound ,獲得 cBAT ,將 cBAT 和 ETH 存入 balancer 的 cBAT/ETH 資金池,賺取手續費和 BAL ,並承擔無常損失。從表面上來看,你以為你賺取的是 COMP 和 cBAT 的利息收益。實際上,是 Balancer 的資金池在賺取 COMP(而不是你),而且 balancer 的資金池也在賺取 cBAT(這部分收益將由套利者獲得,因此嚴格來說,你賺取的是交易費,而非 cBAT 的利息收益)。雖然你的投資策略看似很明智,但是最後的收益近似於直接將 BAT 和 ETH 存入 balancer 的資金池。從中,我們可以發現以下幾個問題:1. 流動性池(而非流動性提供者)賺取了激勵型代幣,如 COMP、BAL 等2. 流動性池(而非流動性提供者)賺取了代幣的存款利息
3. 你必須賣掉 50% 的 BAT 來為池子提供流動性(這一點對我們的解決方案來說至關重要,會在專門的文章中討論)從上述幾點可知,現有的 AMM(自動化做市商)流動性池無法滿足我們的需求,因此我們需要更能感知收益的 AMM 。

支援 Aave 代幣(aToken)非常容易。aToken 都支援一個名為 redirectInterestStream 的函式,可以讓你配置一個用來接收利息的地址。但是,這就意味著,你獲得的利息不是以複利計算的。

Compound 代幣(cToken)的價值雖然能基於其供應指數而增長,但也正因此,這些代幣很難管理。這就需要 AMM 能夠感知 cToken 的基礎價值,而非 cToken 的價值。因此,所有互換交易和報價核查都要衡量基礎價值,而非 cToken 本身的價值。

適用於 cToken 的方案也適用於 aToken,並且解決了複利問題。

引入這一變化之後,AMM 就能在持有 cBAT 或 aBAT 的同時進行 BAT/ETH 代幣對之間的交易。

給 COMP 設計的方案非常簡單,我們根據每一次內部餘額(cBAT)的變化來衡量 COMP 餘額的變化,併為其分配一個索引。

但是,我們希望支援將來有可能加入的所有代幣,並且在餘額沒有改變的時候也重新分配。因此,我們對上述內容進行過修改,可以適用於任何代幣,並增加了一個針對核心代幣的地址查詢功能。

以上就是第一部分——可感知收益的 AMM ,能讓流動性提供者從提供最高利率的借貸市場裡賺取利息,同時獲得激勵型代幣(例如,COMP)。

下一篇文章將詳細講述,在你僅持有一種代幣的情況下,我們是如何幫助你避免賣出 50% 來買入另一種代幣的。

103 穩定幣

在講解下一塊內容之前,我們需要先了解穩定幣。

為什麼 1 USDT 價值 1 美元?簡單來說,如果我持有 1 USDT ,我可以可以找發行方 Tether 將 1 USDT 兌換 1 美元。因此,如果 USDT 的價格跌至 0.9 美元,我就會想方設法購買 USDT ,並將它兌換成 1 美元來套利,直至其價格迴歸 1 美元為止。如果 USDT 的價格漲至 1.1 美元,我就會想方設法用美元來 “鑄造” USDT ,從中套利,直至其價格迴歸 1 美元為止。

同理,USDC 及其發行方 Circle ,還有 TUSD 及其發行方 Trust 也是如此。

那麼 DAI 呢?DAI 是由 ETH ,而非美元背書的。我們可以提供價值 100 美元的 ETH ,然後鑄造價值 100 美元的 DAI (實際上只能鑄造價值 66 美元的 DAI ,這是清算系統用來維護 DAI 價格穩定的方式,但是簡單起見,假設擔保率是 100%。)

如果 1 DAI 的價格是 1.1 美元,我們就可以使用 ETH 來鑄造 DAI ,然後再用 DAI 換回 ETH 。假設你之前使用價值 1.5 美元的 ETH 鑄造了價值 1 美元的 DAI 。現在,這個 DAI 的價值變成了 1.1 美元,你可以將它兌換成等值的 ETH ,這樣依然比你的質押品價值低了 0.4 美元。(這就是為什麼 DAI 有時會與美元脫鉤)。

解決上述問題很容易,不是嗎?只要我們能以價值 1 美元的 ETH 鑄造價值 1 美元的 DAI 就可以了。這裡的問題在於 ETH 本身具有波動性,如果 ETH 的價格下跌 1% ,整個系統都會不穩定,因為沒有足夠多的 ETH 能償付 DAI 。

這就是為什麼 Tether 等公司會惹上那麼多官司。Tether 稱其發行的 USDT 是以美元 1:1 足額背書的,也就是說,如果所有 USDT 持有者同時要求 Tether 兌付,Tether 能拿出足夠多的美元嗎?這是確保系統穩定的關鍵問題:當所有人要求兌付時,系統始終可以提供足夠的基礎資產。

因此,我們設計了一種新型穩定幣(我們知道,同類穩定幣夠多了,但是從技術上來說,我們的不一樣)。我們設計的是 AMM(自動做市商)轉賬機制。

每當我們建立一個新的 uniswap 流動性池時,都需要提供等價值的兩種代幣。假設你提供了價值 1 美元的 BAT 和價值 1 美元的 ETH 建立了一個 BAT/ETH 流動性池。這時,有人提供價值 1 美元的 DAI 和價值 1 美元的 ETH 建立了 DAI/ETH 流動性池。如果你想使用 BAT 兌換 DAI ,就要先在 BAT/ETH 池子中將價值 1 美元的 BAT 兌換成等值的 ETH ,然後再到 DAI/ETH 池子中兌換成等值的 DAI 。

在上述示例中,ETH 只起到了價值轉移的作用。只要 1 ETH = 1 ETH ,則價值 1 美元的 BAT = 價值 1 美元的 DAI 。

引入了價值轉移資產後,我們就可以做一些有趣的事情了。假設你提供價值 1 美元的 BAT 給這個新的 AMM 轉賬機制,就可以建立出等價的價值轉移代幣。如果有其他人提供價值 1 美元的 DAI ,也可以建立出等價的價值轉移代幣。

接下來就會發生一些有趣的事情:

1. 我們只需要提供一種代幣的流動性
2. 價值轉移代幣的價值等於系統中所有代幣的價值總和
3. 如果交易者為這個系統注入了更多 A 代幣,就要取出同等價值的 B 代幣,從而遵守規則 2 。
4. 如果價值轉移代幣的價值高於系統中所有代幣的價值總和,交易者就面向該系統出售價值轉移代幣,並取出其它代幣,從而遵守規則 2 。

我們已經上線了這個名為 Stable AMM 的流動性提供系統。該系統能夠在保證內部穩定性的同時,獲得更高的收益。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;