摘要:至于漲跌幅度,可以根據(jù)項目方對自己的定義結(jié)合項目需要,通過自定義來實現(xiàn)控制。這里貼出原貼地址協(xié)議的智能合約實現(xiàn)注團隊已經(jīng)實現(xiàn)了協(xié)議的智能合約實現(xiàn)。
寫在前面
本文涉及到bancor名詞可能會讓部分不熟悉bancor的同學(xué)看著有些confuse,先把區(qū)別寫在前面:
bancor plan: 可以理解為凱恩斯提出的“國際清算同盟計劃”bancor protocol / bancor協(xié)議: 可以理解成bancor機制的核心算法
bancor.network:基于bancor協(xié)議的智能合約實現(xiàn)的去中心化交易所
另外本文中關(guān)于token使用的「發(fā)行」一詞的意思可以參考以下偽代碼(相當于mint):
function issue(address _user, uint _amount) { balances[_user] += _amount; totalSupply += _amount; }bancor誕生的背景
二戰(zhàn)之后,凱恩斯為了遏制美元稱霸世界提出的“國際清算同盟計劃”中的重要計劃,也有人稱其為「bancor plan」。這個計劃主張多邊清算,取消雙邊清算。而bancor本身在這個計劃中,也是各國賬戶的記賬單位。
而bancor的初始分配則以二戰(zhàn)前三年的進出口貿(mào)易平均值計算,這樣加上英聯(lián)邦的殖民地,英聯(lián)邦可以分配到的bancor多達35%,可以讓英國在戰(zhàn)后黃金儲備耗盡的情況下,和美國共享國際金融的領(lǐng)導(dǎo)權(quán)。
而bancor plan所倡導(dǎo)的多邊清算,在區(qū)塊鏈token化興起的今天,被用來解決token市場的長尾效應(yīng)。目前,幾乎每一個項目都要發(fā)行自己的token,目前大交易所都采用撮合交易的方式,即買和賣同時都有需求,交易才能發(fā)生。因此一些關(guān)注度小的token都有很大的流動性風(fēng)險。
什么是bancor協(xié)議bancor協(xié)議不依賴于雙邊需求匹配,其運用連接器 (connector)作為橋梁,實現(xiàn)了異步價格機制。即用戶可以隨時按照自動計算得到的價格,把某一種token賣給"連接器"拿出抵押物(通常是eth)或者換取其他token;買過程也一樣。(這里說賣給了連接器并不恰當,大家可以理解成把token發(fā)送給連接器,再由連接器來實現(xiàn)兌換的邏輯)。
token發(fā)行方可以鎖定一些ETH在連接器中并自定義CW(connector weight, 連接器權(quán)重,以前也叫CRR,即恒定準備金率),發(fā)行出一定數(shù)量的自己的token,bancor里稱之為智能代幣(smart token)。一般如果買需求增加,smart token的價格就會相應(yīng)升高;賣需求增加,smart token的價格會相應(yīng)下降。至于漲跌幅度,可以根據(jù)項目方對自己token的定義結(jié)合項目需要,通過自定義CW來實現(xiàn)控制。
未來用戶也可以鎖定一些smart token來發(fā)行新的smart token。這樣就會形成一個價值網(wǎng)絡(luò),在這個網(wǎng)絡(luò)中的token都可以以某種路徑實現(xiàn)雙向兌換,且因為異步價格機制,因而并不依賴買賣需求雙邊匹配。
在這樣的機制保證下,即使是關(guān)注度小的token也沒有流動性風(fēng)險,釋放token市場的長尾潛力。
bancor協(xié)議中的名詞解釋bancor協(xié)議的白皮書中涉及到很多名詞,先做一下解釋:
connector(連接器):可以認為連接不同token的兌換橋梁;
connector token(連接器代幣):可以理解成抵押物。比如在bancor網(wǎng)絡(luò)中token發(fā)行的最初階段,就是通過鎖定ETH來發(fā)行smart token的。在“抵押ETH發(fā)行token”這個過程中,ETH就是connector token。(當然在bancor的具體實現(xiàn)中,是通過ETHER TOKEN實現(xiàn)的,下詳述)。
smart token(智能代幣):理解成你想要發(fā)行的TOKEN。還是用“抵押ETH發(fā)行token”這個過程為例,smart token就是那個想要發(fā)行的token。
CW(連接器權(quán)重): 理解成調(diào)節(jié)價格敏感系數(shù)的參數(shù)。買入smart token時價格上升,賣出smart token時價格下降,但是漲跌幅度不是一個固定的值,可以用CW調(diào)節(jié)。
上圖中可以看到:不同的cw值對應(yīng)的smart token價格隨供應(yīng)量不同表現(xiàn)出的不同走勢。
當cw為1時,價格恒定;cw為0.5時,價格隨供給量成線性變化;當價格分別為10%和90%時,價格隨供給量的增加,一個表現(xiàn)為敏感,另一個表現(xiàn)為不敏感。這樣的曲線走向和經(jīng)濟學(xué)中的價格彈性有異曲同工之妙。(筆者在旁邊標注的$E_s$表示的就是價格彈性系數(shù))。
bancor中涉及到的數(shù)學(xué)證明在bancor的白皮書中有提高,smart token的價格公式為:
$$ price = frac{connectorBalance}{smartToken"s supply imes CW} $$
我們對上面的公式做個變形,用R表示connector balance(比如說ETHER),用S表示smart token的供給量,用F表示CW, 最后用P表示智能代幣的價格。
那么整個市場上的smart token的市值上限就是S*P,根據(jù)上面的公式定義,得到R = FSP,變換成之前的公式也就是
$$ P = frac{R}{SF} $$
當用戶想購買非常少數(shù)量的smart token,用dS表示,那么該用戶就需要支付PdS,而用戶正是connetor token作為支付貨幣,因此connector balance增加的dR = PdS。
這樣我們又得到了一個公式 (F是一個常量) :
$$ dR = d(FSP) = Fd(SP) = F(SdP + PdS) $$
繼續(xù)往下推導(dǎo):
$$ P dS = dR = F(S dP + P dS) $$
$$ P dS(1 ? F) = FS dP $$
$$ P dS (frac{1}{F} - 1) = S dP $$
為了計算方便,繼續(xù)使得α = 1/F - 1:
$$ αP dS = S dP $$
$$ α frac{dS}{S} = frac{dP}{P} $$
$$ α d log S = d log P $$
等式兩邊同時積分:
$$ α log S + A = log P $$
$$ e^A S^α = P $$
$$ P = (frac{S}{S_0})^ α P_0 $$
這樣再已知當前smart token供應(yīng)量、初始價格$P_0$和初始供應(yīng)量$S_0$的基礎(chǔ)上,就可以推算出當前的Smart token的價格。
繼續(xù),如果一個用戶想要買總量為T的smart token,這樣總供應(yīng)量就會從$S_0$變?yōu)?S_0$+T, 那么用戶所需支付的費用為:
$$ E = int_{S_0}^{S_0 + T}{P}dS $$
$$ = int_{S_0}^{S_0 + T}{P(frac{S}{S_0})^α}dS $$
$$ = P_0S_0frac{(S/S_0)^{α+1}}{α + 1}|_{S_0}^{S_0+T} $$
$$ = P_0S_0(frac{((S_0+T)/S_0)^{α+1}}{α+1} - frac{(S_0/S_0)^{α+1}}{α+1}) $$
$$ = P_0S_0((1 + frac{T}{S_0})^{α+1} - 1) $$
$$ = FP_0S_0((1+frac{T}{S_0})^{1/F} -1 $$
$$ = R_0((1 + frac{T}{S_0})^{1/F} - 1) $$
$$ =R_0(sqrt[F]{1 + frac{T}{S_0}} - 1) $$
細心的同學(xué)可能已經(jīng)發(fā)現(xiàn)了,這其實就等于之前提到的price-supply曲線從$S_0$到$S_0$+T這段區(qū)間曲線下的面積。
對F這個參數(shù),也就是CW,還有一個很有趣的視角:
即圖中紫色部分的面積除以灰色部分的面積恰好等于CW。有興趣的同學(xué)可以自行驗證一下。這里貼出原貼地址:
https://forum.evolution.land/...
bancor協(xié)議的智能合約實現(xiàn)注: bancor.network團隊已經(jīng)實現(xiàn)了bancor協(xié)議的智能合約實現(xiàn)。
這里舉一個簡單的例子,以ETH和智能代幣的兌換為例,進行說明。
1. 用ETH買入Smart Token當用戶想用1個eth來兌換一定量的智能代幣時,智能合約地執(zhí)行步驟是:
connector接收1eth,并發(fā)行出等額的etherToken,注意這里的etherToken并不是ETH,而是和ETH保持1:1兌換關(guān)系的ERC20 TOKEN。
繼續(xù)用這些etherToken在bancor中經(jīng)過計算得到一定數(shù)量的smart token,比如1w個smart token;
把這1w個smart token發(fā)行到用戶的地址下;(這里的發(fā)行指的其實是mint的過程)
在上面的例子中,ETHERTOKEN和SmartToken都是發(fā)行出來的,因此在之前的價格計算公式中,connector_balance和smart token"s supply都會變多。
再具體一些,在智能合約的具體實現(xiàn)中,connector又被拆分成兩個角色bancorConverter和bancorNetwork,分別對應(yīng)兩個智能合約,把上面的ETH兌換smartToken的操作進一步細化得到:
用戶發(fā)送1個ETH給bancorConverter,bancorConverter再把這1個ETH發(fā)送給bancorNetwork
bancorNetwork拿著這1個ETH在ETHERTOKEN存入ETHERTOKEN中,并給自己發(fā)行一個etherToken:
EtherToken.deposit(bancorNetwork, 1 * 10^18);
bancorNetwork把這1個etherToken發(fā)送給了bancorConverter;
在bancorConverter里實現(xiàn)代幣兌換的計算,并把計算得到的一定數(shù)量的smartToken發(fā)行給bancorNetwork;
最后,bancorNetwork再把這一筆smartToken發(fā)送給用戶;
以上面的方式完成了ETH兌換smartToken的全過程。
下圖為ETH、etherToken以及smartToken的資金流向圖:
可以看到,ETH最后留在了ETHERTOKEN合約地址中;etherToken最后留在了bancorConverter合約地址中;而smartToken則流向了用戶。
2. 賣出smartToken換回ETH這個過程比上一個更簡單:
用戶把想要賣出的smartToken發(fā)送給bancorNetwork;
在bancorConverter中銷毀bancorNetwork賬戶上相應(yīng)數(shù)量的smartToken,并計算出smartToken對應(yīng)多少數(shù)量的etherToken,然后把計算得到的etherToken從自己的地址轉(zhuǎn)移到bancorNetwork地址;
bancorNetwork再拿著得到的etherToken,去ethertoken的合約地址中兌換出等額的eth,并發(fā)送給用戶
下圖為賣出smartToken換回ETH中的資金流向圖:
可以看到,直接從用戶的賬戶上銷毀smartToken;而etherToken則從bancorConverter中流向bancorNetwork并最終銷毀;在完成上述過程中,則從ETHERTOKEN地址中把ETH還給用戶。
基于bancor的交易所封裝實現(xiàn)bancor.network官方的github庫其實已經(jīng)挺完善了,不過任何人想要使用換幣的邏輯就必須經(jīng)過白名單的認可,換言之只有白名單中標記為true的地址才可以進行換幣行為,這樣對單個用戶很不友好,而bancor官方也并未給出交易所的智能合約實現(xiàn),因此我們在bancor的基礎(chǔ)上又封裝了一個bancorExchange,用于實現(xiàn)特定幣種之間的兌換行為。
github地址:https://github.com/evolutionl...
在readme里列出了系列合約的kovan地址,大家可以自行測試。當然如果想親手部署一個bancor網(wǎng)絡(luò)的同學(xué),我們也給出了詳細的部署步驟,網(wǎng)址如下:
https://github.com/evolutionl...
寫在最后bancor plan是一個很棒的去中心化貨幣解決方案,雖然在幾十年前就被凱恩斯提出,但是因為中心化(政治)的原因被廢棄。感謝區(qū)塊鏈的興起,又把bancor帶回了大眾的視野,并在區(qū)塊鏈的技術(shù)支持下,得到了完全實現(xiàn)。
那么像bancor這樣曾經(jīng)因為技術(shù)水平或者中心化組織出于自身利益被廢棄卻很棒的提議,是否都可以隨著區(qū)塊鏈的普及而復(fù)活,從而為整個世界帶來更有效率地運行方式?
筆者這里想拋磚引玉,就拿我們目前最熟悉的DAO來說,就是區(qū)塊鏈世界中代替企業(yè)的一種存在。
科斯在「社會成本問題」中曾經(jīng)探討過產(chǎn)權(quán)界定和資源配置有效性的問題,他認為:
在交易費用為0時,不管產(chǎn)權(quán)屬于誰,資源都會落到最有價值的用途上;
在交易費用大于0時,產(chǎn)權(quán)的界定有利于提升效率;
而受限于技術(shù)水平,科斯認為企業(yè)是唯一降低交易費用的方式,因為企業(yè)替代了市場的作用,企業(yè)的本質(zhì)就是對價格機制的替代。價格機制的運行本身也是有成本的,市場運行本身也存在費用,企業(yè)的存在就是通過管理協(xié)調(diào)替市場降低成本的必然結(jié)果。
而張五常在「經(jīng)濟的解釋」中則更進一步地提出,市場只要合約就可以了,企業(yè)只是合約的特殊表現(xiàn)形式。是用一種叫“企業(yè)”的長期合約替代了“市場”的一系列短期合約的方式來節(jié)省交易費用的結(jié)果。
很顯然,基于區(qū)塊鏈和智能合約,已經(jīng)發(fā)展除了初級的DAO組織,這些DAO就是以一種「新的合約」代替「企業(yè)」這種合約。在某種程度上已經(jīng)實現(xiàn)了松散的協(xié)調(diào)自制;未來DAO在市場資源配置上,是否可以既代替企業(yè)實現(xiàn)更有效率的資源分配,在網(wǎng)絡(luò)價值傳遞中,又可以超越企業(yè)的科層制的傳播實現(xiàn)更廣泛更高效的價值互聯(lián)呢?
期待更多像bancor.network這樣優(yōu)秀的項目,幫助我們在實現(xiàn)去中心化價值傳遞的道路上走的更遠。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24294.html
摘要:多索引數(shù)據(jù)庫是中的一種數(shù)據(jù)結(jié)構(gòu),它根據(jù)范圍的定義方式提供存儲數(shù)據(jù)的靈活性。例如,每個帳戶已存儲在合約中定義的多索引數(shù)據(jù)庫中的數(shù),該合約由定義范圍的每個帳戶的一小塊組成。 對于EOS RAM的來說什么最重要呢?我們經(jīng)常在每天的數(shù)字貨幣和區(qū)塊鏈相關(guān)新聞中看到EOS旁邊的RAM這個詞,但是無論如何我們應(yīng)該關(guān)注它的價格,為什么要關(guān)注它的價格,即使是那些只想深入了解智能合約開發(fā)的人也需要這樣嗎?...
摘要:月日下午,南京區(qū)塊鏈社群聯(lián)盟在南京審計大學(xué)舉辦主題為南京區(qū)塊鏈社群聯(lián)盟高校行的活動。同學(xué)們對遠航解析的區(qū)塊鏈共識機制,智能合約以及較的優(yōu)越性非常感興趣,紛紛舉手與遠航老師互動。活動中,遠航在剝開區(qū)塊鏈的堅果主題分享中介紹了鏈是如何形成的。 12月16日下午,BCCN南京區(qū)塊鏈社群聯(lián)盟在南京審計大學(xué)舉辦主題為南京區(qū)塊鏈社群聯(lián)盟高校行的活動。FIBOS 團隊金牌講師遠航在活動中對區(qū)塊鏈的形...
摘要:月日下午,南京區(qū)塊鏈社群聯(lián)盟在南京審計大學(xué)舉辦主題為南京區(qū)塊鏈社群聯(lián)盟高校行的活動。同學(xué)們對遠航解析的區(qū)塊鏈共識機制,智能合約以及較的優(yōu)越性非常感興趣,紛紛舉手與遠航老師互動。活動中,遠航在剝開區(qū)塊鏈的堅果主題分享中介紹了鏈是如何形成的。 12月16日下午,BCCN南京區(qū)塊鏈社群聯(lián)盟在南京審計大學(xué)舉辦主題為南京區(qū)塊鏈社群聯(lián)盟高校行的活動。FIBOS 團隊金牌講師遠航在活動中對區(qū)塊鏈的形...
閱讀 1664·2019-08-30 13:04
閱讀 2217·2019-08-30 12:59
閱讀 1777·2019-08-29 18:34
閱讀 1875·2019-08-29 17:31
閱讀 1268·2019-08-29 15:42
閱讀 3546·2019-08-29 15:37
閱讀 2868·2019-08-29 13:45
閱讀 2782·2019-08-26 13:57