天天看點

漫步鍊上定價模型與 ERC7527

作者:MarsBit

原文作者:Wong's Blog

概述

純鍊上資産定價是一項相當有趣的工作,常見的方案都是基于函數報價。具體來說,包含以下三類:

  1. 各類用于代币互換的 AMM 曲線,以 Uniswap 推出的 x * y = k 最為著名
  2. 直接根據供應量等因子給出報價的 Bonding Curve 方案,近期的 FriendTech 和 pump.fun 都屬于此類
  3. 基于拍賣的方案,鍊上拍賣方案往往使用荷蘭式拍賣以提高效率,較少見到因英式拍賣,且由于技術問題,也較難見到基于密封報價的盲拍。較為著名的是 paradigm 推出的 GDA 和 VRGDA 方案,以及 UniswapX 内的荷蘭式拍賣方案

上述不同的函數定價方案都存在一定的優點和缺陷,本文将首先介紹這些目前已經被廣泛使用的鍊上資産定價方案,然後本文将介紹基于 ERC7527 及連續函數報價的新一代鍊上資産定價方案。

AMM 曲線

目前在純鍊上定價方案中,被最廣泛使用的和目前最具有共識的定價方案就是 AMM 定價。對于 AMM 定價而言,最為著名的方案就是 x * y = k 的定價曲線,該曲線由 Uniswap 首次引入。

該公式内的 x指 x 資産在池子内的餘額,而y代表 y 資産在池子内的餘額,而k是一個常量。其對應的代碼如下

上述代碼記憶體在四個變量,其含義如下:

  • balance0Adjusted 使用者向池子裡發送 x 資産後,池子裡的 x 資産的數量減去發送給池子的 x 資産的 0.3% 的手續費
  • balance1Adjusted 使用者向池子裡發送 y 資産後,池子裡的 y 資産的數量減去發送給池子的 y 資産的 0.3% 的手續費
  • _reserve0 x 資産在池子内部的儲備
  • _reserve1 y 資産在池子内部的儲備

我們可以以一個實際的案例介紹上述代碼的工作原理。假如池子内目前包含 20000DAI / 10 WETH 的儲備,我們希望使用 1 WETH 兌換 1500 DAI,計算過程如下:

上述是在進行 1 WETH 兌換 1500 DAI 之前的資金儲備,然後我們進行以下兌換:

漫步鍊上定價模型與 ERC7527

此時 newK 大于 k 的條件成立,是以兌換可以正常進行。當然很多使用者可以感覺似乎沒有接觸過這種兌換方式,而是直接給定 1 WETH ,Uniswap 前端就會顯示 1 WETH 可以兌換的最大 DAI 的數量,這是基于 newK = k 和池子内儲備金的數量計算出來的,假如使用者使用給定 x 機關資産兌換 y 機關的另一種資産,可以兌換的最大數量的具體公式推導如下:

漫步鍊上定價模型與 ERC7527

此處的 dx即使用者給出的資産數額,而dy即使用者付出 x 資産獲得的 y 資産的數量,而x和y則為兌換時池子内部的儲備。下圖展示了一次基于 x * y = k 的代币交換的可視化展示:

漫步鍊上定價模型與 ERC7527

對于 AMM 曲線方案而言,該方案最大的優點在于:

  1. 最為目前最為廣泛使用的代币互換方案,AMM 曲線具有強共識
  2. 對于 ERC20 兌換,AMM 曲線方案是目前最優的解決方案

但是 AMM 曲線也有其重要缺陷,其中最大的一個缺陷在于流動性提供方。對于 AMM 曲線的流動性提供方(下文使用 LP 縮寫) 而言,面臨以下幾個問題:

1) 流動性提供方的來源。由于對于剛剛發行的代币而言,代币發行方必須為代币提供初始流動性以保證使用者的兌換。對于後續流動性的來源是較難保證的,而且第三方的流動性提供方甚至代币發行方都有可能撤回 LP 使得 AMM 池内的流動性迅速喪失

2) 流動性的管理。伴随着對 AMM 曲線的研究深入,發現了一系列可能導緻 LP 損失的因素,比如大名鼎鼎的無常損失(Impermanent Loss)。這導緻 LP 管理變成了一項複雜工作。

3) MEV 的惡意攻擊。在以太坊内,對 AMM 曲線的 MEV 是極其發達的,大部分 MEV 操作都會使得不同的參與方受損。比較惡意的對 AMM 曲線的 MEV 是三明治攻擊,對于任何不設定滑點的交易,都會被三明治攻擊,最終的結果是使用者損失大量資産。

實際上,對于使用 AMM 曲線作為資産定價的最大問題仍是在于初始流動性的提供,對于早期項目方而言,發行資産一定需要大量的資産進行初始流動性提供,對于 Meme 币項目方而言,在非 FOMO 的時間節點很難有充足的流動性。

當然,AMM 曲線的另一個特性是隻能對 ERC20 資産對進行定價,使用 AMM 曲線對 NFT 等資産進行定價則需要使用一些特殊方案,這些 AMM 曲線定價 NFT 的方案究其本質都是使用了 NFT 碎片化的思想,比如 ERC404 資産,我們很難真正的稱這些由 AMM 曲線定價的 NFT 是一個真正的 NFT。

Bonding Curve

Bonding Curve 是一個在早期加密領域被廣泛讨論的話題,其全程為 Token Bonding Curve,一般來說包含以下參數:

  1. 供應代币。Bonding Curve 資金池的底層資産。一般來說允許使用者向資金池内使用供應代币購買發行代币;部分情況下,也可以反向操作,即向池子賣出發行代币換取供應代币。一般情況下,供應代币為同質化代币
  2. 發行代币。使用者使用供應代币後按照曲線計算可以購買的另一種代币。發行代币可能是同質化代币,但也可以是非同質化代币,但非同質化代币的案例較少見
  3. 曲線。用于決定價格,有些應用僅使用一條曲線決定買入價格和賣出價格,而還有一些應用使用了更加複雜的機制,其買入和賣出價格遵循不同的曲線,兩者的價差實際上就是交易的稅收

在 Bonding Curve 領域,最核心的就是曲線,因為曲線決定着使用者買入和賣出的價格。最簡單的曲線形式如下:

下圖展示的是:

漫步鍊上定價模型與 ERC7527

當使用者決定進入市場時,假如使用者需要購買 k數量的發行代币,我們會使用曲線下的積分計算使用者所需要的供應代币的數量。當然,我們會使用一些方案簡化積分計算。該過程涉及到一系列數學推導,如果讀者對其感興趣,請閱讀Bonding Curves In Depth: Intuition & Parametrization一文中的Computing Buy and Sell Prices章節。

下圖展示了一些常見的用于 Bonding Curve 的曲線。左上角為 Sigmoid 曲線,其曲線的函數表達為

​,右上角為幂函數曲線,其函數表達式為 y=m⋅xn

。左下角為特殊函數曲線,其數學表達式為 y=m(1+25%)log2x+b,其經濟學含義為當代币供應量每增加一倍,代币的價格就增加 25%。如果讀者對此特殊函數十分感興趣,請閱讀On Single Bonding Curves for Continuous Token Models一文。而右下角為常數函數。

漫步鍊上定價模型與 ERC7527

事實上,這些曲線都可以歸結為亞線性、線性和超線性。與 AMM 曲線方案相比,Bonding Curve 最大的優勢在于完全不依賴于初始流動性,代币發行方并不需要準備大量流動性,而是可以直接進行代币發行,靠使用者注入流動性來維護價格。這極其有利于所謂的策展市場(Curation Markets)。策展市場是早期以太坊的讨論議題之一,其目的是允許團體更有效地協調并從他們圍繞共同目标共同創造的價值中獲利的模型。最簡單的案例就是目前的 pump.fun。策展人發行 MEME,其他參與者按照 Bonding Curve 買入發行的 Meme 代币。而 friend tech 也是策展市場的案例之一。

如果讀者希望獲得更加詳細的資訊,請參考 Introducing Curation Markets: Trade Popularity of Memes & Information (with code)!一文,值得一提的是該文成文于 2017 年。對于 Bonding Curve 而言,最大的問題在于過于機械的規則導緻代币無法長時間運轉。對于 FriendTech 等應用而言,使用曲線存在一部分問題,導緻早期參與者可以在後期獲得可觀的漲幅,這種透明規則導緻大量機器人早期參與然後後期直接選擇退出導緻中期參與者資産受損。對于 pump.fun 而言,也存在此問題,但是 pump.fun 創造性的隻使用 Bonding Curve 作為早期 LP 籌資工具,而後期則直接使用 AMM 模型交易,這種方案一定程度上減少了機械式的曲線的影響。

拍賣

拍賣也是常見的定價方案,此定價方案适用于任何資産。由于技術問題,我們一般不在鍊上進行密封拍賣,一般來說,我們常使用以下兩種拍賣方案:

  1. 荷蘭式拍賣。目前鍊上使用最多的拍賣方式,标的資産從提前設定的最高價起拍,随着時間的推移,價格逐漸降低,直至成交
  2. 英式拍賣。在固定時間内,标的資産價格逐漸推高,到拍賣結束時以最高價成交。

由于拍賣可以對任意資産進行比較合理的定價,是以目前以太坊記憶體在大量特殊生态使用了拍賣。比較正常的非連續英式拍賣在 flashbot 内經常使用,主要用于 MEV 機器人争奪交易位置:

漫步鍊上定價模型與 ERC7527

上圖展示了不同的建構者争奪區塊 MEV 機會的拍賣情況。讀者可以在 payload.de内實時看到任一區塊内的 MEV 拍賣情況,上圖就是截取自該網站。該拍賣使用了英式拍賣,即不同的參與者會逐漸給出更高價格以獲得 MEV 機會。對于以太坊而言,FlashBot 的存在避免了 MEV 機器人發起 gas 戰争,降低了以太坊的 gas 費用,而對于出塊節點而言,可以進一步擷取區塊的 MEV 收益,使得其更加有利可圖。由于效率問題,英式拍賣較少用于真正的以太坊資産發行。也有部分 Intent 系統使用了英式拍賣以最大化 Intent 發起人的效益,比如 CowSwap 在貸币兌換時就使用了英式拍賣。比如 Intent 發起人給出 100 個代币 A 可以兌換至少 80 個代币 B 的邊界,其他的參與者可以給出多于 80 個代币 B 的報價。報價最高者可以獲得 100 個代币 A 并給 Intent 發起人報價數量的代币 B。

荷蘭式拍賣也是常用的拍賣方案之一,而且漸進式荷蘭式拍賣(GDA) 被真正用于過資産發行。我們首先介紹非連續的荷蘭式拍賣,這種拍賣一般較少用于資産發行,但有時會被用于資産的互換。UniswapX 允許使用者送出荷蘭式訂單。假如使用者希望将 100 個代币 A 兌換為 50 - 80 個代币 B,其可以向 UniswapX 送出荷蘭式訂單,該訂單内包含 100 個代币 A,且要求獲得的代币 B 的數量會随着時間從 80 開始衰減。假如目前衰減為 75 個代币 B,存在使用者(在 UniswapX 内,我們稱此使用者為填單者 filler)接受此訂單,該使用者需要付出 75 個代币 B 就可以獲得訂單内 100 個代币 A。

而在于真正的資産發行場景内,我們一般使用 Paradigm 提出的漸進式荷蘭式拍賣(GDA)和可變利率荷蘭式拍賣(VRGDA)。漸進式荷蘭式拍賣可以用于同質化和非同質化代币發行,其特點在于隻需要一次啟動就可以完成所有的代币發行,無需代币發行方手動啟動每一次代币拍賣。其原理是在代币發行時,按照不同的起拍價一次性啟動所有發行代币的拍賣。具體原理可以參考 深入探索 GDA 與 VRGDA一文。

而可變利率荷蘭式拍賣相比于 GDA 而言,附帶了時間因素,其允許代币發行方設定代币釋放曲線,當代币發行數量多于預期的代币發行曲線時,VRGDA 将提高價格以抑制需求;反之則降低價格以提高需求。

對于主要用于資産發行的 GDA 和 VRGDA 都存在一個嚴重的問題,使用者參與拍賣時由于随着時間推動,資産的價格一定是降低的,大量使用者在博弈過程中更傾向于等待以獲得更低的價格。當所有使用者都選擇等待時,發行的資産價格會持續下降。事實上,我們可以将 GDA 和 VRGDA 看作 Bonding Curve 方案的變體,其并沒有解決 Bonding Curve 的問題,反而喪失了 Bonding Curve 的二級市場功能。

而且 GDA 和 VRGDA 僅僅解決了一級市場的問題,而沒有解決二級市場的問題,當資産拍賣結束後,代币發行方可以選擇将拍賣過程中獲得的資産放入 AMM 市場,但更有可能的是,代币發行方進行 soft rug,不再繼續推動項目。對于拍賣參與者而言,拍賣所獲得的資産并沒有被賦予流動性,資産的定價也是相當不真實的。

ERC7527

ERC7527 是一個極其适合定價的資産發行方案,其解決了 Bonding Curve 方案的諸多弊端,并且保證了資産的流動性。ERC7527 的具體運作流程如下:

漫步鍊上定價模型與 ERC7527

ERC7527 系統内包含以下三部分:

  1. Agency 用于儲備資産的池,該池子會按照其内部函數對外不斷給出買入報價和賣出,當使用者接受買入報價時就可以将預先規定的資産存入 Agency,此時 Agency 會調用 App 的 mint 函數為使用者鑄造 NFT,我們稱此操作為 wrap;當使用者接受 Agency 的賣出報價,Agency 會将資産發送給使用者并調用 App 的 burn 函數銷毀,我們稱此操作為 unwrap
  2. App 是一個繼承 NFT 的資産類型,由于 Agency 的保證,該資産始終可以保持流動性
  3. Factory 友善使用者部署 Agency 和 App。使用者隻需要輸入部分參數即可直接部署 Agency 和 App

在這裡存在一個核心問題,Agency 如何對外給出買入報價和賣出報價?一個最簡單的方案是在 Agency 内部使用了類似 Bonding Curve 的方案,直接基于 NFT 的總供應量等直接計算獲得報價。但這種方案仍沒有解決 Bonding Curve 的問題。在此處,我們使用了一些更加有趣的函數,該函數的目标是将使用者的買入行為納入最終的報價結果。報價使用的具體函數依賴以下參數:

  • Δm​ 使用者此次鑄造與上一使用者鑄造的時間差
  • pn−1上一次成交的價格
  • pn本次成交的價格

基于上述參數,我們可以給出以下價格函數:

漫步鍊上定價模型與 ERC7527

此函數包含幾個常量:

  • c當使用者買入後,下一次報價與使用者成交價的跳躍,避免
  • λup決定價格上漲速度,此數值必須小于 0,且絕對值越大代表上漲速度越快
  • λdown決定價格下降的速度,此數值必須大于 0,且絕對值越大代表下降速度越快
  • pmax實際上指 Δm=Δtarget情況下的pn值,該值代表這個區間内的最大值
  • Δtarget決定上升階段的最長時間,用于與λup​ 和pmax參數一同作用,決定最終的上漲幅度

在上述函數内,沒有表達的是 pn始終大于等于pn−1。即本次成交價不得低于上一次成交價。

下圖顯示了在一次區間内,Agency 給出的報價情況,下圖給出的報價均為相對值,其縱坐标代表

漫步鍊上定價模型與 ERC7527

上文我們已經介紹了如何進行買入報價,但還沒有介紹如何進行賣出報價。賣出報價實際上就是上一次的買入成交價。在合約内,我們會維護一個價格清單,每一次成家後都将成交價追加到價格清單後,而當使用者賣出時,就直接使用價格清單的最後一個價格作為使用者的賣出報價。在具體的價格表現上,就會出現使用者的買入和賣出存在一定的對稱性。

漫步鍊上定價模型與 ERC7527

在引入以上 Agency 報價公式後,就可以避免 Bonding Curve 完全透明的價格曲線,所有的價格确定都是使用者通過買入和賣出驅動的,是以使用者不再僅與報價函數博弈,更多的是與其他使用者進行博弈。比如使用者不會僅選擇等待政策,因為在報價上漲階段就有可能出現成交。最終在動态博弈下會産生比 Bonding Curve 更加複雜的博弈場景。下圖展示了随機模拟下的 App NFT 的成交價格情況:

漫步鍊上定價模型與 ERC7527

與 Bonding Curve 相比,我們可以将上述報價過程視為 Bonding Curve 與拍賣機制的結合,拍賣過程的博弈剛好彌補了 Bonding Curve 過于透明化的機制。但另一方面也保留了 Bonding Curve 的其他優勢。使用者通過 wrap 擷取 App NFT 後,Agency 所代表叙事或者映射的實體就與其經濟利益息息相關,基于經濟利益的驅動,使用者有可能參與 Agency 所對應的叙事或者實體的建構。而 Agency 的 TVL 也剛好反映了 Agency 所對應叙事的價值。比如使用者可以選擇使用 Agency 發行 Meme NFT。使用者認可此 Meme 就會使用 wrap 操作用錢投票,并積極推動其他使用者參與。而 Agency 的 TVL 則直接反映了目前 Meme 的市場價值。

與拍賣方案相比,ERC7527 方案的另一大優勢在于資産具有充分的流動性,使用者可以選擇直接在二級市場内換手,如果二級市場流動性并不充足,那麼使用者可以選擇直接通過 Agency 的 unwrap 機制銷毀 NFT 獲得底層資産。而且 Agency 内的資産并無法被代币發行方提取,一定程度上避免了代币發行方的 Rug 行為。

與 AMM 機制相比,ERC7527 也具有維護代币流動性的特點,但比 AMM 不同的一點在于,ERC7527 的流動性是自提供的,即參與 wrap 操作的使用者注入的資金為整個 Agency 做市。相比于外部流動性提供方,這種流動性的自提供避免了很多問題,比如代币發行方并不需要提供初始流動性,而隻需要等待使用者 wrap 參與即可。而且更不需要參與者進行複雜的 LP 管理。由于價格是基于上述報價函數決定的,大部分情況下,流動性提供方并不會受到 MEV 攻擊的影響。

總結

本文依次介紹了以下幾種目前常用的純鍊上定價模型:

  1. AMM 曲線。目前共識最強的鍊上定價範式,但僅能為 ERC20 代币提供定價,且在流動性提供方面存在一系列問題,比如初始流動性的來源困難、流動性提供方存在潛在的損失以及 MEV 問題
  2. Bonding Curve。早期較為廣泛讨論的定價範式,理論上可以為任意資産定價,而且不存在流動性提供方面的問題。但是其博弈僅依賴于公開的數學函數,無法較長時間的運作,往往到後期就會走向死亡
  3. 拍賣方案。常用的定價方案,但無論英式拍賣還是荷蘭式拍賣都無法解決後續的流動性問題,使用拍賣的代币發行方往往會一次性提取所有的拍賣所得

相比于上述方案,ERC7527 則綜合了不同方案的優點。首先在 Bonding Curve 原有的範式内引入了拍賣機制,使得博弈更加動态,避免過于透明的機制導緻的問題。其次,ERC7527 選擇将使用者所有注入的資産用于發行資産的做市,避免了發行資産的流動性問題,而且也規避了 AMM 曲線的流動性提供方面的一系列問題,特别是初始流動性的問題。最後,ERC7527 保留了所謂的策展市場的相關能力,參與 wrap 的使用者實際上都是利益共同體,這些使用者在經濟利益的驅使下主動推動相關 Agency 的發展。

繼續閱讀