1)主題:【區塊鏈技術工坊22期】BANCOR算法詳解及代碼實現算法
2)議題:微信
BANCOR算法的特色和優劣勢網絡
BANCOR算法和舉例框架
如何加入BANCOR.NETWORK交易所模塊化
如何開發本身的BANCOR去中心化交易平臺?工具
3)嘉賓:學習
王登輝區塊鏈
創業股平臺 CTO,尖晶技術賦能中心副總經理, HiBlock區塊鏈社區上海合夥人,電子科技大學碩士畢業, 10年華爲/中興 產品.研發經驗,深耕區塊鏈應用。加密
4)活動定位.net
由HiBlock、創業股平臺和兄弟區塊鏈社羣共同主辦的區塊鏈技術工坊,深度分享區塊鏈知識,實現小會技術交友。區塊鏈技術工坊堅持4F原則:
Frency - 每週三晚上一次;
Focus - 聚焦區塊鏈技術分享;
Fun - 20人之內會前作自我介紹,分享有深度的技術內容,技術交友;
Feedback - 會後有活動總結和合影照片。
目前小規模通證交易痛點:
數字貨幣市場造成長尾效應,缺少流動性,沒法造成成交。
交易所上幣成本高,項目方容易被收割,新代幣在交易所上幣是須要一筆不小的啓動費用的。
交易存在暗箱操做可能,用戶容易被收割
沒有對手風險,全部的交易都是人機交易,買家不須要去找賣家,賣家不須要去找買家,交易信息公開透明。
不一樣於中心化交易所的撮合訂價,BANCOR協議的訂價是根據真實供需公式訂價公開透明可預測;
沒有競價這個環節,不依賴流動性。刷單,刷交易量,刷淨流入,淨流出等操做都是無心義的。
輕鬆建立 Token
Bancor 使建立數字資產變得更容易,解放用戶生成 Token 的巨大潛力。這些token 還提供便宜的訪問服務,這些服務以前都是很昂貴的,或者其餘方式沒法訪問的。
模塊化工具包
Bancor 協議創建了惟一的標準從而使多種應用場景變得可能。因爲智能代幣可以將其餘智能代幣做爲儲備,它們能夠被用來做爲新的金融,銀行或其餘貨幣解決方案的模塊,這些模塊可以向它們本身乃至整個生態系統傳遞價值。
嵌套估值
經過在儲備中持有一個預先存在的代幣,智能代幣與相關資產有一個預先的估值。所以,因爲與這些預先儲備的代幣的聯繫,智能代幣的創建,或直接或間接的與更大的價值相鏈接(這些預先存在的代幣所表明的價值)。生態系統的長期演變是開放的,對於 Bancor 協議來講,網絡可能會設定它們對投機或波動性的偏好。
互聯的框架
經過幫助一些很是小的實體和網絡在無須犧牲個體獨特性的前提下共享和交換資源,智能代幣使它們鏈接成一個更大的網絡。
連續流動性
用戶總能經過智能合約在網絡中直接購買或出售代幣,即使市場中只有不多或者沒有其餘買家或賣家。由於價格會根據兌換規模進行調整,因此總可使用特訂價格來兌換代幣。Bancor 協議有效地使得流動性與交易量脫鉤。
沒有內置手續費
默認狀況下,智能代幣不會對它們執行的兌換收取費用。用戶承擔的惟一費用是處理下層區塊鏈易所需的費用(例如,以太坊的 gas)。雖然智能代幣的發行者可能爲經過他們的特定智能代幣進行的兌換設定可選的使用費(稱爲捐贈)。
Bancor 協議不會爲了獲取運營利潤而收取兌換費用,而是從代幣網絡的擴展以及用戶數量的增加中獲利。
可調整的價格敏感度
大量鏈接器餘額和高權重的帶來的影響,是使得智能代幣價格對大宗交易致使的短時間投機和價格波動更不敏感。例如,一個 CW 爲 10%的智能代幣,至關於交易所裏一個佔代幣市值 10%的訂單。這種靈敏度能夠經過 CW 和鏈接器餘額進行調整,以實現特定智能代幣的預期配置。
沒有價差
Bancor 公式在處理買單和賣單時使用一樣的價格計算方法。這與傳統交易所不一樣,傳統交易所的買入價格老是低於賣出價格。買賣價差,即所謂的價差,是傳統的作市商賺取利潤的緣由。如上所述,Bancor 協議不會爲了運營而得到這種利潤,另外爲了鼓勵採用該網絡,可能會引入去中心化的價差,從而使全部參與者受益。
價格可預測
智能代幣的價格算法是徹底透明的,容許用戶在執行兌換以前預先計算他們想要兌換的有效價格。這與傳統的以訂單爲基礎的交易所造成了鮮明對比,在傳統交易所,大量訂單可能致使價格不可預測地下滑至明顯不一樣的水平。
兼容 ERC20
智能代幣是與 ERC20 兼容的代幣(儘管具有額外的功能),它們與現有的代幣應用程序(如錢包或 DApp)無縫集成,由於它們符合流行的 ERC20 代幣標準。此外,任何現有的 ERC20 標準代幣均可以經過帶有鏈接器的智能代幣鏈接到Bancor 網絡,這使得 Bancor 協議向後兼容現有的 ERC20 代幣。
單點失效 對於 Bancor 協議創建的去中心化交易所,都是用代幣合約來處理交易。雖說明面上是去中心化交易所,可是須要在合約中設立超級管理員權限。當有帳戶存在超級管理員權限時,整個代幣生態極容易發生單點失效。超級管理員權限是把雙刃劍。在 Bancor 事件中,黑客利用了管理員權限盜取代幣,而項目方也正利用了管理員權限來下降損失。不過咱們認爲,開發者依然能夠經過良好的代碼設計來下降代幣和協議合約對管理員的依賴。
犧牲交易深度 Bancor 協議的問題是價格曲線調節參數徹底受項目方控制,參與並且鼓勵價格投機,越早買入的人越容易獲利。買盤可以推高價格,同時買盤也會下降價格,一旦曲線上升停滯容易發生「踩踏」形成較大的波動。所謂犧牲深度帶來流動性。
參數被操控問題 Bancor 算法根據參數 CW 的不一樣,以及構造關係不一樣,會產生不一樣的數學圖形,或槓桿效果。好比常見的四類圖形,如 3.2.2 節 4 張圖所示。市場對價格變化的預期幾乎徹底基於 CW,由於它決定了價格曲線。那麼若是項目中途改變 CW 參數呢?RAM 和 FIBOS 項目都發生過這一的狀況,只不過一個是簡單粗暴,一個是有其餘參數配合的「合理解釋」的。這類風險也是目前 Bancor 協議投資者面臨的最大風險。
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%)。
Token買入計算公式:
舉例:若當前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的報價。
Token賣出計算公式:
舉例:在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。
網址: https://www.bancor.network/communities/5a174bc0171b0100018276b3/currency
核心點爲須要存入10萬美圓等值的BNT智能代幣。
1000個CLOB能夠兌換多少個TKN1? SmartTokenAmount = SmartTokenTokenSupply *((1 + ConnectorToken / ConnectorTokenBalance)^ CW - 1)�= 1000 * (( 1 + 1000 / 90000 )^ 0.9 - 1 )�=?9.99446694706181297191051400502(個TNK1)
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元左右,符合指望。
省略運行部分。
參考記錄文章:
【白皮書】Bancor協議:經過智能合約爲加密貨幣提供持續流動性(附PDF下載)
【易錯概念】以實例形式深刻淺出講透BANCOR算法
如何從BANCOR交易所兌換ENJIN通證:https://www.jianshu.com/p/617103393dc6
本次活動照片:
本文做者:HiBlock區塊鏈技術佈道羣-輝哥
原文發佈於簡書
整理:Ella
加微信baobaotalk_com,加入技術佈道羣
下期活動預告: