「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現

1,活動基本信息

1)題目:

【區塊鏈技術工坊22期】BANCOR算法詳解及代碼實現

2)議題:

1)BANCOR算法的特點和優劣勢

2)BANCOR算法和舉例

3)如何加入BANCOR.NETWORK交易所

4)如何開發自己的BANCOR去中心化交易平臺?

3)嘉賓:


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


創業股平臺 CTO,尖晶技術賦能中心副總經理, HiBlock技術

社群上海合夥人,電子科技大學碩士畢業, 10年華為/中興 產品.研發經驗,深耕區塊鏈應用。

4)活動定位

  • 由HiBlock,創業股平臺和兄弟區塊鏈社群共同主辦的區塊鏈技術工坊,深度分享區塊鏈知識,實現小會技術交友。區塊鏈技術工坊堅持4F原則:Frency - 每週三晚上一次;
  • Focus - 聚焦區塊鏈技術分享;
  • Fun - 20人以內會前做自我介紹,分享有深度的技術內容,技術交友;
  • Feedback - 會後有活動總結和合影照片。

2,分享實錄


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現



「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


目前小規模通證交易痛點:

  • 數字貨幣市場形成長尾效應,缺乏流動性,無法形成成交。
  • 交易所上幣成本高,項目方容易被收割,新代幣在交易所上幣是需要一筆不小的啟動費用的。
  • 交易存在暗箱操作可能,用戶容易被收割


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


1,沒有對手風險,所有的交易都是人機交易,買家不需要去找賣家,賣家不需要去找買家,交易信息公開透明。

2,不同於中心化交易所的撮合定價,BANCOR協議的定價是根據真實供需公式定價公開透明可預測;

3,沒有競價這個環節,不依賴流動性。刷單,刷交易量,刷淨流入,淨流出等操作都是無意義的。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


1 輕鬆創建 Token

Bancor 使創建數字資產變得更容易,解放用戶生成 Token 的巨大潛力。這些token 還提供便宜的訪問服務,這些服務之前都是很昂貴的,或者其他方式無法訪問的。

2 模塊化工具包

Bancor 協議建立了唯一的標準從而使多種應用場景變得可能。由於智能代幣能夠將其他智能代幣作為儲備,它們可以被用來作為新的金融,銀行或其他貨幣解決方案的模塊,這些模塊能夠向它們自己乃至整個生態系統傳遞價值。

3 嵌套估值

通過在儲備中持有一個預先存在的代幣,智能代幣與相關資產有一個預先的估值。因此,由於與這些預先儲備的代幣的聯繫,智能代幣的建立,或直接或間接的與更大的價值相連接(這些預先存在的代幣所代表的價值)。生態系統的長期演變是開放的,對於 Bancor 協議來說,網絡可能會設定它們對投機或波動性的偏好。

4 互聯的框架

通過幫助一些非常小的實體和網絡在無須犧牲個體獨特性的前提下共享和交換資源,智能代幣使它們連接成一個更大的網絡。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


1 連續流動性

用戶總能通過智能合約在網絡中直接購買或出售代幣,即便市場中只有很少或者沒有其他買家或賣家。因為價格會根據兌換規模進行調整,所以總可以使用特定價格來兌換代幣。Bancor 協議有效地使得流動性與交易量脫鉤。

2 沒有內置手續費

默認情況下,智能代幣不會對它們執行的兌換收取費用。用戶承擔的唯一費用是處理下層區塊鏈易所需的費用(例如,以太坊的 gas)。雖然智能代幣的發行者可能為通過他們的特定智能代幣進行的兌換設定可選的使用費(稱為捐贈)。

Bancor 協議不會為了獲取運營利潤而收取兌換費用,而是從代幣網絡的擴展以及用戶數量的增長中獲利。

3 可調整的價格敏感度

大量連接器餘額和高權重的帶來的影響,是使得智能代幣價格對大宗交易導致的短期投機和價格波動更不敏感。例如,一個 CW 為 10%的智能代幣,相當於交易所裡一個佔代幣市值 10%的訂單。這種靈敏度可以通過 CW 和連接器餘額進行調

整,以實現特定智能代幣的預期配置。

4 沒有價差

Bancor 公式在處理買單和賣單時使用同樣的價格計算方法。這與傳統交易所不同,傳統交易所的買入價格總是低於賣出價格。買賣價差,即所謂的價差,是傳統的做市商賺取利潤的原因。如上所述,Bancor 協議不會為了運營而獲得這種利潤,

另外為了鼓勵採用該網絡,可能會引入去中心化的價差,從而使所有參與者受益。

5 價格可預測

智能代幣的價格算法是完全透明的,允許用戶在執行兌換之前預先計算他們想要兌換的有效價格。這與傳統的以訂單為基礎的交易所形成了鮮明對比,在傳統交易所,大量訂單可能導致價格不可預測地下滑至明顯不同的水平。

6 兼容 ERC20

智能代幣是與 ERC20 兼容的代幣(儘管具備額外的功能),它們與現有的代幣應用程序(如錢包或 DApp)無縫集成,因為它們符合流行的 ERC20 代幣標準。此外,任何現有的 ERC20 標準代幣都可以通過帶有連接器的智能代幣連接到

Bancor 網絡,這使得 Bancor 協議向後兼容現有的 ERC20 代幣。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


5.3.2.1 單點失效

對於 Bancor 協議建立的去中心化交易所,都是用代幣合約來處理交易。雖然說明面上是去中心化交易所,但是需要在合約中設立超級管理員權限。當有賬戶存在超級管理員權限時,整個代幣生態極容易發生單點失效。超級管理員權限是把雙刃劍。在 Bancor 事件中,黑客利用了管理員權限盜取代幣,而項目方也正利用了管理員權限來降低損失。不過我們認為,開發者依然可以通過良好的代碼設計來降低代幣和協議合約對管理員的依賴。

5.3.2.2 犧牲交易深度

Bancor 協議的問題是價格曲線調節參數完全受項目方控制,參與而且鼓勵價格投機,越早買入的人越容易獲利。買盤能夠推高價格,同時買盤也會降低價格,一旦曲線上升停滯容易發生「踩踏」造成較大的波動。所謂犧牲深度帶來流動性。

5.3.2.5 參數被操控問題

Bancor 算法根據參數 CW 的不同,以及構造關係不同,會產生不同的數學圖形,或槓桿效果。比如常見的四類圖形,如 3.2.2 節 4 張圖所示。市場對價格變化的預期幾乎完全基於 CW,因為它決定了價格曲線。那麼如果項目中途改變 CW 參數呢?RAM 和 FIBOS 項目都發生過這一的情況,只不過一個是簡單粗暴,一個是有其他參數配合的「合理解釋」的。這類風險也是目前 Bancor 協議投資者面臨的最大風險。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現



「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現



「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


4.1 BANCOR的基本計算公式

計算公式涉及多個參數,解釋如下:

Token的供應量【Smart Token's Supply】,簡稱Supply;

Token的價格【Smart Token's Price 】,簡稱Price;

Token的總市值【Smart Token's Total Value】,簡稱TotalValue;

儲備金餘額【Connector Balance】,簡稱Balance;

儲備金固定比率【Connector Weight】,簡稱CW。

計算公式如下:

CW = Balance / TotalValue = Connector Balance / Smart Token's Value;

TotalValue = Price * Supply = Smart Token's Price * Smart Token's Supply ;

Price = Balance /(Supply * CW)= Connector Balance / (Smart Token's Supply * Connector Weight)

舉例:若當前AToken的發行量為1000,報價為0.5個ETH兌換1個AToken,那麼AToken的總價值為500個ETH,但是儲備金餘額可能並沒有500個ETH,比如為250個ETH,那麼CW則為0.5(50%)。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現



「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


Token買入計算公式:

Token_Return = Supply *((1 + ETH_Paid / Balance)^ CW - 1)

舉例:若當前AToken的發行量為1000,儲備金餘額為250個ETH,CW為0.5,那麼當前的報價則為0.5個ETH兌換1個AToken;現在Bob想花750個ETH購買AToken,帶入公式:Token_Return = 1000 *((1 + 750 / 250)^ 0.5 - 1)= 1000

即Bob花了750個ETH購買了1000個AToken,本次購買的平均價格為0.75個ETH兌換1個AToken,比初始報價已經高了許多。Bob的購買行為推高了AToken的報價。若Bob接著購買同樣數量的AToken,則需要付出更多的ETH代價,每一筆購買都會繼續推高AToken的報價。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


Token賣出計算公式:

ETH_Return = Balance *(1 - (1 - Token_Paid / Supply)^ (1 / CW))

舉例:在Bob的那筆交易完成後,AToken的發行總量為2000個,儲備金餘額為1000個ETH,CW維持不變、仍然為0.5,那麼通過公式可以計算當前的報價為1個ETH兌換1個AToken;現在Alice想賣掉1000個AToken,帶入公式:ETH_Return = 1000 *(1 - (1 - 1000 / 2000)^ (1 /0.5))= 750

即Alice 賣掉了1000個AToken,獲得了750個ETH,本次購買的平均價格為0.75個ETH兌換1個AToken。因為Bob的購買行為推高了AToken的報價,而Alice是在Bob的購買行為之後賣掉了AToken,所以Alice賣到了相對較高的價位。假如沒有Bob的購買行為,回到AToken的供應量為1000的那個時候,Alice賣掉全部的AToken,也只能獲得250個ETH。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現



「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


網址: https://www.bancor.network/communities/5a174bc0171b0100018276b3/currency

「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


核心點為需要存入10萬美元等值的BNT智能代幣。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現



「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


1000個CLOB可以兌換多少個TKN1?

SmartTokenAmount = SmartTokenTokenSupply *((1 + ConnectorToken / ConnectorTokenBalance)^ CW - 1)�= 1000 * (( 1 + 1000 / 90000 )^ 0.9 - 1 )�=?9.99446694706181297191051400502(個TNK1)


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現



「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


9.994466947個TKN1可以兌換多少個ETH呢?

connectorTokenAmount = ConnectorTokenBalance *(1 - (1 - SmartTokenAmount / SmartTokenTokenSupply)^ (1 / CW) )

connectorTokenAmount = 10 * (1 - (1 - (9.994466947 / (1000 + 9.994466947)))^ (1 / 0.1) )�= 10 * (1 - (1 - (9.994466947 / (1000 + 9.994466947)))^ (1 / 0.1) )�= 10 * (1 - (1 - (0.00989556603929837667128805564395))^ (1 / 0.1) )�= 10 * (1 - (1 - (0.00989556603929837667128805564395))^ (1 / 0.1) )�= 10 * (1 - 0.99010443396070162332871194435605 ^ 10 )�= 10 * (1 - 0.90533655025365121589722721359431)�=?0.94663449746348784102772786405694(個ETH)

兌換結論:1000個CLB可以兌換0.946個ETH

按照假設的市價,兩者的價值均為1000元左右,符合期望。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


省略運行部分。


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


參考記錄文章:https://www.jianshu.com/p/9fc78f8f5773

「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


【白皮書】Bancor協議:通過智能合約為加密貨幣提供持續流動性(附PDF下載)

https://www.jianshu.com/p/cbfb9abf8e07

【易錯概念】以實例形式深入淺出講透BANCOR算法

https://www.jianshu.com/p/fe48ed1f38cd

第二十四課 基於以太坊的交易所BANCOR算法實現-轉換算法框架

https://www.jianshu.com/p/875ba83002dc

第二十五課 如何開發自己的BANCOR去中心化交易平臺?

https://www.jianshu.com/p/9fc78f8f5773

第二十七課 如何從BANCOR交易所兌換ENJIN通證

https://www.jianshu.com/p/617103393dc6

「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


本次活動照片:


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


本次實錄紀要由ELLA小姐姐記錄,轉發務必註明出處及本段信息。

3,下期活動宣傳

1)題目:

【區塊鏈技術工坊23期】工業互聯網領域的邊緣計算與區塊鏈實踐

2)議題:

1) 智能製造與工業互聯網場景簡介簡介。

2) 區塊鏈技術在工業互聯網領域的作用。

3) 基於邊緣計算設計思想實現BaaS服務能力。

4) 測試床場景中的實際應用

3)嘉賓:


「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現


郝振亞,億喆網絡技術總監,13年IT經驗,參與工信部區塊鏈參考架構草案和評審,區塊鏈技術白皮書編寫。4)時間/地點:

2018-11-14(週三晚上) 18:30 / 上海徐彙區龍華中路596號

**5)活動流程

http://www.hdb.com/party/9pi2n.html

「區塊鏈技術工坊22期實錄」王登輝:BANCOR算法詳解及代碼實現




分享到:


相關文章: