tags: 區(qū)塊鏈 代幣經(jīng)濟 社區(qū)生態(tài)
我們考慮在一個最簡單的社區(qū)系統(tǒng)上,建立一套代幣經(jīng)濟生態(tài)。
這個系統(tǒng)有多簡單?簡單到,所有用戶都按照相同的一套行為標準來行動,沒有例外,連投機都能被這套規(guī)則刻畫。
這是一個標準的數(shù)學(xué)化、形式化的世界。
社區(qū)與代幣
社區(qū)是節(jié)點的集合,而節(jié)點是提供各種功能的基礎(chǔ)元素。一個社區(qū)中包含的節(jié)點種類越多,能提供的服務(wù)也就越多,整個社區(qū)的價值才能越高。
代幣是社區(qū)這具軀體中流動的血液。雖然社區(qū)上的功能與業(yè)務(wù)可以分為無幣業(yè)務(wù)與有幣業(yè)務(wù),但不可否認的是代幣是將社區(qū)上的各項功能與業(yè)務(wù)貫穿為一個整體的必要元素。
因此,考察社區(qū)中的經(jīng)濟生態(tài),一個核心問題就是考察社區(qū)中的代幣流是否處于健康狀態(tài),即社區(qū)中投入的代幣是否夠用、是否存在流通性不足或過剩的問題,節(jié)點用戶的消費欲望是否得到滿足、大家是否不再想用代幣進行消費。
簡而言之,核心問題就是代幣發(fā)放以及代幣自身價值的波動是否在健康范圍內(nèi),是否能維持和促進消費,還是在抑制消費。
基于這個問題,更進一步的是社區(qū)本身的消費規(guī)則的設(shè)定是否合理,社區(qū)交互規(guī)則本身對代幣消費以及基于其上的代幣經(jīng)濟起到了什么樣的作用。
這就是代幣經(jīng)濟生態(tài)的核心問題。
代幣與交易
我們假定,社區(qū)內(nèi)有 N 個點,記為 ,每個點上都有代幣,記為
,從而整個社區(qū)的代幣總量顯然就是
。
接著,給這個社區(qū)上注入交易 ,其中
表示第 i 筆交易的轉(zhuǎn)出方,
表示轉(zhuǎn)入方,
表示交易金額。
與交易相對的,就是每個節(jié)點的儲蓄量 ,定義為節(jié)點 i 在每次交易后留下的貨幣量的最小值。比如一個節(jié)點一開始有 100 個代幣,進行了三次交易,每次交易后剩下的代幣量分別是 90、85、95,那么該節(jié)點的儲蓄量就是 85。
因此,我們可以來討論社區(qū)上的流動貨幣總量(總流通量) 和總儲蓄量
。
需要指出的是,由于交易是在不斷進行的,所以這里的流通量 T 和儲蓄量 S,是隨著時間而變的,而且事實上真正有意義的是一段時間內(nèi)的流通量與儲蓄量,并不一定要看整個歷史上的情況。在不加說明的情況下,流通量和儲蓄量都被認為是到當前位置的一個特定時間段內(nèi)的統(tǒng)計值。
現(xiàn)在,整個社區(qū)構(gòu)成了一張有向網(wǎng),點是社區(qū)的節(jié)點,邊是社區(qū)上的交易,方向是資金流轉(zhuǎn)方向,且連接節(jié)點 A 和 B 的有向邊可以有復(fù)數(shù)條,如下圖:
我們可以很快寫下這樣一個社區(qū)上的基本動力學(xué)方程(雖然目前該方程本身毫無額外意義):
其中 代表了由節(jié)點 i 轉(zhuǎn)給節(jié)點 j 的所有交易的總代幣量。等式左邊是節(jié)點 i 在統(tǒng)計周期(也就是統(tǒng)計所有交易的時間段)內(nèi)所持代幣的增量,而右邊是所有轉(zhuǎn)入交易代幣量減去所有轉(zhuǎn)出交易代幣量。很顯然,如果我們將等式左右對節(jié)點指標 i 做一個遍歷求和,那么左邊就是系統(tǒng)總代幣量在一個統(tǒng)計周期內(nèi)的增量,它等于右邊的二次遍歷求和,結(jié)果為 0,即目前這個系統(tǒng)的代幣總量是守恒的。
現(xiàn)在我們就有了一個由 N 個節(jié)點構(gòu)成的、存在一組交易 、每個節(jié)點上的儲蓄量為
的社區(qū)網(wǎng)絡(luò),下面就來對這個網(wǎng)絡(luò)進行一些分析。
1,無錨定代幣網(wǎng)絡(luò)
所謂無錨定代幣網(wǎng)絡(luò)(UTN,Un-anchored Token Network),即網(wǎng)絡(luò)中的所有代幣交易不存在一個系統(tǒng)規(guī)定的交易價格。
這里使用“網(wǎng)絡(luò)(Network)”一詞而非“社區(qū)(Society / Community)”,主要是為了表征我們現(xiàn)在是從數(shù)學(xué)的角度來看到這個問題。在數(shù)學(xué)上,一個代幣社區(qū)就是一張有向圖(Directed Graph),而考慮上其中節(jié)點之間的連接特性后,便是一個復(fù)雜網(wǎng)絡(luò)(Complexy Network)——可能是隨機網(wǎng)絡(luò),也可能是小世界網(wǎng)絡(luò)。
舉例來說,UTN中 A 與 B 之間要進行一筆交易,A 支付給 B 一筆代幣 c,用于購買貨物或者服務(wù) X,那么 c 到底應(yīng)該是多少并沒有系統(tǒng)規(guī)定,而是完全由 A 和 B 自己商議決定。
UTN 是一個共形網(wǎng)絡(luò)(Conformal Network),即如果我們將每個節(jié)點(同時也包含了每一筆交易)的代幣量乘上一個大于零的任意系數(shù) ,這樣得到的新社區(qū)和老社區(qū)之間其實沒有任何差異。
舉例來說,假定我們現(xiàn)在社區(qū) A,其上有 10 個節(jié)點,總共有一萬枚代幣,到目前為止總共有 100 筆交易,其中 90 筆轉(zhuǎn)賬了 1 枚代幣,5 筆轉(zhuǎn)賬了 10 枚代幣,3 筆轉(zhuǎn)賬了 20 枚代幣,2 筆轉(zhuǎn)賬了 100 枚代幣。然后我們還有一個社區(qū) B,還是 10 個節(jié)點,但總共有十萬枚代幣,也有 100 筆交易,但 90 筆轉(zhuǎn)賬了 10 枚代幣,5 筆轉(zhuǎn)賬 100 枚代幣,3 筆轉(zhuǎn)賬 200 枚,2 筆轉(zhuǎn)賬了 1000 枚。這樣兩個社區(qū) A 和 B,從代幣流通的角度來說,是完全一樣的,并沒有什么分別。如果我們設(shè)置社區(qū) A 的一枚代幣可以兌換社區(qū) B 的 十枚代幣,那么就會發(fā)現(xiàn)都用社區(qū) A 的代幣或者都用社區(qū) B 的代幣來結(jié)算的時候,這兩個社區(qū)上的所有交易沒有絲毫區(qū)別。
這樣的特性被稱為共形不變性(Conformal Invariance)。
UTN 的共形不變性表示,在 UTN 上談?wù)摯鷰趴偭康闹凳菦]什么意義的,它可以是任意值。
因此,我們必須找出 UTN 上的一個特征值,由它來表征整個網(wǎng)絡(luò)的價值到底是多少。
讓我們回到問題的最初,即代幣社區(qū)究竟是什么。
代幣社區(qū)的本質(zhì),是將社區(qū)上的物品與服務(wù)、接入社區(qū)的物品與服務(wù)通過代幣作為等價交換物進行流通的離散網(wǎng)絡(luò)。因此代幣社區(qū)上真正有價值的并不是代幣本身,而是在其中以代幣為載體進行流通的物品與服務(wù)。
因此,要衡量一個代幣社區(qū)的總價值,光衡量代幣總量是沒用的——即便在存在交易所的網(wǎng)絡(luò)中,使用法幣對代幣進行定價后,由于投機行為的存在,光看代幣總量對應(yīng)的法幣總值也不能得到整個社區(qū)的總價值。
一個最直接的手段,是找到愿意使用社區(qū)上代幣進行價值流通的那些物品與服務(wù),從而可以在代幣網(wǎng)絡(luò)的每一根有向邊上賦予一個額外屬性:價值(Value)。因此現(xiàn)在一筆交易就有四個屬性:轉(zhuǎn)出方 f、轉(zhuǎn)入方 t、交易代幣量 c 和交易價值量 v。而這樣的網(wǎng)絡(luò)可以被稱為賦價網(wǎng)絡(luò)(Valued Network),相應(yīng)的 UTN 如果賦予價值結(jié)構(gòu)后,就成了賦價無錨定代幣網(wǎng)絡(luò) VUTN。
到這里僅僅是一些字面上的花活,并不涉及到一些根本內(nèi)容。
在 VUTN 上,我們可以得到兩類值:流通的總價值 V,和流通的總代幣 T。理想狀態(tài)下,每一枚代幣的價值就是這兩個的幣值:,從而每一筆交易以及全網(wǎng)總代幣的價值也就可以換算出來了。
但,這是一個理想狀態(tài),實際情況中,V 是一個很難給定具體值的東西。
如果代幣網(wǎng)絡(luò)中的代幣都對應(yīng)的是實物,那么相對而言可能還較容易定價。比如全網(wǎng)流通的代幣總量為 1000 枚,總共被用來購買了 1000 枚蘋果,那么每一枚代幣的價值就是一枚蘋果,這個是很容易定價的。
但問題在于,實際情況總我們并無法對代幣的所有對應(yīng)物進行定價,即 V 本身的值我們無法確定下來。而且,實際情況下很多時候能用代幣購買多少物品與服務(wù),取決于代幣的定價,因此要通過代幣能換取的價值來為代幣定價本身就需要先給代幣以定價,這樣就陷入了循環(huán)定義中。
因此,賦價網(wǎng)絡(luò)雖然看上去很美好,但實際上卻缺乏可操作性。
但這一嘗試給了一個思路:我們要確定一個代幣網(wǎng)絡(luò)中的代幣的總價值,就要找到一個基本衡量單位,用這個衡量單位來計算所有交易的總量,得到的就是整個網(wǎng)絡(luò)的價值了。
于是,我們下面就開始尋找這一特征衡量單位。
2,代幣交易的特征值
假定,一個代幣網(wǎng)絡(luò)上的代幣總量是 C,然后使用這個網(wǎng)絡(luò)的人進行交易的時候,每一筆交易都是一枚代幣,以換取自己所需的物件與服務(wù),那么這個網(wǎng)絡(luò)的總價值是多少?
接著,還是這個網(wǎng)絡(luò),但現(xiàn)在每一筆交易都是兩枚代幣,那么現(xiàn)在這個網(wǎng)絡(luò)的總價值又是多少?
顯然,我們可以認為前者的總價值是 ,而后者是
。這是因為,假如我們認為這個社區(qū)在兩個情況下,每一筆交易所購買的物件或服務(wù)是相同的,那么其價值也就應(yīng)該是相同的,那么后者既然每筆兩枚代幣而前者只需要一枚,這就表示后者情況下一枚代幣能兌換的價值只有前者的一半。也就是說,在社區(qū)的總代幣量保持在 C 時,前一個情況下的總價值是后一個情況下總價值的兩倍。
因此,我們現(xiàn)在的任務(wù)就是要找到這個“最小交易單位”,下面稱其為“元交易(Meta Transaction)”。
由于 UTN 是共形不變的,因此元交易本身也應(yīng)該是共形不變的,即假如我們將網(wǎng)絡(luò)中所有節(jié)點和所有交易的代幣量同時乘一個大于零的系數(shù) ,那么找到的元交易的代幣量也要相應(yīng)地變成原來的
倍。
元交易要能體現(xiàn)系統(tǒng)當下交易的特性,是所有交易的基礎(chǔ)單位——但不是最小單位。可能存在部分交易在特殊意圖的驅(qū)動下,采用元交易的分數(shù)倍。
因此元交易是當下所有交易的一個特征尺度,而非最小尺度。
為了找到該特征尺度,就必須從所有交易構(gòu)成的集合 入手。
所有交易的交易量構(gòu)成的集合,天然有一些特征值,如最大值 max、最小值 min、平均代幣量 ave 和中位代幣量 mid。這些特征量都是共形不變的。但這些值本身都不適合作為這里所要的元交易量。
同時,我們以每一筆交易的代幣量 為橫軸,同代幣量的交易次數(shù)
為縱軸,這樣就可以得到一個代幣交易分布。利用交易次數(shù),我們可以為代幣量為 c 的交易賦予一個權(quán)重:
這個分布的特點,便是交易用代幣量越小,權(quán)重越大;交易次數(shù)越多,權(quán)重越大。但這個分布的缺點也很顯然,那就是它不具備共形不變性。
為此,我們可以利用具有共形不變性的別的特征量來進行調(diào)整:
這樣得到的權(quán)重是共形不變的,也即所有節(jié)點持有和交易的代幣量都乘上系數(shù) 后,對應(yīng)代幣交易量的權(quán)重不會發(fā)生變化。
而采用這種權(quán)重后,我們便可以得到一個用于描述所有交易所承載價值的特征值,即元交易量:
舉例來說,現(xiàn)在有下面這組交易:
代幣量 | 交易次數(shù) |
---|---|
10 | 20 |
15 | 25 |
20 | 25 |
30 | 20 |
50 | 10 |
100 | 5 |
共有交易 105 筆,總交易量為 2675 枚代幣,平均每筆交易使用代幣 25.476 枚,交易代幣中位值為 20,元交易特征值為 15.010。
我們可以取元交易量為 15,且稱一倍元交易代幣量為“1 特征幣”,從而所有交易可以被改寫為:
特征幣量 | 交易次數(shù) |
---|---|
20 | |
1 | 25 |
25 | |
2 | 20 |
10 | |
5 |
而所有交易的總量為 枚特征幣,而如果社區(qū)上的代幣總量為 1 萬枚,那么就等于有
枚特征幣。
未來,如果社區(qū)上的代幣量增加,而每一筆交易也等比例增加,那么社區(qū)的總特征幣量將依然保持不變。
從功能上來說,特征幣衡量了網(wǎng)絡(luò)代幣吞吐能力的基礎(chǔ)單位(雖然不是最小單位),同時也衡量了每一枚代幣的流通性負載能力。特征幣越小,單位代幣的流通性負載能力就越強,反之則流通性負載能力越弱。
特征幣本身無法衡量網(wǎng)絡(luò)上的代幣流通所攜帶的價值,但也從側(cè)面反映了網(wǎng)絡(luò)的價值。
當兩個社區(qū)的元交易特征值 和
已知時,如果沒有別的可以用來錨定價格的參照物,且兩個社區(qū)的交易的商品范圍重合度足夠高的時候,可以給出兩個社區(qū)的代幣
和
的匯率:
。
下面,我們要進一步來考察代幣網(wǎng)絡(luò)的流通性。
3,約化流通圖
讓我們回到最開始的社區(qū)結(jié)構(gòu)上:我們有 N 個點,以及一組交易。
要刻畫網(wǎng)絡(luò)上交易的特征,有一個最基本的問題,就是要如何篩選出那些存在惡意的交易?
比如說,節(jié)點 A 和節(jié)點 B 之間其實并不存在任何交易,但出于某些特殊的原因,他們之間必須構(gòu)造出交易,而這些交易會被考慮進整個社區(qū)代幣經(jīng)濟生態(tài)中,從而對生態(tài)產(chǎn)生影響。
我們當然可以說,如果不存惡意的節(jié)點足夠多,那么惡意節(jié)點帶來的影響可以認為是很有限的。但這樣的說法總是過于隨緣、過于感性了,我們還是需要從制度和規(guī)則上來盡可能降低惡意交易帶來的影響。
因此,需要對交易構(gòu)成的流通圖進行一定的約化,得到更有價值的約化流通圖(RCG,Reduced Currency Graph)。
原本的交易流通圖(TCG,Transaction Currency Graph)是一張有向圖,節(jié)點是賬戶,連邊是交易,連邊方向是資金轉(zhuǎn)賬方向,連邊權(quán)重是交易代幣量。
這張圖的天生問題,就是連接節(jié)點 A 到 B 的邊可能有復(fù)數(shù)條,這樣圖本身帶有很大的冗余性。
另一方面,就是 A 和 B 之間不斷通過相互轉(zhuǎn)賬,有可能會增加彼此在圖中的權(quán)重。
為了解決這兩個問題,我們需要引入“n 圈減除(n-LS,n-Loop Substraction)”。
在此之前,我們可以先定義一些基本操作。
在同一個網(wǎng)絡(luò)中,假定存在兩張圖 G1 與 G2。它們刻畫了同一個網(wǎng)絡(luò)中的兩種不同的交易流。因此我們可以定義圖的加法與減法:
即圖 G3 的每一條有向邊的權(quán)重(交易代幣量)等于 G1 與 G2 連接相同兩點的有向邊的權(quán)重之和(如果無有向邊連接,則計算時該權(quán)重為 0),那么 G3 就稱為是 G1 與 G2 的合圖,即圖的加法,算符記為 :
。合圖可能存在同一條邊的兩個相反方向上都有權(quán)重的情況,此時需要做減除,方向取較大權(quán)重的方向。
相似的方式可以定義圖的減法:
但需要注意的是,如果上述操作的值最后是負數(shù),那么需要在方向邊上加上相應(yīng)權(quán)重值。這樣得到的圖 G3,被稱為是 G2 扣除 G1 得到的余圖,即圖的減法,算符記為 :
。
一張圖的逆圖的定義也很簡單,將所有有向邊的方向反向,得到的圖就是原圖的逆圖,算符記為 。
至此,在圖集 上引入的合圖運算
構(gòu)成了一個群
。
最后還有圖的數(shù)乘:新圖每一條有向邊的權(quán)重為原圖對應(yīng)邊權(quán)重的 倍,則稱新圖是原圖數(shù)乘
,記為
。從現(xiàn)在圖集
可以視為一個矢量空間
。
下面,令 代表從節(jié)點 A 轉(zhuǎn)入節(jié)點 B 的總代幣量,因此它已經(jīng)代表了原本從 A 指向 B 的所有有向邊的總作用。用
取代原來的一組有向邊,將若干條從 A 到 B 的有向邊約化為一根有向邊,這樣的操作被稱 0 圈減除(0-LS),得到的圖為 0 圈減除圖(0-LSG)。
接著,我們在 0-LSG 上構(gòu)造進一步的約化圖,它定義為 0-LSG 中連接 A 到 B 與 B 到 A 的有向邊的權(quán)重差:
如果它大于 0,則約化交易從 A 流向 B;如果小于 0,則約化交易從 B 流向 A;如果等于 0,則可以視為 A 和 B 之間沒有交易。
這樣,就將原本從 A 指向 B 和從 B 指向 A 的一對有向邊約化成了至多一根有向邊,這個操作被稱為 1 圈減除(1-LS)。
經(jīng)過 1-LS 處理的圖中,任意兩點 A 和 B 之間至多只存在一根有向邊相連,且絕對不存在 1-圈(即只由兩個節(jié)點構(gòu)成的封閉圈),這樣的圖被稱為 1 圈減除圖,簡記為 1-LSG。
1-LSG 還有一個約化殘余,我們將其稱為“1 圈余圖(1-LRG,1-Loop Remaining Graph)”:。1-LRG 的一個特點,就是 A 到 B 的有向邊和 B 到 A 的有向邊的權(quán)重肯定是相同的。
很顯然,1-LSG 與 1-LRG 的合圖,就是 0-LSG:
如果原本的流通圖中節(jié)點 A 和 B 之間存在大量交易,且最后這些交易彼此抵消,那么最后在 1-LSG 中將不會保留這部分信息,而在 1-LRG 中會保留。但有時我們并不希望將所有這些交易的信息都抹去,從而可以構(gòu)造一個權(quán)重為 的新圖:
這張新圖中將保留交易信息,并且可以通過調(diào)整權(quán)重來調(diào)節(jié)這些信息的呈現(xiàn)方式。
接下來,我們可以進一步做 2-LS。
1-LS 所用的 1-圈很容易構(gòu)造,只要是連續(xù)有向邊構(gòu)成形如 的有向環(huán)即可,而環(huán)的權(quán)重是 A 到 B 的有向邊的權(quán)重與 B 到 A 的有向邊的權(quán)重的較小值。
同理,我們可以構(gòu)造 2-圈為形如 的有向環(huán),環(huán)的權(quán)重是 A 到 B 的有向邊、B 到 C 的有向邊和 C 到 A 的有向邊三條邊的權(quán)重的最小值。
但在做扣除的時候,0-LSG 中扣除 1-圈是很容易的,因為任意兩個 1-圈之間肯定不存在公共邊。但 1-LSG 中扣除 2-圈會有一定的問題,因為 兩個 2-圈之間是允許有公共邊的。
這里,我們所選擇的約化方式是最小權(quán)重優(yōu)先減除(MWFS),即便對于一張 1-LSG,找出其中所有 2-圈,對根據(jù)是否有共同邊進行分類。將屬于同一類的所有 2-圈合成一張新圖,取新圖每條邊的權(quán)重 px 與原圖對應(yīng)邊權(quán)重 py 的比 的最小值為系數(shù)乘在圖上,即得該類對應(yīng)的圖,隨后將原圖扣除所有類圖,記得 MWFS 所得的新圖。
1-LSG 通過MWFS 處理后可以得到新圖 1-LSG-1,接著不斷用 MWFS 對上一輪得到的新圖做約化,直到左右 2-圈都被扣除為止。這樣得到的圖就是我們所要的 2-LSG,而 1-LSG 扣除 2-LSG 的部分(也就是 MWFS 不斷扣除的部分合在一起),就是 2-LRG。
很顯然,一次 MWFS 操作后,必然至少有一條原圖中的邊被消除,所以只要圖本身是有限圖,那么 MWFS 肯定會在有限次操作后終止,而終止后的圖中將不再存在扣除的基礎(chǔ) n-圈,因此一張(n-1)-LSG 經(jīng)過有限次 MWFS 后可以得到一張 n-LSG,而扣除的部分合在一起就是 n-LRG。
這個過程可以一直持續(xù)到某一張 n-LSG 上無法再找出 (n+1)-圈為止,因此此時這張 n-LSG 就是一張最終 DAG——有向無環(huán)圖。
并不是所有的代幣流通圖最后都會剩下 DAG,對于這種特殊情況,為了計算方便,我們可以認為 DAG 就是一張權(quán)重恒為 0 的圖。
因此,現(xiàn)在我們可以將一張任意的代幣流通圖分解為一系列約化流通圖與一張有向無環(huán)圖的合圖:
其中 D 是 DAG 的階數(shù),被稱為代幣流通圖的約化深度。
下面,我們就可以構(gòu)造真正需要的約化流通圖了,它被稱為完全約化流通圖(完全 RCG):
我們可以取 、
,而 r 便是約化深度。
我們也可以取前 n 階的 LRG 與第 n 階的 LSG 來構(gòu)造 n 階 RCG:
因此,完全 RCG 就是 r 階 RCG。
我們可以將 RCG 看做是對 0-LSG 的高通。n-LS 操作可以看做是將圖的 n 階圈結(jié)構(gòu)都剝離,剝離出來的 n-LRG 反映了圈結(jié)構(gòu)信息,而 n-LSG 則保留了網(wǎng)結(jié)構(gòu)信息,因此 RCG 便是對小尺度圈結(jié)構(gòu)進行抑制而盡可能保留大尺度網(wǎng)結(jié)構(gòu)的濾圖,類似傅里葉變換后對高頻部分進行抑制而保留低頻部分,從而盡可能反映圖的大尺度結(jié)構(gòu)。
舉例來說,現(xiàn)在一張網(wǎng)上有 4 個節(jié)點,存在如下交易組:
方向 | 代幣量 | 次數(shù) |
---|---|---|
A -> B | 30 | 2 |
A -> C | 15 | 5 |
A -> D | 20 | 8 |
B -> A | 40 | 1 |
B -> C | 40 | 1 |
B -> D | 20 | 2 |
C -> A | 10 | 4 |
C -> D | 15 | 3 |
D -> A | 5 | 8 |
D -> B | 10 | 8 |
這樣的網(wǎng)絡(luò)中,總共有 42 筆交易,交易代幣總量為 620 枚代幣,平均每筆交易代幣量為 14.762 枚代幣,交易量中位數(shù)為 15 枚代幣,元交易特征值為 9.826 枚代幣。
因此,該交易流通圖的 0-LSG 為:
方向 | 代幣量 |
---|---|
A -> B | 60 |
A -> C | 75 |
A -> D | 160 |
B -> A | 40 |
B -> C | 40 |
B -> D | 40 |
C -> A | 40 |
C -> D | 45 |
D -> A | 40 |
D -> B | 80 |
分解出的 1-LSG:
方向 | 代幣量 |
---|---|
A -> B | 20 |
A -> C | 35 |
A -> D | 120 |
B -> C | 40 |
C -> D | 45 |
D -> B | 40 |
以及 1-LRG:
方向 | 代幣量 |
---|---|
A -> B -> A | 40 |
A -> C -> A | 45 |
A -> D -> A | 40 |
B -> D -> B | 40 |
可以看到,1-LSG 中有唯一 2-圈:,因此還可以進一步將 1-LSG 分解出 2-LSG:
方向 | 代幣量 |
---|---|
A -> B | 20 |
A -> C | 35 |
A -> D | 120 |
C -> D | 5 |
以及 2-LRG:
方向 | 代幣量 |
---|---|
B -> C -> D -> B | 40 |
2-LSG 已經(jīng)無法再分解出 n-圈,所以是最終 DAG,整個交易流通圖的約化深度為 2。
我們再將它們合成為最終想要的 RCG:
方向 | 代幣量 |
---|---|
A -> B | 20 |
A -> C | 35 |
A -> D | 120 |
B -> C | 10 |
C -> D | 15 |
D -> B | 10 |
這么一來,RCG 上的有效交易總量只有 210 枚代幣,有 410 枚代幣被約化掉——那些被約化掉的交易很可能是存在不恰當交易行為或意圖的,至少也是只具有小范圍影響力而對整體而言不怎么重要的。
我們將 RCG 上的交易稱為主交易,而不在 RCG 上的交易稱為次交易。
可以看到,0-LSG 基本保留了 TCG 的主要特征,包括連通性等拓撲結(jié)構(gòu)。1-LSG 在在 0-LSG 的基礎(chǔ)上扣除了閉合圈結(jié)構(gòu),基本保留了代幣流通特征,但在拓撲結(jié)構(gòu)上會發(fā)生一些改變,一些 1-圈如果正反方向的權(quán)重相同,則兩條邊都會被扣除,從而破壞連通性。RCG 與 1-LSG 的拓撲結(jié)構(gòu)相同,但更進一步將廣域流通性保留了下來而抑制了局部流通性,是一種濾圖。因此,我們可以認為 RCG 基本反映了真實代幣流通情況,所有有價值的信息都被保留了下來。
最終,我們可以通過主交易和元交易特征值,來得到整個社區(qū)上的代幣流通性最有價值的部分。
舉例來說,我們模擬一個 150 個節(jié)點的社區(qū)中,分成 4 個層次,一個層次主要是生產(chǎn)者,一個層次是普通消費者,一個層次是超級消費者,一個層次是原料生產(chǎn)提供商。代幣從消費者流向生產(chǎn)者,再從生產(chǎn)者流向提供商,生產(chǎn)者和提供商再將代幣流向消費者。總共模擬了 10000 筆交易,總交易量將近 6 千 4 百萬枚代幣,最小值為 101 枚代幣,最大值為 59961 枚代幣,中值為 197 枚代幣,元交易特征值為 144 枚代幣,所以交易總量約為 45 萬枚元交易幣。在 RCG 中只留下 3774 筆交易,主交易量約為 4 千 5 百萬枚代幣,約為 31 萬枚元交易代幣。
k-剪枝
當社區(qū)上的交易很多時,我們往往并不需要關(guān)注交易的全貌,而只需要關(guān)注最核心的交易。
RCG 的作用僅僅是扣除小尺度上那些不重要的交易,并不能凸顯出那些真正重要的交易,所以我們需要在 RCG 上做剪枝,保留核心交易內(nèi)容。
對于圖的常見剪枝手段有很多,常見的有 k-Core 圖、 k-Truss 圖等,基本都是對節(jié)點或邊做取舍。
其中 k-Truss 圖(k-桁架圖)是指將原圖所有邊中能成為至少 k-2 個三角形的邊的那些保留而成的子圖,也即所有邊中首位節(jié)點存在至少 k-2 個公共 1 階鄰點的邊所構(gòu)成的子圖,它是 (k-1)-Core 圖的子圖。
對于有向圖而言,可以有強 k-桁架圖和弱 k-桁架圖兩種,前者要求一條邊必須是至少 k-2 個同向三角形的邊,而后者則不要求方向。
一個例子,a是原圖,b是3-桁架圖,c和d其實一樣,分別是4-桁架圖和5-桁架圖,e是6-桁架圖,f是7-桁架圖,也是原圖的最大桁架圖。
我們將 RCG 上每個節(jié)點的所有轉(zhuǎn)入和轉(zhuǎn)出的交易構(gòu)成一個集合,并對這個集合以交易代幣量做由多到少的排序,取其前 k 條保留,這樣得到的就是深度為 k 的剪枝約化流通圖(k-PRCG,,Pruned Reduced Currenty Graph)。
這里,我們不要求保留的有向邊必須是以節(jié)點自身為起點或終點,而是完全以權(quán)重為單位,這樣是為了能保留一個節(jié)點到底是流入占主還是流出占主這一特性。
以上面的例子來說,其 1-PRCG 為:
方向 | 代幣量 |
---|---|
A -> B | 20 |
A -> C | 35 |
A -> D | 120 |
而 2-PRCG 則就是 RCG 本身。
假如我們對 n-RCG 做 k 剪枝,那么得到的就是剪枝深度 w、約化深度為 n 的 PRCG((k,n)-PRCG,)。
在前面的 10000 筆交易的社區(qū)例子中,(3,3)-PRCG 中保留了 300 筆交易,代幣量約為 1 千 6 百萬枚,占總交易量的約 24.5%;(5,3)-PRCG 中保留了 475 筆交易,代幣總量約為 2 千 2 百萬枚,占總交易量的約 34.9%。
在當前的 系數(shù)的選擇下,RCG 不會改變 1-LSG 的拓撲結(jié)構(gòu),但 1-LSG 會改變 0-LSG 的拓撲結(jié)構(gòu),0-LSG 會改變 TCG 的拓撲結(jié)構(gòu)但不會改變連通結(jié)構(gòu)。而 PRCG 則會改變 RCG 的拓撲結(jié)構(gòu),甚至于引起圖的碎片化,產(chǎn)生大量彼此獨立的弱連通子圖(TCG 上也可能有弱連通子圖,這些拓撲結(jié)構(gòu)會保留到 RCG 中,但 PRCG 會造成新的弱連通子圖)。
弱連通子圖,是將有向圖的方向抹去后得到的無向圖的連通子圖,子圖中任意兩點都有一組邊可以相連。
同樣的,從 1-LSG 一直到 PRCG,交易具有如下特性:
即便,正反方向至少有一個是 0,而不為 0 的那個必然大于 0,進而有 。
PRCG 上的一張弱連通子圖權(quán)重為所有邊權(quán)重的和。PRCG 中權(quán)重最大的弱連通子圖所包含的總交易代幣量 記為 ,將所有所含交易的代幣量不小于
的弱連通子圖并在一起,構(gòu)成 PRCG 的核部(cPRCG,或
)。絕大多數(shù)情況下,核部基本就是 PRCG 的最大弱連通子圖。
核部在大多數(shù)情況下,包含了 PRCG 中最重要的交易內(nèi)容,而 PRCG 體現(xiàn)了 RCG 上最主要的那些交易,所以主部在理想情況下反映了交易的核心部分。事實上,對于足夠平均的交易網(wǎng)絡(luò),只要交易數(shù)足夠多的時候,cPRCG 基本就等于 PRCG。
我們可以將 cPRCG 上的交易被稱為核心交易(cTX),PRCG 中別的交易被稱為核外交易(oTX),它們一起被稱為主部交易(mTX),0-LSG 扣除 PRCG 后的圖中的交易為剩余交易(rTX)。
最后,我們可以在 cPRCG 上計算每個節(jié)點的權(quán)重。
后篇請看《社區(qū)上的代幣經(jīng)濟生態(tài)·下》。
本文遵守創(chuàng)作共享CC BY-NC-SA 4.0協(xié)議
通過本協(xié)議,您可以分享并修改本文內(nèi)容,只要你遵守以下授權(quán)條款規(guī)定:姓名標示 、非商業(yè)性、相同方式分享。
具體內(nèi)容請查閱上述協(xié)議聲明。
紙媒與網(wǎng)絡(luò)平臺如需轉(zhuǎn)載必須與本人聯(lián)系確認。