国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Bancor的原理及智能合約實現

Lsnsh / 1384人閱讀

摘要:至于漲跌幅度,可以根據項目方對自己的定義結合項目需要,通過自定義來實現控制。這里貼出原貼地址協議的智能合約實現注團隊已經實現了協議的智能合約實現。

寫在前面

本文涉及到bancor名詞可能會讓部分不熟悉bancor的同學看著有些confuse,先把區別寫在前面:

bancor plan: 可以理解為凱恩斯提出的“國際清算同盟計劃”

bancor protocol / bancor協議: 可以理解成bancor機制的核心算法

bancor.network:基于bancor協議的智能合約實現的去中心化交易所

另外本文中關于token使用的「發行」一詞的意思可以參考以下偽代碼(相當于mint):

function issue(address _user, uint _amount) {
    balances[_user] += _amount;
    totalSupply += _amount;
}
bancor誕生的背景

二戰之后,凱恩斯為了遏制美元稱霸世界提出的“國際清算同盟計劃”中的重要計劃,也有人稱其為「bancor plan」。這個計劃主張多邊清算,取消雙邊清算。而bancor本身在這個計劃中,也是各國賬戶的記賬單位。

而bancor的初始分配則以二戰前三年的進出口貿易平均值計算,這樣加上英聯邦的殖民地,英聯邦可以分配到的bancor多達35%,可以讓英國在戰后黃金儲備耗盡的情況下,和美國共享國際金融的領導權。

而bancor plan所倡導的多邊清算,在區塊鏈token化興起的今天,被用來解決token市場的長尾效應。目前,幾乎每一個項目都要發行自己的token,目前大交易所都采用撮合交易的方式,即買和賣同時都有需求,交易才能發生。因此一些關注度小的token都有很大的流動性風險。

什么是bancor協議

bancor協議不依賴于雙邊需求匹配,其運用連接器 (connector)作為橋梁,實現了異步價格機制。即用戶可以隨時按照自動計算得到的價格,把某一種token賣給"連接器"拿出抵押物(通常是eth)或者換取其他token;買過程也一樣。(這里說賣給了連接器并不恰當,大家可以理解成把token發送給連接器,再由連接器來實現兌換的邏輯)。

token發行方可以鎖定一些ETH在連接器中并自定義CW(connector weight, 連接器權重,以前也叫CRR,即恒定準備金率),發行出一定數量的自己的token,bancor里稱之為智能代幣(smart token)。一般如果買需求增加,smart token的價格就會相應升高;賣需求增加,smart token的價格會相應下降。至于漲跌幅度,可以根據項目方對自己token的定義結合項目需要,通過自定義CW來實現控制。

未來用戶也可以鎖定一些smart token來發行新的smart token。這樣就會形成一個價值網絡,在這個網絡中的token都可以以某種路徑實現雙向兌換,且因為異步價格機制,因而并不依賴買賣需求雙邊匹配。

在這樣的機制保證下,即使是關注度小的token也沒有流動性風險,釋放token市場的長尾潛力。

bancor協議中的名詞解釋

bancor協議的白皮書中涉及到很多名詞,先做一下解釋:

connector(連接器):可以認為連接不同token的兌換橋梁;

connector token(連接器代幣):可以理解成抵押物。比如在bancor網絡中token發行的最初階段,就是通過鎖定ETH來發行smart token的。在“抵押ETH發行token”這個過程中,ETH就是connector token。(當然在bancor的具體實現中,是通過ETHER TOKEN實現的,下詳述)。

smart token(智能代幣):理解成你想要發行的TOKEN。還是用“抵押ETH發行token”這個過程為例,smart token就是那個想要發行的token。

CW(連接器權重): 理解成調節價格敏感系數的參數。買入smart token時價格上升,賣出smart token時價格下降,但是漲跌幅度不是一個固定的值,可以用CW調節。

上圖中可以看到:不同的cw值對應的smart token價格隨供應量不同表現出的不同走勢。

當cw為1時,價格恒定;cw為0.5時,價格隨供給量成線性變化;當價格分別為10%和90%時,價格隨供給量的增加,一個表現為敏感,另一個表現為不敏感。這樣的曲線走向和經濟學中的價格彈性有異曲同工之妙。(筆者在旁邊標注的$E_s$表示的就是價格彈性系數)。

bancor中涉及到的數學證明

在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,根據上面的公式定義,得到R = FSP,變換成之前的公式也就是

$$ P = frac{R}{SF} $$

當用戶想購買非常少數量的smart token,用dS表示,那么該用戶就需要支付PdS,而用戶正是connetor token作為支付貨幣,因此connector balance增加的dR = PdS。

這樣我們又得到了一個公式 (F是一個常量) :

$$ dR = d(FSP) = Fd(SP) = F(SdP + PdS) $$

繼續往下推導:

$$ P dS = dR = F(S dP + P dS) $$

$$ P dS(1 ? F) = FS dP $$

$$ P dS (frac{1}{F} - 1) = S dP $$

為了計算方便,繼續使得α = 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供應量、初始價格$P_0$和初始供應量$S_0$的基礎上,就可以推算出當前的Smart token的價格。

繼續,如果一個用戶想要買總量為T的smart token,這樣總供應量就會從$S_0$變為$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) $$

細心的同學可能已經發現了,這其實就等于之前提到的price-supply曲線從$S_0$到$S_0$+T這段區間曲線下的面積。

對F這個參數,也就是CW,還有一個很有趣的視角:

即圖中紫色部分的面積除以灰色部分的面積恰好等于CW。有興趣的同學可以自行驗證一下。這里貼出原貼地址:

https://forum.evolution.land/...

bancor協議的智能合約實現
注: bancor.network團隊已經實現了bancor協議的智能合約實現。

這里舉一個簡單的例子,以ETH和智能代幣的兌換為例,進行說明。

1. 用ETH買入Smart Token

當用戶想用1個eth來兌換一定量的智能代幣時,智能合約地執行步驟是:

connector接收1eth,并發行出等額的etherToken,注意這里的etherToken并不是ETH,而是和ETH保持1:1兌換關系的ERC20 TOKEN。

繼續用這些etherToken在bancor中經過計算得到一定數量的smart token,比如1w個smart token;

把這1w個smart token發行到用戶的地址下;(這里的發行指的其實是mint的過程)

在上面的例子中,ETHERTOKEN和SmartToken都是發行出來的,因此在之前的價格計算公式中,connector_balance和smart token"s supply都會變多。

再具體一些,在智能合約的具體實現中,connector又被拆分成兩個角色bancorConverterbancorNetwork,分別對應兩個智能合約,把上面的ETH兌換smartToken的操作進一步細化得到:

用戶發送1個ETH給bancorConverter,bancorConverter再把這1個ETH發送給bancorNetwork

bancorNetwork拿著這1個ETH在ETHERTOKEN存入ETHERTOKEN中,并給自己發行一個etherToken:

EtherToken.deposit(bancorNetwork, 1 * 10^18);

bancorNetwork把這1個etherToken發送給了bancorConverter;

bancorConverter里實現代幣兌換的計算,并把計算得到的一定數量的smartToken發行給bancorNetwork;

最后,bancorNetwork再把這一筆smartToken發送給用戶;

以上面的方式完成了ETH兌換smartToken的全過程。

下圖為ETH、etherToken以及smartToken的資金流向圖:

可以看到,ETH最后留在了ETHERTOKEN合約地址中;etherToken最后留在了bancorConverter合約地址中;而smartToken則流向了用戶。

2. 賣出smartToken換回ETH

這個過程比上一個更簡單:

用戶把想要賣出的smartToken發送給bancorNetwork

bancorConverter中銷毀bancorNetwork賬戶上相應數量的smartToken,并計算出smartToken對應多少數量的etherToken,然后把計算得到的etherToken從自己的地址轉移到bancorNetwork地址;

bancorNetwork再拿著得到的etherToken,去ethertoken的合約地址中兌換出等額的eth,并發送給用戶

下圖為賣出smartToken換回ETH中的資金流向圖:

可以看到,直接從用戶的賬戶上銷毀smartToken;而etherToken則從bancorConverter中流向bancorNetwork并最終銷毀;在完成上述過程中,則從ETHERTOKEN地址中把ETH還給用戶。

基于bancor的交易所封裝實現

bancor.network官方的github庫其實已經挺完善了,不過任何人想要使用換幣的邏輯就必須經過白名單的認可,換言之只有白名單中標記為true的地址才可以進行換幣行為,這樣對單個用戶很不友好,而bancor官方也并未給出交易所的智能合約實現,因此我們在bancor的基礎上又封裝了一個bancorExchange,用于實現特定幣種之間的兌換行為。

github地址:https://github.com/evolutionl...

在readme里列出了系列合約的kovan地址,大家可以自行測試。當然如果想親手部署一個bancor網絡的同學,我們也給出了詳細的部署步驟,網址如下:

https://github.com/evolutionl...

寫在最后

bancor plan是一個很棒的去中心化貨幣解決方案,雖然在幾十年前就被凱恩斯提出,但是因為中心化(政治)的原因被廢棄。感謝區塊鏈的興起,又把bancor帶回了大眾的視野,并在區塊鏈的技術支持下,得到了完全實現。

那么像bancor這樣曾經因為技術水平或者中心化組織出于自身利益被廢棄卻很棒的提議,是否都可以隨著區塊鏈的普及而復活,從而為整個世界帶來更有效率地運行方式?

筆者這里想拋磚引玉,就拿我們目前最熟悉的DAO來說,就是區塊鏈世界中代替企業的一種存在。

科斯在「社會成本問題」中曾經探討過產權界定和資源配置有效性的問題,他認為:

在交易費用為0時,不管產權屬于誰,資源都會落到最有價值的用途上;

在交易費用大于0時,產權的界定有利于提升效率;

而受限于技術水平,科斯認為企業是唯一降低交易費用的方式,因為企業替代了市場的作用,企業的本質就是對價格機制的替代。價格機制的運行本身也是有成本的,市場運行本身也存在費用,企業的存在就是通過管理協調替市場降低成本的必然結果。

而張五常在「經濟的解釋」中則更進一步地提出,市場只要合約就可以了,企業只是合約的特殊表現形式。是用一種叫“企業”的長期合約替代了“市場”的一系列短期合約的方式來節省交易費用的結果。

很顯然,基于區塊鏈和智能合約,已經發展除了初級的DAO組織,這些DAO就是以一種「新的合約」代替「企業」這種合約。在某種程度上已經實現了松散的協調自制;未來DAO在市場資源配置上,是否可以既代替企業實現更有效率的資源分配,在網絡價值傳遞中,又可以超越企業的科層制的傳播實現更廣泛更高效的價值互聯呢?

期待更多像bancor.network這樣優秀的項目,幫助我們在實現去中心化價值傳遞的道路上走的更遠。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24294.html

相關文章

  • FIBOS 簡介

    摘要:簡介是一個結合以及的的運行平臺,它使得提供可編程性,并允許使用編寫智能合約。編寫的合約可以通過打包腳本,壓縮文件極大的降低部署發布成本。的合約使用編寫并且全部開源,方便社區審計,迅速形成共識。 FIBOS 簡介 FIBOS 是一個結合 FIBJS 以及 EOS 的 JavaScript 的運行平臺,它使得 EOS 提供可編程性,并允許使用 JavaScript 編寫智能合約。 Jav...

    Caicloud 評論0 收藏0
  • FIBOS 簡介

    摘要:簡介是一個結合以及的的運行平臺,它使得提供可編程性,并允許使用編寫智能合約。編寫的合約可以通過打包腳本,壓縮文件極大的降低部署發布成本。的合約使用編寫并且全部開源,方便社區審計,迅速形成共識。 FIBOS 簡介 FIBOS 是一個結合 FIBJS 以及 EOS 的 JavaScript 的運行平臺,它使得 EOS 提供可編程性,并允許使用 JavaScript 編寫智能合約。 Jav...

    mykurisu 評論0 收藏0
  • EOS內存即RAM如何買賣

    摘要:多索引數據庫是中的一種數據結構,它根據范圍的定義方式提供存儲數據的靈活性。例如,每個帳戶已存儲在合約中定義的多索引數據庫中的數,該合約由定義范圍的每個帳戶的一小塊組成。 對于EOS RAM的來說什么最重要呢?我們經常在每天的數字貨幣和區塊鏈相關新聞中看到EOS旁邊的RAM這個詞,但是無論如何我們應該關注它的價格,為什么要關注它的價格,即使是那些只想深入了解智能合約開發的人也需要這樣嗎?...

    ShevaKuilin 評論0 收藏0
  • 剝開區塊鏈堅果——FIBOS遠航分享

    摘要:月日下午,南京區塊鏈社群聯盟在南京審計大學舉辦主題為南京區塊鏈社群聯盟高校行的活動。同學們對遠航解析的區塊鏈共識機制,智能合約以及較的優越性非常感興趣,紛紛舉手與遠航老師互動?;顒又?,遠航在剝開區塊鏈的堅果主題分享中介紹了鏈是如何形成的。 12月16日下午,BCCN南京區塊鏈社群聯盟在南京審計大學舉辦主題為南京區塊鏈社群聯盟高校行的活動。FIBOS 團隊金牌講師遠航在活動中對區塊鏈的形...

    iflove 評論0 收藏0
  • 剝開區塊鏈堅果——FIBOS遠航分享

    摘要:月日下午,南京區塊鏈社群聯盟在南京審計大學舉辦主題為南京區塊鏈社群聯盟高校行的活動。同學們對遠航解析的區塊鏈共識機制,智能合約以及較的優越性非常感興趣,紛紛舉手與遠航老師互動?;顒又?,遠航在剝開區塊鏈的堅果主題分享中介紹了鏈是如何形成的。 12月16日下午,BCCN南京區塊鏈社群聯盟在南京審計大學舉辦主題為南京區塊鏈社群聯盟高校行的活動。FIBOS 團隊金牌講師遠航在活動中對區塊鏈的形...

    xfee 評論0 收藏0

發表評論

0條評論

Lsnsh

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<