BlockChange | 比特币的数据版图
几年前,比特币还是一种社会边缘,一位码农花了10000个比特币买了披萨,商店勉强接受交易,到去年比特币一年狂涨十几倍,大妈都在谈论区块链。
几年里,网络上默默地演化出一个至少有1700多种数字货币的家族。相比上涨百倍的山寨币,比特币的1年十几倍比较保守,但也秒杀了大多数城市过去20年里房价的涨幅,最后在去年十二月底遭遇滑铁卢,从19000USD开始,最低跌破了6000USD。
这里不讨论敏感的问题,但很有意思的是,比特币的数据很透明也很公开,比如所有的账号、转账记录、计算机节点和交易所的信息(交易所的数据某种意义上是有水份的),不谈法律的话,交易所的游戏规则其实和证券、期货等交易系统有点相似,至少数据让我们管中窥豹。
比特币的机制网上超多无比,这个回答“比特币(Bitcoin)系统是如何运行的?”就写的很赞,这里主要讨论一些机制和就事论事的数据分析,数据的分析基于众安科技的可视化产品Zatlas。
币的市场
法币是各国法定货币,如RMB、USD、代币是等各种虚拟币,比如BTC(比特币)、ETH(以太坊),他们统称数字货币。数字货币是一个庞大的数字货币家族,光Coinmarketcap上就记录了1000多种,我们从Coinmarketcap上爬取一些数据,并放在了产品Zatlas上,大家可以通过Zatlas的新建页面->导入数据->公开数据找到他们。
这张表coin提供了市场上主流的数字货币信息,更详细的解释可以参考coinmarketcap的FAQ:
一个很重要的参数是market_cap(和股票的市值计算类似),就是在市场上流通的虚拟币,换成美元有多少钱,因为有很多大佬并不在交易所搞投机,他们就把比特币静静地放在钱包里,比如中本聪的账户n久没变化了,还有些人的币的密码在硬盘里,伴随着丢了坏了,这些币将从世界上永远消失,这类币是不做市值统计的。
因此更直接的指标如下,我们定义一个circle_percent=volumn_24(24小时内活跃的资金)/available_supply(总可用的存量),也就是这些币的持有者,在过去的一天里,把百分之多少的币拿来搞投资,或者说是活跃的资金占总资金的比例。
我们到zatlas里,使用双柱状图,就可以发现如此的对比,柱状图是资金总量,折线图是流通比例,即当日交易活跃度,其中,很有意思的是,前几名的币种,活跃度最大的USDT,USDT是和美元等值的一种货币,成为比特币行情变化的避险通道,他的利用率是最高的,而排在后面的一些山寨币也非常高,可能是因为这些币投机性比较高吧
生日大pk
那么还有一个问题,1000多个虚拟币都是什么时候搞出来的?coinmarketcap从2013年4月开始记录各种币种的上线(这个比比特币的生日要晚几年),不过那时候虚拟币还很少,我从历史记录里查到了每个币的被监控的最早时间,就是上表中的trade_time_start,我们以每周诞生的币的个数为柱状图。在zatlas里画出来,并且和比特币的价格做个对比,发现基本是正相关的,而去年十月收录的币是最多的,想想去年频繁的各种ICO,好像很对的上。
币的交易网络
代币和法币可以交易,代币之间也可以交易,原理上有点类似外汇交易,外汇市场上,你能用美元换欧元,也能用欧元换日元,瞬息万变的价格是供需关系短暂的平衡。
用a币买b币,这种交易关系叫交易对(别名pair/symbol/market),如果有n种代币,他们之间理论上有n*(n+1)个交易可能,这是个天文数字,但事实上不是22之间交易对都能交易的,每个交易所都不会那么灵活,比如币安上,所有的交易对都与四个币种有关:BNB(自己家发的币)、BTC(比特币)、USDT(和美元挂钩的泰达币)、ETH(以太坊)。你想如果交易对很多,每个交易对之间的交易量会减少,也就是交易深度变小,价格变化会非常不连续),那么,人们选择哪些pair进行交易呢?
从coinmarketcap上,抓取了9000多个交易对,这些交易对分布在几百个交易所里,这里还记录了某个交易所某个交易对过去24小时的交易量,存放在表pair里面:
通过这个表,我们考虑做一个交易关系网络,想象我们以币种作为点,点的大小和颜色关联该币种的总交易量(前文中所说的市场流通量market_cap,USD计价),而用边来表示币之间的交易,边的粗细和颜色和交易对24小时内的流量做关联,我们就可以根据这个关联刻画他们的亲疏关系。
对于关系网络,zatlas目前需要构造一张大宽表,里面包含了边和点的关系,我们结合pair和coin,构造一张大表trade_graph,这张大表也上传到了zatlas里,可以直接分析(sql较长,略过)。
我们在zatlas上绑定trade_graph的相应字段,画出这样一个网络,我们可以在这个地址访问交互版本
#/:
在这个网络里,我们可以清晰地发现很多事情:
最大的交易发生在USD和BTC之间蓝色的边(由于美元没有计算流通量,所以美元的点很小)。
最大的资金流动,发生在BTC(红色的大点)上,而ETH是第二大的点
下方的一堆币(就叫第二世界阵营吧)是炙手可热的,他们和美元、USDT、BTC、和美元直接交易,并且互相之间交易的比较多,这些点也相对比较大,算是大佬们,如莱特币、小蚁、EOS、量子链之类的币。
而中间一小撮币(就叫第三世界阵营),他们可以和ETH、BTC、USD交易,但是和下方的第二阵营币往往没有很高的交易关联度。
我们看边的关系,日元和韩元都是很local的,很容易看到日本人喜欢买卖BTC,而韩国人则除了BTC,喜欢很多第二世界阵营的币,比如EOS、BCH云云的。
我们稍微解读一下这个图:
中心度与市值
地理上,中心度高的地方往往很富庶。陆路贸易时代,敦煌连接接了东土大唐和西域三十六国;海陆贸易时代,上海是经济大城,长江口、东海、杭州湾也都通过船运的可能,连接许多遥远的目的地。你看上图,比特币也是如此。
某种意义上,每次连接都代表了成本。城市通商的成本是交通,而虚拟币的成本是,每次交易你都要付千分之几的交易费。因此只要一个币种可以和各种币种做兑换,那他相对就价格稳定,体量更大(我们下一篇文章会更进一步分析价格稳定性的一些特点)。
一般大家更愿意驻留资金在这些稳定的货币里,因为入了这个币,我想买啥就买啥,这就好比国际贸易里美元就是大佬,你和韩国人做生意,往往也要先去换美元。而虚拟币里BTC是大佬,大部分山寨币都能兑换,而你使用美元只能兑换几种数字货币。
因此无论地理中心度还是网络中心度,中心是一个很重要的概念,那么对于虚拟货币,是不是中心度越高越有钱(24小时内流通量越大)呢?
首先我们如何刻画中心?中心度有很多定义,我们简单的看,就是某个币可以和n个币交易,他的中心度为n,然后我们关联这个币种的24小时内流通量(volume_24_usd)。
我们先写个SQL,然后把数据上传到Zatlas画个散点图看看:
WITH t AS( SELECT left_coin, right_coin, sum(volume_24_usd) AS volume_24_usd, count(1) AS pair_count FROM pair WHERE volume_24_usd IS NOT NULL GROUP BY left_coin, right_coin) SELECT left_coin AS coin, floor(sum(pair_count) ) AS pair_count, sum(volume_24_usd) AS volume_24_usdFROM( SELECT right_coin AS left_coin, left_coin as right_coin, volume_24_usd, pair_count from t UNION ALL SELECT * FROM t ) AS t1 GROUP BY coin ORDER BY pair_count DESC;
由于BTC和ETH太变态了,一个币能有几百个交易所的上千个交易对在交易,画出来的图里,两位大佬遥遥领先,一堆弱小的币种龟缩在一起,因此直接把中心度大的2个币过滤掉,得到下图。
我们发现,在刚才交易网络中存在的第二世界和第三世界阵营,在这个抽象的空间里依然是邻居。
右下角有2个孤立点,日元和韩元。他们数量大,连通度小。但我觉得这个本质上还是很好理解的,很多国外的交易所如果涉及到法币,国家都要来查你是不是在洗黑钱、是不是要缴税、要不要给你搞个认证,所以这些交易对注定开出来步履维艰,pair的数量不会很多。而人去买币,归根结底还是要付法币,要走这个通道,因此资金量肯定大,中心度小。
很有意思的是,我们可以继续过滤掉大币种,比如小于10,这时候币种的差异会很大。左侧的币,联通度很大,但交易量不大,我想应该是最近山寨币在收缩、归零,即便是交易对很多也难以改变他们交易量很小的命运,只有少数的币在右侧的坐标空间里按照正常的斜率,在放飞自我...
那么如何更科学地衡量中心度呢?在此祭出Zatlas的一些黑科技,我们在关系网络里绑定字段的时候,如果把列表拖到最下面,有几个中心度的算法:
出入度算法
中介中心性算法
接近中心性算法
其实用第一种算法,我们就不用在刚才写那么多sql了。这个意思就是,如果一个点和n个点有连接,那这个值就大,如果我们把出入度算法的值绑定到点的大小,便画出了下面的图,可以看到第二世界阵营的币种还是在一起:
币的山寨
这张表还能分析一个有意思的事情,现在除了比特币以太坊,大部分的都叫山寨币。山寨不是白叫的,我们用一个PostgreSQL看词频(里面用的show_trgm函数,可以把一个词分解为相邻序列,BTC=>BT、TC、BTC,然后统计有几个)。
SELECT str, count(1) AS count FROM( SELECT UNNEST(show_trgm(coin_name)) AS str FROM coin) AS tWHERE length(replace(str, ' ', '')) > 1GROUP BY str, length(str)ORDER BY count DESC
我们发现BIT、BTC、COIN、TH、TC、RC都是非常高频的词,他们好像来自BTC(BITCOIN)、ETH和LRC,比如比特币的缩写叫BTC,以及一堆类似的币,BTM、BCC、BTCZ、BTCS、BTCR、等等。
这个只是字面上的山寨。其实山寨币之所以那么多,很大的原因是虚拟币都是开源的,拿着代码改改就行了。还有比如ETH说,你要造币的话,直接用我的平台就行。
因此,coinmarketcap把虚拟币分成两种,Token就是那种用已有平台搞的币,至少是光明正大说我是基于别人开发的,而Coins是各种基础货币(应该也有很多山寨的)。我们可以看山寨币的源与流,这个数字非常之夸张,我们在Zatlas里画出一个饼图,ETH成就了8成的空间:
币的竞争
当年虚拟币比特币一家独大,后面那么多更多山寨货币的产生,是不是切割了比特币的市场?我们以市值(Market Cap) = 流通供给量 * 价格来看,BTC最大的竞争对手应是ETH。
我们有一张历史表(来自coinmarketcap)coin_history描述了币种在多年内的变化情况,因为数据比较大,这个数据一周采样一次:
市场剧烈波动,以若干年为周期,比特币统计上在涨价,但是其占虚拟币市场的比例一直变化。
其实这张图不仅可以在Zatlas里生成,coinmarketcap的这个页面也已提供,黄线是BTC,黑线是ETH,是不是觉得他们很有规律呢?
首先统计上来看,比特币的市值比例是往下走,去年年初到年中,经历了一次很大的下降。
竞争关系很明显,ETH涨BTC就要跌,不过这是必须的,因为这个图看的是百分比,老大多了老二就少了,因为老三老四已经很小了。
去年12月左右,BTC大跌,占有率也在下跌,但在今年2月开始,又逐渐上升了。
币的价差
币的价值更像是一个哲学问题(也有可能是个法律问题吧),有人说有价值有人说没有,津巴布韦和委瑞内拉的货币贬值,因此喜欢买个比特币全世界保值,而据说朝鲜搞军事演习的时候,韩国的比特币就涨价。
当然,我觉得讨论这个意义不大。但非常有意思的地方是微利差,其实每个国家对比特币真正的价格是不一样的,比如韩国和日本就超多人在买卖比特币。以韩国为例,人家的交易所都比较封闭,除了bithumb,很多交易所都没外语的版本,而且你要申请提款,据说必须在韩国生活半年,有张韩国特定银行的卡,反正外国人不大进得去,以至于去年币市火热的时候,韩国的比特币比外面贵了50%(这个利差现在差不多消失了)。
利益是无孔不入的,价差就像筑坝截流,只要有个小洞,管涌就能把落差抹平,倘若有个利差摆在人们面前,早就有一坨人做生意了,比如我做个兑换的循环生意美元->比特币->韩元-外汇兑换->美元,但为啥能存在呢?
这个问题非常值得思考。首先韩国的币币交易价格是没有太多利差的,多少因为比特币你可以随便打来打去,唯独和法币的兑换(曾经)有很多的利差,因为刚才的链条里,比特币->韩元、韩元->美元都不那么容易,而这2个拦截,我觉得可以说是韩国的国家管制。
所以我思考一个问题,价差的本质,大概一是买卖平衡,二是政府管制,而我们又如何衡量国家管制呢?
我想到一个办法,叫场外交易价格。以中国为例,当年比特币是可以通过平台来提取人民币的,但最后封杀掉了,任何平台也不能兑比特币,而且国外抓的也很严,可能要收税,正规流程一般提款的周期也很长。
由此就有了一种新业务,叫场外交易:你们呢,私下交易,我平台做担保,其他我啥都不知道,你们交易是你们的事。除了手续费比较高,其实没太多的政策因素,因此我觉得价格比较接近于人们的心理期望。
很多场外交易是非常local的,比如我的用户都是中国人,但有个集大成者,叫localbitcoin,里面有超级多的人在交易。我们抓取了localbitcoin上最近的3100多次交易,做了个简单的分析:
其中,委瑞内拉的价格换算美元是超高无比,是外界的10倍,6万多美刀一枚,我查了下,委内瑞保持着全球最高的通胀率纪录,也不知道localbitcoin的汇率数据是不是滞后了,导致价格比较高。
而还有非常多的小国家热衷于比特币交易,比如尼日利亚、秘鲁、伊朗这样,这些小国的交易量比较大,照理他们的人口并不是很多,他们喜欢比特币的原因,多少是不是因为自己国家货币的不稳定性。
第一篇文章,浮光掠影地看了下比特币的各种基本面,卖个关子,还有后续的。文中的分析,使用2个工具,一是PostgreSQL,一个常用的数据库,另一个是众安科技开发的数据可视化平台Zatlas(v.anlink.com)。
Zatlas目前是免费公测的,我们通过项目->新建项目->新建画布->选择空白模板就可以自己玩了,比如这篇文章的大部分图,建一个这样的项目就行了,文中大部分数据,也都上传到里边,可以直接使用,大家可以倒腾、修改,随便玩,欢迎给我们的产品提建议、BUG,看看能不能找到有趣的规律。返回搜狐,查看更多