基於 ERC-3525 將怎樣改進 Uniswap v3 LP 模型?
TechFlow Selected深潮精選
基於 ERC-3525 將怎樣改進 Uniswap v3 LP 模型?
現階段 DEFI 已經進入了更復雜、更多維度的金融產品設計與實現的階段,類似於差異化頭寸管理的模式會層出不窮。
作者:Will Wang,Ethan Tsai
Will Wang,Solv protocol 聯合創始人、ERC-3525 標準提出人
Ethan Tsai,Solv Protocol 核心技術團隊成員、ERC-3525 核心貢獻者之一
前言:本文寫作於 2021 年 3 月23 日,也就是去中心化交易所 Uniswap 發佈 v3 的第二天。
當時,Solv 團隊正在向以太坊社區提交 ERC-3525 標準草案,看到 Uniswap v3 LP的設計後,興奮於“將 NFT 應用於金融類應用”的理念與行業領導者不謀而合,同時也認為正在設計和提交的 ERC-3525 能為 v3 作出重大改進:包括為 LP 帶來更好的流動性和管理能力。
本文探討了 Uniswap v3 區間做市的工作原理,仔細分析其固有的問題,以及基於 ERC-3525 解決這些主要障礙的解決方案。
時隔一年多,ERC-3525 已經成為以太坊社區正式標準,我們認為當時提出的對於 ERC-3525 改進方案仍然具有價值,故重新發表此文。
由於文章發表較早,部分技術內容與 ERC-3525 正式標準有一定差異,特此說明。
一、 背景
Uniswap V3 引入了做市商的差異化 position 管理能力,允許做市商針對不同價格區間來配置做不同市資金量:當成交價落在某個價格區間內,做市商對應的資金頭寸參與做市,成交價落在這個價格區間外,這部分資金不參與做市。這是一個很有力的創新,其價值和具體實現有很多細節,這裡不做展開。我們只針對其中一個問題進行討論:position 的管理方式,也就是Uniswap V3 LP 的技術實現手段。
眾所周知,Uniswap V2 的 LP 是一種 ERC-20,由於 V2 中並沒有區間化的 position 管理,所以 V2 的 LP 實際上就是全價格範圍的 position 管理 token。同時,由於 position 沒有差異化,Uniswap V2 的 pool 也就和 LP 合二為一,形成了一體化的管理模式,這也是目前大部分DEFI項目的資金池管理模式。
由於 ERC-20 模型的限制,無法實現差異化 position 管理,否則會導致針對每個 position 創建一個 ERC-20 合約,不僅代價難以承受,而且 ERC-20 資產的流動性特徵也沒有獲得充分利用,得不償失。同時,由於差異化 position 又要匯聚成統一的資金池,因此原有的 LP 與資金池合二為一的模式也不是那麼顯而易見了。對這兩個問題,Uniswap V3 給出的解決方案是:position 管理 token 改為 ERC-721,pool 也成為一個單獨的合約。
二、 底層資產 Token化(tokenization of underlying assets)的價值
那麼,Uniswap V3的 position 管理解決方案是最優的嗎?要討論清楚這個問題,我們首先要回顧一下目前主要 DEFI 平臺所採用的“底層資產 token化 ”這一模式的價值。
所謂底層資產 token 化,就是指用戶將資產存入 DEFI 平臺的資金池合約本身是一個 token 合約,對應發行的 token 就是用戶的資產存儲憑證,這種模式之所以一直是主流 DEFI 平臺的首選方案,主要是因為其創造了一種“雙層資產”的模型,將底層資產與 token 化資產分離,從而帶來了兩個核心價值:
首先,token 化形成一種新的衍生資產,很大程度上釋放了底層資產的流動性。比如Compound 的 cToken、Uniswap V2的 LP,由於其與底層資產在數量上的對應關係,使得其包含內在價值,且價格可以計算,現在已有大量平臺支持這類 LP 資產的交易、質押,顯著提升用戶資產的流動性。
其次,雙層資產的處理相互獨立,互不影響,為協議帶來了簡化資產管理和提升底層資產穩定性的價值。例如:用戶需要將資產出售、質押或轉移到另一個地址進行管理的時候,只需要用標準的 token 協議進行操作,而無需由資金池協議開發任何對應的管理功能。同時,通過token 的轉移實現底層資產所有權的變更,使得用戶無需採取將底層資產取出再存入的動作,保障了資金池規模的穩定性。
整個 DEFI 世界的樂高積木模型,在很大程度上是因為上述兩個能力才得以發揮最大的價值,因此任何一個 DEFI 協議的底層資產管理架構,也就是其 token 化的實現手段,應該以最大限度提供上述兩個能力為前提,為這一目標尋找對應解決方案的努力都是值得的。
三、 Uniswap V3 position LP 的問題
回過頭來看 Uniswap V3 的LP解決方案,會發現一個明顯的問題,那就是基於標準 ERC-721協議實現的 position 管理,雖然支持了差異化的特性,但卻沒有最大限度地保持前述的兩個價值。我們用兩個場景做示例來進行討論:
頭寸變更
Uniswap V3 提供了頭寸變更的能力,允許針對一個 position 來修改其價格區間,這很顯然是一個必備功能。但用戶可能不滿足於單純的修改價格區間,例如:一個用戶投入了 100 萬美元在 1500-2000 這個區間的 ETH-USDC 交易對上,根據市場情況他希望將其中30 萬美元轉移到 1000-1200 這個價格區間上,以應對可能出現的下跌。在現有 Uniswap V3 的實現中,用戶唯一能做的就是從現有價格區間的頭寸中取出 30 萬美元,另外創建一個對應新價格區間的 position。這顯然沒有達到我們上面討論過的儘可能避免用戶取出底層資產,從而保持資金池穩定性的目標。
資產流動性
如前所述,Uniswap V2 的 LP 已經成為被廣泛認可的資產,相信 V3 的 LP 也不例外,因此針對這種資產的質押、交易和各種處理會成為普遍需求,但由於 ERC-721 的限制,無法在這類場景中提供靈活的方案。例如:有兩個平臺提供 V3 LP 的質押服務,用戶暫時無法判斷哪個平臺收益更好,最簡單的辦法就是分別質押 50% 的資產,這在 ERC-20 時代是簡便易行的,而現在卻無法完成,用戶甚至需要為此創建兩個價格區間完全一樣的 LP 去實現這一目標嗎?
Uniswap 給出的答案是由進一步的外圍合約或者第三方來提供(基於ERC-20的)re-fungible 的方案,但這顯然不能令人滿意。一方面,如果針對每一個 ERC-721 ID 發行一個ERC-20合約,會形成災難性的合約碎片問題,讓接收 LP 資產的平臺很難處理。反過來,如果採用打包機制將若干 ID 的 token 進行整合,不僅增加用戶資產管理的難度,還要面臨複雜的價格確定機制的問題。對於 NFT 領域內 re-fungible 方案比較熟悉的人會了解,這種模式並不能有效應對 position LP 這種高度複雜性的金融資產。
總體而言,基於標準 ERC-721 協議的 LP,基本上很難實現 ERC-20 類型 LP 的管理能力與流動性模式,而這些特徵實際上是 LP 類 token 資產的核心價值。如果 Uniswap V3 僅僅採用這種方式來實現 LP token,對於方興未艾的 LP 市場可能造成不小的打擊。
四、 解決方案
我們之所以能夠對上述問題作出快速而深入的分析,是因為我們在設計借貸市場中的定期借貸產品、投資市場中的定期解鎖產品時,都遇到過相同的問題,並且給出了比標準 ERC-721 更好的方案。我們也因此相信,這個方案同樣適用於Uniswap V3 的 LP,使其具備更好的流動性和管理能力。
答案就是一種新型的資產協議,我們稱之為 SFT,這實際上是一組協議的統稱,包含多種類型的接口,具體細節會在未來逐步介紹。簡單講,SFT 是一種支持數量描述的NFT,在此基礎上可進行拆分、合併和部分轉讓。同時,為了更好地支持“雙層資產”模型,SFT 還在協議層增加了底層資產描述能力,從而支持和規範這種模式的實現。此外,為了有效與現有的 DEFI世界基礎設施進行交互,SFT 在實現層面與 ERC-721保持兼容,從而任何支持標準 ERC-721的協議都能夠將 SFT 的token當做 ERC-721 的 token 來處理。
從技術層面描述,這個協議會包含以下接口(僅列出部分):
function safeTransferUnitsFrom(address from, address to, uint256 tokenId, uint256 targetTokenId, uint256 transferUnits) external;
function split(uint256 tokenId, uint256 newTokenId, uint256 units) external;
function merge(uint256 tokenId, uint256 targetTokenId) external;
function approveUnits(address to, uint256 tokenId, uint256 units) external ;
其中,Units 表示一個 NFT 中所包含的數量。
資產管理靈活性
由於增加了數量屬性以及拆分、合併和部分轉讓的能力,上述 Uniswap V3 LP 的問題都能夠獲得很好地解決。舉例而言,當你希望將一部分頭寸轉移到另一個價格區間時,只需要將現有頭寸對應的 LP token 按照金額拆分成兩部分,然後對其中一部分進行價格區間變更,而無需首先取款。對於轉讓、交易、質押等操作,也可以進行類似的處理,並且由於 LP 的數量與底層資產存在對應關係,LP 資產的價格也清晰易見,不需要再採用其他外圍協議或者打包成ERC20,使得用戶和其他DEFI協議都能夠獲得接近於 ERC-20 LP 的處理能力。
LP 與 pool 一體化
不僅如此,由於 SFT 在協議層增加了底層資產的描述能力,使得 token 與底層資產的映射關係與 ERC-20 同等靈活,可以使 Uniswap V3 很容易地實現 LP token 與資金池的一體化,回到 V2 以及目前大部分 DEFI 協議所採用的簡單而清晰的“雙層資產”模型。
從 Uniswap 作為 DEX 的實現角度看,這一方案並不是必須的,V3 的文檔中還特別說明 LP token 與 pool 的合約拆分,是有意為之。但在我們看來,這種一體化模式所帶來的雙層資產處理方式的一致性,在提升 LP 資產的流動性、降低信任摩擦方面還是有很重要的作用的,仍然非常值得考慮。
當然,實現一體化模型還有很多其他因素需要考慮,比如是否由於 ERC-721 基礎合約較大,導致超過 EIP-170 限制問題等等,這也都是我們在實踐中處理過的問題,相信在技術層面都是能夠解決的。
五、 結論
總體上說,我們的結論是:現階段 DEFI 已經進入了更復雜、更多維度的金融產品設計與實現的階段,類似於差異化頭寸管理的模式會層出不窮。
在這一趨勢下,要保持 LP 類資產的流動性和管理便捷性,尋求一種新型的資產協議是必須並且值得的,SFT 就是我們為這一系列目標給出的解決方案。
歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News














