當前位置:
首頁 > 新聞 > 深入淺出講解BANCOR演算法

深入淺出講解BANCOR演算法

1、摘要

通過本文學習,可以獲得以下目標:

1)了解BANNCOR協議的基本原理;

2)通過舉例熟悉BANNCOR演算法的效果。


2、BANCOR演算法的來源

在20世紀40年代,英國經濟學家凱恩斯提出採用30種有代表性的商品作為價值錨定發行國際貨幣Bancor的構想。而其他國家或機構再以Bancor為價值錨定發行各自的貨幣。然而這一方案沒有得到實施,取而代之的是美元成為國際貨幣。

Bancor演算法能夠真正進入大眾的視野里,可能要歸功於EOS項目。由於EOS項目在RAM分配中採用了優化後的Bancor演算法,並將RAM的價格爆炒到了很高的價位,憑藉EOS項目在區塊鏈領域的強大運營宣傳能力與影響力,Bancor演算法廣為流傳。

3、BANCOR協議的基本思路

在以太坊上發行的大量ERC20-Token是沒有價值錨定的,其價值完全依賴於項目方的技術與運營能力,若項目失敗了,則通證(TOKEN)價值就很可能歸零。

若利用智能合約的強大而靈活的「資金流轉控制」能力,在通證合約中控制著一定量的儲備金,讓通證與儲備金之間擁有一定的兌換能力,那麼Token的價值就可以儲備金為連接器代幣,而不完全依賴於項目方。通證持有者也就不用承擔項目失敗或者項目方可能詐騙跑路的風險。

在以太坊平台上,顯然ETH的價值與公信力最大,是最佳的儲備金與連接器代幣(Connector,又稱錨定物),不過其他有價值的通證也可以作為連接器代幣,而且連接器代幣可以有多個。

若通證與連接器代幣之間的兌換演算法採用了Bancor演算法,又符合ERC20標準,則被稱為智能通證(Smart-Token) 。為了簡單起見,以下的論述以ETH作為連接器代幣舉例說明。購買與售賣Token的過程如下:

「購買者」發送一定量的ETH到Token合約地址,觸發了合約代碼自動執行」購買功能代碼」,獲得對應數量的Token;

「售賣者」發送一定量的Token到Token合約地址,觸發了合約代碼自動執行「售賣功能代碼」,獲得對應數量的ETH。

若AToken與BToken都是以ETH為連接器代幣的智能通證,那麼Token持有者無需通過交易所,僅僅憑藉智能合約提供的買賣與兌換功能,就能實現AToken與BToken的自由兌換,比如AToken–>ETH–>BToken,多種智能通證之間通過共同的連接器代幣串接起來,就形成了一個價值網路(Bancor Network)。

用於去中心化流動性的 Bancor 網路可以作為中心化交易所的替代,用於連接到網路中的任何代幣,並帶來諸多積極意義。例如,一個帶有兩個連接器的智能代幣,其 CW 值為 100%,其功能類似於去中心化代幣交易對。我們將這種智能代幣稱為中繼代幣。中繼代幣允許用戶通過一個即時的兩步過程在兩個連接的代幣之間進行轉換,即使用其中一個連接器代幣購買中繼代幣,然後立即將其出售給另一個連接的代幣。由於定價演算法,這將導致中繼代幣相對於連接器代幣的價格上升(由於購買),和中繼代幣相對於連接器代幣的價格下降(由於出售),這與預期完全一致。如前所述,中繼代幣的掛牌價格不太可能長久地與外部交易所中任何一個連接器代幣的價格明顯抵觸,因為套利機會鼓勵套利者在中繼代幣相對於連接器代幣的價格與其在其他市場上的價格趨於相同。這種特殊的智能代幣配置允許不符合 Bancor 協議的現有標準代幣(沒有連接器)也可以向後兼容(換句話說,通過中繼代幣與網路中的每個代幣進行轉換),從而增強了可行性並接觸到流動性網路。


4、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%)。


4.2 Token買入計算公式及舉例

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的報價。


4.3 Token賣出計算公式及舉例

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。

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 個;

如果代幣餘額和總供應量取交易發生前的結果數量,則結果明顯是錯誤的。所以,輝哥認為白皮書的公式描述不夠嚴謹。


5、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,但是,這是代幣隨著需求增加而變得更便宜的特定情況,並且超出了本討論的範圍。


6、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節。

7、參考

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 巴比特資訊 的精彩文章:

肖風:區塊鏈應用流行需要三個條件
66錢包:比原鏈在算力、私鑰、公鑰、資產管理各個環節比比特幣更高效,更有安全性

TAG:巴比特資訊 |