工作量证明是什么意思?
工作量证明描述了一种系统,该系统需要少量的但可行的努力才能阻止轻率或恶意使用计算能力,例如发送垃圾邮件或发起拒绝服务攻击。 哈尔·芬尼(Hal Finney)在2004年通过“可重复使用的工作证明”的思想将这一概念应用于金钱。 自2009年推出以来,比特币成为Finney想法的第一个被广泛采用的应用程序(Finney也是第一笔比特币交易的接收者)。 工作量证明也构成了许多其他加密货币的基础。
工作证明说明
这种解释将集中于工作证明,因为它在比特币网络中起作用。 比特币是一种数字货币,其基础是一种称为“区块链”的分布式账本。 该分类帐包含按顺序“块”排列的所有比特币交易记录,因此不允许用户将其持有的任何资产花费两次。 为了防止篡改,分类帐是公开的或“分布式的”; 更改的版本将很快被其他用户拒绝。
在实践中,用户发现篡改的方式是通过散列,长串数字作为工作量证明。 通过哈希函数(给定的数据使用SHA-256)放入一组给定的数据,它将仅生成一个哈希。 但是,由于“雪崩效应”,即使对原始数据的任何部分进行微小的更改,也将导致完全无法识别的哈希。 无论原始数据集的大小如何,给定函数生成的散列都将具有相同的长度。 哈希是一种单向函数:它不能用于获取原始数据,只能用于检查生成哈希的数据是否与原始数据匹配。
对于现代计算机而言,仅生成一组比特币交易的任何哈希值都是微不足道的,因此,为了将流程转变为“工作”,比特币网络设置了一定的“难度”。 调整此设置,以便大约每10分钟就“挖掘”一个新块-通过生成有效哈希将其添加到区块链中。 设置难度是通过为散列建立“目标”来实现的:目标越低,有效哈希的集合越小,并且生成哈希越难。 实际上,这意味着以一个长字符串零开始的哈希:例如,块#429818的哈希为000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d。 该区块包含2, 012笔交易,涉及1, 000多个比特币,以及前一个区块的标头。 如果用户通过0.0001比特币更改了一笔交易金额,则产生的哈希将无法识别,网络将拒绝欺诈行为。
由于给定的一组数据只能生成一个哈希,因此矿工如何确保他们在目标下方生成哈希? 他们通过添加一个整数来更改输入,该整数称为现时数(“一次使用数字”)。 一旦找到有效的哈希,它将被广播到网络,并将该块添加到区块链。
采矿是一个竞争过程,但更多的是彩票而不是比赛。 平均而言,某人每隔十分钟就会产生可接受的工作证明,但任何人都将猜测是谁。 矿工们聚集在一起以增加其开采区块的机会,这产生了交易费用,并在有限的时间内奖励了新创建的比特币。
工作量证明使更改区块链的任何方面变得极为困难,因为这种更改将需要重新挖掘所有后续块。 由于完成散列功能所需的机器和能力非常昂贵,这也使用户或用户池难以垄断网络的计算能力。