为了使得资料块产生的速度维持在大约每十分钟一个,产生新资料块的难度会定期调整。
如果资料块产生的速度加快了,那么就提高挖矿难度;如果资料块产生速度变慢了,那么就降低难度。比特币系统在每隔2016个资料块被产出后(约两周的时间),会以最近这段时间的资料块产生速度,自动重新计算接下来的2016个资料块之挖矿难度。
而难度基本上就决定了一个有效的资料块标头(英语:Block Header)的 SHA-256 杂凑值应小于一定值,也就是说该杂凑值必须要恰好落在目标区间之内才算有效,当目标区间越小就意味着命中机率越低。
换句话说就是挖矿的难度越高。由于ASIC计算设备的爆炸式加入,目前挖矿难度呈现几何级数的上升,目前平均每15天增加50%难度,让普通个人挖矿者的挖矿工作变得异常困难。
挖矿挖矿(英语:Mining),是获取比特币的勘探方式的昵称。由于其工作原理与开采矿物十分相似,因而得名。此外,进行挖矿工作的比特币勘探者也被称为矿工。
比特币矿工通过解决具有一定工作量的工作量证明机制问题,来管理比特币网络 —— 确认交易并且防止双重支付。中本聪把通过消耗CPU的电力和时间来产生比特币,比喻成金矿消耗资源将黄金注入经济。 比特币的挖矿与节点软件主要是透过对等网络、数位签章、互动式证明系统来进行发起零知识证明与验证交易。
每一个网络节点向网络进行广播交易,这些广播出来的交易在经过矿工(在网络上的电脑)验证后,矿工用自己的工作证明结果来表达确认,确认后的交易会被打包到资料块中,资料块会串起来形成连续的资料块链。中本聪本人设计了第一版的比特币挖矿程式,这一程式随后被开发为广泛使用的第一代挖矿软件Bitcoin,这一代软件从2009年到2010年中旬都比较流行。
每一个比特币的节点都会收集所有尚未确认的交易,并将其归集到一个资料块中,矿工节点会附加一个随机调整数,并计算前一个资料块的SHA-256杂凑运算值。挖矿节点不断重复进行尝试,直到它找到的随机调整数使得产生的杂凑值低于某个特定的目标。
由于杂凑运算是不可逆的,寻找到符合要求的随机调整数非常困难,需要一个可以预计总次数的不断试错过程。这时,工作量证明机制就发挥作用了。当一个节点找到了符合要求的解,那么它就可以向全网广播自己的结果。其他节点就可以接收这个新解出来的资料块,并检验其是否符合规则。如果其他节点通过计算杂凑值发现确实满足要求(比特币要求的运算目标),那么该资料块有效,其他的节点就会接受该资料块。1
挖矿矿产除了将接收到的交易资讯打包到资料块,每个资料块都会允许发行一定数量的新比特币,用来激励成功发现资料块的矿工。
比特币系统按照预定的货币增发节奏决定发行的比特币数量。如果其他支付交易有给手续费的,那么矿工还会获得手续费。由于矿工可以自行决定是否将某一个交易资料打包到资料块中,因此矿工有可能优先选择手续费较高的交易来打包。
资料块产生速率的预期为每10分钟一个,但每个资料块中,新发行的比特币不能超过50个,而这个数字每产出21万个区块就会减半,大约每4年就会发生一次。
因此,比特币的总数量不会超过2100万个。随着新发行比特币数量的下降,手续费将成为挖矿的主要动机。
那些在较早时期将电脑资源投入到比特币挖矿活动中的用户,相对于较晚加入的矿工而言,获得比特币容易得多。这样设计的原因,主要是为了保证在比特币的早期发展阶段可以吸引足够的计算力来处理资料块。事实上,如果没有人挖矿,比特币的初期交易活动就无法处理,比特币经济也将停止运行。
2012年12月第一次减半
第二次发生减半的实际时间是2016年7月9日 16:46:13 UTC,每个资料块中新发行的比特币目前为12.5个。1
挖矿难度为了使得资料块产生的速度维持在大约每十分钟一个,产生新资料块的难度会定期调整。
如果资料块产生的速度加快了,那么就提高挖矿难度;如果资料块产生速度变慢了,那么就降低难度。比特币系统在每隔2016个资料块被产出后(约两周的时间),会以最近这段时间的资料块产生速度,自动重新计算接下来的2016个资料块之挖矿难度。
而难度基本上就决定了一个有效的资料块标头(英语:Block Header)的SHA-256杂凑值应小于一定值,也就是说该杂凑值必须要恰好落在目标区间之内才算有效,当目标区间越小就意味着命中机率越低。
换句话说就是挖矿的难度越高。由于ASIC计算设备的爆炸式加入,目前挖矿难度呈现几何级数的上升,目前平均每15天增加50%难度,让普通个人挖矿者的挖矿工作变得异常困难。1
挖矿设备最早,比特币矿工都是通过Intel或AMD的CPU产品来挖矿。但由于挖矿是运算密集型应用,且随着挖矿人数与设备性能的不断提升难度逐渐增加,现在使用CPU挖矿早已毫无收益甚至亏损。
截至2012年,从2013年第一季度后,矿工们逐渐开始采用GPU或FPGA等挖矿设备。同时,ASIC设备也在2013年中旬大量上市。
从2013年7月起,全网算力由于ASIC设备大量投入运营呈现直线上涨,以2013年7月的平均算力计算,所有CPU挖矿设备均已经无法产生正收益,而FPGA设备也接近无收益。2013年9月平均算力估算,现有的针对个人开发的小型ASIC挖矿设备在未来1-2个月内也接近无正收益。大量算力被 5 THash/s以上的集群式ASIC挖矿设备独占。个人挖矿由于没有收益,几乎被挤出挖矿群体。有一些比特币矿工则集资在某些可取得低价电力的地方兴建机房安装大批挖矿设备进行挖矿。
自2017年,台湾也开始挖矿热潮,贩售挖矿机网站也随之兴起,像是Bitmain与Taimine挖矿公司。
部分比特币矿工为省下自己挖矿的成本,将挖矿程式制作成恶意程式,在网络上感染其他人的电脑,来替自己挖矿。2
矿池由于比特币全网的运算水准在不断的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。在全网算力提升到了一定程度后,过低的获取奖励的概率。促使一些**“bitcointalk”上的极客开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”(Mining Pool)**。
在此机制中,不论个人矿工所能使用的运算力多寡,只要是透过加入矿池来参与挖矿活动,无论是否有成功挖掘出有效资料块,皆可经由对矿池的贡献来获得少量比特币奖励,亦即多人合作挖矿,获得的比特币奖励也由多人依照贡献度分享。
截止2017年11月,全球算力排名前五的比特币矿池有:AntPool、BTC.com、BTC.TOP、ViaBTC、F2Pool,目前全球约70%的算力在中国矿工手中。1
手续费比特币矿工会对大部分交易收取少量费用,其主要目的是防止有人大量发送无聊的小额交易,浪费网络资源。当前每笔交易的手续费大部分是฿ 0.0001/KB(0.0001btc/KB),实际上0.9.0以后的版本将默认手续费降为฿ 0.00001/KB(0.00001 btc/KB)。因为大部分交易占用的数据量都小于1千字节,所以一般情况下**฿ 0.00001(****0.00001 btc/KB)**的手续费就足够了。同时,在将来比特币区块奖励较少时,手续费将成为矿工收入的主要来源,比特币的手续费会与该交易占用的字节数相关。
目前比特币系统中手续费的计算标准并非强制性的,因此使用者也可以在交易进行时不给予任何手续费,但大多数矿工在组建资料块时通常会优先考虑带有较高手续费的交易,以便在挖矿成功时能获得较高的报酬,因此无附带任何手续费的交易,可能会需要等待较长的时间才能被处理并纳入区块链中。
此外,现在因为区块容量上限1MB以及近期比特币交易量大增的因素,手续费大幅上涨,而且等待交易被确认的时间也变长了许多。3
本词条内容贡献者为:
王海侠 - 副教授 - 南京理工大学