挖矿的工作证明是怎么样的?

时间:2021-08-03 19:23:16 买帖  | 投诉/举报

工作证明和“采矿”说明

现在,让我们获得大量技术。用户检测篡改的方式(例如在实践中尝试双花)是利用散列(长串数字)作为工作量证明(PoW)。利用哈希函数(给定的数据使用SHA-256)放入一组给定的数据,它将仅生成一个哈希。可是,鉴于“雪崩效应”,即使对原始数据的任何部分开展微小的变更,也将导致完全无法识别的哈希。不论原始数据集的大小怎样,给定函数生成的散列都将具有同样的长度。哈希是一种单向函数:它不可以用于获取原始数据,只能用于检查生成哈希的数据是否与原始数据匹配。

针对现代计算机来讲,仅生成一组比特币交易的任何哈希值都是微不足道的,因此,为了将流程转变为“工作”,比特币网络设置了一定的“难度”。调整此设置,以便大约每10分钟就“挖掘”一个新块-利用生成有效哈希将其添加到区块链中。利用为散列建立“目标”来完成设置难度:目标越低,有效散列的集合越小,生成一个散列的难度就越大。实际上,这意味着以一个长串零开始的哈希:例如,块#429818的哈希为000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d。该区块包含2,012笔交易,涉及到1,000多个比特币,及其前一个区块的标头。假如用户利用0.0001比特币变更了一笔交易金额,则产生的哈希将无法识别,网络将拒绝欺诈行为。

鉴于给定的一组数据只能生成一个哈希,因此矿工怎样确保他们在目标下方生成哈希?他们利用添加一个整数来变更输入,该整数称为现时数(“一次使用数字”)。假如找到有效的哈希,它将被广播到网络,并将该块添加到区块链。

采矿是一个竞争过程,但大量的是彩票而不是比赛。平均来讲,某人每过十分钟便会产生可接受的工作证明,但任何一个人都将猜测是谁。矿工们聚集在一起以增加其开采区块的机会,这产生了交易费用,并在有限的时间内奖励了新创建的比特币。

工作量证明使变更区块链的任何方面变得极其困难,是因为这一变更将需要重新挖掘所有后续块。鉴于完成散列功能所需的机器和能力非常昂贵,这也使用户或用户池难以垄断网络的计算能力。