个性化阅读
专注于IT技术分析

采矿是如何运作的?为什么需要采矿?

加密货币是当今Internet上讨论的最热门话题之一。但是在了解采矿的工作方式之前, 我们可以问自己以下两个问题:

为什么需要采矿?

加密货币挖矿不仅仅是赚钱。矿工在区块链网络中具有重要作用。他们解决数学问题并批准其他用户在互联网上的交易。矿工可以保护区块链免受区块欺诈和黑客攻击, 并保证网络的去中心化。

但是挖掘的主要功能是不同的。主要功能是达成协议, 在此基础上可以认为某笔交易是有效的, 因此, 任何用户都无法花费已经在另一笔交易中花费的硬币。这就是为什么接收比特币只是做有用的工作的副作用。

加密矿工的目的是什么?

每当进行加密货币交易时, 加密货币矿工就负责确保信息的真实性并使用有效交易更新区块链。挖掘过程涉及与其他加密矿工竞争, 以解决与包含交易数据的区块相关的加密哈希函数的复杂数学问题。

第一个解决难题的加密货币矿工可以通过授权交易而获得回报, 并且作为所提供服务的回报, 加密矿工自己赚取了少量的加密货币。

现在我们知道了加密货币采矿和矿工的目的, 我们可以继续前进并了解其工作原理。为此, 我们可以看一下区块链中一个块的结构:

表–

块状结构

8896
交易数量 1800
交易价值 $ 1349873
时间戳记 2017-11-11 01:35:55
由中继 ViaBTC
困难 1765987453897.67
尺寸 1063.67 kB
随机数 880
区块哈希 0000abcdcee78ab745b9f…

除了上面提到的字段外, 块实际上包含更多的字段。但是, 我们现在将重点放在”块哈希和Nonce”字段上。

区块哈希-

好吧, 可以通过存储数据的哈希值来”存储”区块链中的数据, 这样, 如果你有要自己哈希的数据并对照区块链中的那个进行校验, 则至少可以验证存储哈希值的数据是该数据。默克尔树是执行此操作的一种方法。请参考下图以了解为什么使用Merkle树。

采矿如何运作?1

图–

Markle树

因此, 要构建Merkle树, 你需要创建一个树数据结构, 其中每个叶节点都包含要存储的数据部分的哈希值。从那里开始, 获取子节点串联的哈希, 然后将值传播到父节点, 继续此过程直到树, 直到生成最终哈希。叶子上的即使很小的变化也将向上传播并改变最终的哈希值。

哈希是使用哈希函数生成的256位十六进制数, 例如, 比特币使用SHA256算法生成哈希。

我们知道, 矿工的目的是计算将获得奖励的区块的哈希值。似乎很容易。为了平整该字段, 每个矿工都限于特定的目标哈希。目标哈希值表示, 对于矿工开采的每个区块, 如果计算出的哈希值大于目标哈希值, 则将其丢弃。

随机数–

这就是Nonce概念起作用的地方。 Nonce代表”号码仅使用一次”。众所周知, 矿工必须计算哈希值, 该值应低于分配给他的目标哈希值。但是由于雪崩效应, 他无法更改块号, 数据, 先前哈希以猜测新哈希。他唯一可以改变的领域是Nonce。

随机数是一个32位数字。因此, 当2 ^(32)= 4、294、967、296时, 最大可能有大约40亿个Nonce值。

为每个迭代随机选择随机数。因此, 对于每次迭代, 选择0到4之间的随机整数294、967、296。

请考虑下表:

8896
交易数量 1800
交易价值 $ 13849673
时间戳记 2017-11-11 01:35:55
由中继 ViaBTC
困难 1456324543655.677
尺寸 1066.34 kB
随机数 880
区块哈希 000abddbcdef673bedb4…
采矿如何运作?2

图–

所有可能的哈希

在上图中, 圆圈代表针对特定随机数值获得的哈希值。黑色圆圈表示计算出的哈希值无效。绿色圆圈代表有效的哈希值。分配给矿工的TARGET意味着, 仅当计算的哈希值由4个前导零组成(此处仅作为示例。目标哈希值可以随多个前导零而变化), 矿工才能开采该块。大于此值的所有哈希将被丢弃。

我们从88的随机数开始, 如我们所见, 它产生的散列大于目标散列。随机数值更改为777, 并重新计算哈希。我们重复此过程, 直到找到一个随机数, 该随机数产生的哈希值小于目标哈希值。根据上图, 这发生在Nonce值7778处。现在, 矿工可以验证该区块并将其添加到区块链中。


赞(0) 打赏
未经允许不得转载:srcmini » 采矿是如何运作的?为什么需要采矿?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏