比特币挖矿的目标是成为首个找到比特币(BSV)网络所接受的区块输出的矿工,简单来说,矿工通过对比特币挖矿来获取比特币,然而矿工的收益并不是只有比特币,矿工收入的主要来源是来自于打包每个区块的交易费,细心的投资者会发现,在交易所转账的手续费有一部分也分给了矿工。然而想要完全搞清楚比特币挖矿的概念,首先要知道的就是比特币算法,那么,比特币挖矿算法是什么意思?接下来尚力财经小编就为大家介绍一下比特币挖矿算法叫什么。
比特币挖矿就是找到一个随机数(Nonce)参与哈希运算Hash(Block Header),所以比特币挖矿算法又被称为哈希算法使得最后得到的哈希值符合难度要求,用公式表示就是Hash(Block Header)<= target
比特币采用的哈希算法是SHA-256 ,也就是说最后会产生256位的输出,一共2^256种可能的取值。
最后得到的哈希值小于target的意思是把哈希后得到的bytes转换成数字后小于target转换成的数字。
举个例子,直观的感受一下挖矿的难度;
SHA-256计算123的值
a665a45920422f9d41尚力财经小编7e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
接下来这段字符是比特币第1000个区块的哈希(2009年1月产生);
00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09
可以看到前面有8个0,虽然哈希值的生成是随机的,但是生成前面有8个0的值对计算机穷举来说也并不算太难。
再看一下这段字符,是比特币第560000个区块的哈希(2019年1月产生);
0000000000000000002c7b276daf6efb2b6aa68e2ce3be67ef925b3264ae7122
可以看到前面有18个0,要生成满足这个条件的哈希对于普通电脑来说几乎是不可能完成的任务了。
简单来看挖矿难度的高低就是生成区块头的哈希值有多少0。
在比特币系统中出块时间被设置为一个常数10分钟,但是挖出区块的速度并不是固定的,而是随着挖矿难度的变化在10分钟上下浮动, 挖矿难度越大,出块时间就越长,为了得到相对平均的出块时间,需要动态调整挖矿难度。
比特币每产生2016个区块调整一次挖矿难度,一个块10分钟,2016个块大概是两周的时间,而调整挖矿难度的这些逻辑都在代码中,当大多数诚实节点采用这个策略的时候整个网络就会自动遵循这个策略。
挖矿难度的计算公式如下:
diffculty = difficulty_1_target / target
此处的 difficulty_1_target 为一个常数,非常大的一个数字( 2^(256-32)?1 )。表示挖矿的初始难度,目标值越小,区块生成难度越大。
2^(256-32)?1 是比特币的初始难度,是前2016个块的难度。
这个难度被存储在比特币的区块头nBits字段中,当有恶意节点篡改这个策略时,挖矿产生的区块头的哈希值就会和诚实节点产生冲突,不会被接收,白白浪费了算力。
以上内容就是对比特币挖矿算法是什么意思?这个问题的回答,到现在为止,挖矿依旧是可以获取比特币的途径之一,但是因为成本比较高,挖矿的热度已经没有前几年那么火爆了,但是最近币圈中还出现了云挖矿的方式,为矿工节省了大部分的成本,但是投资者在选择云挖矿的时候一定要选择正规机构,不要轻易相信一些不入流的机构,那种都是骗子,投资者最重要的就是守护好自己的资产安全。