波哥說九頭蛇(4)原理篇
通過《波哥說九頭蛇(1-3)》,相信各位老鐵對 HydraDX 已經有了一定的了解。不免有人會問,HydraDX 核心產品 Omnipool 的工作原理,到底是什么?在本文中,波哥將回答這個問題。
要介紹 Omnipool 的工作原理,波哥先要先說傳統的 XYK 池。
1、傳統 XYK 池的原理
XYK 池,顧名思義是以 XYK 算法模型(也叫“恆定乘積做市商模型”)構建的流動池。X、Y 代表兩種令牌,K 代表兩種令牌數量的乘積系數。我們熟悉的 Uniswap、PancakeSwap 等 DEX 都是基於 XYK 算法構建。
下面,波哥用一個例子解釋 XYK 的算法:
假設有一個新池,由 100 個 HDX 令牌和 100 個 DAI 令牌構成,那這個池的乘積系數 K 就是 10,000,即K = 100*100 = 10,000。
現在,鮑勃 想在池子裏存入一定數量的 DAI 通過交易得到 1 個 HDX。為保持 K 不變,交易後池子裏 DAI 的數量,應該變為:
DAI_新 = (K/HDX_新) = 10,000/99 = 101.01
換句話說,鮑勃 只有存入足夠的 DAI,即 1.01 個 DAI,才能得到 1 個 HDX。這意味着,鮑勃 支付的 DAI 數量,需要將舊(DAI=100)新(DAI=101.01)狀態之間 DAI 成本差異(即 0.01 個 DAI)覆蓋掉,才能達到交易目的。
在這裏,這個差異的 0.01 個 DAI,就是我們常提到的“滑點”。滑點,一般是指真實成交價位與預設成交價之間出現的偏移。
說到這裏,有朋友可能就會問了,系數 K 是“恆定不變”嗎?
其實,所謂的“恆定不變”只是相對而言。交易過程中,因為交易費用的存在,K 往往會發生一定的變化。一般來說,每次交易後 K 會略微變大。這是因為,支付令牌的一部分,會作為手續費進入儲備池,並未參與系數 K 的計算,導致 K 系數相對變大。只是這個變化微乎其微,幾乎可以忽略不計。K 系數的變化,主要與流動性的添加或刪除有關。添加的流動性令牌越多,K 就越大;反過來說,K 越大,池子的流動性也越好。K 系數的大小,實質上代表了池子的流動性大小。
XYK 池的算法原理,並不難理解,其中的數學推導過程,有興趣的老鐵,可閱讀網上的一篇文章(https://learnblockchain.cn/article/1494)進一步了解。
說完 XYK 池的算法,接下來波哥开始正式介紹 Omnipool。
2、Omnipool 的原理
Omnipool 的概念,源於 HydraDX 辦公會議的頭腦風暴。2019 年的時候,Omnipool 的概念被 HydraDX 首次提出,其核心是在傳統 XYK 池基礎上,引入了對標資產 —— 中心令牌。
下面,波哥仍然通過一個例子說明 Omnipool 的原理:
假設 Omnipool 已經進入了四種令牌:DAI、wBTC、USDC、ETH(當然,萬能池不可能只有這四種資產),這四種令牌的總價值,和 LRNA 的總價值,分別佔池子總價值(假設 $1,000 萬)的比例為:
DAI - 10%
wBTC - 15%
USDC - 20%
ETH - 5%
LRNA - 50%
在 Omnipool,中心令牌 LRNA 的總價值始終等於池中其他令牌的總價值,1:1 的比例恆定不變。
有一天,用慣了傳統 XYK 池的 鮑勃 想嘗試一下 Omnipool,於是就在 Omnipool 用一定數量的 DAI 購入 ETH。當 鮑勃 填好參數點擊 SWAP 的瞬間,Omnipool 就开始自行執行以下動作:
第1步:將鮑勃的一定數量 DAI,換成同價值的 LRNA;
第2步:再將換來的 LRNA,換成同價值的 ETH;
這兩步交易遵循了 XYK 算法。
既然是 XYK 算法,Omnipool 的交易好像還多了一步,豈不是要產生更多滑點?別急,聽波哥慢慢說。
在 Omnipool,LRNA 相對於其它資產,體量是巨大的,它可是佔了池子整整一半的價值哦。在 Omnipool 交易,無論买賣任何資產、下多大的訂單,都 相當於你在傳統 XYK 池中交易時系統為你挑選了一個流動性非常好的池子,而這個池子就是由 LRNA 和其他資產以 1:1 的價值比構成的。在這個流動性很好的池子中交易,即使多了一次互換,滑點仍是非常低。這就是 Omnipool 為什么比傳統 XYK 池滑點低的根本原因。
在上面的兩步交易中,LRNA 起到了核心作用。沒有 LRNA,交易就無法完成。LRNA 承擔了類似貨幣貿易中人民幣美元等法幣的角色。說到這裏,有老鐵可能就要問了:LRNA 既然這么重要,它的數量和價格是如何確定的呢?
LRNA 的數量和價格是由協議自動控制並確定的,且隨時都在發生着變化。除了 Omnipool 最初建立時需要开發人員寫入協議初設外,LRNA 的數量和價格變化,均由協議通過算法在鏈上決定,任何人都無法再控制了。
再進一步,LRNA 的數量和價格既然都不恆定,具體又是如何變化的呢?波哥接着舉例:
假如 Omnipool 的 TVL 為 $1,000 萬,LRNA 價格 $20/LRNA。此時,鮑勃 添加了價值 $1,000 的 wBTC,Omnipool 會自動鑄造 50 個 LRNA,匹配新增 $1,000 比特幣的價值。
想象一下,如果 Omnipool 不再添加或刪除任何資產,但因行情變化 Omnipool 的 TVL 從原來的 $1,000 萬漲到了 $2,000 萬,LRNA 會怎么變化呢?答案是:數量不變,單價漲至 $40/LRNA,確保總價值等於 Omnipool 其他令牌的總價值。
結論:
當 Omnipool 中的其他資產數量不變時,LRNA 的數量是恆定的;
當其他資產添加到 Omnipool 或從 Omnipool 刪除時,LRNA 會被同步鑄造或銷毀。
因行情變化,其他資產總價值如果增加/減少了,LRNA 的單價會隨之增加/減少,始終保持 LRNA 和其他資產的總價值相等。
總之,LRNA 的數量與其他資產數量的變化有關,LRNA 的單價與其他資產總價值的變化有關,LRNA 的總價值始終與 Omnipool 其它令牌總價值相等。
事實上,Omnipool 中 LRNA 的實際數量和價格變化,經歷了一個漫長的過程。2023 年 1 月 6 日晚上10:38(GMT+8)Omnipool 上线 時,HydraDX 將總價值 $125,000 的 HDX/DOT/DAI(HDX 的價格 $0.026/HDX,其它為市價)和初始鑄造的 5,650 個 LRNA(~$22.12/LRNA),作為首筆自有流動性(POL)注入了 Omnipool。隨着 HydraDX 多次將 LBP 募得的 DAI 多樣化為其他令牌不斷添至 Omnipool,加上多個平行鏈項目將其國庫的部分資金添加到 Omnipool 的流動性,Omnipool 的 TVL 已達 $1,700多萬,LRNA 的數量也增加到 470,467個(2023 年 12 月 19 日上午 9:00 的數據),單價也變成了 $37.28/LRNA。可以說,LRNA 數量和單價變化,見證了 Omnipool 的成長過程。
關於 Omnipool 的設計,有興趣的老鐵們,可以進一步閱讀 HydraDX 的官方文檔:https://docs.hDAIdradx.io/cn/omnipool_design,繼續研究。
3、成長更快效率更高
人們常說,Omnipool 的流動性增加會比傳統的 XYK 池更快,效率更高。為什么?波哥想通過下面的圖來回答這個問題。
在傳統 XYK 池環境裏,假設市場上有價值 $500 萬的 HDX 和 $300 萬的 DAI,添加在了 5 個不同的池子裏:
池 1:HDX-ETH 池($250 萬 HDX + $250 萬 ETH)
池 2:HDX-ETH 池($150 萬 HDX + $150 萬 USDC)
池 3:HDX-ETH 池($50 萬 HDX + $50 萬 wBTC)
池 4:HDX-ETH 池($50 萬 HDX + $50 萬 DAI)
池 5:ETH-DAI 池($250 萬 ETH + $250 萬 DAI)
很明顯,五個池子的流動性水平,差別很大。
但如果同樣的 $500 萬 HDX 和 $300 萬 DAI,添加到只有 1 個池子的 Omnipool 中呢?
Omnipool:HDX-DAI- …($500 萬 HDX + $300 萬 DAI + …)
可以看出,同樣的資產添加在傳統 XYK 池和 Omnipool 提供流動性,獲得的結果完全不同:添加在傳統XYK池,如同手指展开,流動性(力量)被分散了;而添加在Omnipool,如同手握緊了拳頭,池子的流動性(力道)大增。這就是 同等條件下 Omnipool 流動性增加速度比傳統 XYK 池更快的原因。
Omnipool 的這種流動性集中,會帶來什么好處?
鮑勃 有這樣的交易體驗:在傳統 XYK 池裏,如果用少量 DAI 購买 HDX 時,滑點比較低。但如果想一次性花費 $10 萬 DAI 來購买 HDX,交易路由經常會變長,滑點幾乎都很高。使用 Omnipool 後,他發現 無論是小訂單還是大訂單,滑點都很低,完全可以按照他預想的價格成交。
為什么會這樣?仍以上圖為例說明:
當 鮑勃 在傳統 XYK 交易 小訂單 時,系統會選擇 $100 萬流動性的 HDX-DAI 池 直接來執行交易,所以滑點較低。當加到到 $10 萬 DAI 時,協議判斷該訂單 無法 通過 HDX-DAI 池 獨立完成,就延長交易路由,先經 流動性更好的 DAI-ETH 池,然後 再到 HDX-ETH 池,來完成整個訂單。池間跳躍轉账發生的礦工費和交易費,都會反映到的滑點上,結果就是滑點很高。而在 Omnipool 這樣一個擁有 無限流動性可能 的大池子裏,無論是小訂單還是大訂單,都可以一次性交易完成,沒有 了 池間跳躍,更 不會發生額外的礦工費和交易費,滑點 自然就 低 了。而且,Omnipool 基於 Polkadot 跨鏈平臺構建,其它鏈的資產也會越來越多的匯集在 Omnipool,日後 鮑勃 在這裏進行任何交易,都可以繼續隨心所欲地享受由這筆資金參與構成的 整體流動性。
也就是說,在傳統 XYK 池 鮑勃 下大訂單時(比如 $10 萬),若碰到了流動性好的池子,滑點可能也會低,但若不幸進了流動性差的池子,就會出現奇高的滑點。尤其是為了完成交易協議被迫進行池間跳躍,雖然交易最終還是完成了,但 鮑勃 將因此要承擔更高的交易成本。而 Omnipool 這種將分散的流動性集中起來的設計,從根子上就 消除了池間跳躍以及高滑點產生的條件,為交易者帶來了 極高的交易效率。
(以上提到的 Omnipool 的交易環境,均假定其流動性已成長到了一定的規模)
至此,關於 Omnipool 的原理基本就說完了!不知道波哥說沒說清楚,也不知道老鐵們看沒看明白?由於水平有限,盡管波哥很努力,但肯定還有地方說的不到位甚至是錯誤,望老鐵們留言批評指正。
作者:波哥
HydraDX 國際社區:https://t.me/hydradx
HydraDX 中文社區:https://t.me/HydraDX_China
更多資訊,請關注微信公衆號:蛇粉家園
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...
悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤
一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...