本章全部都是采矿。我们已经看到了一点矿工的信息以及比特币如何依靠他们——他们验证每一笔交易,他们构建和存储所有的区块,并且达成共识,对哪些区块被包括在区块链中形成共识。们也已经看到,矿工们为此得到了一些回报,但是我们还有很多问题没有回答。谁是矿工?他们是如何进入系统的?他们是如何运作的?矿工的商业模式是什么?他们对环境有什么影响?在本章中,我们将回答所有这些问题。

5.1比特币矿工的任务

你想进入比特币矿业吗?如果你这样做了,我们不会完全阻止你,但要小心比特币矿业与淘金热有许多相似之处。历史上的淘金热充斥着年轻人匆匆去寻找财富的故事,不可避免地有许多人失去了他们拥有的一切。少数人认为它很富有,但即使是那些通常也忍受了很多困难的人。我们将在这一节中看到为什么比特币矿业与传统的淘金潮和其他快速致富方案有着许多相同的挑战和风险。

但首先,看看技术细节。要成为比特币矿工,你必须加入比特币网络并连接到其他节点。连接完成后,有六项要执行的任务:

1.监听交易。首先,你要侦听网络上的交易,并通过检查签名是否正确以及所花费的输出未被花费来验证它们。

2.维持区块链并监听新区块。你必须维持区块链。你首先要求其他节点在你加入网络之前向你提供已经是区块链的一部分的所有历史区块。然后,你将收听正在广播到网络的新区块。你必须通过验证区块中的每个交易并检查该区块是否包含有效的随机数,来验证你接收的每个区块。我们将在本节稍后回到随机检查的详细信息。

3.装配候选区块。一旦你拥有区块链的最新版本,你就可以开始构建自己的区块。为此,你将你听到的交易分组到一个新的区块中,扩展了你所知道的最新区块。你必须确保你的区块中包含的每个交易都是有效的。

4.找到一个使你的区块有效的随机数。这个步骤需要最多的工作,是矿工真正的困难点。我们将在短期内详细看到这一点。

5.希望你的区块被接受。即使你找到一个区块,也不能保证你的区块将成为共识链的一部分。这里有一点运气成分;你必须希望其他矿工接受你的区块,并开始在其上采矿,而不是在一些竞争对手的区块上。

6.利润。如果所有其他矿工都接受你的区块,那么你就会获利!在2015年初撰写本文时,积分奖励是25比特币,目前价值超过6000美元。此外,如果区块中的任何交易都包含交易费用,矿工也会收集。到目前为止,交易费一直是额外收入的适度来源,只有区块收入的1%左右。

我们可以将矿工必须采取的步骤分为两类。一些任务——验证交易和区块——帮助比特币网络,并且是其存在的基础。这些任务是这些Bitcoin协议首先要求矿工的原因。其他任务——比赛找到区块和利润——对于比特币网络本身并不是必需的,但是旨在激励矿工执行基本步骤。当然,这两个都是比特币作为货币发挥作用的必要条件,因为矿工需要激励来执行关键步骤。

查找有效区块。让我们回到让你找到一个随机值使你的区块有效的问题。在第3章,我们看到,目前主要有两种基于哈希的结构。有区块链,其中每个区块头指向链中的先前区块头,然后在每个区块内有一个包含该区块中所有交易的Merkle树。

你做矿工的第一件事就是将你从待处理的交易池中获得的一组有效的交易编译成Merkle树。当然,你可以选择最多包含多少交易的区块的总大小的限制。然后,你将创建一个带有指向上一个区块头部的区块。在区块头中,有一个32位的随机字段,你不断尝试不同的随机数,寻找一个使区块的哈希值在目标之下的随机数——大体上,开始于所需的零数。矿工可以以0的顺序开始,并将其逐次增加1,寻找使区块成为有效的随机数。见图5.1。

第5.1章:比特币挖掘

图5.1:寻找一个有效的块。 在这个例子中,矿工尝试所有0的随机数。 它不产生有效的哈希输出,所以矿工然后会继续尝试一个不同的随机数。

在大多数情况下,你将尝试为每个单个可能的32位值进行随机数,但不会产生有效的哈希。在这一点上,你将不得不进一步改变。请注意,在图5.1中,您可以更改coinbase交易中的额外的随机数。在你耗尽区块头的所有可能的随机数后,你将更改coinbase交易中的额外随机数——比如通过将它增加一个,然后再次在区块头中搜索随机数。

当您更改coinbase交易中的随机数参数时,整个Merkle交易树必须改变(见图5.2)。由于coinbase随机数的变化将一直传播到数上,所以在coinbase交易中改变额外的随机数比改变区块头中的随机数的操作更昂贵。因此,矿工大部分时间都在改变区块头中的随机数,并且只有当他们耗尽区块头中的所有种可能的随机数而没有找到有效的区块时,他们会改变coinbase随机数。

第5.1章:比特币挖掘

图5.2:更改coinbase交易中的一个随机变量,一直在Merkle树上传播。

你尝试的广泛而绝大多数的通用机制不会奏效,但如果你坚持足够长的时间,你最终会发现Coinbase交易中额外的随机数的正确组合,以及区块头中产生的低于目标值的哈希的区块的随机数。当你找到这一点时,你想尽快宣布它,并希望你可以从中获利。

大家都在解决同样的难题吗?你可能想知道:如果每个矿工都在按照我们所描述的方式递增随机数,那么矿工不就是在解决完全一样的难题吗?不是最快的矿工总是赢家吗?答案是不!首先,矿工不太可能在同一个方面进行工作,因为每个矿工可能会包含一些不同的交易和不同的顺序。但更重要的是,即使两个不同的矿工正在处理相同的交易区块,区块仍然会有所不同。回想一下,在coinbase交易中,矿工们将自己的地址制定为新造币的所有者。这个地址本身将导致传播到Merkle树的根的变化,这确保没有两个矿工在完全相同的谜题上工作,除非他们共享一个公钥。这只会发生在两个矿工是同一个采矿池的一部分(我们稍后会讨论)的情况下,他们会进行沟通,以确保它们在coinbase交易中包含一个不同的随机数,以避免重复的工作。

困难。实际上找到一个有效区块有多困难?截止2015年3月,采矿困难目标(十六进制)为:

0000000000000000172EC0000000000000000000000000000000000000000000

所以任何有效区块的哈希必须低于此值。换句话说,您尝试的大约个随机数中只有一个可以工作,这是一个非常大的数字。一个近似值是它比地球上人口的平方还要大。所有,如果地球上的每一个人都是自己的地球,其中每个都有七十亿人,那么总人数将接近人。

确定难度。采矿难度每2016个区块更改一次,每两周发现一次。根据矿工在上一个2016个以前区块期间的效率按照以下公式进行调整:

next_difficulty = (previous_difficulty * 2016 * 10minutes) / (time to mine last 2016 blocks)

 

请注意,2016*10分钟恰好是两周,所以如果区块每10分钟创建一个,那么2016个区块将需要两周的时间才能挖掘出来。因此,这个公式的效果是,要保持网络平均每十分钟发现一块区块的难度。两周没有什么特别的,但这是一个很好的权衡。如果周期短得多,难度可能由于每一时期发现的区块数随机变化而波动。如果这个周期长得多,那么网络的哈希能力可能会变得太难平衡。

每个比特币矿工独立计算难度,只接受满足他们计算难度的区块。在不同分支机构的矿工可能不会计算相同的难度值,但任何两名矿工在同一区块上进行采矿时,也会对难度达成一致。这样就可以达成共识。

从图5.3可以看出,随着时间的推移,采矿难度不断增加。它不一定是线性增长或指数增长,而是取决于市场活动。采矿难度受到多少新矿工加入的因素的影响,反过来也可能受到比特币目前汇率的影响。一般来说,随着越来越多的矿工上线,采矿硬件的效率越来越高,发现区块越来越快,难度也越来越大,以便大概需要10分钟才能找到一个区块。

在图5.3中,你可以看到,在图形的红线上,即使整体网络哈希率正在顺利增长,也存在难度的阶梯函数。哈希步骤的结果是,难度只每2016个街区调整一次。

查看网络增长率的另一种方法是考虑平均找到一个区块需要多长时间。图5.4(a)显示了区块链中连续区块之间经过了多少秒。你可以看到,这种情况逐渐下降,跳起来,然后再逐渐下降。当然,发生的情况是,每2016个街区重置区块难度,平均区块时间回到大约十分钟。在下一个时期,难度保持不变,但越来越多的矿工上线。由于哈希功率已经增加,但难度并没有,区块发现地更快,直到在2016区块之后或者大约两个星期再次调整难度。

第5.1章:比特币挖掘

图5.3:随时间推移(2014年中期)的采矿困难。请注意,y轴以80,000 TH / s开始。

第5.1章:比特币挖掘

图5.4(a):查找区块的时间(2014年初)。请注意,y轴始于460秒。由于这一时期采矿业电力持续快速增长,在每两周的窗口内,发现一个区块的时间将逐渐减少。 来源:bitcoinwisdom.com

第5.1章:比特币挖掘

图5.4(b):找到块的时间(2015年初)。请注意,y轴以540秒开始。 随着网络增长放缓,找到每个区块的时间更接近10分钟,偶尔会在网络哈希功率实际收缩的时期内结束。来源:bitcoinwisdom.com

尽管目标是平均每十分钟发现一个区块,但在2013和2014年的大部分时间里,平均接近9分钟,并在每两周的周期结束时接近8分钟。快速计算显示,这需要每两周惊人的25%的增长率,或每年几百倍的增长率。

毫不奇怪,这不是永远可持续的,而在2015年,增长速度要慢得多(有时也是负面的)。在图5.4(b)中,我们可以看出,随着采矿能力更接近于稳态,发现每个区块的周期将保持在10分钟以内。它甚至可能需要超过10分钟,在这种情况下会降低难度。 一旦被认为是不可想象的,这在2015年已经相当频繁地发生了。

尽管迄今为止,该网络的采矿权力没有出现灾难性的下滑,但没有任何内在的原因说明这种情况不会发生。比特币崩溃的一个提议方案是“死亡螺旋”,其中汇率下降使得矿业开采无利可图,导致大量外流,从而导致价格进一步下跌。

5.2采矿硬件

我们已经提到矿工必须做的计算是非常困难的。在本节中,我们将讨论为什么它在计算上是困难的,并且看看矿工用来执行这种计算的硬件。

矿工计算困难的核心工作是SHA256哈希函数。我们在第1章中抽象地讨论了哈希函数。SHA-256是通用密码哈希函数,是2001年标准化的更大的函数系列的一部分(SHA代表安全哈希算法)。SHA-256是一个合理的选择,因为这是Bitcoin设计时可用的最强密码哈希函数。它可能在比特币的寿命期间变得不那么安全,但是现在它仍然是安全的。 它的设计确实来自美国国家安全局(美国国家安全局),这导致了一些阴谋论,但它通常被认为是非常强大的哈希函数。

近距离看SHA-256。图5.5显示了更多关于SHA-256计算中实际发生的细节。 虽然我们不需要知道所有的细节来了解比特币的工作原理,但是对于矿工们需要解决的任务有一个一般性的看法是很好的。

SHA-256保持256位的状态。 该状态分为八个32位字,这使得它对32位硬件进行了高度优化。在每一轮中,状态中的一些字被采取——一些采用小的按位调整——并且加在一起mod 32。然后,整个状态被移位,结果是添加成为状态新的最左边的单词。该设计受到更简单的逐位线性反馈移位寄存器(LFSR)的启发。

边栏:SHA家族。SHA-256中的“256”来自其256位状态和输出。技术上SHA-256是SHA-2系列中几个紧密相关的功能之一,其中包括SHA-512(其状态较大,因此更为安全)。还有SHA-1,前一代具有160位输出,现在被认为是不安全的,但仍然在Bitcoin脚本中实现。虽然包括SHA-256在内的SHA-2系列仍然被认为是加密安全的,但下一代SHA-3系列已经被比赛挑选了。SHA-3今天处于标准化的最后阶段,但是Bitcoin被设计时它并不可用。

图5.5只显示了一轮SHA-256压缩功能。SHA-256的完整计算可以进行64次迭代。在每一轮中,都有一些稍微不同的常数,所以没有迭代是完全相同的。

第5.1章:比特币挖掘

图5.5:SHA-256的结构。这是一轮压缩功能。

矿工的任务是尽快计算此功能。记住,矿工们相互竞争,所以他们做得越快,就越赚钱。 为了做到这一点,他们需要能够操纵32位字,做32位模块化加法,还要做一些按位逻辑。

正如我们在短时间内将看到的,Bitcoin实际上需要将SHA-256应用到一个区块两次,以获得节点使用的哈希。这是比特币的怪癖。双重计算的原因尚未完全明确,但在这一点上,这只是一些矿工必须处理的一切。

CPU采矿。 第一代采矿全部在通用计算机上完成——即通用中央处理单元(CPU)。实际上,CPU挖掘与运行如图5.6所示的代码一样简单。也就是说,矿工们以线性方式简单地搜索随机数,在软件中计算SHA 256,并检查结果是否为有效区块。另外,在代码中注意到,如上所述,SHA-256被应用了两次。

第5.1章:比特币挖掘

在通用计算机上运行有多快?在高端台式电脑上,你可能希望每秒计算大约2000万次哈希(MH / s)。 以这个速度,平均在2015年初的难度级别()需要几十万年的时间才能找到一个有效的块。 当我们说采矿是一个困难的时候,我们不开玩笑!

如果你今天在通用电脑上采矿,那么目前的困难就是CPU采矿不再有利可图。在过去的几年里,任何一个尝试在CPU上挖掘的人都可能不了解Bitcoin是如何工作的,可能非常失望的是,他们从来没有赚过钱。

GPU采矿。第二代开始时,当人们开始感到沮丧,他们的CPU是多么的缓慢,作为替换,他们开始使用他们的显卡或图形处理单元(GPU)。

几乎每个现代PC都内置了一个GPU来支持高性能图形。 它们的设计具有高吞吐量和高并行性,这两者对于Bitcoin采矿非常有用。 比特币挖掘可以容易地并行化,因为您可以尝试使用不同的随机存储器同时计算多个哈希值。2010年,发行了一种名为OpenCL的语言。OpenCL是一种通用目的语言,用于在GPU上执行图形以外的其他操作。 这是一种高级语言,随着时间的推移,人们在图形卡上更快速地运行了许多类型的计算。这为Bitcoin在GPU上的挖掘铺平了道路。

当时使用显卡进行挖掘有几个吸引人的属性。一方面,它们很容易被业余爱好者设置。你可以在线订购显卡,或者在大多数大型消费电子产品商店购买。它们是公众可以使用的最便捷的高端硬件。他们也有一些属性,使他们特别好地比特币挖矿。它们被设计用于并行,因此它们具有许多可用于同时进行SHA-256计算的算术逻辑单元(ALU)。一些GPU还具有对SHA-256非常有用的按位操作的具体指令。

大多数显卡也可以超频,这意味着你可以比实际设计的运行速度更快,如果你想承担可能会导致过热或故障的风险。这是游戏玩家多年来所要求的属性。使用Bitcoin采矿,运行芯片比设计的速度要快得多,即使通过这样做会引起一些错误。

例如,假设你可以运行显卡快50%,但这样做会导致SHA-256计算中的错误达到30%的时间。如果一个无效的解决方案被图形卡错误地声明为有效——很少会发生这种情况——你可以随时在CPU上仔细检查它。另一方面,如果错误地错过了有效的解决方案,那么你永远都不会知道。但是,如果你的超频速度提高可以克服由于错误导致的输出的减少,那么您仍然会向前推进。在上述示例中,与不超频相比,吞吐量是1.5倍,而成功率是0.7倍。该产品为1.05,这意味着超频将你的预期利润提高了5%。人们花了相当多的时间优化他们应该超频给定芯片多少以最大化利润。

最后,你可以从一个主板和CPU驱动许多显卡。所以你可以拿你的电脑,它将运行你实际的Bitcoin节点,从网络收集交易并组装区块,附加多个图形卡,试图找到正确的随机数,使区块的SHA-256有效。许多人创建了一些非常有趣的自制设置,如图5.7所示,从单个CPU驱动许多GPU。这还处于比特币的早期阶段,矿工们仍然是大多数爱好者,没有经验的运行服务器,但他们想出了一些相当巧妙的设计,如何将许多显卡放在一个小的地方,并保持足够的运行。

第5.1章:比特币挖掘

图5.7:用于Bitcoin采矿的家用GPU机架。你还可以看到他们用来构建原始冷却系统的风扇。资料来源:LeonardH,cryptocurrenciestalk.com。

矿工与游戏玩家。根据民间传说,2011年Bitcoin矿工购买了足够的GPU来打乱正常的市场。这造成了游戏社区的摩擦,他们发现在当地电子商店中发现某些流行的GPU越来越困难。然而,有趣的是,它可能导致玩家对Bitcoin矿业的兴趣增加,因为许多这些沮丧的游戏玩家了解了货币,以了解所有GPU所在的位置,其中的一些玩家自己成为了矿工!

GPU采矿的缺点。GPU采矿有一些缺点。GPU内置了很多硬件,用于进行无法用于采矿的视频处理。具体来说,它们具有大量的在SHA-256中完全不使用的浮点单元。当你将很多的它们彼此相邻时,GPU也不具有最大的冷却特性。 它们不是像在图中并排运行的那样;它们被设计为在一个单独的盒子中为一台计算机做图形计算。

GPU也可以拥有相当大的功率,所以相对于计算机需要使用大量的电力。另一个缺点是你必须建立自己的电路板或购买昂贵的电路板来容纳多张显卡。

在一个真正的高端显卡上,你可能会高达200 MH / s,每秒可能达到2亿次哈希,比使用CPU要好一个数量级。但是,即使这样改进了性能,即使你真的进取心十足,并且一起使用了一百个GPU,平均来说,你仍然需要300多年才能在2015年初的难度水平上找到一个区块。因此,今天,Bitcoin的GPU采矿基本上已经死亡,尽管它仍然有时在早期的代币(altcoins)中出现。

FPGA开采。在2011年的一轮,一些矿工开始从GPU转换到FPGA或现场可编程门阵列,在Bitcoin采矿的第一次实施之后,Verilog出现了一种用于编程FPGA的硬件设计语言。FPGA的一般原理是尝试尽可能接近定制硬件的性能,同时还允许卡的所有者自定义或重新配置“在现场”。相比之下,定制的硬件芯片是在工厂设计的,而且永远都在做同样的事情。

FPGA比显卡提供更好的性能,特别是在FPGA上进行简单说明的“bit fiddling”操作。使用FPGA也可以简化冷却,与GPU不同,你理论上可以使用卡上几乎所有的晶体管进行采矿。像GPU一样,你可以将多个FPGA集成在一起,并从一个中心单元驱动它们,这正是人们开始做的(参见图5.8)。总体而言,可以比使用显卡更加整齐,干净地构建大量的FPGA。

使用FPGA仔细实施,你可以达到每秒GH / s或十亿次散列。这肯定是超过CPU和GPU的性能优势,但即使你拥有一百个电路板,每个板卡具有1 GH / s的吞吐量,平均来说,在2015年初的难度水平,你仍然需要大约50年的时间才能找到一个比特币区块。

第5.1章:比特币挖掘

图5.8:一个自制的FPGA机架。虽然没有看到这里的冷却设置,但这样的机架需要一个冷却系统。

尽管性能增益,FPGA开采的日子相当有限。首先,他们被驱动去挖掘难以开采的比特币——在所有时间和超频——比消费级FPGA真正的设计能力。正因为如此,许多人在采矿时看到FPGA中出现错误和故障。它也很难优化32位加法步骤,这对于SHA-256来说至关重要。FPGA的访问也不太方便——大多数商店都无法购买,而知道如何编程和设置FPGA的人数少于GPU。

最重要的是,尽管FPGA的性能提高了,但是对于GPU,每个性能的成本只是略微改善了。这使得FPGA采矿是一个相当短暂的现象。虽然GPU挖掘主导了大约一年左右,但是FPGA开采的日子更加有限——仅在定制ASIC到达之前持续了几个月。

ASIC开采。今天的采矿由比特币ASIC或专用集成电路主导。些芯片是专为比特币采矿而设计,制造和优化的芯片。有几个大卖家将这些卖给各种各样的消费者:你可以选择稍大和更昂贵的型号,更紧凑的型号,以及具有不同性能和能耗声明的型号。

设计ASIC需要相当多的专业知识,而且他们的交付时间也很长。 尽管如此,Bitcoin

ASIC的设计和制作却令人惊讶。 事实上,分析师表示,这可能是集成电路历史上最快的周转时间,解决指定问题,并在人手中拥有一个工作芯片。部分原因是比特币ASIC的前几代比较麻烦,其中绝大多数都没有提供承诺的性能数字。 比特币ASIC已经成熟,现在有相当可靠的ASIC可用。

直到2014年,由于网络哈希率的迅速增长,ASIC的寿命相当短暂,ASIC早期的大多数板卡在大约六个月内已经过时了。在这段时间内,大部分的利润都产生在前面。通常,矿工将在头六个星期内赚取ASIC一生预期利润的一半。 这意味着运输速度可以成为赚取利润的关键因素。由于行业不成熟,消费者经常遇到航运延误,板卡经常在到达时几乎过时。随着比特币哈希能力的增长速度已经稳定,采矿设备的使用寿命更长,但是在早期的时代,许多客户沮丧,供应商的欺诈行为也受到指责。

对于比特币的大部分历史来说,矿业经济学并没有对那些想上网、订购采矿设备、开始赚钱的小矿工有利。事实上,在大多数情况下,订购矿业硬件的人都会因为他们当时的计算而亏损。直到2013年,比特币的汇率才上涨到足以让绝大多数客户从亏损中获利。

实际上,采矿一直是一个昂贵的方式来简单地认为,比特币的价格会上涨,许多矿工——虽然它们在比特币采矿上赚了钱——如果他们把这些用于购买采矿设备上的钱投资比特币,最终在赚取利润的时候卖掉他们,这样就会变得更好。

你仍然可以在今天订购比特币矿业设备,我们不想阻止这一点作为了解比特币和加密货币的方式。不过,我们再次注意到,这不是一种赚钱的方法。一旦你考虑到电力和制冷的价格,大多数今天销售的ASIC就不太可能为采矿奖励而自付。

今天:专业采矿。今天,矿业大多从个人身上转移到专业矿业中心。关于这些中心如何运作的确切细节并不十分了解,因为公司希望保护其设置以保持竞争优势。据推测,这些操作通过购买稍微更新和更高效的ASIC来保持盈利,而不是可用于折扣的批量销售。在图5.9中,我们看到了格鲁吉亚共和国专业采矿中心的图片。

第5.1章:比特币挖掘

图5.9:BitFury采矿中心,格鲁吉亚共和国的专业采矿中心。

在确定建立采矿中心的地点时,最重要的三个方面是:气候,电力成本和网络速度。特别是,你想要一个寒冷的气候来保持冷却成本最低。比特币矿业的降温特别具有挑战性,据估计,比起传统数据中心,每平方英尺的电力数量会增加一个数量级(并因此发出一个数量级的热量)。你显然想要便宜的电力。你还希望将快速网络连接与Bitcoin对等网络中的其他节点良好连接,以便你可以在宣布后立即收到新的区块。据报,格鲁吉亚和冰岛是Bitcoin采矿数据中心的热门目的地。

与金矿的相似点。虽然“采矿”可能似乎只是一个可爱的名字,但如果我们回顾并考虑采矿的演变,我们可以看到比特币矿业和黄金开采之间有趣的相似之处。对于初学者来说,与许多年轻的业余人士一样,急于想要尽快进入业务,这两者都看起来有类似的淘金热心态。

而比特币开采,我们看到从CPU、GPU到FPGA的缓慢演变,直到目前的ASIC设计,黄金开采从锅炉的个人向小团体转移到水闸箱,进入采矿——由大型矿业组织组成,用水喷洒山坡——现代黄金开采往往利用巨大的开放露天矿从地球提取原料(见图5.10)。无论是比特币还是黄金,随着时间的推移,对个人的友好性和可获得性都在下降,大公司最终巩固了大部分业务(和利润)。在这两个地方出现的另一个模式是,大多数利润都成为了卖设备的收入,无论黄金锅或ASIC采矿,都是个人希望致富的代价。

第5.1章:比特币挖掘

图5.10:采矿的演变。可以看到比特币矿业的演变与黄金开采的演变之间有明显的平行。两者最初都是对个人友好的,随着时间的推移成为大公司控制的大规模运营。

未来。目前,ASIC采矿是比特币盈利的唯一现实手段,对小型矿工来说不是很友好。这提出了一些关于将要发生的事情的问题。小矿工是否离开比特币矿业,还是有办法重新融入其中?此外,ASIC采矿和专业采矿中心的发展是否违反了比特币的原始愿景,即网络中的每个人都用自己的电脑开采的完全分散的系统?

此外,如果这确实违反了Satoshi Nakamoto对Bitcoin的原始愿景,那么我们是否最好还是采用一种系统,唯一使用CPU挖矿?在第8章中,我们将考虑这些问题,并考虑可能对ASIC不友好的替代形式的想法。

重复这个循环。在这里值得一提的是,几个较小的altcoins确实使用了与SHA-256不同的难题,但在比特币的采矿中也看到了类似的轨迹。我们将在第9章中更多地讨论这些altcoins,但回想一下,ASIC设计芯片和发货之间仍然有很长的交付时间,所以如果一个新的altcoin使用了一个新的谜题(即使只是修改版本的SHA-256) ,这将花费一些时间才能使用ASIC。通常情况下,开采将在比特币是从CPU到GPU和/或FPGAs到ASIC(如果altcoin是非常成功的,像LiteCoin)。

因此,小规模矿工的一个策略可能是尝试开创新的代币,这对于大型矿业集团投资来说还不够有价值,就像已经被成熟黄金矿区淘汰的小金矿矿工也许会尝试勘探未经证实的新领域。当然,这意味着先锋们面临着重要的风险,即altcoin将永远不会成功。

5.3能源消耗与生态

我们看到大型专业采矿数据中心已经占据了比特币矿业的业务,以及如何将这种运动与金矿开采中的坑开采相结合。你可能会意识到,这些年来矿坑是造成环境破坏的主要原因。比特币还没有达到这个水平,但它开始使用大量的能量已成为讨论的话题。 在本节中,我们将看到比特币矿业正在使用多少能源,以及对货币和地球的影响。

热力学极限。20世纪60年代,有一种被拉尔夫·兰道尔(Ralph

Landauer)研制的Landauer原理的物理规律称,任何不可逆的计算都必须使用最少的能量。逻辑不可逆计算可以被认为是丢失信息的计算。具体来说,删除任何位的原则规定必须消耗最小(kT ln 2)焦耳,其中k是波尔兹曼常数(约),T是开尔文电路的温度,ln 2是2的自然对数,大约为0.69。每比特的能量很小,但这从基本物理上提供了能量消耗的一个较低的下限。

我们不会在这里做出推论,但是高层次的想法是,每次你以不可逆的方式翻转一比特时,你必须使用最少的焦耳数量。源永不毁灭;它从一种形式转换成另一种形式。在计算的情况下,能量主要是从电转化,这是有用的,高品位的能源,转化成散发到环境中的热量。

作为加密哈希函数,SHA-256不是可逆计算。我们可以从第1章回想起,这是密码哈希函数的基本要求。因此,由于不可逆计算必须使用一些能量,而Bitcoin采矿的基础是SHA-256——不可逆转,能源消耗是比特币开采的必然结果。也就是说,Landauer原则的限制远远低于今天使用的电量。我们还没有接近理论最优消费的计算,但即使我们确实达到了理论上的最佳,我们仍然将使用能量来执行比特币开采。

比特币矿业如何使用能源?过程中有三个步骤需要能量,其中一些步骤可能不那么明显:

1.实体能量。首先,比特币采矿设备需要制造。这就需要对原材料进行物理采矿,并将这些原材料转化为Bitcoin采矿ASIC,这两者都需要能源。这是实体的能量。一旦你在邮件中收到Bitcoin采矿ASIC,当然你已经消耗了很多精力——包括运输能源,当然——在你甚至启动它之前!

希望随着时间的推移,实体能量将随着越来越少的新产能投产而下降。随着越来越少的人去购买新的采矿ASIC,他们将被不太快地淘汰,并且具体的能源将在多年和几年的采矿中摊销。

2.电力。当你的ASIC开机并开采时,它会耗电。这是一步,我们知道了由于Landauer的原理而消耗能量。随着采矿设备的效率越来越高,电能成本将会下降。但由于Landauer的原理,我们知道它永远不会消失;电能消耗将是比特币矿工永远的生活事实。

3.冷却。消耗能源的第三个重要组成部分是冷却设备,以确保其不会发生故障。如果你在非常寒冷的气候条件下进行小规模运营,你的冷却成本可能是微不足道的,但即使在寒冷的气候下,只要你在一小段空间内获得足够ASIC,你将不得不花费额外的费用来冷却你的设备产生的所有废热。一般来说,用于冷却采矿设备的能量也将是电力的形式。

规模开采。当大规模经营时,实体的能源和电力都有所减少(每单位完成的采矿工作)。构建可在大数据中心运行的芯片成本更低廉,你可以在不需要太多电源的情况下更高校地提供电源。

然而,在冷却方面,通常情况正好相反:冷却成本随着你的规模会越来越大。如果你想要运行一个非常大的操作,并且在一个地方拥有大量的Bitcoin采矿设备,在你的设备周围区域散热的空气较少。因此,你的冷却预算将按规模(每单位完成的采矿工作)增加,除非你将物理区域与你使用的芯片数量一起缩小。

估计能源消耗。整个比特币系统使用了多少能源?当然,我们无法计算出这一点,因为这是一个分散化的网络,矿工在所有地方运营,而无需准确记录他们在做什么。但是,有两种基本的方法可以估计比特币矿工集体使用的能量。我们要基于2015年初的价值做一些粗略计算。我们必须强调,这些数字非常粗糙,因为一些参数很难估计,也因为它们的变化很快。最多应该把它们视为数量级的估计。

自上而下的方法。第一种方法是自上而下的方法。 我们从简单的事实开始,每次发现一个区块,今天给矿工提供价值约6500美元的25比特币。每秒大约11美元,这是在比特币经济中凭空创造出来的,并给了矿工。

现在我们来问一下这个问题:如果矿工把这11美元每秒都转成电,他们可以买多少钱?当然,矿工们实际上并没有把所有的收入都用在电力上,但是这将为所用的电力提供一个上限。电力价格差异很大,但我们可以用这样的估计,美国的工业生产电费每千瓦时(千瓦时)约为10美分,或相当于每兆焦耳3美分(MJ)。如果比特币矿业公司花费每秒赚取的11美元来购买电费,他们可以每秒购买367兆焦耳,消耗稳定的367兆瓦(兆瓦)。

能量和能量单位。在国际单位制(SI)中,能量以焦耳为单位。瓦特是功率单位,其中一瓦特被定义为每秒一个焦耳。

自下而上的方法。估计成本的第二种方法是使用自下而上的方法。在这种方法中,我们来看一下矿工实际计算的哈希数,我们通过观察每个区块的难度来了解。如果我们假设所有的矿工都在使用最有效的硬件,我们可以得出电力消耗的下限。

目前,商业上可获得的矿山钻井平台中最好的效率数据约为3 GH/s/W。也就是说,最前沿的ASIC声称每秒执行30亿次哈希,同时消耗1瓦的功率。整个网络的算力约为350000000 GH/s,或相当于每秒350 petahash(PH / s)。 把这些结合在一起,我们看到每秒的哈希效率需要大约117兆瓦。当然,这个数字排除了所有的冷却能量和这些芯片中的所有实体能量,但是我们正在进行一个最佳的计算并得到一个下限,这样就可以了。

结合自上而下的自下而上的方法,我们可以得出一个大致估计,比特币矿工的电力使用量大概在几百兆瓦左右。

兆瓦是多少?直觉来说,我们可以看看大型发电厂的产量。世界上最大的发电厂之一,中国的三峡大坝是一座万兆瓦的发电厂。典型的大型水电站生产约1000兆瓦。作为世界上最大的核电站,日本的Kashiwa崎崎是一座7000兆瓦的工厂,而平均核电站约为4000兆瓦。一个主要的燃煤电厂生产约2000兆瓦。

据我们的估计,整个比特币网络正在耗费大型电厂10%的电力。虽然这是一个相当数量的能量,但与人们在地球上使用电力的所有其他事情相比,它仍然很小。

比特币矿开采是否浪费?经常说比特币“浪费”能量,因为SHA-256计算上的能量消耗不起任何其他有用的目的。重要的是要认识到,任何支付系统都需要能源和电力。 使用传统货币,大量能源消耗印刷货币和运行的ATM机,硬币分选机,收银机和支付处理服务,以及在装甲车中运输货币和金条。你也可以同样地认为,所有这些能量都被“浪费”,除了维持货币体系以外,它不具有任何目的。所以,如果我们把比特币视为一个有用的货币体系,那么支持它所需的能量并不是真的被浪费了。如果我们可以用较少的能源密集型的谜题来取代比特币的采矿,而且还有一个安全的货币,那就是积极的变化。 然而,我们在第8章中会看到,我们不知道是否真的有这可能。

再生能源。使比特币更环保的另一个想法是捕捉比特币开采产生的热量,用它来做一些有用的事情,而不是仅仅加热大气。这种从计算中获取余热的模型称为数据炉方法。这个概念是,不是购买一个传统的电加热器来加热家庭或加热家中的水,你可以购买一台加热器,作为Bitcoin采矿设备,开采比特币,并将你的家庭作为该计算的副产品加热。事实证明,这样做的效率并不比购买电加热器要差得多,对于家庭消费者来说,这样做并不比将加热器插入互联网连接以及电源插座更复杂。

这种方法有一些缺点。尽管它与使用电加热器一样高效,但电加热器本身的效率远低于燃气加热器。此外,夏季(或至少北半球的所有人),每个人都关闭比特币矿机时会发生什么情况?根据人们需要的热量,采矿哈希力可能会季节性下降。它甚至可能在天气比平均气温更暖和的日子下降!如果数据炉模型实际上陷入困境,这将对比特币共识产生很多有趣的影响。

用现金换电。Bitcoin提出的另一个长期问题是它可能提供将电力转化为现金的最有效手段。想象一下,Bitcoin采矿ASIC是一种易于获得的商品,主要的采矿成本是电力。事实上,这意味着提供免费或低成本的电力对新形式的滥用是可以接受的。

在世界上许多国家,政府补贴电力,特别是工业用电。除此之外,他们经常这样做是为了鼓励工业企业去他们的国家。但比特币提供了一种将电力转化为现金的好方法,如果补贴的电力被大规模转换为比特币,这可能会导致政府重新考虑该模式。电力补贴旨在吸引有助于国家经济和劳动力市场的企业,补贴比特币矿业可能没有预期的效果。

一个更大的问题是,在人民的家园,大学,酒店,机场,办公楼等,全球有数十亿个免费电源插座。人们可能试图插上采矿设备,以便在其他人支付电费时可以获利。事实上,他们可能会使用过时的硬件,而不用为升级劳神,因为他们不会支付电费。考虑到世界上每一个电源插座都有可能为比特币开采潜在的未经授权使用的电源进行监控,这是相当令人畏惧的。

始发于简书:wherein_io