一、什么是比特币挖矿难度如何调整原理是什么
比特币挖矿难度(Difficulty),是对挖矿困难程度的度量,挖矿难度越大,挖出区块就越困难。目标值(Target)与挖矿难度成反比。难度越高,目标值越小。而难度目标是目标值通过转化得到,是一个只有 4个字节的字段(为了便于理解,本文将难度目标等同目标值处理)。比特币系统正是通过调整区块头中难度目标来控制挖出区块所需平均时间的。
目标值是个长度为 256比特的字符串,换句话说目标值约有 2^256种可能的取值。调整难度目标就是调整目标值在整个输出空间的占比。
举例说明:挖矿就如射击,所有射出去的子弹都会落在一个很大的靶子上。难度目标就是这个大靶子上圈出一个范围,这个范围越小,被射中的难度就越高。调节难度目标,就是调节这个圈在整个靶子上的占比。
挖矿算力增大,单位时间射击的次数就越多,目标范围被射中所需的时间就越短。反之,挖矿算力减小,目标范围被击中所需的时间就越长。而比特币系统追求的平均出块时间为 10分钟,这时候就需要调整难度目标来实现。
02如何调整难度目标?
比特币系统是怎样调整难度目标的呢?在《白话区块链入门 080|数说比特币,了解比特币必须知道这 10个数字》一文中,我们介绍了比特币系统每过 2016区块(大约为 14天时间),会自动调整一次难度目标。所有区块高度为 2016整数倍的区块,系统就会自动调整难度目标。如果上一个难度目标调整周期(也就是之前 2016个区块),平均出块时间大于 10分钟,说明挖矿难度偏高,需要降低挖矿难度,增大难度目标(准确地说是目标值);反之,前一个难度目标调整周期,平均出块时间小于 10分钟,说明挖矿难度偏低,需要缩小难度目标。
03难度目标的可调范围
比特币系统设定,难度目标上调和下调的范围都有 4倍的限制。举例说明:假设上一个难度目标调整周期内的 2016个区块,由于算力暴涨,只用 7天就全部挖出来了,通过难度目标调整,将难度目标缩小一倍,可以将平均出块时间维持在 10分钟左右,但如果算力暴涨,前 2016个区块全部挖出只用了 1天,那么难度目标最小只能调整为原来的四分之一。
04总结
比特币的算力是持续波动的,比特币系统通过难度目标的调整,使得平均出块时间维持在 10分钟左右。难度目标和挖矿难度成反比,挖矿难度越大,难度目标越小。当区块高度为 2016的整数倍时,比特币系统就会在该区块上,自动调整难度目标。如果上一个难度目标调整周期内,平均出块时间超过 10分钟,那么降低挖矿难度,增大难度目标;反之则提高挖矿难度,减小难度目标。难度目标上调和下调的范围都有 4倍的限制。
比特币每 2016个区块(大约 14天)调整一次挖矿难度,相比于 BCH每个区块都调整(大约 10分钟调整一次),有明显的滞后性。你认为是哪种调整方式更合理呢?为什么呢?欢迎在留言区分享你的观点。
二、比特币挖矿难度与收益计算
比特币挖矿难度与收益的计算关系是矿工关注的焦点。随着BCC分叉后,矿工为追求更高收益而频繁迁移,这一现象背后的驱动力在于收益与难度之间的紧密联系。收益的计算基于难度调整,比特币每2016个块周期调整一次难度,难度通过计算目标值的困难程度来体现。
比特币挖矿难度的公式为 diff= diff_1_target/ target,其中 diff_1_target是难度为1时的目标值,是常数,一个很大的数字。比特币的难度计算涉及到 diff_1_target和当前网络目标值(target),通过公式 diff= 0x1d00ffff/ target可以得出具体值。
网络调整难度的目的是保持出块速度平均在每10分钟一个块,每2016个块周期调整一次,以确保周期内平均出块速率与10分钟保持一致。调整难度的时机由周期内剩余区块数量决定,计算公式为该周期剩余区块数量= 2016-(当前区块高度% 2016)。
挖矿收益计算基于计算出的区块哈希值需要小于当前target值,这个值是一个从0到(2^256)-1的范围,需要通过矿机的暴力破解来计算。难度与算力的关系明确:难度越大,需要的算力就越大。以单位为1Th/s的标准算力为例,一天的收益计算如下:
一天能够计算的哈希次数= 1T* 86400
收益= 1T* 86400/ D/( 2* 32)*块收益
基于上述公式,可计算当前挖矿的理论收益,并据此制作BTC和BCC的收益计算器。理解原理后,使用现成的计算器输入算力,即可得知产出的币量及其价值,从而决定挖哪种币更划算。通过汇集历史数据,可以直观观察到难度和收益的变化趋势。
三、比特币挖矿的难度和算力
难度是对挖矿困难程度的度量,即指:计算符合给定目标的一个HASH值的困难程度。
difficulty= difficulty_1_target/ current_target
difficulty_1_target的长度为256bit,前32位为0,后面全部为1,一般显示为HASH值:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, difficulty_1_target表示btc网络最初的目标HASH。 current_target是当前块的目标HASH,先经过压缩然后存储在区块中,区块的HASH值必须小于给定的目标HASH,区块才成立。
例如:如果区块中存储的压缩目标HASH为 0x1b0404cb,那么未经压缩的十六进制HASH为
所以,目标HASH为0x1b0404cb时,难度为:
比特币的挖矿的过程其实是通过随机的hash碰撞,找到一个解 nonce,使得块hash小于目标HASH值。而一个矿机每秒钟能做多少次hash碰撞,就是其“算力”的代表,单位写成 hash/s或者 H/s
算力单位:
比特币系统的难度是动态调整的,每挖 2016个块便会做出一次调整,调整的依据是前面2016个块的出块时间,如果前一个周期平均出块时间小于10分钟,便会加大难度,大于10分钟,则减小难度,目的是为了保证系统稳定的每过 10分钟产出一个块,所以难度调整的时间大概是2周(2016* 10分钟)
全网算力是btc网络中参与竞争挖矿的所有矿机的算力总和。当前难度周期全网算力会影响下一个周期的难度调整,如果全网算力增加,挖矿难度增大,单台矿机固定时间的产出就会减少。目前全网算力大概是24.42EH/s,一台蚂蚁S9矿机的算力大概是14TH/s
那么,已知当前全网算力,下一个周期难度将如何调整呢?
根据公式:
因为出块时间要稳定在10分钟,也就是600s:
那么,在3.46e+12的难度下,一台算力为14TH/s的矿机平均要花多长时间才能出一个块呢?
根据公式:
有:
结果大概是12270天
四、用笔记本在家挖矿,一天可以挖几个比特币
现如今,试图使用笔记本或家用电脑在家中进行比特币挖矿,无疑是浪费时间,连比特币的最小单位——1聪(1比特币等于1亿个聪)都不可能获得。如果挖矿真的像人们想象中那么简单,那么比特币矿场就不会建立在远离城市、靠近发电厂的山区,也不会有那么多耗电量巨大、价格昂贵的专业矿机。
如今,一台专业矿机的算力可达110TH/s,功耗为3250w,即每小时耗电3.25度。这样一台矿机一年可以产出0.2158个比特币,年耗电量为284700度电,如果以每度电3毛钱计算,电费高达85410元。110TH/s的算力意味着每秒可以进行110万亿次哈希碰撞。
对比一下,一块性能出色的GTX 1080Ti Neptune水冷显卡,其超频后的算力约为1.8GH/s,即0.0018TH/s。按照这个速度,挖出一个比特币简直就是遥不可及的事,更不用说用普通家用电脑了。
实际上,在家用电脑挖矿在2010年之前是有可能的。2010年,挖一个比特币需要经历7.3百万次哈希碰撞。当时,如果懂得如何挖矿,用普通电脑是有可能挖到比特币的。但当时比特币的价值对大多数人来说并不具有吸引力,就像所有人都后悔没有早点买房一样。
然而,自2016年起,随着挖矿难度的增加,比特币的价格也在不断上涨,给人一种比特币价格与算力增加成正比的错觉。实际上,通过观察算力曲线和价格曲线,我们会发现,价格和算力并不总是成正比,它们都会随着时间的推移有涨有跌。这时我们才会意识到,比特币具有了股票、债券、期货等市场属性,可以被炒作,也受市场、政策等因素的影响。
按照中本聪的算法,比特币的总量约为2100万个。最初,每完成一次记账就会奖励50个比特币,但每4年奖励会减半,预计到2140年奖励将降至0。因此,随着时间的推移,挖出比特币的难度会越来越大。
用家用电脑挖矿放在2010年以前或许还有可能,但现在已经不可能了。比特币的价值在2月20日早晨突破了56000美元,24小时内上涨了8.29%,成交量为753.9亿美元,市值达到了1.04万亿美元。
因此,对于普通人来说,不要妄想用笔记本在家挖比特币了。保持当前比特币的全网算力难度不变,即便是使用当前性能较好的3060显卡,也需要1400年才能挖出一个比特币。时代已经发展到了这个阶段,如果现在是2009年或2010年的那个时间节点,家用电脑当时确实是可以支持挖掘比特币的,因为全网算力不高,参与量很少。
总之,比特币已经过了可以用家用电脑挖矿的时代。现在,想要挖矿至少需要配备1050ti以上的显卡,而且显卡越多,解码越快,同时对电费和显卡寿命的消耗也是不小的费用。因此,作为普通人,最好不要打比特币的主意,以免失望。
本文来自用户投稿,不代表币大牛资讯立场,如若转载,请注明出处:https://www.98xmw.com/zhis/8847.html
发表回复
评论列表(0条)