一、摘要算法
經過本文學習,能夠得到如下目標: 1)瞭解BANNCOR協議的基本原理; 2)經過舉例熟悉BANNCOR算法的效果。網絡
二、BANCOR算法的來源分佈式
在20世紀40年代,英國經濟學家凱恩斯提出採用30種有表明性的商品做爲價值錨定發行國際貨幣Bancor的構想。而其餘國家或機構再以Bancor爲價值錨定發行各自的貨幣。然而這一方案沒有獲得實施,取而代之的是美圓成爲國際貨幣。學習
Bancor算法可以真正進入大衆的視野裏,可能要歸功於EOS項目。因爲EOS項目在RAM分配中採用了優化後的Bancor算法,並將RAM的價格爆炒到了很高的價位,憑藉EOS項目在區塊鏈領域的強大運營宣傳能力與影響力,Bancor算法廣爲流傳。區塊鏈
三、BANCOR協議的基本思路優化
在以太坊上發行的大量ERC20-Token是沒有價值錨定的,其價值徹底依賴於項目方的技術與運營能力,若項目失敗了,則通證(TOKEN)價值就極可能歸零。 若利用智能合約的強大而靈活的「資金流轉控制」能力,在通證合約中控制着必定量的儲備金,讓通證與儲備金之間擁有必定的兌換能力,那麼Token的價值就能夠儲備金爲鏈接器代幣,而不徹底依賴於項目方。通證持有者也就不用承擔項目失敗或者項目方可能詐騙跑路的風險。ui
在以太坊平臺上,顯然ETH的價值與公信力最大,是最佳的儲備金與鏈接器代幣(Connector,又稱錨定物),不過其餘有價值的通證也能夠做爲鏈接器代幣,並且鏈接器代幣能夠有多個。加密
若通證與鏈接器代幣之間的兌換算法採用了Bancor算法,又符合ERC20標準,則被稱爲智能通證(Smart-Token) 。爲了簡單起見,如下的論述以ETH做爲鏈接器代幣舉例說明。購買與售賣Token的過程以下:.net
若AToken與BToken都是以ETH爲鏈接器代幣的智能通證,那麼Token持有者無需經過交易所,僅僅憑藉智能合約提供的買賣與兌換功能,就能實現AToken與BToken的自由兌換,好比AToken–>ETH–>BToken,多種智能通證之間經過共同的鏈接器代幣串接起來,就造成了一個價值網絡(Bancor Network)。3d
用於去中心化流動性的 Bancor 網絡能夠做爲中心化交易所的替代,用於鏈接到網絡中的任何代幣,並帶來諸多積極意義。例如,一個帶有兩個鏈接器的智能代幣,其 CW 值爲 100%,其功能相似於去中心化代幣交易對。咱們將這種智能代幣稱爲中繼代幣。中繼代幣容許用戶經過一個即時的兩步過程在兩個鏈接的代幣之間進行轉換,即便用其中一個鏈接器代幣購買中繼代幣,而後當即將其出售給另外一個鏈接的代幣。因爲訂價算法,這將致使中繼代幣相對於鏈接器代幣的價格上升(因爲購買),和中繼代幣相對於鏈接器代幣的價格降低(因爲出售),這與預期徹底一致。如前所述,中繼代幣的掛牌價格不太可能長久地與外部交易所中任何一個鏈接器代幣的價格明顯抵觸,由於套利機會鼓勵套利者在中繼代幣相對於鏈接器代幣的價格與其在其餘市場上的價格趨於相同。這種特殊的智能代幣配置容許不符合 Bancor 協議的現有標準代幣(沒有鏈接器)也能夠向後兼容(換句話說,經過中繼代幣與網絡中的每一個代幣進行轉換),從而加強了可行性並接觸到流動性網絡。
四、BANCOR的計算公式和舉例
4.1 BANCOR的基本計算公式
計算公式涉及多個參數,解釋以下:
計算公式以下:
舉例:若當前AToken的發行量爲1000,報價爲0.5個ETH兌換1個AToken,那麼AToken的總價值爲500個ETH,可是儲備金餘額可能並無500個ETH,好比爲250個ETH,那麼CW則爲0.5(50%)。
4.2 Token買入計算公式及舉例
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的報價。
4.3 Token賣出計算公式及舉例
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。
bancor_protocol_whitepaper_en.pdf 白皮書的公式以下:
咱們代入舉例場景看看結果是否一致?
ETH_Return = 250 * ((1+ 1000/(2000-1000)) ^ (1 /0.5) – 1 )= 750 個; 若是代幣餘額和總供應量取交易發生後的結果數量,則這2個公式的計算結果是一致的。 ETH_Return = 1000 * ((1+ 1000/2000) ^ (1 /0.5) – 1 )= 1250 個; 若是代幣餘額和總供應量取交易發生前的結果數量,則結果明顯是錯誤的。因此,輝哥認爲白皮書的公式描述不夠嚴謹。
五、BANCOR不一樣鏈接器權重與供需關係分析
圖1顯示了智能代幣的價格,對CW的不一樣值的變化。簡要討論一下插圖案例:
【輝哥備註】 Supply – 智能代幣的結餘供應量【Smart Token’s Supply】,是指鏈接器外全部用戶持有的智能代幣總量。 Quoted Price – 智能代幣的報價【Smart Token’s Price 】 實際上,用3.1的公式是沒法實現價格的平滑處理的,實際公式爲3.3下一章的微積分公式。
(a)第一種狀況是CW = 100%,在這種狀況下,無論需求如何變化,智能代幣的價格徹底跟隨於鏈接代幣準備金的變化,二者的相對值不會發生變化。價格實際上與其鏈接代幣的準備金掛鉤,智能代幣成爲該值的一種代理。這能夠比做金本位,一種貨幣制度,發行機構承諾將貨幣兌換成必定數量的黃金。例如,直到1971年,美圓一直以每盎司35美圓的匯率盯住黃金。
(b)第二個線性狀況是CW = 50%,其中智能代幣價格隨供應量線性移動(隨着鏈接器準備金而增加或收縮)。 當智能代幣的需求較低時(即當出售量大於購買量時),智能代幣價格會降低;當需求量較高時(即當購買量大於出售量時),智能代幣價格會上漲。這種關係是供求關係的典型運做方式,惟一的例外是,智能貨幣的供應不是固定的,而是由需求決定的,並且在價格上漲時也不會稀釋單位價格。
【輝哥備註】從智能合約買智能代幣的量 > 當賣智能代幣給智能合約的量時,就是需 > 供(從智能合約外部用戶的視角),Supply上升,智能代幣的價格線性上升。
(C) 第三個非線性的例子是,CW在0%到50%之間,這顯示了價格和供給之間的類似增加關係,可是隨着供給的增長,價格曲線增加得更加迅猛。圖表顯示了CW = 10%的特訂價格曲線。低於10%的CW會比這個反應更強烈(更尖銳的指數曲線),而高於10%的CW會隨着接近50%而相對地趨於線性(b)。
(D)最後一種非線性狀況,CW在50%到100%之間,其中價格和供應之間的增加關係曲線增加力度不及(b),這意味着智能代幣的價格對供應變化的反應愈來愈少,直到達到咱們在(a)中看到的持平的100%關係。具體圖表顯示了CW = 90%的價格曲線。
從理論上講,智能代幣也可能具備大於100%的CW,可是,這是代幣隨着需求增長而變得更便宜的特定狀況,而且超出了本討論的範圍。
六、BANCOR常見問題和解答
6.1 智能代幣,鏈接器代幣 的定義和區別
【智能代幣(Smart Tokens )】 智能代幣是Bancor協議的核心。它們的運做相似於常規代幣,在ETH區塊鏈上使用的符合ERC20標準[5],但也要包含額外的邏輯,即容許用戶經過它的智能合約直接購買和出售代幣,價格經過程序自動調整以反映供求關係。實際上,智能代幣擁有一種內置的流動性機制,確保它們能夠持續地爲兌換爲其餘代幣。 【智能代幣鏈接器(Smart Token connectors)】 智能代幣鏈接器能夠被視爲分佈式、自主、透明和可預測的作市商,而不是交易所。智能代幣經過程序自動調整它們的價格,來管理它們的鏈接器準備金,以保持它們與智能代幣的總市值之間的比率是恆定的。 【錨定代幣(connected token)】 每一個智能代幣都配置了鏈接器模塊,這些模塊持有它鏈接的另外一個代幣做爲準備金(例如,BNT智能代幣有一個鏈接到ETH的鏈接器,它持有ETH做爲準備金)。ETH此時就是鏈接器代幣。 【代幣網絡(token network)】 智能代幣能夠實現本身和它們的鏈接代幣之間進行即時兌換。這個功能足以使智能代幣即時兌換爲必定數量的以相似的方式鏈接到同一網絡的任何其餘代幣。經過這種方式,智能代幣能夠鏈接到無限數量的代幣,從而建立一個分佈式的流動性網絡,該網絡可能由數百萬個代幣組成,這些代幣均可以以不斷計算的價格自動地相互兌換。 【中繼代幣(Relay Token)】 具備兩個鏈接器的智能代幣,其總CW剛好爲100%,其功能相似於分佈式代幣兌換幣對。中繼代幣容許用戶在兩個鏈接代幣之間互相兌換,經過兩步操做實現,即購買一種代幣,當即出售另一種代幣。 【流動性代幣(Liquid Tokens)】 具備組合鏈接器總權重低於100%(更典型的低於20%)的智能代幣成爲流動性代幣。可能有一個或者多個鏈接器。例如,BTN具備單個權重爲10%的ETH鏈接器。流動性代幣可使用鏈接器代幣買賣(使用Bancor公式計算它相對於鏈接代幣的價格),而且能夠自適應調節供應量,在購買時增長,出售時減小。 【代理代幣(Proxy Token)】 具備一個鏈接器佔100%權重的智能代幣。 【組合代幣(Array Token)】 具備三個或者更多鏈接器權重爲100%的智能代幣。 【糖果代幣(Bounty Tokens)】 具備單個還沒有激活鏈接器的智能代幣(當前鏈接器準備金爲0),能夠向早起持有者(例如社區支持者)發放未來會發行的代幣。 【網絡代幣(Network Tokens)】 由多個(>2)智能代幣持有做爲鏈接代幣的智能代幣,BNT就是一個網絡代幣,也是一個流動性代幣。
6.2 BANCOR生態系統角色
【交易者】 持有、兌換和支付智能代幣的終端用戶 【智能代幣發行者】 發行智能代幣,配置初始供應量、價格、鏈接器權重CW和管理智能代幣初始發行的人員、公司、社區、組織或基金會。還包括將現有ERC20代幣鏈接到Bancor網絡的中繼代幣的建立者。 【資產代幣化者】 將代理代幣或者組合代幣映射到實體資產或者其餘區塊鏈上代幣的建立者。這容許智能代幣鏈接到更普遍的資產,如比特幣、法訂貨幣、黃金或其餘新興的區塊鏈代幣。 【套利者】 監控Bancor流動性網絡與外部交易所或者其餘智能代幣的價格,而且經過套利消除價差的交易者。套利者經過消除價差得到獎勵,所以是Bancor生態系統的重要參與者。有關Bancor協議中套利機制的進一步說明,請參見第3.6節。
七、參考
(1)【超越白皮書4】Bancor 算法的數學、經濟學解析與參數測算 (2)bancor.network官網 (3)10張圖帶你看懂Bancor協議 (4)【白皮書】Bancor協議:經過智能合約爲加密貨幣提供持續流動性(附PDF下載)(5)EOS「帶貨」Bancor算法,但大多數人並未真正讀懂它 (6)【TokenClub研究院】Bancor協議研究報告
稿源:巴比特資訊(https://www.8btc.com/article/314706)