以太坊(Ethereum)挖矿数据分析

军备竞赛

使用工作量证明(PoW)作为共识机制一部分的以太坊,通过求解Ehash谜题来决定谁有权生成一个有效区块。每当一个有效区块成为主链区块或者叔块,生成这个新区块的节点,便可以获得奖励。

PoW在解决区块链安全性问题的同时,也解决了新产生的以太币的分配问题。

算力高的人,挖到区块的概率大,得到的奖励多。算力低的人,挖到区块的概率小,得到的奖励少。但是,无论算力大小,都有机会找到PoW的解,最终获得奖励,只是概率高低的区别。足够长的时间后,两个节点获得奖励的比值会非常接近算力的比值。

以太坊(Ethereum ETH)的奖励机制》一文中对此进行过讨论。

同时,PoW算法可以通过改变难度(Difficulty)参数,动态的控制生成区块所需要的计算量。如果挖矿的总算力提高,难度便会加大,需要的计算量也随之增加。

如果挖矿的总算力降低,难度便会减小,需要的计算量也随之减少。

这样调整的结果就是,生成一个区块所需的时间基本不变,维持在15s左右。

具体难度是如何调整的,可以参看《以太坊(Ethereum ETH)是如何计算难度的》一文。

生成区块的时间基本稳定,区块的奖励是固定的,以太币会无限增长下去,但是产生的速度基本恒定。而手续费占的比例又非常小,可以忽略不计。

矿工们实际上是在进行零和博弈。

零和博弈(zero-sum game)中,参与博弈的各方,在严格竞争下,一方的收益必然意味着另一方的损失,博弈各方的收益和损失相加总和永远为“零”。

简单的说就是,蛋糕不会变大,你多吃一口,我就要少吃。

为了使自己能够吃到更多的蛋糕,矿工们进入了“军备竞赛”。比设备渠道、比电价、比管理、比技术,可谓是使出了浑身解数。

 

矿工间竞争激烈,俨然是一个没有硝烟的战场。

古人云:“知己知彼百战不殆”。

知己容易,看看自己矿机的算力值就可以了,如何才能知彼呢?

其实秘密就藏在以太坊的区块链中,现在就让我们来挖掘这些信息。

 

准备工作

  • 获取区块数据

“巧妇难为无米之炊”,要想得到答案,首先要获得以太坊的区块数据。在以太坊的官方网站www.ethereum.org可以下载钱包软件,一段时间的同步后,就可以获得全部的区块数据。

 

 

 

 

同步得到的区块会被保存在5w多个小文件中,以数字编号命名,容量约100G左右,并还在持续增加。

  • 固态硬盘

验证区块有效性、解析区块等步骤需要进行大量的IO操作,机械硬盘由于存在运动部件,大量的IO简直就是机械硬盘的克星。如果你不希望有趣的分析变成漫长的等待的话,一块高性能的固态硬盘是必须的。时间就是金钱,为了提高效率,下面这货,你值得拥有。

 

 

 

 

基本情况

区块是在源源不断的产生中的,为了方便分析,本文的数据有如下限制:

  • 只分析至高度5336218的区块,包含5336218区块,该区块生成于北京时间2018-03-28 17:15:00
  • 创世区块无挖矿奖励,内部预置的创世交易不算做实际交易

包括创世区块在内,共计5,336,219个主链区块,这些主链区块中,累计包含了526,632个叔块。叔块只是为了提高网络安全性,其中的交易会被丢弃,由其他主链区块收容。

主链中共有189,470,093笔交易,经常有人会用这篇新闻来对比:腾讯公布移动支付数据:月活跃账户及日均支付交易笔数均超6亿,微信支付一天就处理了6亿笔交易,而以太坊两年半才处理了不到1.9亿笔,尚不到微信日处理量的三分之一。

其实这和以太坊的定位和区块链技术特点有关,正如以太坊官网上所说,以太坊是一个“区块链应用平台”,解决的是节点间的信任问题,为智能合约提供基础设施,而不是小额资金的交易和清算。

 

 

 

 

谁获得了奖励

以太坊的区块中,记录了一个重要的信息,由区块发现者填写的接收奖励的账户地址。

在区块链浏览器中,这一信息被显示在Miner部分。

 

 

 

 

比如高度为5336169的这个主链区块,就是由0xb75d1e62b10e4ba91315c4aa3facc536f8a922f5生成的,并获得了3.0389ETH的奖励。

我们在区块链中扫描,便可以找出所有获得了奖励的地址,结果令人十分震惊。

区块链中的记录显示,获得过主链区块奖励的只有3997个独立地址,获得过叔块奖励的只有2180个独立地址,所有获得过奖励的独立地址只有4160个。

整个区块链中,挖到区块(包括叔块)最多的前20名地址如下:

地址                                             区块数 0x2a65aca4d5fc5b5c859090a6c34d164135398226	937112 0xea674fdde714fd979de3edf0f56aa9716b898ec8	818645 0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5	622196 0x61c808d82a3ac53231750dadc13c777b59310bd9	508477 0x829bd824b016326a401d083b33d092293333a830	375746 0x4bb96091ee9d802ed039c4d1a5f6216f90f81b01	276731 0xb2930b35844a230f00e51431acae96fe543a0347	221628 0x1e9939daaad6924ad004c2560e90804164900341	199881 0xf8b483dba2c3b7176a3da549ad41a48bb3121069	179609 0xc0ea08a2d404d3172d2add29a45be56da40e2949	168917 0xbcdfc35b86bedf72f0cda046a3c16829a2ef41d1	147326 0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c	129744 0xf3b9d2c81f2b24b0fa0acaaa865b7d9ced5fc2fb	96841 0xa42af2c70d316684e57aefcc6e393fecb1c7e84e	77898 0x63a9975ba31b0b9626b34300f7f627147df1f526	60879 0x68795c4aa09d6f4ed3e5deddf8c2ad3049a601da	52321 0x738db714c08b8a32a29e0e68af00215079aa9c5c	48469 0x1dcb8d1f0fcc8cbc8c2d76528e877f915e299fbe	43799 0x1a060b0604883a99809eb3f798df71bef6c358f1	42205 0x151255dd9e38e44db38ea06ec66d0d113d6cbe37	35764

再来看看最近的10000个区块的情况:

最近的10000个区块中,包含了1845个叔块,共有57个独立地址获得区块奖励。

这10000个区块中,挖到区块(包括叔块)最多的前20名地址如下:

地址                                             区块数 0xea674fdde714fd979de3edf0f56aa9716b898ec8	3224 0x829bd824b016326a401d083b33d092293333a830	1955 0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5	1852 0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c	1542 0xb2930b35844a230f00e51431acae96fe543a0347	1148 0xf3b9d2c81f2b24b0fa0acaaa865b7d9ced5fc2fb	367 0x2a65aca4d5fc5b5c859090a6c34d164135398226	327 0x84990f5d2e09f56cabdabf6409ad31bdd8363b50	272 0x4a071eee72bc8664c81b62836932ed0d246da82b	141 0x2ea1e928e4af14910e141896ece96c812094e3f9	138 0x4bb96091ee9d802ed039c4d1a5f6216f90f81b01	111 0x6b7d50bb8fab584e54251a10e1c6cfa51dd7b618	94 0xb75d1e62b10e4ba91315c4aa3facc536f8a922f5	81 0x9435d50503aee35c8757ae4933f7a0ab56597805	64 0xe4bdced60430a90f31dba03524dd5d15a2670649	62 0x6a7a43be33ba930fe58f34e07d0ad6ba7adb9b1f	58 0x441d463d69cb6eaa851eb6138c3efac95c86d17b	51 0xcc16e3c00dbbe76603fa833ec20a48f786dfe610	46 0x36da475cb5df0fdf780e09a4a87455e9ff0c31c4	28 0x464b0b37db1ee1b5fbe27300acfbf172fd5e4f53	25

这20个地址,就挖出了大约97.8%的区块。

排名第一的地址0xea674fdde714fd979de3edf0f56aa9716b898ec8,一个地址就挖到了27.2%的区块,这也就意味着,他拥有27.2%的算力。按目前260T的算力计算,这个地址的主人掌握着70.72T的算力,这大约需要300w张显卡和一座大型发电站才能达到。

这究竟是何方神圣,简直是神仙打架,小矿厂和散户们还挖个毛线啊,难道是效率超过显卡几个数量级的矿机出现了?

随便找一个这个地址挖出的区块,比如5336170区块,这个区块的数据中有一段非常有趣。

 

 

 

 

“0x65746865726d696e652d657534”这段十六进制数据,使用ASCII解码后就是“ethermine-eu4”,在线区块链浏览器会自动帮我们做完这个过程。

 

 

 

 

原来这个地址是矿池ethermine所拥有的,怪不得这么大算力。

 

公知地址

区块链具有一定的匿名性,钱包地址可以任意生成,想证明某人是某个地址的主人很困难。但是地址的拥有者却可以很容易的证明自己是某地址的主人,只要他出示对应私钥的签名即可。

区块链又有很好的公开性,一段时间后,全网所有节点最终都会拥有同一个区块。任何人,只要运行一个节点,就可以获得整个区块链的数据。

出于数据公开等目的,地址的拥有者会主动向公众宣布并证明自己拥有某地址的私钥,这类地址被称为公知地址。

比如上面的ethermine的地址,事实上就属于公知地址。

大部分矿池都会公开自己的地址,一方面证明自己的偿付能力,另一方面也可以证明自己矿池的算力情况,提升知名度,吸引矿工。

经常被大家引用的这张全网算力分布图中,带有对勾的,都是公知地址。在线区块链浏览器已经帮我们做好了对应关系,就像手机的通讯录一样,很贴心有木有。

 

 

 

 

我们现在知道了,以太坊的挖矿已经半中心化,基本上是五大矿池在神仙打架,逐鹿中原。小矿工们择木而栖、各为其主。

然而,问题还没有解决,矿工们不是在和矿池竞争,而是在和千千万万的矿工PK,有没有办法能知道其他矿工的情况呢?

 

谁在矿池挖矿

区块链中的miner信息似乎不能再提供给我们更多的信息了。

让我们回想下矿池的工作方式:

  1. 矿池生成区块并把待求解PoW的部分发给矿工
  2. 矿工求解PoW,并不时发送些中间结果给矿池,证明自己在工作
  3. 矿池一旦挖到区块并获得奖励,便会根据每个矿工贡献的大小分配收益给矿工
  4. 矿工拿到收益
  5. 矿池得到一定的抽成,称为矿池手续费

整个过程中,矿池支付收益给矿工,一定会在区块链中留下交易,我们只要查找从矿池的公知地址发出的支付交易,就可以找到所有矿工的地址。

继续扫描区块链!

0xea674fdde714fd979de3edf0f56aa9716b898ec8发出的交易共计有8,160,461笔,涉及377,371个独立地址。

顺路发现几个铁杆儿粉丝,已经领过上万笔“工资”了。

地址                                             支付笔数 0x8613a3342fe57860a3403bf8b1f0c63c2566a34d	19589 0xb7b03ce91e5826bd8d223b15dedbdb8ef4ddd4a8	17916 0xf34a762291e2578b79646cbf296abf4f5a242b3d	10927 0xc302dcc0d534aa931634103a47ff8e9d636dd76a	10198

还有几位土豪,累计已经领取了超过1wETH的“工资”。

地址                                             收益 0xf800baf5a062a04d14a248a03359b5507ab699e6	34600.099999999838 0xe4f7a546b4ab8b0719ac14ca80871ba2dd252e87	30599.99999999988 0x4b803e796e6a659445e7fb311cad3304324320bd	29374.51763369881 0x58801ebec6685d0d5461a30999fa5df91549a59e	16248.5576816006 0x873a1c1fc14ce028bfcdc08f05fcc3ed49b2609c	11569.56321216761 0xbcb38d60623f688badfe019b1d0ef73fd9ea34dc	11391.272167159842 0x83d367e3a6b4e3c58d402b324e04472c28e96637	10011.055913465025

现在,矿工的地址有了,该怎么知道他们具体的挖矿情况呢?

 

 

 

 

看到矿池右上角的那个查询输入框和查询按钮了吗?知道该怎么做了吧。

写个程序,继续查!

 

等着爬虫出结果的时间,我们来个小插曲。

上一篇文章《以太坊(Ethereum)全零地址(0x000000...)揭秘》中提到的配错了挖矿程序,结果把收益打入黑洞地址的情况,在ethermine这里也发生了。

 

 

 

 

这哥们挖了快一个月,好不容易挖到的0.02ETH,全都献给了上帝。

 

程序跑完,让我们来看看其他矿工的情况吧。

在曾经接收过矿池转账的377,371个独立地址中,目前有134,366个独立地址下还有矿机在工作,矿工可能会因为各种原因更换地址。比如使用的是交易行的地址、出租算力、保护隐私等。

有几个地址的算力非常有趣

  • 0xd2ccc191c7974255d77c78d9883a317023b3e0b0

这个地址的算力曾经达到过恐怖的2T,最近才开始使用这个地址,算力波动非常大。

 

 

 

 

  • 0x5be0d21cd3624ade634f5a7c118b950cb4449a0b

这个地址只有一个Worker,算力同样十分恐怖,峰值接近4T。

 

 

 

 

  • 0xb7b03ce91e5826bd8d223b15dedbdb8ef4ddd4a8

这个地址也是类似的情况,波动大,新地址,峰值算力接近3T。

 

 

 

 

究竟是什么原因造成了这个现象呢?先挖个坑,我们有时间再聊。

为了不让这篇文章变得太长,其他矿池,比如国内常用的鱼池(F2Pool)的数据就不写进来了。数据获取的具体方法前面都已经介绍了,有兴趣的朋友可以自己去搜集。

 

为什么要分析挖矿数据

挖矿行业,入行门槛并不高,任何人,只要采购了矿机,就可以开挖。

然而,获利的门槛就不低了,时间点非常重要。

在挖矿不那么火热的时候,场地租金、电力供应、挖矿设备,可以很廉价的获得。

在挖矿到达顶点即将矿难时,及时转让矿场设备和相关附属设施,可以赚取设备溢价。

分析区块链和矿池的挖矿数据,就是为了实现这个目的。

 

绝大多数矿工,获取信息的途径基本是在线的图表,比如下面这个全网算力图。但是这张图中的数据有一定的滞后性。

 

 

 

 

当图表中算力开始出现明显的增加趋势时,说明大多数矿工们已经完成了设备采购,正在大量部署,相关设备溢价严重。此时跟风入场,轻则收益降低,重则遭受损失。

同样的,当图表中算力开始出现明显的下降趋势时,说明矿难已至,大量矿工已经完成了设备出售,市面上大量黑心矿卡流通,设备价格暴跌。此时,挖矿可能要倒贴电费,出售设备又只能忍受买家恶意压价。

通过实时监控以太坊区块链和五大矿池的数据,可以在算力变化的早期就察觉趋势。无论是囤积设备还是投资矿厂都是绝佳的时机。同理,当观察到某些账户的算力出现波动时,也可以提前分析原因,出让设备,获取设备溢价。

2016年12月时,全网算力只有6T,1060 6G显卡零售价1499元。

那时,一台6卡的1060 6G矿机,一天即可挖掘0.4ETH。

2018年1月时,全网算力240T左右,1060 6G显卡京东报价2499元,即使是二手显卡,也要2000左右。即便如此,货源也很紧俏。

然而同样的矿机,收益却只有0.01ETH了。

 

后记

对于其他投资方式,由于信息极度不透明,掌握在极少数人手中,绝不会泄露给普通人。

这对绝大多数普通投资者来说,由于他们的竞争对手也是普通投资者,大家得不到什么特别的消息,站在同一条起跑线上。

然而,对于区块链的公开性,我个人认为是提高了投资的门槛。

数据都是公开的,这就在极少数人之外,又增加了一个技术阶层,这个阶层可能占比很大,甚至超过了交易行这类特权阶层占的比例。

拥有相关知识和能力的人,在规避风险、投机获利上拥有更大的优势。

因此,掌握一定的相关知识非常重要。

以太坊(Ethereum)挖矿数据分析

扫一扫手机访问

以太坊(Ethereum)挖矿数据分析

发表评论