EOS RAM在經(jīng)過了價(jià)格大幅度波動(dòng)后,其背后的Bancor定價(jià)機(jī)制也越來越為人所熟知。繼《【火線視點(diǎn)8】沒有免費(fèi)的午餐——從EOS RAM價(jià)格看公鏈通證經(jīng)濟(jì)體系設(shè)計(jì)》后,火幣區(qū)塊鏈研究院繼續(xù)對(duì)這一算法研究,分析其后背的數(shù)學(xué)和經(jīng)濟(jì)學(xué)原理,并通過公式,我們計(jì)算對(duì)比了不同參數(shù)下RAM價(jià)格,主要得到以下研究結(jié)果:
Bancor公式中隱藏價(jià)格函數(shù)與經(jīng)濟(jì)學(xué)上的價(jià)格彈性曲線的概念相通。
由于是根據(jù)供需量來得出價(jià)格,Bancor經(jīng)過微積分計(jì)算得出購買RAM時(shí)所需EOS的等效價(jià)格,防止產(chǎn)生購買價(jià)格誤差。
在不同的曲線參數(shù)下,價(jià)格會(huì)有不同。我們以北京時(shí)間7月10日18點(diǎn)40分的情況為例,使用MATLAB R2015a進(jìn)行測(cè)算:付出10 EOS以上,參數(shù)取值改為0.5會(huì)比0.0005的商品“性價(jià)比”更高。
報(bào)告正文
1.引言
EOS RAM在經(jīng)過了價(jià)格大幅度波動(dòng)后,其背后的Bancor定價(jià)機(jī)制也越來越為人所熟知。繼《【火線視點(diǎn)8】沒有免費(fèi)的午餐——從EOS RAM價(jià)格看公鏈通證經(jīng)濟(jì)體系設(shè)計(jì)》后,火幣區(qū)塊鏈研究院繼續(xù)對(duì)這一算法研究,分析其后背的數(shù)學(xué)和經(jīng)濟(jì)學(xué)原理。通過公式,我們計(jì)算對(duì)比了不同參數(shù)下RAM價(jià)格,可看到參數(shù)的確會(huì)產(chǎn)生一定程度上的影響。
另外需要注意的是:測(cè)算得到的數(shù)據(jù)結(jié)果不是也不應(yīng)被視為是對(duì)EOS RAM未來價(jià)格走勢(shì)等情況的證明或確認(rèn)。特此聲明。
2.主要結(jié)論
經(jīng)過研究與測(cè)試分析,我們得到以下主要結(jié)論及技術(shù)建議:
Bancor公式中隱藏價(jià)格函數(shù)與經(jīng)濟(jì)學(xué)上的價(jià)格彈性曲線的概念相通。
由于是根據(jù)供需量來得出價(jià)格,Bancor經(jīng)過微積分計(jì)算得出購買RAM時(shí)所需EOS的等效價(jià)格,防止產(chǎn)生購買價(jià)格誤差。
在不同的曲線參數(shù)下,價(jià)格會(huì)有不同。我們以北京時(shí)間7月10日18點(diǎn)40分的情況為例,使用MATLAB R2015a進(jìn)行測(cè)算:付出10 EOS以上,參數(shù)取值改為0.5會(huì)比0.0005的商品“性價(jià)比”更高。
3.什么是Bancor
Bancor算法的本質(zhì)我們?cè)诖饲暗摹丁净鹁€視點(diǎn)8】沒有免費(fèi)的午餐——從EOS RAM價(jià)格看公鏈通證經(jīng)濟(jì)體系設(shè)計(jì)》報(bào)告中有過介紹:它是在1940年-1942年間由凱恩斯、舒馬赫提出的一個(gè)超主權(quán)貨幣的概念,可作為一種賬戶單位用于國際貿(mào)易中,并由英國在二戰(zhàn)后正式提出。然而,由于美國實(shí)力在二戰(zhàn)后一枝獨(dú)秀,Bancor 方案并沒有在布雷頓森林會(huì)議上被采納使用。但應(yīng)用這一思想的 Bancor 算法則繼續(xù)延續(xù)了其生命力。Bancor 算法由 Bancor Network 項(xiàng)目提出應(yīng)用,旨在采用公式來設(shè)定好數(shù)字資產(chǎn)間的兌換價(jià)格。其聯(lián)合創(chuàng)始人 Eyal Hertzog 近期也被BM邀請(qǐng)一起來探討 EOS 中 Bancor 算法的應(yīng)用。
雖然Bancor Network近期也經(jīng)歷被盜風(fēng)波,但這不妨礙我們繼續(xù)研究這一算法。既然是原本要用于國際貿(mào)易的模型,那必然涉及到不同實(shí)體間如何兌換。Bancor 白皮書中對(duì)定價(jià)模型有著十分嚴(yán)謹(jǐn)和詳細(xì)的說明。它定義了兩類token:一種是通常會(huì)流通使用的 connector token(即儲(chǔ)備金,例如:BTC、ETH、EOS等),而另一種是作為“超平臺(tái)”中間媒介的 Smart Token。為了使得兌換價(jià)格滿足剛才提到的供需關(guān)系,設(shè)計(jì)的公式中的價(jià)格為 connector 的可流通余量(balance)除以 按照一定系數(shù)的Smart Token 供應(yīng)量:
其中,CW 的英文是 Connector Weight,表示設(shè)計(jì)出來的 Smart Token 的總價(jià)值與實(shí)際在使用中的 connector 余量間的關(guān)系,設(shè)計(jì)好后為一個(gè)固定參數(shù):
總體上來說,就是 Smart Token 的供應(yīng)量越少或者 connector 的余量越多,那么使用 connector 來兌換 Smart Token 的價(jià)格就越高。
雖然很不嚴(yán)謹(jǐn),但這也就能理解了為什么 EOS 的 RAM 越少,價(jià)格越高了。至于不嚴(yán)謹(jǐn)?shù)脑颍覀儗⒃谙挛睦^續(xù)解釋。
4.公式設(shè)計(jì)思路
回到 RAM 價(jià)格上,那么無疑在 EOS 主網(wǎng)剛上線的時(shí)候,RAM 供應(yīng)量最多??梢钥吹阶畹蛢r(jià)格是 0.017 EOS/KB 。按照這個(gè)價(jià)格,也就是買 1MB 需要 0.017 * 1024 = 17.408 EOS。那么,全部 64GB RAM 在這個(gè)時(shí)候值 1140850.688 EOS,是不是這個(gè)時(shí)候花費(fèi)這些 EOS 就可以把 64 GB一次性都買下?答案顯然是否定的。
實(shí)際上,有多種方式可以限制這種做法。最簡單的一種就是限制每次買賣的數(shù)量:只要設(shè)置每次只能購買 32GB,那么第二次買 RAM 的價(jià)格就會(huì)提高很多,買的總成本就會(huì)變的很高。再循環(huán)細(xì)分下去為 16GB、8GB …… 總的價(jià)格就會(huì)越來越合理。這在數(shù)學(xué)上是有相應(yīng)的工具可以使用的。
是的,就是微積分。在 Bancor Network 白皮書中引用的另外一個(gè)資料中,可以看到這個(gè)推導(dǎo)過程。
定義R為當(dāng)前connector的余量、S為當(dāng)前Smart Token的供應(yīng)量、F為系數(shù)(即上文中的CW)、P為當(dāng)前Smart Token的價(jià)格,那么有:
Smart Token的市場(chǎng)總量 = SP
當(dāng)要購買dS 的Smart Token時(shí),用戶需要付出P dS 的成本,也等于剩余connector的變化量,即dR = P dS
又因?yàn)镽 = FSP,同時(shí)微分可得到:dR = d(FSP) = F d(SP) = F(S dP + P dS),所以綜合上述兩個(gè)等式可得:
然后我們可以看到,這個(gè)微分方程的結(jié)果和經(jīng)濟(jì)學(xué)上的一個(gè)概念是一樣的。
是的,就是經(jīng)濟(jì)學(xué)上的價(jià)格彈性曲線:
當(dāng) CW 或者 F 為 1 時(shí),提供100%的流動(dòng)性,因此價(jià)格毫無彈性,一直維持在某一水平線上
當(dāng) CW 大于 0 小于 1 時(shí),即上述正常供需情況下的價(jià)格曲線
有了這個(gè)價(jià)格函數(shù)后,再對(duì)其進(jìn)行積分,即可得到不同量的 connector 可換購的 Smart Token 數(shù)量。
定義用戶要購買Smart Token的數(shù)量為T,那么可得到需要付出的connector的數(shù)量E為:
如果用付出的connector 除以兌換到的Smart Token 數(shù)量,即可得到等效價(jià)格(Effective Price),即只要付出的connector總量一樣,不管分多少次購買,所獲得的Smart Token總量是一樣的,因此也就不需要限制單次購買量了。但相應(yīng)的,如果單次付出不同數(shù)量的connector,折算得到的單價(jià)也會(huì)不一樣,所以不會(huì)存在上文假設(shè)的“套利”情況。
5.EOS RAM的公式更復(fù)雜
EOS 應(yīng)用 Bancor 算法過程中,并不是將 EOS 和 RAM 直接用價(jià)格曲線進(jìn)行兌換,而是引入了中間 token——RAMCORE,對(duì)應(yīng)于 Bancor 中的 Smart Token。
EOS 和 RAM 兌換邏輯的代碼主要在:
https://github.com/EOSIO/eos/blob/v1.0.8/contracts/eosio.system/exchange_state.cpp
EOS 到 RAM 的兌換過程就涉及了兩個(gè)公式,所以上文中用一個(gè)公式來舉例就很不嚴(yán)謹(jǐn),只是為了定性的說明價(jià)格特性。
從代碼中可看到EOS與RAMCORE的兌換公式為:
其中,E為EOS到RAMCORE所能兌換的數(shù)量,R是RAMCORE的初始發(fā)行總量,C1為當(dāng)前EOS余量,T1為用于購買的EOS數(shù)量,F(xiàn)為常量參數(shù)
將上述公式的進(jìn)行反向整理設(shè)計(jì),即可得到RAMCORE與RAM的兌換公式為:
其中,T2是準(zhǔn)備購入的RAM數(shù)量;C2為可分配的RAM余量。將中間變量E代入即可得出用于購買的EOS數(shù)量(T1)與可兌換到的RAM數(shù)量(T2)之間的關(guān)系。
為方便直觀的理解,可以對(duì)公式進(jìn)行簡化,得到:
可以看到隨著可買RAM余量(C2)的降低或者EOS數(shù)量(C1)的增多,RAM的價(jià)格會(huì)加速增長(即同樣付出T1的EOS下,可換取到的RAM數(shù)量T2變少了)
6.不同參數(shù)下的價(jià)格偏差計(jì)算
根據(jù)簡化公式,F(xiàn) 應(yīng)該對(duì)價(jià)格影響很小。那么 BM 之前說的把 0.5 多除了1000,變成0.0005,對(duì)價(jià)格是否有很大影響?我們可以直接通過公式計(jì)算來驗(yàn)證。
按照公式,要計(jì)算先確定好公式中的參數(shù)。參數(shù)的獲取可通過網(wǎng)絡(luò)渠道來獲得(參考https://github.com/eoshackathon/eos_dapp_development_cn/blob/master/docs/ram_price.md):
由于C1和C2的參數(shù)會(huì)時(shí)刻根據(jù)行情進(jìn)行變化,我們選取上述時(shí)間作為示例計(jì)算參數(shù)。下一步,我們使用MATLAB(R2015a 8.5.0.197613)進(jìn)行公式的計(jì)算。
當(dāng)要付出不同量 EOS 時(shí),分別計(jì)算出F=0.0005和F=0.5的 RAM 價(jià)格結(jié)果,可購買到的RAM之差(F=0.0005-F=0.5)以及兩個(gè)價(jià)格之間的差值:
可以看到,當(dāng)F取值變化的時(shí)候,不同購買量下的結(jié)果的確不同:當(dāng)一次付出10000 EOS時(shí),F(xiàn)=0.0005能購買到的RAM比F=0.5少了 20 KB,相應(yīng)的RAM單價(jià)高了 4.0412e-04 EOS/KB;而當(dāng)一次付出100000 EOS時(shí),會(huì)少近 2MB,同時(shí)單價(jià)高 0.0040 EOS/KB。
根據(jù)結(jié)果,在購買量大的時(shí)候,確實(shí)會(huì)有區(qū)別,而且改為F=0.5后RAM的“性價(jià)比”反而會(huì)更高,這很可能也是BM及EOS社區(qū)在調(diào)整參數(shù)時(shí)所考慮的問題。
評(píng)論
查看更多