在全网算力提升到了一定程度后,单台机器挖到块的概率变得非常的低。这种现象的发展,促使一些“bitcointalk”上的极客开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”(MiningPool)。
矿池存在意义为提升比特币开采稳定性,使矿工收益趋于稳定。
矿池通过专用挖矿协议连接矿机,矿机通过机器内运行的挖矿软件连接到矿池指定的域名和端口。矿机在挖矿时保持和矿池服务器的连接,和其他矿机同步各自的工作,这样矿池中的不同的矿机(对应不同的矿工)拿到不同的挖矿任务,之后分享收益。矿池每天按矿工贡献支付收益到矿工的钱包地址,但因为支付有手续费,矿池都会设置最低起付金额,如果当日起付金额未达到矿池最低起付金额,矿池会将这部分金额累计,直到某天矿工待支付的收益大于矿池的最低起付金额。
图为币印矿池各币种最低起付金额。
矿池将区块难度任务(job)进行分割,发送给矿工不同难度的任务(job),每次计算完成之后,矿工便提交给矿池一个工作量(share)。当矿池验证这些share没有问题后,就会接收并统计数量。矿池在分配收益时,根据各个矿工提交的share,按占比,来分配这些新币。
矿池最大的优势在于矿池突破地理位置的限制,将分散在全球的矿工及矿场的算力进行联结,一起挖矿。矿池负责将交易打包,接入进来的矿机负责竞争记账权。理论上矿池的算力越大,越容易挖到块,但仅从概率角度说,各个矿池和矿工享有同等的出块概率。
矿池是一个全自动的开采平台,即矿机接入矿池——矿机提供算力——获得收益。
矿池将单位矿工算力进行整合,同时将挖矿的难度分成很多小任务发送给矿工,矿工根据任务进行计算,同时向矿池提交任务答案,也就是提交我们经常说的share(一个工作量)。结算收益时,就需要有一定的结算模式来分配挖矿收益。常用的模式包括PPS,PPLNS,PPS+,FPPS,SOLO等。其中部分结算模式中收益的分配会跟矿池的幸运值挂钩。
幸运值指的就是矿池的运气好坏,数值上等于实际出块数量/理论出块数量*100%。举个例子,如果看到A矿池幸运值200%,意味着过去24小时理论上可挖n个块,实际挖了2n个。
简单来说,PPS就是打工模式,矿工把算力卖给了矿池去获得固定收益,矿池自负盈亏,因为矿池承担了一定风险,所以PPS模式矿池费率相对要高一些。
Share即提到的矿工提交给矿池的任务答案,PPS收益模式下根据矿工提交的任务量来计算。
举个例子:矿工的算力为1T,整个矿池算力100T,全网总算力1000T,比特币网络平均每10分钟出一个块,出块奖励为12.5个BTC,矿池占全网总算力的十分之一,矿池收益期望值为1.25个BTC,矿工的算力占矿池算力的百分之一,无论矿池是否挖到区块,矿工的收益都按照理论收益1.25个BTC的百分之一获得。
简单来说,PPLNS成功挖到区块后,矿工根据自己贡献的share数量来分配收益。这样的结算方式和爆块(也就是上文提到的幸运值)就息息相关了,如果矿池一天挖出多个区块,矿工收益会很高;如果矿池一天下来都没有能够挖到区块,那么矿工一天收益是0。
短期来看,PPLNS模式和矿池的幸运值关系很大,和PPS相比,PPLNS更接近一种组队模式挖矿。需要注意的是,矿工加入到一个新的PPLNS矿池,这个时候会发现前面几个小时的收益比较低,那是因为其他矿工在这个矿池里已经贡献了很多个share了,新加入的矿工的贡献还很少,所以分红时新加入矿工的收益都是比较低的。这是因为PPLNS具有一定的滞后惯性和周期性,新加入的矿工的挖矿收益会有一定的延迟。
是PPS和PPLNS两种费率模式的结合,即对出块奖励按照PPS模式结算,而对矿工费/交易手续费按照PPLNS模式进行结算。也就是说,在这种模式下,矿工可在PPS收益模式的基础上,额外获得部分交易费的收益。
即完全PPS,对矿池理论出块奖励和过去一段时间理论矿工费/交易手续费均按照PPS进行结算。