矿池

来自OwCrypto区块链数字加密货币百科

“矿池”(Mining Pool)矿池是矿工们算力的集合,矿池就是一个开放的、全自动的挖矿平台,矿工将自己的矿机接入矿池,贡献自己的算力共同挖矿然后获得收益。在加密货币进行挖矿的过程中,随着越来越多的矿工入场,挖矿的总算力越来越高,单个矿工的产出也变得越来越不稳定,为了获得更加稳定的挖矿收益,矿工们开始联合起来与其他矿工进行竞争,因此就逐渐出现了比特币矿池的概念。

实际上,矿池本身并不进行挖矿计算,而是将计算任务分配给连接到矿池的矿机。加入矿池,比特币用户一方面可以避免运行全节点;另一方面也可以减少挖矿回报的方差。[1]


背景

在中本聪论文描述的比特币世界中,全网平均每10分钟产出一个区块,每区块包含50(现在是12.5,比特币每四年左右减半一次)个比特币,而一个区块只可能被某个幸运儿挖走,直接拥有里面的50(现在是12.5,比特币每四年左右减半一次)比特币,其他人则颗粒无收,挖到的概率与矿工投入的设备算力大小成正比。

这就注定了如果比特币挖矿参与人数庞大且分散到一定程度后,挖到比特币的概率将无限接近于零,跟中彩票差不多。或许投入一台矿机挖矿,按照概率,要5~10年才能开采到一个区块,这使比特币挖矿陷入尴尬境地,让普通人几乎没有参与的可能。


分配原理

挖矿实际就是计算机不停进行哈希运算,直到找到符合条件的目标值,目标值是一个总长度256位的二进制数,要求前n位为连续0。

矿池将区块难度分成很多难度更小的任务下发给矿工计算,矿工完成一个任务后将结果提交给矿池,叫提交一个share。假设全网难度要求n的值为100,即前100个比特位为0,矿池可能会给矿工分配一个任务,要求前30位为0,然后再从所有提交的任务中,寻找有没有凑巧前100位为0的目标值。

不同矿机算力大小不同,矿池会根据大家的算力大小分配难度不同的任务。比如A矿机算力1T,B矿机算力10T,那么矿池给A矿机分配任务要求前10个比特位为0,B矿机的任务可能会是前20个比特位为0。前20个比特位为0成为符合条件目标值的概率肯定是大于前10个比特位为0的概率。[2]


运作原理

假设100万人参与比特币挖矿,全网400P算力,其中90%的矿工为1P(1000T)以下的算力,如果投入一台1T矿机,将占全网算力的40万分之1,理论上平均每40万个10分钟能挖到一个区块,也就是7.6年才能挖到一个区块然后一次性拿到50个比特币。那么,假如我再找9个拥有1T算力矿机的矿工,达成协定,我们总共10个人,其中任何一个人挖到区块,都按照每人的算力占比来进行平分,那么我们就是一个整体,总共10T算力,那么平均0.76年即可挖到一个区块,然后算下来到我们手上的就是0.76年开采到5个比特币,如果组织100人、1000人、1万人甚至10万人呢?如果是10万人,那么平均40分钟就能挖到1个区块,作为团队的一份子,我的收入将会趋于稳定。这就是矿池的基本原理,即大家组队进行比特币开采,可以参考彩票中的合买。

当然,以上只是对矿池的基本原理和性质进行简单的描述,实际情况会非常复杂。矿池是一个全自动的开采平台,即矿机接入矿池——提供算力——获得收益。


经营模式

矿池协议

“矿池”通过一种专有的协议,来协调成百上千个矿工。矿工在建立矿池账号后,设置他们的矿机连接到矿池服务器。矿机在线上运行挖矿时,需要保持和矿池服务器的连接,和其他矿工同步工作。

常用协议包括:Stratum(STM协议)& getBlockTemplate(GBT协议)和已经过时了GetWork(GWK协议)。


角色

“矿池”中的角色包括:

矿工:按照算力贡献份额来赚取相对稳定的奖励;

矿池管理员:收取一定比例的手续费,矿池管理员也可以作为Solo矿工参与算力贡献。


准入条件与奖励分配机制

1)矿池对任何矿工开放。矿池中的某一个矿工成功挖矿之后,出块奖励支付到矿池的固定比特币钱包地址。奖励不属于挖到矿的矿工,而属于整个矿池。

2)矿池会设置一个奖励分配的“阈值”,这个阈值是针对每次计算的TargetHash值的难度目标,通常比比特币网络难度低1000倍以上。比如,全网的挖矿难度为开头连续10个0的Hash值,矿池设置的难度阈值为开头连续7个0的Hash难度;矿池中的某一个矿工成功挖到矿后,那些成功进行Hash计算,并且达标矿池难度阈值的矿工可以分享到奖励。

3)奖励的分配,并不是挖到一个矿之后,立即分配的,而是当挖矿奖励累积到矿池设定的一定量之后,进行一次奖励的分配,或者按照固定时间如每天进行一次结算。


收益结算模式

目前市场上存在很多的结算模式,我们介绍几种主流的方式

Proportional

这是一种比较直接的奖励机制,它使用当前矿池发现的上一个区块到下一个区块被发现作为一个周期,统计在这之间每个矿工所提交的share,然后计算每个矿工所占的份额,即百分比,然后发放区块奖励

其实这样就很容易导致一种情况,随着一个周期时间的增长你在这个矿池所提交的share会变得越来越不值钱,因为什么时候能挖到块是不确定的,而如果在一个周期的一开始就挖到了块,哪怕你只提交了几个share也能获取比在之后提交几百个share更多的收益,看得出来这种模式并不健康

这种模式是早期比特币矿池采用的奖励机制,但是这种模式容易导致矿工采用一种跳池(Pool hopping)的策略来获取更多收益,这个我们后面再叙述,所以这种模式目前基本被弃用了

Pay-per-share (PPS)

在这种模式下,矿池将按照矿工所提交的share即刻支付费用,矿池会根据你的算力在矿池的占比,并估算矿池的算力每天所能取得的收入来给你分配收益,一般每个sahre的费用是固定的,这样的话矿工每天所能取得的收入就比较稳定了,不过这样的话矿池就得承担一定的风险,所以就需要对矿工收取更高的手续费,这也算是稳定所需要付出的代价吧

Pay-per-last-N-shares (PPLNS)

PPLNS与PPS很类似,但是它取的是区块发现前提交的N个share来分发奖励,N是固定了,但是什么时候发现区块并不确定,所以总share大于N就得舍弃一部分,小于N又得重复计算一部分,这样的好处是避免了Proportional中share不断的贬值情况,于是也就能防范跳池的矿工

PPS+

现在PPS+模式在矿工中接受程度最高。可以把PPS+理解为PPS+PPLNS结算的组合。每个区块的挖矿收益=爆块奖励(12.5个BTC)+本区块交易手续费(约为爆块奖励的1.9%),爆块奖励使用PPS方式结算保证基本收益,交易费用将根据PPLNS计算方法支付,提供激励。

Slush’s Method

这种方法是在Proportional的基础上进行了改进,初衷是想对抗跳池的策略,它按矿工提交的share计算积分,而每个share所值的积分随着时间的增长而不断提高,这算是对于Proportional中时间较长的周期的最后一个share的奖励过低的一部分补偿,但是这种方法并没有完全消除Proportional的影响,发现的两个区块间隔较短的时候,每个share依然非常值钱,理论上来讲还是存在跳池的可能

Geometric Method

这种方法是对Slush’s Method的进一步改进,它也是对share进行积分,越后面的share获得的积分也越多,但是积分的增长方式不同,这里是以指数级增长,所以随时间的推移每个share所取得的回报也呈现指数级的下降,这就遏制了前面提交的share的价值

当然了,具体的算法设计要更加精巧,最终计算得到的奖励的期望在采取跳池策略与否的情况下是相同的,所以可以完全避免跳池策略的攻击[3]

SMPPS

SMPPS奖励的发放与PPS类似,但是上限不超过矿池内的总额。


ESMPPS

每股共享顶薪(ESMPPS)模式,在这种规则下,所有的矿商收到相同份额的奖励。

MPPs

SOLO

矿机爆块才有收益,如果矿机爆块可获得该块扣除手续费的所有收益,如果矿机不爆块则没有收益

Double geometric method

这是一种混合了geometric method 和 PPLNS,包括前者和后者的指数版本作为特殊情况。随着未来份额的数量和被发现的区块数量增加,份额会呈指数级衰减。成熟度、方差和操作风险是可调的。

联合挖矿

联合挖矿是指在挖一种币的同时,会赠送另外一种币。

注意事项

在加入任何一个矿池之前,记得看一下奖励机制,矿池类型和费用收取情况。真正的矿池会收取1%到3%的费用。[4]

矿池类型

托管矿池

托管矿池应该算是目前的主流,即一个矿池有一个中心服务器,对其下属的所有矿机进行协调与管理,同时这个服务器一般也会与一个或多个完全节点进行同步,这样就可以帮助下属的矿工完成对区块的验证,从而缓解矿机的压力,毕竟一个完整的区块副本还是很大的,这样矿工们也可以投入更多的算力获取更多的利润

P2P矿池

因为托管矿池的管理员存在作弊的可能,尤其是那些大矿池,如果有那个意愿他们是可以控制区块的走向,所以后面又出现了p2p 矿池

如它的名字所示这种矿池没有中心服务器,取而代之的是一个名为份额链的类似于区块链的系统,矿工们在这条链上进行挖矿,这条链的难度远低于比特币,基本上30秒一个块,大家在这里计算并由该份额链统计share,当份额链有一个区块头的hash满足比特币的难度需求时,这个区块就算是挖矿成功的结果了,并将被广播出去,然后份额链将对区块奖励按照统计的share进行分发,其实就是使用一个区块链系统实现了一个中心服务器

不过这种矿池相比托管矿池要复杂的多,效率也相对比较低下,所以现在也在慢慢淡出市场,毕竟资本总是逐利的.

多池挖矿

多池挖矿模式可以在不同的山寨币之间切换,并不断计算哪一枚硬币在哪一刻最有利可图。算法中涉及两个关键因素,用于计算交易所的盈利能力,冻结时间和价格。为了避免为所有可能的可用硬币需要许多不同的钱包,多项目可以自动将开采的硬币交换到主流接受的硬币(例如比特币)[5]


SOLO独立挖矿

独立开采意味着,你将不必共用挖矿报酬,但你得到奖励的几率也将显著下降。虽然矿池模式可以有更大的机会取得块奖励,但是,那些奖励将被所有的矿池成员分配。

Solo模式的特点是矿工节点运行着一个独立的比特币网络节点,所以,矿工节点具备两个基础功能:网络路由(维护可信节点IP列表)和本地全链数据备份。这带来两个问题:

硬盘和带宽要求大

数据本地存储需要的硬盘空间也越来越大,已经百G左右。

挖矿成功概率极低

比特币是基于POW共识机制的,随着全网算力的指数级提升,个体的算力所占的比例越来越低,也就意味着获得记账权的概率越来越低,挖矿成功率越来越低,2018年7月6日全网算力约35.74Eh/s,一台蚂蚁大陆S9i算力有13.5T,则出块概率约260万分之一,每天还有电费、网费、管理费的投入。面临着挖矿数月不能出块的风险。

矿池争议

矿池也是一直饱受争议,就拿比特币矿池来说,全网算力集中在几个矿池手里,全球矿池排名前十的矿池,七家是中国人开的,在这七家矿池里,BTC.comAntPool、ViaBTC更是直接隶属于比特大陆。网络虽然几千个节点同时在线,但只有矿池链接的几个节点拥有投票权,其他节点都只能行使监督权。矿工被置于“黑暗”中,提供了足够大的算力,却不见得关心项目信息和发展。

讲个关于矿池的小插曲,在矿池刚出现时,反对声特别强烈,很多人认为矿池最终会导致算力集中,危及系统安全,甚至置比特币于死地。于是有人设计并实现了P2P矿池,力图取代“抱团挖矿”模式,代码也都是开源的,但由于效率远不如中心化的矿池,导致收益低下,所谓理想很丰满,现实很骨感,矿工的算力永远跟着利益走。[6]


矿池市场格局

BTC.COM是比特大陆技术团队打造,AntPool是比特大陆直属品牌,ViaBTC是比特大陆A轮领投的企业。

矿池信息对比图

特点

对于领军矿池企业的经营特点,则以比特大陆系和非比特大陆系角度分析。

对于比特大陆系的矿池,由于比特大陆不仅是一家矿机生产厂商,从矿机、矿池、媒体再到投资,已经了有了完备的生态体系。所以这些矿池有着先天的优势,一是矿机的价钱优惠,二是获取矿机的速度也较快。

对于非比特大陆系的矿池,只能凭借自己的差异化服务获得矿工的支持,国内以F2Pool为例,F2Pool成立时间早,主要凭借老客户的口碑,以及优质的用户体验吸引算力,其算力构成主要是国内。国外以SlushPool为例,SlushPool隶属于位于捷克首都布拉格的SatoshiLabs,有着地域上的优势,算力构成主要是国外。

比特大陆系

比特大陆系的矿池特点是:让矿工自己权衡利弊,提供更大的选择权,让其选择不同的收益结算模式。

BTC.com

为了更好地让利于矿工,BTC矿池于2月17日推出首创的 [FPPS] 结算模式,即Full PPS(完全PPS),对包括交易费在内的全部区块收益进行分配。 相比传统的PPS结算模式可提升 10%-20% 左右收益。

AntPool

蚂蚁矿池支持4种结算方式:PPS、PPS+、PPLNS、SOLO。每种币种支持的结算模式不同,费率也不同,客户可以根据需求选择。

ViaBTC

挖矿收益按每小时记录,设置自动提现的收益将统一在当天或次日10:00-18:00之间发放到指定地址。矿池支持三种结算方式:PPS+、PPLNS 和 SOLO模式。默认为 PPS+ 结算方式,用户可以根据自己的风险承受能力,在设置中选择不同的结算方式。

ViaBTC矿池还有联合挖矿,以BTC-NMC联合挖矿对为例,表示每挖出一个BTC赠送2个NMC。联合挖矿的模式可以促进另一币种的活跃度。


非比特大陆系

非比特大陆系的矿池:站在用户的角度思考问题,给矿工提供一键式服务,减少矿工的决策时间。

F2Pool

F2Pool又名鱼池,创始人之一人称“神鱼”,是国内最早的一批矿池之一,鱼池拥有20多个可挖币种,分为该矿池的结算时间为每日08:00达到起付标准自动结算,08:00之前未支付的收益,不足起付标准则第二天08:00结算。支付时间:每日08:00–16:00自动付款,每日付款一次。

F2Pool矿池官网提供了LTC与DOGE的联合挖矿模式。


SlushPool

SlushPool的报酬计算方式:报酬=,其中:矿区价值=12.5BTC+矿区包含的交易费用,指数加权hash速率表示某个矿区被发现是的hash速率。矿池费用为2%。最低支付门槛是0.001比特币。当支付的报酬低于0.01比特币时,将有额外的0.0001比特币费用产生。


投资逻辑

资金量大

收益和风险较高,投资者目前遇到的问题是:一是对于看中的项目,投资者想投资矿池时却没有份额可投,二是矿池需要的投资量大,单个投资者即使获得了投资机会,却无法提供庞大的资金。

算力为矿池的核心竞争力

衡量矿池项目可以从技术和算力支持方面衡量,其中算力支持是更重要的一方面,在组建矿池的时候,是否有足够的算力支持矿池,以获得稳定的现金流,是矿池项目能否存活的关键。

间接投资

比特币从诞生至今,币市牛熊交替,能够存活下来的矿池,有其矿场的支持,这类矿池所创立的项目也是很好的投资标的,可以看做是间接对矿池进行投资。[7]

手续费

比特币矿工会对大部分交易收取少量费用,其主要目的是防止有人大量发送无聊的小额交易,浪费网络资源。当前每笔交易的手续费大部分是฿ 0.0001/KB(0.0001btc/KB),实际上0.9.0以后的版本将默认手续费降为฿ 0.00001/KB(0.00001 btc/KB)。因为大部分交易占用的数据量都小于1千字节,所以一般情况下฿ 0.00001(0.00001 btc/KB)的手续费就足够了。同时,在将来比特币区块奖励较少时,手续费将成为矿工收入的主要来源,比特币的手续费会与该交易占用的字节数相关。

目前比特币系统中手续费的计算标准并非强制性的,因此使用者也可以在交易进行时不给予任何手续费,但大多数矿工在组建资料块时通常会优先考虑带有较高手续费的交易,以便在挖矿成功时能获得较高的报酬,因此无附带任何手续费的交易,可能会需要等待较长的时间才能被处理并纳入区块链中。

此外,现在因为区块容量上限1MB以及近期比特币交易量大增的因素,手续费大幅上涨,而且等待交易被确认的时间也变长了许多。

优势

矿池的存在降低了比特币等虚拟数字货币开采的难度,降低了开采门槛,真正实现了人人皆可参与的比特币挖矿理念。

弊端

弊端也非常明显,因为算力接入矿池,作为矿池来说,将掌握极其庞大的算力资源,在比特币世界中,算力代表着记账权,算力即是一切,如果单家矿池算力达到50%以上,将可以轻易对比特币等类似的虚拟数字货币发动51%攻击,其后果是非常可怕的:

1、垄断开采权,可使掌握剩余49%算力的矿池颗粒无收,瞬间退出竞争并倒闭破产,矿池算力超过50%以上,如果发动51%攻击,将能轻易占据全网全部有效算力。

2、垄断记账权,可通过51%攻击进行双重支付等行为,可将1笔钱多次使用,这将直接摧毁比特币等的信用体系,使之信用灰飞烟灭。

3、垄断分配权,由于单家(也可能是多家矿池联盟)矿池通过51%攻击占据全网算力,可快速排挤剩下矿池使其倒闭,由于没有竞争,矿池便可自行进行收益分配,对矿工收取高额手续费等苛捐杂税。[8]


矿池攻击

Pool hopping

这个其实在前面我们已经提到过几次了,对于Proportional的奖励模式,如果有矿池的运气不太好很长时间都没有挖到区块,在这个矿池里的矿工的share就开始不断贬值,相当于算力越来越不值钱,这时候一些矿工就可以选择将其算力转到另一个刚挖到区块的矿池下去挖矿,因为这时候时间刚开始计算,每个share的价值比较高,相当于算力也比较值钱,如果一段时间没有挖到,他也可以选择再次跳池,一直去寻找share价值比较高的地方,至于前面所耗费的算力能值多少钱就不用太关心了

采用这种策略在统计学上来讲最终获得的收益肯定是要比你一直待在一个池里不动的收益要来得多的,不过随着现在矿池的收益分发策略的改变这种攻击策略已经不可行了

Block withholding

下面要说的就是区块截留攻击(Block withholding),其实它应该算是一种类型的挖矿策略,即挖到区块后是在手上保留一段时间还是直接丢弃,这种策略会有不同的人出于不同的目的来采用,只不过都不是什么好事,下面我们就来分析可能的各种情况

自私挖掘

在这种情况下矿工或矿池挖到区块后并不会立刻将其广播出去,而是将其在手上留存一段时间

对于矿工而言,他可以将手上的算力均摊到各个矿池里,一旦他在某个矿池里挖到了区块,他就将区块给扣留下来,然后将手头的算力集中到这个矿池进行挖矿,累积share,然后提交区块以获取更多的利益,当然这样的话有可能别人在这段时间里也挖到了区块并将其公布,所以还是有一定的风险,但是最终从统计学的角度来看使用这种策略还是会提高收益

对于矿池而言情况则要复杂一些,矿池在获取到有效区块后他也可以选择保留区块,接下来他可以将手上的算力之间投入下一波的区块挖掘,一定程度上也算是抢得了先机,然后对于挖到的区块他将马上同步给手下的节点,并不广播给全节点

然后矿池可以对网络情况进行监控,一旦发现有新的区块头的出现,立刻让手上的节点广播己方的区块,使其他矿池失去该区块的奖励,其实这样的风险还是有点大,除非该矿池算力足够大,总能处于优势地位,而且也要考虑网络传播效率的影响,一般而言选择保留一段时间广播区块即可

矿池采用这种策略进行挖矿在短期会使自己的收入降低,但是这样也会打压其他池的收入,甚至损失更多,其他的诚实的矿工也可能会倒戈到自私挖矿的矿池里以获取更多收入,这样就会壮大自私池的算力,进一步加剧这种现象,并让自私池所持有的算力持续增加,甚至跨过50%的红线,这样的后果是非常严重的

不过因为多方面的原因目前这种攻击还是很少见,目前来看主要还是理论研究上多一点,在理想模型下一个最开始仅有33%算力的矿池逐步采取这种策略是可以逐步提升自己的算力水平到50%

丢弃区块

下面我们来看看挖到区块后不直接丢弃它的情况,如你所见,这是一种破坏性的攻击,它也可以分为多种情况


矿工的恶意破坏

在这种情况下矿工在矿池内挖到区块后并不公布而是直接丢弃,但是share依然正常提交,这样的话相当于该矿工没有为矿池创造任何收益,但一直在参与其他诚实的矿工挖矿结果的分红,这种行为显然是损人不利己的,一般也没人会使用,这里仅仅作为一种可能性


一个攻击矿池

上面我们讨论的恶意的矿工是给自己打工的,这里我们要介绍的恶意矿工是给其他矿池打工的,这里为了简单我们假设有两个矿池A和B,其中A对B派遣恶意矿工进行攻击

这个模型还是比较简单,我们不妨设总算力为1,A池使用x算力渗透进B区块进行攻击,显然这x算力就属于躺着不干活的算力了,那么此时我们的总算力其实是1-x

然后我们分别设A与B拥有的算力为Ma和Mb,这样的话B出块的概率即为Pb = (Mb-x)/(1-x),于是A从B处拿到区块奖励

Pb * x/Mb

而A矿池自己诚实挖矿还可以拿到一部分区块奖励

(Ma-x)/(1-x)

所以A矿池获得的总收益即为

Q=Pbx/Mb + (Ma-x)/(1-x) = (Mb Ma - x^2)/(Mb(1-x))

这是在A矿池实施攻击后获取的收益,理论上讲A矿池通过选取适当的x进行攻击是可以使收益较未实施攻击前有所增加的,不过当时提出这个思路的时候选取的未实施攻击前的收益被简单表示为了Ma,也就是A矿池的算力,最近又看了一篇论文表示这种假设很不严谨,事实上随着攻击的进行系统的算力下降了,变成了1-x,在这种算力下整个系统额度出块速度也将下降,这意味着在进行攻击与否的两种不同情况下运行相同的时间挖到的块的数目是不同的,而比特币的难度调整周期是2016个区块,接近两周的时间,这是一个很长的跨度,时间差将带来很多损失,想要回本就得维持攻击到难度改变之后,然而想保持攻击这么长时间不被发现是一件很困难的事,在重新计算后发现单纯对B进行区块截留攻击是一个吃亏的行为,这也在某方面解释了这种攻击得到确认的报告还说非常少见,主要就是14年Eligius矿池确认过一次这种攻击,损失了300个比特币,这里的损失是指损失了被丢弃的本应得到的挖矿奖励,这可能是综合了其他的攻击手法亦或是就是一场报复性攻击


两个矿池互相攻击

这种情况就比较复杂了,可能是一个矿池发现自己被攻击后对攻击矿池进行的以其人之道还治其人之身的反击,也可能是两池本来就心怀不轨互相开撕

简单起见我们还是假设两个矿池A与B,它们都对对方进行了区块截留攻击,而这场战争一旦开始,除非双方同时收手,否则将很容易陷入囚徒困境当中,很有意思,下面我们要来讲讲博弈论了

囚徒困境我想大家应该都听说过,这里举一个简单的例子

现在警方逮捕了甲和乙两名嫌犯,他们是团伙作案,但因为没有充分的证据进行指控,于是将他们分开审讯

如果两人都认罪的话那么就各判五年,如果两人都不认罪那么将因证据不足而仅判半年,但是一旦出现其中一方认罪而另一方不认罪,则认罪的一方即刻释放而另一方将被判十年

这是一个非常经典的囚徒困境场景,在此处假设双方都是利己的,不关心对方死活,那么就要完全为自己的利益着想,那么假想你来做选择的话

1.对方不认罪,那么我认罪就可以直接释放,好的,选择背叛

2.对方认罪,那么如果我不认罪就要被判十年,不行,我也只能认罪,好的,还是选择背叛

如果双方都进行这样的思考,那么这场博弈最终的结果将是双方互相背叛,结果各判五年,也就是这场博弈所达到的纳什均衡,虽然团体的最优解应该是守口如瓶以获取各半年的刑期,这也正是困境之所在

同样的情况其实也出现在这里两个矿池的博弈中

两个矿池要选择攻击与否的策略,如果两个矿池都不攻击,则此时收益不受影响,如果一个矿池攻击另一个不攻击,则攻击矿池收益增加,受害矿池收益减少,两个矿池都攻击,则收益减少,但没有受害时减少的多,这时我们依然假设双方都是采用利己策略,按照上面的分析,在不知道对方选择的情况下,二者极有可能将选择相互攻击,从而陷入囚徒困境的纳什均衡

上面的博弈只是个简单的分析,这种两池间的互相攻击情况是较为复杂的,在二者算力不同与相同的情况下二者需要投入的算力的比例以及最终收益也是不同的,也就是说达到的纳什均衡的平衡点是不一样的,篇幅以及水平所限这里就不展开来说了,有意愿深究的可以自行去了解

而且在理论上这种攻击的困境是无法避免的,只有当双方中一方的算力在总算力中占比超过80%才能在这种博弈中取得收益,也就是可以避免攻击,当然,这种情况几乎是不会发生的

另外在这种攻击模式下其实还有一点需要注意,就是要防范间谍矿工的诞生,A矿池派出矿工渗透进B矿池,B矿池攻击A矿池的时候如果不进行检查有可能将A矿池派来的矿工又给派了回去,这样这些矿工就成了间谍,这样A矿池自然乐见其成,被B派来的A矿工将在A手下诚实的工作,提交区块,B矿池血亏,所以要进行防范矿池就需要有自己的亲兵,也就是验证过的忠诚的矿工,这对一般的矿池而言其实不是什么问题,它们手下都有大量的矿机,,用以出租或出售等,当然了,具体的规模一般人也无从得知

如何检测

这种攻击其实是很难检测的,目前而言常用的做法也只是针对矿工提交的share来计算其算力,与他实际发现的区块数进行对照查看是否存在问题,不过这种方法效果确实很有限,因为有可能对方确实就是运气不好,而且攻击方往往会对攻击的矿工进行拆分,使用许多账号来挖矿,这样对应的算力更加小了,不确定性因素更大,除非统计的周期足够长,否则很难发现攻击的具体来源,只能这样被动的挨打


如何防范

目前提出的较可能的区块截留攻击的解决方案是更改挖矿算法使得矿工无法验证得到的share是否是符合比特币要求的区块解,这样也就无法选择丢弃了,下面是一种可能的方式

每个Block额外添加三个字段——SecretSeed,ExtraHash和SecretHash

其中ExtraHash = hash(SecretSeed)

ExtraHash是block header的一部分,也将参与blockhash的运算

SecretHash = hash(BlockHash + SecretSeed)

之前一个有效的block需要满足BlockHash前32n位为0,现在还需要满足BlockHash前32位为0,同时满足SecretHash的前n位为0

因为矿工并不知道SecretSeed,所以无法计算SecretHash,也将无法验证区块是否满足要求,只能在找到满足要求的BlockHash后就提交share,由矿池来完成区块的验证[9]


资金安全

比特币挖矿行业涉及到资金保管与支付,安全问题是重中之重。

传播网络

建立高速的传播网络是降低孤块率的要求,同时也应该减少报块数据延迟。

网络稳定性

考虑到全球网络的互通问题以及国内网络的特殊情况,应确保网络连接的稳定性。

数据结构复杂性

矿池涉及到数据库的读写,如何降低矿池数据结构的复杂度,以提高效率和稳定性维护系统重点。

算力支持

由于部分矿池的代码开源,商业模式可复制;算力越多,出块概率越大,矿池的现金流越稳定,所以矿池行业最大的痛点是是否有足够的算力。[10]

矿池排行

近12个月矿池份额占比排行榜[11],现在时刻2019.4.24 15:02

BTC.com

AntPool

Other

F2Pool

Poolin

SlushPool

BTC.TOP

ViaBTC

unknown

DPOOL

BitFury


已关闭/不出块矿池

已“消失”的比特币矿池名单

(注:“消失”的定义是近1个月没有出过区块)

http://BCMonster.com 成立于2016-01-13

Bitcoin Affiliate Network 成立于 2014-07-15

BitMinter 成立于2011-06-26

BTCC Pool 成立于2014-10-21

BTCDig 成立于2013-07-04

http://Btcmp.com 成立于2011-06-28

http://Btczpool.com 成立于2017-06-25

Eligius 成立于2011-04-27

http://GHash.IO 成立于2013-07-01

Give Me COINS 成立于2013-08-12

Golden Nonce Pool 成立于2018-03-27

Jonny Bravo’s Mining Emporium 成立于2015-11-19

http://kmdPool.org 成立于2017-11-25

Merge Mining Pool 成立于2012-01-08

Merge Mining 成立于2016-12-01

Multipool 成立于2012-03-15

http://ZenPool.org 成立于2017-10-25

未来

行业走向

从行业内部竞争看:矿池是整个市场的上游企业,分析近一年的市场份额,可发现矿池行业的企业逐渐走向集中化,所以小矿池未来会退出市场。

从行业外部构建看:矿池的市场定位是服务业,所以矿池这个行业的前景主要取决于可挖矿币种的行业走向,矿池与未来区块链世界技术走向紧密相关。从历史发展来看,采用POW共识机制的项目越来越少,在市场需求萎缩、政策敏感、行业准入门槛较高的情况下,整个挖矿行业都在逐渐变得低迷,现有的矿池们亟待转型。同样,在上述背景下,矿池行业显现出了排斥新入场者的特点,一是目前算力已被头部矿池所把控,二是市场整体趋势向下,未看到良好的发展预期。

生态建设

矿池生态建设主要是纵向和横向两个维度。纵向的建设就是深耕矿池业,从软件升级,再到到财务整理,将细节处理到最好,一切为用户考虑,同时在技术上,时刻把握新算法,例如尝试PoS等新挖矿规则的玩法。横向维度的建设主要以钱包生态为主,矿工挖出的币直接放在矿池的钱包中,减少频繁的转账既可以方便矿工,又可以减少整个网络的压力。

未来压力

未来的矿池可能转向PoS等模式的挖矿,但是那个时候行业不仅面临矿池行业内部的竞争,也要面临imtoken等钱包的竞争。


参考资料