DeFi 基本課:用 Desmos DSM 做例子淺談 DEX 的機制及其流動性
本文回應網友留言問及 DSM 在 Osmosis 上的流動性及定價的問題,以此為例子淺談去中心化交易所 (DEX) 的報價機制。
感謝大家在我的 YouTube 留言發問,我會認真回應。以下是《我又講 ATOM》收到的留言:
我嘗試用書面語歸納他的提問:
「想聽你對於 DSM 在 OSMO上幣的看法,在 DSM : OSMO 的比率不變的情況下,其實 DSM 幣價是否只能被動地隨 OSMO 幣價升跌??假設你之前講過不會在 CEX 掛牌 DSM 的情況是成立,之後要在其他 DEX 上面上幣是否都要靠這樣的流動性池去計價?」
我現在開始下筆解答,或許又是一篇超長文章,大家準備好上堂沒有?開始前,以下相關文章宜先看:
幣之間的買賣是如何發生?
先不要討論是 CEX 抑或是 DEX,甚至不一定是幣,可以是任何我們想交易的東西,有人想買,有人想賣,交易所的出現就是匯聚買家與賣家進行交易,從交易中收取一個費用作它的收益。
當一個加密貨幣在一個傳統的中心化交易所上交易,例如 Binance,你看到有人開價買 (bid),有人開價賣 (ask),排隊希望進行交易:
但如果是新的,沒有交易記錄的幣,它的第一口價格要如何定?這事關重大,有可能影響這幣的命運。所以,這是有一個價格發現的過程 (price discovery)。這過程如果完全交由市場參與者決定,可能會相當危險,所以有市場莊家 (market maker) 應運而生。
莊家受該加密貨幣的項目方所托,為該幣在一個範圍來提供流動性,他們會同時在 ask 及 bid 出價,以上圖舉例,莊家可能就是在 15.79 及 15.73 開價,並提供相應的流動性 (舉例,可能刀別就是 511.299 及 456.082 個 token),引導市場參與者在這 15.79 至 15.73 的範圍內出價,一旦它認為 15.79 及 15.73 已有足夠的深度,它就會移除自己的流動性,改為在 15.8 及 15.72,在這情況下,莊家的功能是維持秩序。
為何是 15.79 及 15.73 開價?這樣豈不是有 0.06 的差價?這 0.06 的買賣差價正是莊家的利錢所在,當市場越來越有效率,例如有足夠多的交易方,有人會 15.78 就願意賣,有人會 15.74 就願意買,然後有人會 15.77 願意賣,15.75 願意買,慢慢地就由市場參與者主導,完成價格發現的過程。像比特幣逾 26,000 的價格水平,買賣差價竟仍是低至 0.01,這就是非常有效率的市場了:
若仍然覺得以上說法比較專業,我再用生活例子說明,大家想像一下,我們在香港幾元買一包紙巾,在北韓可能就要幾十元才買到,iPhone 就可能要數萬元而且還要是在一些地下市場才能買到。
上述的做法是中心化交易所的做法,亦有黑箱作業,因為我們不知道項目方、交易所及莊家之間的合作關係,而交易所本來亦是一個黑箱,想像一下,財雄勢大的交易所及莊家,通過上述的機制,就可以操控幣價。
去中心化交易所應運而生
去中心化交易所,試圖將莊家制度去中心化,就算你只有極少量的幣,都可以成為莊家提供流動性,而幣的報價就是通過去中心化及開源的方式按流動性來自動生成,並不需要再有一個第三方以中心化的方法操控,這套機制名為自動化市場莊家 automated market makers,或 AMM,我自己更會認為它是自動化報價機制。
作為 DEX 始祖的 Uniswap,就是採用了一條經典的 constant product formula 算式 x*y=k 來運作 AMM,k 是要在交易前及後保持不變。我先用 ETH-USDT 這對組合做例子。
神奇的 x*y=k 公式
首先就是要有 ETH-USDT 這個資金池,這池既有 ETH 又有 USDT,如有人想用 USDT 買 ETH,或想賣出 ETH 換回 USDT,這池都有貨供應。問題是如何設定這池的 ETH 及 USDT 一開始的數目。
盤古初開時,A 君決定創建 ETH-USDT 這資金池,他參考了現在 Binance 上的 ETH 兌 USDT 的價格是 1,600,所以他就以 100 ETH 及 160,000 USDT,創建了 ETH-USDT 這資金池,k = x*y = 100 * 160,000 = 16,000,000。
之後 B 君想用 32,000 USDT 去買 ETH,B 君會獲得多少 ETH?表面上看起來是 20 ETH,因為 ETH 幣價是 1,600 USDT,對不?非也。因為 B 君要一下子買掉池中這麽多的 ETH,絕不應用 1,600 作買價的,因為當池中的 ETH 越少,ETH 就應該越貴,即第二個 ETH 應比第一個 ETH 貴,第三個 ETH 又比第二個 ETH 貴 (事實上 ETH 並不是以 1 為最少單位,它單位最少是去到 18 個小數位)。
神奇的 x*y=k 的程式就發揮功用了。因為 k 要保持不變,而 USDT 這時候會增加 32,000,由 160,000 增至 192,000 USDT,所以根據 k = x*y:
x = k / y = 16000000 / 192000 = 83.3333 ETH,即在完成這筆交易後,資金池只會餘下 83.3333 ETH,即 B 君是買了 100 - 83.3333 = 16.6667 ETH,相當於買入價是 32000 / 16.6667 = 1,920 USDT。
Slippage 及 Price impact
B 君進行交易前看 ETH 的幣價是 1,600 USDT,但當他要用 32,000 USDT 去買時,買價卻是 1,920 USDT,比 1,600 USDT 增加了 20%,這就是 slippage 的來源 (Slippage 確切的計算方法複雜很多,涉及很多因素,我都不懂了)。
而在完成這交易後,ETH 的幣價就會是 192,000 / 83.3333 = 2,304 USDT,爆升了 44%。
為何會這樣?因為這單一筆的交易佔整個池的比重太大。換個角度說,x*y=k 這算式能懲罰巨鯨進行單筆大額的交易,因為交易金額佔資金池比重越大,就會對幣價產生越大的衝擊 (即在 DEX 上看到的 price impact),而他亦要為此支付更大的 slippage。
用多一個例子就明,假設 B 君是要用 1,600 USDT 去買 ETH,重覆上述計算,B 君買入的 ETH 數量將為 100 - 16000000 / (160000+1600) = 0.9901 ETH,相當於買入價是 1600 / 0.9901 =1615 USDT,只是較 1600 增加了不足 1%。而完成交易後,ETH 幣價會是 1,632 USDT,升 2%。
DSM 的情況
目前 DSM 在 Osmosis 上的流動性僅 $30,121:
用 $0.00953 幣價計,代表目前的資金池中有 30121 / 0.00953 = 3,160,650 DSM,配對同等值 $30,121 的 ATOM 及 OSMO (事實上是大概 2,238 ATOM 及 47,323 OSMO)
分別去 https://app.osmosis.zone/pool/618 及 https://app.osmosis.zone/pool/619,按 “Show pool composition” 就看到,而兩者加起來就代表 DSM 數目是 3,160,871,僅佔 目前總供應 1.79 億 DSM 的不足 1.8%:
在這樣小的資金池下,很小金額的交易已會產生巨大 price impact,例如看看 20,000 USDC 的情況:
我不記得 Osmosis 是否用 x*y=k (Crescent 用的是基於此式再改良的版本),我假設是吧,按上述顯示,用 20,000 USDC 一次過買,是買到 1,251,910 DSM,相當於幣價是約 $0.016,產生了 66% 的 price impact。
若要單一筆交易的 price impact 為 0.2% (這是我作為交易者可以接受的水平),單一筆交易只能是 3 USDC:
我們目前既已身處熊市,入市意欲本來就是極低,而在缺乏流動性下,潛在買家及賣家的交易意欲就更低,通常超過 1% Slippage 就是大部份人不會接受的交易成本。在此情況下,現在 DSM 的幣價僅僅只是由供應的 1.8% 去決定了,即 3 百萬 DSM 及 $30,000 等值的 ATOM 及 OSMO 就決定了 1.8 億 DSM 的價格。
我有沒有想過如何解決?
我當然想過不同的解決方法,暫時未有定律。我們作為一個社群,若先只分析幣價本身而不是項目及技術層面的事,目前面對的最大因素是一些早期投資者及獲得空投的人,都不是長期會支持 Desmos 的人,尤其是收到空投的人,他們會持續沽出 DSM,但目前流動性不足令連他們這類人都不想沽。所以我要思考的是:
就算我主動出擊入市回購 (我並不是說我會做或不會做,基於我的身份我不能說太多,我這篇文只當學術討論),我亦同樣受制於緊拙的流動性
我亦不能用這方法來向上述的人買回他們的 DSM
那麽我能否提供更多流動性呢?這樣做的問題是如果有人大量拋售 DSM,雖然我願意作為莊家承接 (等於被動地回購),但我亦會產生無常損失 (impermanent loss,暫不在本文解釋了,你先看些網上資訊)
不過綜合而言,3 似乎是最好的方法。剛剛找到一個網站提供工具計算,如果我在現有的資金池加入 $100K 等值 ATOM 或 OSMO,及等值數目的 DSM (即 1,050 萬 DSM),資金池就會變成 $130K (ATOM+OSMO) 及 1,364 萬 DSM,若進行一筆 $650 等值的交易,Slippage 就是 1% 左右,看來可行?
比特幣已開始了一場由下而上的財富革命,通過平民百姓的參與來改變由精英階級主導的財富分配規則,令社會發展得更公平均衡,這機會是歷史上絕無僅有,而經過十多年的發展,情況已越來越明朗。我推動比特幣、加密貨幣及 web3 的市場教育,希望令更多人能把握這個機會並獲益於這些科技,令大家實現真正的財務自由。歡迎你轉發這文章給你的朋友,並懇請你向朋友推薦本欄。
好開心自己既問題比你咁詳細咁回答,目前提供既三個解決方案入面,睇落係提供流動性既方案最好,但係除左你自己提供之外,有冇其他方法可以吸引到普通人去提供呢? 我一直有個疑問係點解OSMO既POOL有D APR可以比到咁高,但DSM/OSMO既APR 好似<1%,咁既情況真係好唔吸引人放錢去POOL。