11月16日,BCH硬分叉当夜,原本BCHSV一方的算力遥遥领先,BCHABC一方却在关键时刻“神兵天降”般出现了大量隐藏算力,瞬间扭转局面,引发了公众对矿池算力挪用的质疑。
再早些日子,11月2日,曾经比特币网络的第三大矿池——BTCC矿池宣布将于月中停止挖矿,并于月底无限期停止运营。作为当年一度辉煌的“国池”,这样的结局令人唏嘘。
聚光灯下的矿池,集中着矿工的大量算力, 有人说,大矿池可以翻手为云覆手为雨,是在“躺着赚钱”;也有人说,离开了矿工,矿池什么都不是,没啥好骄傲的。
是恃宠而骄还是如履薄冰?矿池的生意到底该怎么做?
1/ 矿池由来
在解释这个问题之前,首先,让我们回顾一下,矿池是怎么来的。
以公共区块链分布式账本为基础的数字货币,如比特币,以太币等,需要靠分布在全球各地的矿工不停地挖矿(mining)才能维持系统功能。
随着全网算力的不断增加,单打独斗的矿工“个体户”由于缺乏规模优势,挖到数字货币的时间不确定性过高,运气不好的话甚至好几年才能挖到一个有效区块。
为了使收入更加平稳,矿池(Mining Pool)应运而生,矿工们将自有算力集合起来,由矿池管理者统一分派挖矿的计算任务,挖到的币都归矿池管理者所有。矿池管理者再根据各个矿工贡献的算力比例,定期分配挖矿收入,并从中获得手续费。
2010年11月27日,总部位于捷克首都布拉格的SatoshiLabs公司,成立了世界上第一个比特币矿池Slush Pool,矿池的生意,就此展开。
2/ 算力过度集中
矿池的发展史中,算力过度集中和算力挪用是高悬在所有矿池头顶的两把“达摩克利斯之剑”。
先说算力过度集中的问题。矿池给矿工带来相对稳定的收入的同时,也带来了新的问题,分散的算力集中化,违背了区块链的去中心化原则。而比空洞的“去中心化”更为实际的,是算力高度集中的矿池手里的权力。
算力即权力。尤其对遵循POW(工作量证明)机制的币种而言更是至高的宗旨。因算力过度集中而可能出现的“51%攻击”,一直是区块链公有链网络中谈之色变的存在。
在谈及算力过度集中的危害之前,我们来简单了解一下比特币挖矿的原理。
1. 比特币网络中有众多的节点,每个节点都在监听着整个网络上所发生的交易;
2. 符合一定要求的交易,会被节点所接受,并纳入该节点的内存池;
3. 节点收到这些交易的信息之后,加入几个变量值;
4. 然后,再尝试不同的随机数,进行哈希计算;
5. 重复第四步,直到找到符合难度要求的哈希值;
6. 把上面提到的信息打包成一个区块(block),然后向全网广播这个区块;
7. 其它节点验证通过后,该区块就会成为区块链上最新的区块,这意味着区块链上的区块总数加一;
8. 所有节点切换到最新的区块后面,重新开始计算挖矿。
以上的过程不断重复,就形成了迄今多达55万个区块组成的比特币网络。
而不同的节点独立工作,就有可能在同一个区块后面,几乎同时生成两个甚至多个新的区块。比特币网络只会有一条“诚实”的区块链的存在被所有人接受,所有的次链都将被抛弃。如何判断哪条是诚实的,遵循“长链优先“原则,也就是区块数最长的那条。
在这样的原理下,一种名为“自私挖矿”(Selfish Mining)的做法就应运而生了。攻击者想要更改比特币账本数据,就需要一条比其他矿工更长的区块链数据。某个矿工运气特别好,挖到两个连续的区块,他就可以先隐藏这两个区块,等到其他矿工挖出一个区块数据后,他再广播自己的这两个区块,由于长链优先的原则,其他矿工挖到的区块就无效了,这样就白白浪费了其他矿工的算力,而“自私者”将获得更多的收益。
那么具体来说,矿工连续挖到区块的概率是多少?我们假设某矿工的算力占全网算力的比例为p,那么他连续算出N个区块的概率就是pN。下图列出了部分p和N对概率的影响,当p=10%时,连续挖到2个区块的概率为1%;如果p=50%时,连续挖到2个区块的概率达到了25%。
严格来说,发起51%攻击并不是一定需要51%的全网算力,由于区块链的分布式网络存在延时和随机数等偶然因素,有大量的研究表面,如果攻击者控制了33%左右的算力,再配合前面提到的“自私挖矿”等手段干扰其他矿工正常挖矿,就可能最终控制整个网络。
实际上,矿池确实因为算力的过度集中而引发过恐慌。
2014年6月,当时在比特币网络挖矿的Ghash.io矿池所拥有的算力一度超过50%,引发了社区对比特币安全性的极大担忧。Ghash.io随即发布公告称将永不会发动51%攻击,并在当年7月的矿业集团会议上,发布声明,宣布该矿池的算力永远不会超过全网总算力的39.99%。另一方面,矿工自发离场,最终将Ghash.io矿池的算力降低到31%左右。
在利益、风险、道德的共同博弈下,矿池和矿工达成了一种动态平衡。往后,规模过大的矿池,通常都会通过暂停新用户注册、提高挖矿手续费等方式,让矿池算力降低到安全范围。
F2Pool鱼池创始人神鱼表示,“目前整个比特币网络的算力还算比较分散,大的矿池算力占比只有20%不到,大部分的矿池都是在10%-20%之间的。其他的小币种因为在早期,相应的服务商跟不上来,算力相对集中一点。但总体而言,单一实体的算力不应该超过整个网络的1/3,10%-20%是比较合理的范围。”
截止11月21日17时,一周的比特币矿池出块份额占比
数据来源:btc.com
3/ 算力挪用
BCH硬分叉当晚,币印矿池联合创始人朱砝就发朋友圈,称“huobi和btc.top两家矿池,给BTC矿工发BCH计算任务,被pool.lol捕获。”矛头直指矿池私自挪用矿工算力。
这个问题,其实并没有看起来那么简单,具体要看矿池与矿工的协议到底是怎么界定的。
神鱼表示,“(是否属于挪用算力)关键还是要看矿池的用户协议,矿池到底是要提供挖矿服务还是提供算力租赁服务。国外的一些矿池主要是通过中间的代理让算力变现,因为用户有约束,矿池可以挖同一种算法的币。目前市场的主流矿池,它的用户协议里面要求约束的算力只能挖用户指定的币种,这就存在一定的法律和道德风险。”
除了少数的“机枪池”,市面上主流的矿池都是根据用户协议,只能挖用户所指定的币种。
所谓的“机枪池”指的是,矿池通过动态算法调节,哪个币的收益高就挖哪个,像机枪一样不停调转枪口。像目前在比特币网络中算力排行第四的莱比特矿池(BTC.TOP),就是个典型的“机枪池”。
矿池应该是所代表的矿工们意志的集合,矿工理应拥有对自身算力用途的知情权和选择权。
蜜蜂矿池CTO王军就表示:“比如说我是一个比特币的矿工,我用你的矿池挖BTC,我只是想当一个吃瓜群众,结果矿池偷偷拿我的算力去挖BCH了。可能我的利益没有受损,但是对我的情感有伤害,我本来是想站在中立的角度看热闹,希望两边的币都涨起来,多拿一点钱。
另一方面,我不太支持算力挪用。特别是很多小币的算法用的都是大币的算法,突然它哪天价格一涨,算力一下子全过来了,但算力一撤走,这个链就难以为继。而且算力被挪用,对于大币也会造成影响,造成算力和市场的频繁波动。”
归根到底,矿池需要为矿工的权利负责。那,谁来为矿池的利益负责?
或许只能靠矿池自己了。
免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。