過去的(Of)一(One)兩年中,那些被市場驗證爲(For)有效的(Of) AMM 模型算法已經很少再進行更新叠代了(Got it)。AMM 的(Of)核心問題也漸漸從設計一(One)套高效合理的(Of)算法,回歸到金融市場的(Of)本質——流動性。如今的(Of) NFT 這(This)一(One)類型的(Of)資産标的(Of)同樣也面臨一(One)樣的(Of)流動性匮乏等問題的(Of)考驗。而 NFT 市場中卻一(One)直沒有有效的(Of) DEX 能夠真正從流動性彙聚的(Of)角度解決交易撮合和(And)價格發現等問題。今天我們的(Of)主題就從 AMM DEX 出(Out)發,向大(Big)家分享我們在(Exist)設計 Midaswap Protocol 這(This)個(Indivual) NFT 流動性協議過程中,是(Yes)如何從現有的(Of) AMM 方案當中尋找靈感和(And)啓發,又是(Yes)如何在(Exist)這(This)些既有的(Of)方案中改進和(And)創新以(By)解決 NFT 市場中獨有的(Of)痛點和(And)需求。
—— Joseph
文章整理自 Midaswap 工程師 Joseph 在(Exist)經濟模型小組的(Of)内部分享。
自 Q3 以(By)來,NFT 市場經曆了(Got it)劇烈的(Of)波動,藍籌 NFT 紛紛跳水。忽略項目方、發行方各種操作(Do)的(Of)影響,流動性依然是(Yes) NFT 市場裏最重要(Want)的(Of)問題。就目前來說,僅在(Exist) EVM 鏈上(Superior),我們可以(By)把 NFT 大(Big)緻定性成 ETH 的(Of)一(One)個(Indivual)衍生品。
此外,無論是(Yes)否參與過 NFT 的(Of)交易,大(Big)家應該都已經關注到了(Got it) blur.io 的(Of)迅速成功。在(Exist)流動性解決方案上(Superior),Blur 似乎已經交出(Out)了(Got it)一(One)份來自中心化交易所/聚合器的(Of)高分答卷。它現在(Exist)幾乎已經占據了(Got it)這(This)個(Indivual)市場裏面最大(Big)的(Of)買單流動性的(Of)份額,而且作(Do)爲(For)一(One)個(Indivual)後起之秀,尤其是(Yes)在(Exist) Opensea 已經在(Exist)頭把交椅上(Superior)這(This)麽多年的(Of)情況下,它還能如此迅速地崛起。其實我們可以(By)說 Blur 已經将中心化的(Of)流動性方案做得很好。但是(Yes)中心化無論是(Yes)對于(At)我們 dApp 的(Of)開發者來說,還是(Yes)對于(At)各個(Indivual)公鏈上(Superior)的(Of)生态來說,我們一(One)直都認爲(For)中心化可能隻是(Yes)這(This)個(Indivual)交易市場裏面的(Of)一(One)部分,我們希望尋求的(Of)是(Yes)我們怎麽能在(Exist)鏈上(Superior)搭建屬于(At)我們的(Of) NFT 交易所,或者說 NFT DEX。所以(By)我們今天希望能夠在(Exist)接下來的(Of)探讨當中讨論以(By)下的(Of)一(One)些問題:
構建一(One)個(Indivual)去中心化的(Of) NFT 交易所應該采用(Use)什麽樣的(Of)流動性方案?
在(Exist)思考和(And)設計去中心化的(Of) NFT AMM 時(Hour),現有 DEX 的(Of) AMM 方案都有什麽可以(By)借鑒的(Of)地方?
ERC721 和(And) ERC20 作(Do)爲(For)完全不(No)同的(Of)資産标的(Of)在(Exist)其 AMM 模型設計上(Superior)又會有哪些不(No)同?
我們今天便帶着這(This)些問題,和(And)大(Big)家一(One)起探讨學習,同時(Hour)也試圖向大(Big)家分享我們的(Of)産品 Midaswap 在(Exist)模型設計上(Superior)經曆過 的(Of)思路曆程。
如何從零設計一(One)個(Indivual) DEX
先從一(One)個(Indivual)比較抽象的(Of)問題開始,就是(Yes)當我們去設計一(One)個(Indivual) DEX 時(Hour),我們需要(Want)經曆哪些思想上(Superior)的(Of)鬥争,或者我們需要(Want)做出(Out)哪些選擇?
首先估計大(Big)家都知道,選擇一(One)個(Indivual) AMM 曲線,可能是(Yes)所有的(Of) AMM 設計者在(Exist)一(One)開始就需要(Want)确立的(Of)方向。誠然 x+y=k 或者 x·y=k,亦或是(Yes) Balancer 那種更魔改型的(Of)多币池的(Of)那種恒定函數,其實它們都可以(By)叫做 CFMM,恒定函數做式商。這(This)裏的(Of) x 和(And) y,包括 balancer 公式裏的(Of) b 等等,它們其實代表的(Of)都是(Yes)所對應的(Of)這(This)個(Indivual)市場,或者這(This)個(Indivual)流動性池裏面所涉及到的(Of)資産餘額,或者說供應量。他(He)們依據供應量之間的(Of)比例關系或者各種各樣的(Of)創造出(Out)來的(Of)數量關系,重新在(Exist)這(This)個(Indivual)市場裏撮合定價。所以(By),我們考慮選擇一(One)個(Indivual)什麽樣的(Of)曲線,往往和(And)這(This)個(Indivual)流動性協議它認爲(For)自己所能吸引的(Of)目标性的(Of)資産标的(Of)是(Yes)有關的(Of)。穩定币的(Of)交易,比如 Curve V2,它會選擇一(One)個(Indivual)混合式的(Of)恒定函數做事商,在(Exist)平衡點附近,它的(Of)模型更接近恒定和(And)的(Of)曲線,而在(Exist)平衡點較遠的(Of)地方,它更像是(Yes) Uniswap v3 恒定積的(Of)方法。所以(By)說其實并沒有一(One)個(Indivual)完美的(Of) AMM 曲線,更多的(Of)是(Yes)怎麽樣尋找到一(One)個(Indivual)适合你自己這(This)個(Indivual)市場的(Of)一(One)個(Indivual) AMM 曲線。
然後其實大(Big)家就會面臨第二個(Indivual)問題,就是(Yes)我們希望流動性是(Yes)怎麽排布的(Of)。當然這(This)涉及到兩個(Indivual)方面的(Of)問題,一(One)個(Indivual)是(Yes)流動性是(Yes)需要(Want)在(Exist)全區間内排布,還是(Yes)在(Exist)一(One)個(Indivual)固定價格區間内排布,或者說是(Yes)在(Exist) LP 提供的(Of)一(One)個(Indivual)價格範圍内排布。這(This)一(One)點上(Superior)其實就是(Yes) Uni V2 和(And) Uni V3 之間的(Of)差異。Uni V2 其實設計了(Got it)一(One)個(Indivual)十分簡潔的(Of)模型,它将兩種代币全區間排布,嚴格地遵守了(Got it) xy=k 這(This)樣的(Of)一(One)個(Indivual) AMM 曲線。但是(Yes) Uni V2 也帶來了(Got it)另一(One)個(Indivual)問題,就是(Yes)在(Exist)曲線兩端時(Hour)資本利用(Use)效率大(Big)爲(For)降低。Uni V3 在(Exist)這(This)方面做了(Got it)革新,他(He)們爲(For) LP 提供了(Got it)新的(Of)功能,LP 可以(By)在(Exist)他(He)希望的(Of)區間提供流動性,也就是(Yes) Uni V3 定義的(Of) range order 功能。它的(Of) AMM 曲線其實就不(No)是(Yes)一(One)個(Indivual)簡單的(Of) xy=k ,它是(Yes)無數個(Indivual) xy=k 的(Of)疊加的(Of)結果。選擇了(Got it)這(This)個(Indivual)流動性區間的(Of)排布其實背後還有另外一(One)個(Indivual)問題,就是(Yes)你希望你的(Of)流動性是(Yes)水平地擺置,還是(Yes)縱向地擺置?可能現在(Exist)沒有一(One)個(Indivual)較爲(For)直觀的(Of)方法給大(Big)家解釋這(This)兩個(Indivual)之間的(Of)差别,我們後續會進一(One)步做闡釋。
第三個(Indivual)也是(Yes)最重要(Want)的(Of)一(One)個(Indivual)問題,就是(Yes)你是(Yes)怎麽激勵你的(Of) LP 的(Of)?LP 其實是(Yes) DEX 或者遊戲裏最重要(Want)的(Of)參與角色。沒有 LP 就沒有流動性深度,也就沒有良好的(Of)交易體驗。所以(By)所有的(Of) DEX 其實都會面臨這(This)樣的(Of)一(One)個(Indivual)問題,就是(Yes)怎麽吸引到 LP?當然我們知道所有的(Of) DEX 都會用(Use)交易手續費收益來吸引自己的(Of) LP。有一(One)些新興的(Of)流動性協議會爲(For) LP 創造更多組合性上(Superior)的(Of)收益,比如流動性質押或者流動性代币的(Of)一(One)些組合性的(Of)玩法,類似 Paraspace 就使得 Uniswap 的(Of) LP 們能通過借貸實現更多杠杆上(Superior)的(Of)組合性玩法。其實這(This)些方面都是(Yes)爲(For)了(Got it)增加流動性池對 LP 的(Of)吸引力。如我們剛剛所說,LP 是(Yes)這(This)個(Indivual)流動性協議這(This)個(Indivual)遊戲能夠玩得轉的(Of)最重要(Want)的(Of)因素。我們如果沒有一(One)個(Indivual)良好的(Of)機制去吸引LP,那其實這(This)個(Indivual)飛輪是(Yes)無法正向運轉的(Of)。
然後我們就來到第四個(Indivual)問題,就是(Yes)你應該如何向你的(Of)交易者們收費?這(This)一(One)點上(Superior)其實現有的(Of) DEX 們還是(Yes)挺一(One)緻的(Of),就是(Yes)怎麽向交易者收費幾乎都是(Yes)由創建流動性池的(Of)人(People)決定一(One)個(Indivual)費率,像 Uniswap,Joe 它可能有多級費率。我們這(This)裏可以(By)提一(One)嘴的(Of)是(Yes)在(Exist) Joe V2 當中,它的(Of)費率是(Yes)一(One)個(Indivual)動态手續費。我們也看到 Uni V4 做出(Out)了(Got it)這(This)方面的(Of)跟進,它通過 hook 的(Of)形式引進了(Got it)動态手續費。動态手續費率代表着更先進的(Of)一(One)種産品設計,因爲(For)動态手續費率不(No)光可以(By)形成一(One)個(Indivual)負反饋系統來平衡市場,在(Exist)某種程度上(Superior)還可以(By)對沖 LP 的(Of)無償損失。在(Exist)這(This)裏我們不(No)會過多涉及到這(This)部分的(Of)内容,但是(Yes)這(This)一(One)環肯定也是(Yes)作(Do)爲(For)一(One)個(Indivual) AMM 的(Of)設計者來說必須要(Want)考慮到的(Of)。
然後就是(Yes)選擇 LP 的(Of)憑證。這(This)一(One)點上(Superior)有很多流派。Uni V2 選擇了(Got it) ERC20, Uni V3 選擇了(Got it) ERC721,Joe V2 選擇了(Got it) ERC1155。其實 LP Token 是(Yes)由前面四個(Indivual)選擇共同決定的(Of)。流動性的(Of)分布方式和(And)在(Exist)流動性協議中進行量化流動性的(Of)方式最終會決定 LP Token 的(Of)形式。以(By) Uni V2 和(And) Uni V3 的(Of)之間的(Of)差異爲(For)例,Uni V2 是(Yes)在(Exist)全區間分布流動性,所以(By)在(Exist)每一(One)個(Indivual)價格節點上(Superior),隻要(Want)兩個(Indivual) LP 提供流動性資産的(Of)占總資産的(Of)比例是(Yes)一(One)樣的(Of),那我們就認爲(For)這(This)兩部分流動性是(Yes)等價的(Of),所以(By) Uniswap v2 同一(One)流動性池内的(Of) LP Token 都是(Yes)同質化的(Of)。因爲(For)每一(One)個(Indivual)價格點上(Superior),我們都會公平地認爲(For)他(He)們爲(For)市場提供了(Got it)資本貢獻。而 Uni V3 因爲(For)引入了(Got it) range order(限價流動性),所以(By)流動性本身的(Of)有效性就有了(Got it)新的(Of)定義。并不(No)是(Yes)所有的(Of)流動性在(Exist)任何時(Hour)候都會參與市場交易,隻有在(Exist)價格區間掃過範圍内的(Of)流動性才真正爲(For)這(This)個(Indivual)市場提供資本貢獻。所以(By)它需要(Want)将每個(Indivual) LP 的(Of)倉位進行非同質化封裝,爲(For)它們包裹上(Superior)一(One)層 ERC721 的(Of) Token ,這(This)可能是(Yes)目前看來相對來說比較好的(Of)方案。當然我們不(No)知道 Uni V4 接下來會怎麽樣,但是(Yes)我認爲(For)在(Exist) Uni V4 的(Of)流動性方案并沒有和(And) Uni V3 産生巨大(Big)差異的(Of)情況下, E2C721 可能仍然是(Yes)它 LP Token 的(Of)最好選擇。
經曆了(Got it)上(Superior)面這(This)5個(Indivual)重要(Want)環節的(Of)抉擇和(And)掙紮,我們已經确立了(Got it)一(One)個(Indivual) AMM 協議大(Big)緻的(Of)方向。所以(By)剛剛這(This)個(Indivual)過程其實也是(Yes)幫助大(Big)家有這(This)樣一(One)個(Indivual)頭腦風暴的(Of)過程。如果這(This)5個(Indivual)環節都沒有問題的(Of)時(Hour)候,我們才真正進入了(Got it) AMM 模型設計的(Of)大(Big)門,我們開始能夠去讨論一(One)些更細節的(Of)問題。
NFT AMM 的(Of)困難三角
剛剛的(Of)話題都在(Exist)讨論 ERC20 AMM DEX 的(Of)設計,包括 Uni, Curve, Balancer 等現在(Exist)市面上(Superior)主流的(Of) AMM DEX。我們今天的(Of)主題則是(Yes) NFT AMM。NFT AMM 的(Of)币對一(One)側是(Yes) ERC721 的(Of) NFT,另一(One)側是(Yes) ERC20 或者 ETH 這(This)樣的(Of)同質化代币。當這(This)兩種資産标的(Of)放在(Exist)一(One)個(Indivual) AMM 流動性池當中時(Hour),我們會遇到一(One)些十分原生的(Of)矛盾。
首先最重要(Want)的(Of)是(Yes)在(Exist)傳統 NFT 的(Of)交易市場當中,它們依賴的(Of)是(Yes)一(One)種 bid ask 的(Of)交易模式,更像是(Yes)一(One)種訂單簿市場。訂單簿市場在(Exist)某一(One)側流動性缺乏的(Of)情況下,流動速率是(Yes)十分差的(Of)。所以(By) NFT 市場缺乏很好的(Of)做市工具和(And)充足的(Of)買方流動性。一(One)直以(By)來,大(Big)家都诟病 NFT 的(Of)内生價值是(Yes)缺乏的(Of),且它的(Of)買方流動性無論在(Exist)任何一(One)條公鏈上(Superior)都是(Yes)極度匮乏的(Of)狀态,所以(By)換手率的(Of)嚴重不(No)足就導緻了(Got it)流動性注定是(Yes)枯竭的(Of)。所以(By)我們在(Exist)想,如果将 NFT AMM 直接引入到現有的(Of) AMM DEX 市場當中,在(Exist)不(No)經過任何改動的(Of)情況下,它很有可能會面臨 ETH 側或者 ERC20 側流動性嚴重不(No)足的(Of)問題。這(This)是(Yes)大(Big)家在(Exist)一(One)開始就需要(Want)面臨的(Of)一(One)個(Indivual)問題。
然後第二個(Indivual)重要(Want)的(Of)問題,也是(Yes)很現實的(Of)問題,就是(Yes) NFT 是(Yes)整顆進行交易的(Of)。因爲(For) NFT 本身它非同質化的(Of)特性,在(Exist)不(No)加以(By)任何其他(He)附加設計的(Of)情況下,沒有一(One)個(Indivual) NFT 的(Of) Holder 願意出(Out)售10%的(Of) NFT 給另外一(One)個(Indivual)人(People)。這(This)從資産本身的(Of)特性來說也是(Yes)不(No)成立的(Of)。這(This)其實引入了(Got it)一(One)個(Indivual)問題:我們原本的(Of) AMM DEX 在(Exist)代币的(Of)精度範圍内是(Yes)無限可細分的(Of)。如果說一(One)些主流的(Of) ERC20 是(Yes)18位精度的(Of)話,那它在(Exist)18位精度以(By)内都是(Yes)可以(By)細分的(Of),也就是(Yes)說價格曲線可以(By)無限趨近于(At)一(One)個(Indivual)連續的(Of)曲線。而 NFT 是(Yes)一(One)個(Indivual)斷點狀的(Of)流動性,這(This)往往就意味着它有很大(Big)的(Of)流動性缺口。我們要(Want)靠一(One)條什麽樣的(Of)曲線将點和(And)點之間連接起來,這(This)也是(Yes)一(One)個(Indivual)很重要(Want)的(Of)問題。
同時(Hour)從另外一(One)個(Indivual)角度講,因爲(For) Token ID 本身是(Yes)整數個(Indivual)交易的(Of),NFT 的(Of)交易門檻一(One)直以(By)來是(Yes)相對過高的(Of)。散戶在(Exist)購買ETH 時(Hour),如果他(He)的(Of) USDT 不(No)夠購買一(One)個(Indivual)以(By)太坊,他(He)可以(By)選擇隻購買價值 100USDT 的(Of)以(By)太坊。但是(Yes)當一(One)個(Indivual) NFT 價值 1ETH 時(Hour),用(Use)戶不(No)可能花 100USDT 去購買一(One)個(Indivual)百分之多少比例的(Of) NFT。之前市場當中已經有流動性協議提出(Out)爲(For) NFT 引入碎片化設計。碎片化當然是(Yes)一(One)個(Indivual)很簡單直接的(Of)方案,但是(Yes)碎片化方案又引入了(Got it)困難三角的(Of)第三個(Indivual)問題:碎片化的(Of) NFT 還具有 NFT 本身的(Of)交易屬性嗎?
任何一(One)個(Indivual) NFT 集合發行出(Out)來時(Hour),它會根據 Metadata 中的(Of)屬性來決定某一(One)個(Indivual) NFT ID 或者某一(One)組 NFT ID 的(Of)稀有度。不(No)同的(Of)稀有度往往就決定了(Got it)這(This)些 NFT Holder 對于(At)自己 NFT 價格的(Of)期望是(Yes)不(No)同的(Of)。而碎片化意味着所有投入到這(This)個(Indivual)碎片化流動性池當中的(Of) NFT 都是(Yes)被一(One)視同仁的(Of),因爲(For)我們沒有辦法在(Exist)一(One)個(Indivual)已經碎片化的(Of)流動性池當中再去分辨某部分碎片是(Yes)來自于(At)某一(One)個(Indivual)高稀有度的(Of) NFT。
這(This)其實就是(Yes)我們所說的(Of) NFT 去中心化協議所必須面臨的(Of)三個(Indivual)核心的(Of)痛點。如果在(Exist)這(This)三個(Indivual)問題當中沒有一(One)個(Indivual)取舍的(Of)話,可能 NFT AMM 設計會遇到很大(Big)的(Of)困難。
NFT AMM 市場已有的(Of)方案
我們再來看下現有的(Of) NFT AMM 市場上(Superior)有哪些已經比較成熟的(Of)解決方案。比如 NFTX 是(Yes)将 NFT 無差别地碎片化成 ERC20,再通過 Sushi Swap 的(Of)池子構建成交易對。它簡單粗暴地繞過了(Got it) Token Decimal Conflict 這(This)個(Indivual)問題,但是(Yes)它也忽略了(Got it)交易者和(And) Holder 對于(At) NFT 稀缺性的(Of)差異化判斷和(And)價格期望。稀缺性高的(Of) NFT 無法在(Exist)這(This)種 AMM 模型下得到好的(Of)價值發現。
另外一(One)個(Indivual)項目 Sudoswap 是(Yes)原生 NFT 資産第一(One)個(Indivual)類似于(At) AMM 的(Of)DEX。爲(For)什麽這(This)裏說類似于(At) AMM,因爲(For)它和(And)大(Big)家通常理解的(Of) AMM 的(Of)角色設定是(Yes)有一(One)些差異的(Of)。我們簡單介紹一(One)下 Sudoswap 這(This)個(Indivual)項目,它将每一(One)個(Indivual)流動性提供者變成交易者的(Of)對手方。流動性提供者按照他(He)所設定的(Of) bonding Curve 設計自己的(Of)流動性提供方案。每一(One)個(Indivual)流動性提供者就擁有一(One)個(Indivual)流動性池,并确定這(This)個(Indivual)池子是(Yes)雙向池還是(Yes)單向池。雙向池意味着你既可以(By)買入也可以(By)賣出(Out)NFT,流動性是(Yes)雙邊的(Of)。雙邊意味着你可以(By)接收兩邊的(Of)資産互換。它也可以(By)提供單邊池,比如說你隻提供 ETH,類似你這(This)個(Indivual) LP 挂了(Got it)一(One)個(Indivual) NFT 的(Of)買單,交易者可以(By)将 NFT 賣入這(This)個(Indivual)純 ETH 的(Of)池子當中。反過來也成立,你可以(By)提供純 NFT 的(Of)流動性池,那它更像是(Yes)挂了(Got it)一(One)個(Indivual) NFT 的(Of)賣單。
所以(By)這(This)個(Indivual)過程當中 LP 的(Of)角色是(Yes)被淡化的(Of),LP 更像是(Yes)交易者的(Of)另外一(One)種形式,隻不(No)過從某種程度上(Superior)可以(By)享受一(One)些更定制化的(Of)交易功能。但是(Yes)這(This)會帶來兩個(Indivual)問題,第一(One)個(Indivual)問題就是(Yes)如果一(One)個(Indivual) LP 擁有一(One)個(Indivual)流動性池,這(This)就意味着每一(One)個(Indivual)流動性池之間的(Of)流動性是(Yes)無法聚合的(Of)。我們剛剛提到 NFT 市場最重要(Want)的(Of)問題是(Yes)買方的(Of)流動性是(Yes)缺乏的(Of)。在(Exist)這(This)樣的(Of)一(One)個(Indivual)大(Big)前提下,如果還将所有流動性割裂到單個(Indivual) LP 的(Of)流動池子當中,這(This)其實在(Exist)某種程度上(Superior)依然是(Yes)将流動性孤島化。流動性無法聚合在(Exist)某種程度上(Superior)違背了(Got it) AMM 本身的(Of)初衷: AMM 希望在(Exist)一(One)個(Indivual)市場内聚合流動性以(By)提供更好的(Of)流動深度,然後撮合出(Out)一(One)個(Indivual)真正符合這(This)個(Indivual)市場現在(Exist)情緒的(Of)價格。這(This)一(One)點上(Superior)它其實是(Yes)沒有辦法達到的(Of),每一(One)個(Indivual)流動型池彼此之間互相割裂,而且不(No)互相影響。另外一(One)個(Indivual)角度,在(Exist)單一(One)流動性池當中,NFT 的(Of)稀缺性是(Yes)默認相同的(Of)。也就是(Yes)說一(One)個(Indivual) LP 在(Exist)他(He)自己的(Of)流性流動性池當中提供 3 個(Indivual) NFT,這(This)2個(Indivual) NFT 他(He)是(Yes)不(No)會爲(For)他(He)們一(One)一(One)定價的(Of)。如果一(One)個(Indivual) LP 手上(Superior)有三個(Indivual)不(No)同稀有度的(Of)NFT 并有不(No)同的(Of)期望,他(He)可能需要(Want)創建三個(Indivual)流動性池才能滿足這(This)樣的(Of)需求。
所以(By)說在(Exist)這(This)兩個(Indivual)項目其實是(Yes) NFT AMM 市場當中已經比較成熟的(Of)兩個(Indivual)項目。這(This)兩項目都解決了(Got it)我們剛剛說的(Of)三個(Indivual)問題中的(Of)一(One)部分問題,但是(Yes)自身可能存在(Exist)一(One)些 Trade Off,一(One)部分問題被他(He)們選擇性地忽視或者妥協了(Got it)。那麽我們在(Exist)思考的(Of)就是(Yes)有沒有一(One)個(Indivual) NFT 模型能夠将這(This)些問題做一(One)個(Indivual)很好的(Of)解決,或者說我們能不(No)能通過一(One)套 NFT 模型将這(This)三個(Indivual)問題解決到大(Big)家能夠接受的(Of)一(One)個(Indivual)程度内。
Bonding Curves
我們會接下來給大(Big)家詳細解釋一(One)下 Bonding Curve,作(Do)爲(For)後面我們聊詳細的(Of)解決方案的(Of)一(One)個(Indivual)鋪墊。Bonding Curve 本質上(Superior)是(Yes)一(One)系列用(Use)來實現價格發現的(Of)數學函數。它其實就是(Yes)将資産的(Of)供應量映射到資産價格當中。從上(Superior)述兩個(Indivual) curve 圖中明顯能看出(Out),左邊是(Yes)一(One)個(Indivual)線性的(Of) Bonding Curve,右邊是(Yes)一(One)個(Indivual)指數函數的(Of) Bonding Curve。圖中,綠色的(Of)點代表 ERC20 在(Exist)倉位當中的(Of)位置,而 ERC721 用(Use)紅色的(Of)點來表示。以(By)左邊這(This)個(Indivual)圖爲(For)例,如果在(Exist)這(This)樣的(Of)一(One)個(Indivual)流動性池當中,它的(Of)流動性是(Yes)怎麽分布的(Of)呢?在(Exist)價格最低的(Of)地方,即它所設定的(Of)價格的(Of)起點以(By)及接下來的(Of)第二個(Indivual)點放置的(Of)是(Yes) FT 的(Of)流動性,也就是(Yes) ERC20 的(Of)流動性。而在(Exist)上(Superior)面的(Of)三個(Indivual)點放置的(Of)是(Yes) ERC721 的(Of)流動性。當這(This)個(Indivual)流動性池當中被交易者買走一(One)個(Indivual) NFT 的(Of)時(Hour)候,中間的(Of)這(This)一(One)顆紅色的(Of)點就會被置換成綠色。也就是(Yes)說這(This)個(Indivual)市場當中每買走一(One)個(Indivual)NFT,這(This)個(Indivual)價格就會線性地增長一(One)個(Indivual)恒定的(Of)值。而每賣出(Out)一(One)個(Indivual)NFT,這(This)個(Indivual)池子當中所提供的(Of) inDEX price 就會下降一(One)個(Indivual)恒定的(Of)值。同理在(Exist)指數函數當中是(Yes)一(One)樣的(Of),它隻不(No)過将這(This)個(Indivual)公差變成了(Got it)一(One)個(Indivual)公比。
Sudoswap 值得肯定的(Of)是(Yes)它開創性地将 Bonding Curve 引入到 NFT 的(Of)交易當中,這(This)确實爲(For)流動性提供者們提供了(Got it)很好的(Of)做市的(Of)自由度。但是(Yes)就像剛剛提到的(Of),在(Exist)它的(Of)設計裏,LP 之間的(Of)流動性池是(Yes)割裂的(Of),所以(By)說它的(Of) Bonding Curve 在(Exist)某種程度上(Superior)喪失了(Got it)對市場全貌的(Of)一(One)個(Indivual)描述能力。我們沒有辦法從某一(One)個(Indivual)流動性池當中真正地看到這(This)個(Indivual)市場交易到什麽程度。它在(Exist)市場中交易的(Of) inDEX Price 也不(No)能夠反映整個(Indivual) NFT Collection 市場的(Of)特性,陷入一(One)種“管中窺豹”的(Of)窘境。
從已有 DEX 中借鑒的(Of)靈感
綜合以(By)上(Superior)痛點以(By)及現有的(Of)成熟産品的(Of)設計,我們就在(Exist)思考什麽樣的(Of) NFT AMM 能夠解決上(Superior)述這(This)些問題。首先我們還是(Yes)會回到一(One)些市場上(Superior)主流的(Of) ERC20 DEX 當中,去尋找一(One)些能給我們啓發或者靈感的(Of)元素。
首先我們認真地研究了(Got it) Uniswap V3, Uniswap V3 給我們提供了(Got it)一(One)個(Indivual)很好的(Of) Inspiration,首先 LP 們可以(By)在(Exist)限價範圍内提供流動性,這(This)一(One)點類似剛剛提到的(Of) Sudoswap 當中 LP 限定好自己流動性的(Of) bonding Curve,然後在(Exist)這(This)個(Indivual)範圍内提供流動性。那麽我們其實就會有一(One)個(Indivual)想法,LP 是(Yes)否可以(By)按照某種 bonding Curve 自由地在(Exist)我們的(Of)一(One)個(Indivual)流動性池當中提供自己的(Of)流動性。在(Exist)這(This)樣的(Of)基礎上(Superior),我們可能需要(Want)對它輔助一(One)個(Indivual) Non Fungible LP Token,也就是(Yes)一(One)個(Indivual) ERC721 的(Of) LP 憑證,這(This)樣才能确定好 LP 的(Of)每一(One)個(Indivual)倉位,其實彼此之間是(Yes)非同質化的(Of)。
然後我們又去深入地調研了(Got it) Joe V2 的(Of)協議設計,它在(Exist) Uni V3 的(Of)基礎上(Superior)進行了(Got it)一(One)些升級。首先 LP 的(Of)這(This)個(Indivual) Curve(曲線) 它是(Yes)能夠自定義的(Of),它可以(By)選擇 LP 流動性的(Of)稀疏程度,選擇流動性是(Yes)否全局地鋪在(Exist)自己這(This)個(Indivual) Range Order 的(Of)價格區間上(Superior),它可以(By)選擇點狀的(Of)流動性提供,同時(Hour)它還利用(Use) Liquidity Book 的(Of)設計,将鏈上(Superior)交易在(Exist)微觀的(Of)維度上(Superior)可以(By)實現類似于(At) Order Book 的(Of)交易模式。這(This)是(Yes)一(One)種更爲(For)新式的(Of)流動性分布的(Of)方案。
從這(This)兩個(Indivual) ERC20 DEX 當中我們獲得的(Of)最重要(Want)的(Of)靈感是(Yes)圖上(Superior)提到的(Of)這(This)四點。如果說 ERC20 DEX 給我們設計 NFT AMM 提供了(Got it)哪些重要(Want)啓發的(Of)話,最重要(Want)的(Of)還是(Yes)我們不(No)應該忽略 NFT 本身 Token ID 之間的(Of)差異,我們應該允許 LP 對于(At)自己的(Of)流動性有差異性的(Of)期望。同時(Hour)我們不(No)應該将 LP 的(Of)流動性分割到它的(Of)每一(One)個(Indivual)私有的(Of)流動性池當中,我們應該聚合它們買端的(Of)流動性。隻有聚合的(Of)流動性才能爲(For)交易者提供更好的(Of)交易體驗,更低的(Of)滑點以(By)及提供更加及時(Hour)的(Of)交易體驗。在(Exist)流動性缺乏和(And)無法聚合的(Of)情況下,交易者想要(Want)賣出(Out)一(One)個(Indivual) NFT 時(Hour)的(Of)體驗是(Yes)很差的(Of)。
Midaswap AMM 的(Of)設計思路
講到這(This)裏,我們就可以(By)重新去讨論應該怎麽去設計我們自己的(Of) NFT AMM。在(Exist)這(This)之前我們可以(By)先讨論一(One)個(Indivual)和(And)這(This)個(Indivual)話題稍微有一(One)點遠的(Of)問題,如果大(Big)家也看過 Uniswap V3 相關的(Of)資料,大(Big)家都知道 Uniswap V3 有一(One)套自己衡量價格的(Of)标識,它把這(This)個(Indivual)系統叫做 Tick。Tick 其實是(Yes)一(One)個(Indivual) 1.0001 的(Of)指數函數,Tick 每增長一(One),它就會在(Exist)對應的(Of)價格上(Superior)面乘 1.0001,也就是(Yes)說 Tick 和(And)價格彼此之間是(Yes)一(One)一(One)映射的(Of)。爲(For)什麽會這(This)樣設計?其實所有的(Of) DEX 都會有一(One)套自己的(Of)價格标尺,這(This)個(Indivual)價格标尺是(Yes)爲(For)了(Got it)從幾乎無限的(Of)價格中取出(Out)對于(At)我們 AMM 最有效的(Of)一(One)個(Indivual)價格尺度。在(Exist)這(This)些價格尺度中間的(Of)流動性其實是(Yes)被忽略的(Of),我們隻将我們的(Of)流動性提供在(Exist)這(This)些我們設定好的(Of) Tick 當中。
與之對應的(Of)另外一(One)個(Indivual)比較主流的(Of)設計是(Yes) Liquidity Bin。Bin 顧名思義是(Yes)像箱子一(One)樣的(Of)東西,我們可以(By)将每一(One)個(Indivual)價格标尺上(Superior)面的(Of)流動性看作(Do)每一(One)個(Indivual) LP 爲(For)這(This)一(One)個(Indivual)價格堆疊流動性深度的(Of)箱子的(Of)高度。打個(Indivual)最簡單的(Of)比方,我作(Do)爲(For)一(One)個(Indivual) LP 在(Exist) ETH 等于(At) 1000USDC 這(This)個(Indivual)位置提供了(Got it) USDC 的(Of)流動性,我提供了(Got it)1000,那我就會将 1000 這(This)個(Indivual)價格的(Of) Bin 上(Superior)的(Of)流動性深度往上(Superior)堆疊 1000 的(Of)高度。第二個(Indivual)人(People)過來提供 2000,他(He)就會将這(This)個(Indivual)流動性深度提高到 3000 的(Of)高度。
爲(For)什麽要(Want)在(Exist)這(This)裏講這(This)一(One)點?其實 Tick 相對來說是(Yes)更符合 Uni V3 流動性的(Of)激勵方案。而 Bin 我們認爲(For)它作(Do)爲(For)一(One)個(Indivual)豎直方向堆疊的(Of)流動性方案,更适合離散的(Of) NFT 流動性。我們可以(By)把一(One)個(Indivual) NFT 流動性理解成一(One)個(Indivual)小箱子,我們就可以(By)堆疊在(Exist) Bin 的(Of)價格上(Superior)。每有一(One)個(Indivual) NFT 的(Of) Holder 或者一(One)個(Indivual) LP 過來爲(For)這(This)個(Indivual)價格提供一(One)個(Indivual) NFT 流動性,我們就将它理解成在(Exist)這(This)個(Indivual)價格上(Superior),它會往上(Superior)落一(One)個(Indivual)箱子。
爲(For)什麽我們說隻是(Yes)簡單地學習某個(Indivual) ERC20 DEX 沒有辦法能夠同時(Hour)解決上(Superior)面的(Of)三個(Indivual)問題呢?首先不(No)同的(Of) NFT Token ID 之間存在(Exist)着稀有度的(Of)差異,這(This)部分産生價值期望的(Of)差異對于(At) NFT 這(This)種資産标的(Of)是(Yes)原生性的(Of)。而這(This)一(One)點上(Superior)其實和(And)我們大(Big)多數 ERC20 的(Of) DEX 是(Yes)有很大(Big)的(Of)差别的(Of)。因爲(For) ERC20 DEX 中的(Of)流動性池在(Exist)一(One)個(Indivual)固定的(Of)時(Hour)刻内是(Yes)不(No)可能有兩個(Indivual)交易者在(Exist)以(By)不(No)同的(Of)價格進行成交的(Of)。所以(By)說如果我們希望構建一(One)個(Indivual)複合的(Of) NFT 市場,那我們就需要(Want)既學習中心化交易所訂單薄的(Of)撮合模式,還需要(Want)學習在(Exist) DEX 的(Of) AMM 模型中流動性聚合的(Of)方法。
那我們就有了(Got it)這(This)樣一(One)個(Indivual)設計:重新将中心化 NFT 市場中特有的(Of) Best Offer 和(And) Floor Price 這(This)兩個(Indivual)概念引入進來。首先 Best Offer 是(Yes)指在(Exist)當前市場内最高的(Of) NFT 報價,也就是(Yes)買方對于(At)這(This)個(Indivual) Collection 的(Of) NFT 最高的(Of)理想價格,而 Floor Price 是(Yes)當前這(This)個(Indivual)市場内 NFT 賣單的(Of)最低報價。有了(Got it)這(This)兩個(Indivual)價格之後,就形成了(Got it)流動性市場的(Of)一(One)個(Indivual)分水嶺:
在(Exist) Floor Price 以(By)上(Superior),我們可以(By)利用(Use) Bonding Curve 這(This)種流動性提供方案爲(For) NFT 交易者提供類似于(At) Order Book 的(Of)交易體驗。舉個(Indivual)例子,當某一(One)個(Indivual) LP 選擇在(Exist)3個(Indivual)以(By)太坊到5個(Indivual)以(By)太坊的(Of)區間裏提供 NFT 的(Of)流動性,那這(This)些 NFT 就會遵循他(He)自己設計的(Of) Bonding Curve 散落在(Exist)3個(Indivual)到5個(Indivual)以(By)太坊的(Of)價格點上(Superior)。交易者在(Exist)任意時(Hour)刻進場交易的(Of)時(Hour)候,他(He)都可以(By)選擇自己心儀的(Of) NFT 進行交易。那這(This)個(Indivual) NFT 在(Exist)某種程度上(Superior)其實就已經被 LP 限定住了(Got it)一(One)個(Indivual)價格。每進行一(One)次交易,它可以(By)在(Exist)這(This)個(Indivual) LP 的(Of)這(This)個(Indivual) Bonding Curve 當中有一(One)次價格的(Of)增長。
而 AMM 模型被應用(Use)在(Exist) Best Offer 及 Best Offer 價格以(By)下。這(This)裏提供 FT 流動性的(Of) LP 更像是(Yes)在(Exist) Blur 市場當中提供買單流動性,可以(By)被認爲(For)是(Yes)同質化的(Of)。他(He)們在(Exist)自己希望提供流動性的(Of)價格區間内去安置自己的(Of) FT 流動性,在(Exist)同一(One)個(Indivual)價格點下它們的(Of)流動性被認爲(For)是(Yes)等價且聚合的(Of)。将這(This)部分流動性聚合後,無論從市場的(Of)資本利用(Use)效率還是(Yes)交易效率來講,都大(Big)大(Big)提高了(Got it)用(Use)戶在(Exist)賣出(Out)一(One)個(Indivual) NFT 時(Hour)的(Of)交易體驗。
這(This)樣一(One)個(Indivual) NFT 市場的(Of)設計,可以(By)在(Exist)某種程度上(Superior)對于(At)之前我們提到的(Of)三個(Indivual)痛點進行中和(And)。我們選取了(Got it)一(One)個(Indivual)較爲(For) Balance 的(Of)點,在(Exist)不(No)忽略 NFT Token ID 的(Of)情況下,還能爲(For)大(Big)家提供較好的(Of)流動性深度和(And)較爲(For)低的(Of) NFT 交易滑點。我認爲(For)在(Exist)不(No)忽略 NFT 原生交易需求角度來說,這(This)可能是(Yes)目前我們能想到的(Of)最好的(Of)方案。同時(Hour)要(Want)提到另外一(One)點,就是(Yes) Best Offer 和(And) Floor Price 作(Do)爲(For) NFT 市場當中重要(Want)的(Of)兩個(Indivual)價格指标,我們這(This)樣的(Of)一(One)個(Indivual)交易市場其實是(Yes)可以(By)提供一(One)個(Indivual)鏈上(Superior)的(Of) Oracle,或者說我們可以(By)爲(For)某一(One)個(Indivual) NFT 交易市場提供一(One)個(Indivual)很好的(Of)價格發現功能,而不(No)是(Yes)依賴于(At)某一(One)個(Indivual)外置的(Of)這(This)個(Indivual) NFT 市場去輔助 NFT 的(Of)定價。此外,一(One)個(Indivual)純鏈上(Superior)的(Of) NFT 交易市場爲(For) DeFi 當中的(Of)可組合性也提供了(Got it)很多的(Of)可能性。比如說我們的(Of) LP Token 可以(By)繼續去做 Lending 杠杆的(Of)疊加,我們的(Of)這(This)個(Indivual) Oracle 也可以(By)輔助一(One)些鏈上(Superior)預言機的(Of)報價。這(This)些點都是(Yes)我們爲(For)什麽迫切地需要(Want)一(One)個(Indivual)高效的(Of)能夠解決交易者和(And) LP 需求的(Of) NFT AMM 的(Of)原因。
微信咨詢