当我还是一个七年级的学生时,我就已经被加密货币的世界吸引住了。起初,我觉得这简直就是一个免费的货币生成器,只要我让我的笔记本电脑像风火轮一样呼呼地运行Crypto-mining软件,它就会给我免费的加密货币。
最后,我的笔记本电脑确实产生了加密货币,然而,只有非常非常少的加密货币。
我用我的笔记本电脑做的事情,本质上是 "加密挖矿"。
"挖矿"
你可能听说过加密货币比特币,也听说过一个叫 "挖矿 "的名词与这类加密货币有关。
加密货币挖矿,简单来说,就是矿工或个人使用设备从事支持区块链网络的 "工作",以获得加密货币奖励的过程。
Onenote上的小型P2P网络草图
区块链:它是一种网络分布式记录或分布式账本,记录那些人们在网络上的行为。因此,对于加密货币的区块链网络来说,区块链的功能将是记录网络上个人的交易。
在这篇文章中,我将以比特币为例,解读挖矿背后的意义。
回到矿工的 "工作 "这个话题。为了让矿工获得比特币的奖励,矿工要做的简单 "工作 "就是对比特币区块链上的交易进行验证。
在验证时,挖矿者将执行一系列检查,以确保分配的交易是合法的,并且交易参与者不会支付相同数量的加密货币两次。例如,当Joe给Brandon发送了12个比特币,而Brandon试图给Tony发送7个比特币和Max 8个比特币,这将被认为是一笔欺诈交易,因为7+8>12。我刚才给出的情况是 "双花问题 "的一个例子:Brandon试图两次消费同一个比特币。
在矿工已经验证了0-4兆字节之间的比特币交易(大约1500-3000笔交易),相当于一个区块的近似最大大小。他们已经完成了比较容易的一半工作,以获得比特币奖励。然而,在验证之前的任务是最复杂的,使矿工有资格验证交易。
挖矿业的运气部分
通过率先解决一个字符串序列的计算,也就是所谓的创建工作证明(Proof of Work)。创建工作证明(Proof of Work)是矿工们最需要计算力的过程。(下面我将在后面的章节中解释为什么叫工作证明(Proof of Work))
为了理解工作证明(Proof of Work)算法,你必须先熟悉区块链中的 "哈希 "一词。
网络检测区块链中区块的篡改的方式是通过其哈希值 ; 由区块中的信息定义的数字和字符组成的长字符串。通过把数据通过哈希函数,比如比特币使用的SHA-256使用,就会产生一个针对该特定输入的序列。意思是说,如果输入数据哪怕改变一个字符,输出的哈希值就会完全改变。另外,哈希是一个可加密但不可解密的结果,因此,它不能用来获取原始数据,只能作为验证哈希的输入数据是否相同的一种方式。
创建工作证明(Proof of Work)需要矿工运行哈希算法来 "猜测 "问题的合适答案。对于比特币区块链网络来说,矿工必须率先创建一个符合一定要求的哈希值,这个哈希值被称为 "目标哈希"。
猜测目标哈希的必要信息就存在于新区块的区块头中。包含:区块版本号,时间戳,前一个区块的哈希值,以及目标哈希值。
onenote上的猜测过程草图
目标哈希的答案是由前一个区块的哈希值、现区块交易数据,加上0-4,294,967,296的整数(简称nonce),然后放入哈希算法中生成的。
如果答案符合目标哈希的要求,该区块就会被添加到区块链中。最先验证交易并找出添加到该区块哈希中的那个nonce的矿工,就会得到比特币的奖励。否则,他们就会不断尝试寻找有效的目标值。
由于哈希算法的随机性,我们需要做大量的随机猜测来确定满足目标哈希的数值。
来源:Investopedia
尽管自己想找到nonce已经相当困难,并且在同一个网络上还有≥百万的其他个体与你竞争,使得一个设备获得比特币奖励的几率类似于中彩票的几率。因此,你可以通过提高处理能力或使用多台设备来获得更快的Hash Rate(单位包括:KH/s、MH/s、GH/s等)。
Hash-rate一词可以解释为一个或一组设备计算数字和验证交易速度有多快的量(是计算能力的衡量标准)。
共识机制
像比特币区块链这样去中心化P2P的网络,没有中心主要人物,只能根据不同的共识机制进行决策。共识机制在交易验证的同时,也奠定了挖矿的目的。
来源:维基百科
共识机制有很多形式,但它们都是为了同一个目标:"核实并确保记录的真实性和完整性"(来源:Tech in Asia)。
目前主要有三种机制:工作证明(Proof of Work)、权益证明和权力证明。在本文中,我将重点介绍共识的工作证明(Proof of Work)方法。
说到挖矿,这总结了工作证明(Proof of Work)模式的工作原理:个人首先要创建一个工作证明(Proof of Work),然后他们验证比特币交易以确保区块链中的记录是真实的。然而,在验证交易之前先让我们深入了解一下工作证明(Proof of Work)的目的。
工作证明(Proof of Work)的历史和目的
这种工作证明(Proof of Work)的想法在1993年就已经出现,由Cynthia Dward和Moni Naor在一篇论文(On Memory-Bound Functions For Fighting Spam)上提出,文中解释了阻止垃圾邮件的不同方法。这篇论文的重点是通过计算能力来发送电子邮件的想法。
例如,如果你想通过电子邮件给我发送一条信息,那么你必须证明你仅仅为了给我发送这条信息就花费了比如说30秒的计算能力。
由于现代计算机的速度很快,在这种情况下,垃圾信息/邮件/交易就成了一个大问题。但是,通过给每个操作设置一个 "工价",就可以大大减少垃圾信息。
在onenote上验证勤劳的门钥匙例子
简而言之,"prover "向 "vercker "证明他们在一定的时间间隔内投入了一定的计算能力。
随着时代的发展,比特币的创造者 "中本聪 "修改了让比特币矿工生成数据片段的想法,这是比较困难的部分。而网络上的其他人要验证它是否真的满足目标哈希值就很容易了,因为他们只需要把需要的数据通过SHA-256算法。
通过这种工作证明(Proof of Work)系统,就能够保证区块链等系统的安全性并建立一个验证共识,因为真正验证区块的将是一个投入了巨大计算能力的设备。这就给了网络一个保持公平和诚信的经济理由。
如何做到这一点呢?
举例来说,如果发生了欺诈交易并被批准,用户就会变得 "犹豫不决"转而使用其他加密货并且降低价格。从经济上来说,矿工,也就是做比特币 "生产 "的人,会因为价格下跌而不开心。而与此同时,只有控制矿工才有足够的计算能力来触发欺诈性验证。所以,矿工们的工作动机就会转向保护交易,以确保币价不跌。
工作证明(Proof of Work)机制的劣势
虽然工作证明(Proof of Work)被用于一些最大的加密货币(比特币、以太坊等)上,但这并不意味着其是最高效、最安全的系统。
来源:BBC
消耗功率
工作证明(Proof of Work)的过程需要耗费大量工作,因为计算机只是通过粗暴的方式用所有的可能性来猜测正确答案。这一方式浪费大量的电力和资源。从更大的范围来看,想象一下,全世界所有的矿工都在试图 "挖矿 "以获得比特币的奖励同时浪费着资源,如果他们不先猜出nonce甚至对网络没有贡献。
违背了去中心化的理念
由于挖矿需要耗费大量的电费,矿工们建立了中央矿场,控制了大部分的区块验证。这几乎让P2P去中心化的想法变得毫无用处因为这意味着只有控制矿工才会同意攻击网络。
电力成本也促使矿商聚集在电力成本较低、利润较高的地方,以便开展挖矿活动。集中决策权。
工作证明(Proof of Work)的替代方案
如上所述,还有其他共识机制能够取代PoW。例如:Proof of Stake、Proof of Authority和Proof of Capacity。
Proof of Stake通过验证者钱包里的货币数量来确定交易验证者。
假如你想象一群人买彩票。买彩票最多的人将有更大的中奖机会。这与股权证明类似,如果你的钱包里有最多的加密货币,你将有最大的机会成为验证者并获得奖励。
权限证明通过个人的 "可信度 "来确定交易验证者。
想象一下,一群人选择几个最值得信任、信誉最好的人去验证交易的有效性。
能力证明通过个人对网络内存空间的贡献来确定验证者。
这种机制允许网络上的贡献节点共享内存空间,所以贡献的设备拥有的内存越多,它成为验证者和获得奖励的可能性就越大。
上述这些方法所需要的计算量大大减少,在交易的验证中可以更加省电。
总结
挖矿行为是验证和生成工作证明(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)