简明解读加密货币 PoW 挖矿原理及挑战

[复制链接]
10015 |0
发表于 2020-11-27 13:00:02 | 显示全部楼层 |阅读模式

工作量证明(PoW)被用于一些最大的加密货币上,但这并不意味着其是最高效、最安全的系统。

原文标题:《科普丨什么是加密货币挖矿?》
撰文:Jerry Qi
翻译:Olivia

当我还是一个七年级的学生时,我就已经被加密货币的世界吸引住了。起初,我觉得这简直就是一个免费的货币生成器,只要我让我的笔记本电脑像风火轮一样呼呼地运行 Crypto-mining 软件,它就会给我免费的加密货币。

最后,我的笔记本电脑确实产生了加密货币,然而,只有非常非常少的加密货币。

我用我的笔记本电脑做的事情,本质上是「加密挖矿」。

wk588_xloqhbr3tj2.jpg

wk588_xloqhbr3tj2.jpg 来源:btcwires

「挖矿」

你可能听说过加密货币BTC,也听说过一个叫「挖矿」的名词与这类加密货币有关。

加密货币挖矿,简单来说,就是矿工或个人使用设备从事支持区块链网络的「工作」,以获得加密货币奖励的过程。

wk588_vwsvfjtcfmp.jpg

wk588_vwsvfjtcfmp.jpg Onenote 上的小型 P2P 网络草图

区块链:它是一种网络分布式记录或分布式账本,记录那些人们在网络上的行为。因此,对于加密货币的区块链网络来说,区块链的功能将是记录网络上个人的交易。

在这篇文章中,我将以BTC为例,解读挖矿背后的意义。

回到矿工的「工作」这个话题。为了让矿工获得BTC的奖励,矿工要做的简单「工作」就是对BTC区块链上的交易进行验证。

在验证时,挖矿者将执行一系列检查,以确保分配的交易是合法的,并且交易参与者不会支付相同数量的加密货币两次。例如,当 Joe 给 Brandon 发送了 12 个BTC,而 Brandon 试图给 Tony 发送 7 个BTC和 Max 8 个BTC,这将被认为是一笔欺诈交易,因为 7+8>12。我刚才给出的情况是「双花问题」的一个例子:Brandon 试图两次消费同一个BTC。

在矿工已经验证了 0-4 兆字节之间的BTC交易(大约 1500-3000 笔交易),相当于一个区块的近似最大大小。他们已经完成了比较容易的一半工作,以获得BTC奖励。然而,在验证之前的任务是最复杂的,使矿工有资格验证交易。

挖矿业的运气部分

通过率先解决一个字符串序列的计算,也就是所谓的创建工作证明 (Proof of Work)。创建工作证明 (Proof of Work) 是矿工们最需要计算力的过程。(下面我将在后面的章节中解释为什么叫工作证明 (Proof of Work))

为了理解工作证明 (Proof of Work) 算法,你必须先熟悉区块链中的「哈希」一词。

网络检测区块链中区块的篡改的方式是通过其哈希值 ; 由区块中的信息定义的数字和字符组成的长字符串。通过把数据通过哈希函数,比如BTC使用的 SHA-256 使用,就会产生一个针对该特定输入的序列。意思是说,如果输入数据哪怕改变一个字符,输出的哈希值就会完全改变。另外,哈希是一个可加密但不可解密的结果,因此,它不能用来获取原始数据,只能作为验证哈希的输入数据是否相同的一种方式。

创建工作证明 (Proof of Work) 需要矿工运行哈希算法来「猜测」问题的合适答案。对于BTC区块链网络来说,矿工必须率先创建一个符合一定要求的哈希值,这个哈希值被称为「目标哈希」。

猜测目标哈希的必要信息就存在于新区块的区块头中。包含:区块版本号,时间戳,前一个区块的哈希值,以及目标哈希值。

wk588_mjr3fenfump.jpg

wk588_mjr3fenfump.jpg onenote 上的猜测过程草图

目标哈希的答案是由前一个区块的哈希值、现区块交易数据,加上 0-4,294,967,296 的整数(简称 nonce),然后放入哈希算法中生成的。

如果答案符合目标哈希的要求,该区块就会被添加到区块链中。最先验证交易并找出添加到该区块哈希中的那个 nonce 的矿工,就会得到BTC的奖励。否则,他们就会不断尝试寻找有效的目标值。

由于哈希算法的随机性,我们需要做大量的随机猜测来确定满足目标哈希的数值。

wk588_i4njvfixkz2.jpg

wk588_i4njvfixkz2.jpg 来源:Investopedia

尽管自己想找到 nonce 已经相当困难,并且在同一个网络上还有≥百万的其他个体与你竞争,使得一个设备获得BTC奖励的几率类似于中彩票的几率。因此,你可以通过提高处理能力或使用多台设备来获得更快的 Hash Rate (单位包括:KH/s、MH/s、GH/s 等)。

Hash-rate 一词可以解释为一个或一组设备计算数字和验证交易速度有多快的量(是计算能力的衡量标准)。

共识机制

像BTC区块链这样去中心化 P2P 的网络,没有中心主要人物,只能根据不同的共识机制进行决策。共识机制在交易验证的同时,也奠定了挖矿的目的。

wk588_t3yzy2gwd4o.jpg

wk588_t3yzy2gwd4o.jpg 来源:维基百科

共识机制有很多形式,但它们都是为了同一个目标:「核实并确保记录的真实性和完整性」(来源:Tech in Asia)。

目前主要有三种机制:工作证明 (Proof of Work)、权益证明和权力证明。在本文中,我将重点介绍共识的工作证明 (Proof of Work) 方法。

说到挖矿,这总结了工作证明 (Proof of Work) 模式的工作原理:个人首先要创建一个工作证明 (Proof of Work),然后他们验证BTC交易以确保区块链中的记录是真实的。然而,在验证交易之前先让我们深入了解一下工作证明 (Proof of Work) 的目的。

工作证明 (Proof of Work) 的历史和目的

这种工作证明 (Proof of Work) 的想法在 1993 年就已经出现,由 Cynthia Dward 和 Moni Naor 在一篇论文(On Memory-Bound Functions For Fighting Spam)上提出,文中解释了阻止垃圾邮件的不同方法。这篇论文的重点是通过计算能力来发送电子邮件的想法。

例如,如果你想通过电子邮件给我发送一条信息,那么你必须证明你仅仅为了给我发送这条信息就花费了比如说 30 秒的计算能力。

由于现代计算机的速度很快,在这种情况下,垃圾信息 / 邮件 / 交易就成了一个大问题。但是,通过给每个操作设置一个「工价」,就可以大大减少垃圾信息。

wk588_egrr4wwteul.jpg

wk588_egrr4wwteul.jpg 在 onenote 上验证勤劳的门钥匙例子

简而言之,「prover」向「vercker」证明他们在一定的时间间隔内投入了一定的计算能力。

随着时代的发展,BTC的创造者「中本聪」修改了让BTC矿工生成数据片段的想法,这是比较困难的部分。而网络上的其他人要验证它是否真的满足目标哈希值就很容易了,因为他们只需要把需要的数据通过 SHA-256 算法。

通过这种工作证明 (Proof of Work) 系统,就能够保证区块链等系统的安全性并建立一个验证共识,因为真正验证区块的将是一个投入了巨大计算能力的设备。这就给了网络一个保持公平和诚信的经济理由。

如何做到这一点呢?

举例来说,如果发生了欺诈交易并被批准,用户就会变得「犹豫不决」转而使用其他加密货并且降低价格。从经济上来说,矿工,也就是做BTC「生产」的人,会因为价格下跌而不开心。而与此同时,只有控制矿工才有足够的计算能力来触发欺诈性验证。所以,矿工们的工作动机就会转向保护交易,以确保币价不跌。

工作证明 (Proof of Work) 机制的劣势

虽然工作证明 (Proof of Work) 被用于一些最大的加密货币(BTC、ETH等)上,但这并不意味着其是最高效、最安全的系统。

wk588_i4cc3m3st3g.jpg

wk588_i4cc3m3st3g.jpg 来源:BBC

消耗功率

工作证明 (Proof of Work) 的过程需要耗费大量工作,因为计算机只是通过粗暴的方式用所有的可能性来猜测正确答案。这一方式浪费大量的电力和资源。从更大的范围来看,想象一下,全世界所有的矿工都在试图「挖矿」以获得BTC的奖励同时浪费着资源,如果他们不先猜出 nonce 甚至对网络没有贡献。

违背了去中心化的理念

由于挖矿需要耗费大量的电费,矿工们建立了中央矿场,控制了大部分的区块验证。这几乎让 P2P 去中心化的想法变得毫无用处因为这意味着只有控制矿工才会同意攻击网络。

电力成本也促使矿商聚集在电力成本较低、利润较高的地方,以便开展挖矿活动。集中决策权。

工作证明 (Proof of Work) 的替代方案

如上所述,还有其他共识机制能够取代 PoW。例如:Proof of Stake、Proof of Authority 和 Proof of Capacity。

Proof of Stake 通过验证者钱包里的货币数量来确定交易验证者。

假如你想象一群人买彩票。买彩票最多的人将有更大的中奖机会。这与股权证明类似,如果你的钱包里有最多的加密货币,你将有最大的机会成为验证者并获得奖励。

权限证明通过个人的「可信度」来确定交易验证者。

想象一下,一群人选择几个最值得信任、REP最好的人去验证交易的有效性。

能力证明通过个人对网络内存空间的贡献来确定验证者。

这种机制允许网络上的贡献节点共享内存空间,所以贡献的设备拥有的内存越多,它成为验证者和获得奖励的可能性就越大。

上述这些方法所需要的计算量大大减少,在交易的验证中可以更加省电。

总结

  • 挖矿行为是验证和生成工作证明 (Proof of Work) 的过程。

  • 生成工作证明 (Proof of Work) 允许矿工验证交易。

  • 生成工作证明 (Proof of Work) 是一个数字猜测和强迫的过程。

  • 工作证明浪费电 (Proof of Work wastes electricity),除了工作证明 (Proof of Work),还有其他方式,如利害关系证明 (Proof of Stake)、能力证明 (Proof of Capacity)、权力证明 (Proof of Authority)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门版块
快速回复 返回顶部 返回列表