了解一下比特币挖矿的本质

你很可能会听到“比特币挖矿”一词,然后你的脑海中就开始想象拿着铲子的矿工,在泥土中挖掘金子的场景。

事实证明,这样的比喻距离还不算贴切,比特币的挖掘远没有那么迷人,但同样具有不确定性,它是由解决复杂的计算数学问题的高性能计算机执行的(也就是说,过程很复杂以至于无法手动解决)。

解决这些问题的计算机,所需要的是运气和计算力(工作量),这与矿工在地下挖沙时的效果是等效的。

在撰写本文时,计算机解决这些问题中的一个的概率约为13万亿分之一,但随着时间推移以后难度会更大。

“比特币挖矿”的了解

首先,当计算机在比特币网络上解决这些复杂的数学问题时,它们会产生新的比特币,这与采矿作业从地面提取黄金的过程一样。

其次,通过解决计算数学问题,比特币矿工通过验证其交易信息,使比特币支付网络变得值得信赖和安全。

所有这些都将可能变得非常有意义,为了更详细地解释比特币挖矿的工作原理,让我们从一个更接近生活的角度开始:对印刷货币的监管。

通常,消费者倾向于信任印刷货币。这是因为法定纸币是由中央银行发行支持,其背后是有政府的公信力作为支撑背书的。

甚至使用支付宝、微信等数字支付也是得到了中央机构的支持。例如,当你使用微信支付或支付宝支付进行在线购物时,该交易将由腾讯或阿里巴巴等公司处理。

除了记录你的交易历史记录之外,这些公司还核实交易有没有欺诈行为,这也是你的账户在从事违法行为时可能被暂停冻结的原因之一。

另一方面,比特币不受中央机构监管,但比特币得到了全球数百万台称为“节点”的计算机的支持。

该比特币网络执行着与中国央行,腾讯和阿里巴巴相同的功能,但有一些主要区别。

节点存储所有先前交易的信息,并帮助验证其真实性。但是,与那些中央机构不同,比特币节点分布在世界各地,并将交易数据记录在公共列表中,任何人,都可以访问。

在商店或在线进行的交易由银行,销售点系统和实物收据记录。当有人向任何地方发送比特币时,我们称之为“交易”。

在没有这些机构的情况下,比特币矿工通过以“块”形式将交易集中在一起并将其添加到称为“区块链”的公共记录中来达到相同的效果。

然后,节点维护这些块的记录,以便将来可以对其进行验证。

当比特币矿工向区块链添加新的交易块时,他们的工作之一就是确保这些交易是准确的。

特别是,比特币矿工需要确保比特币不会被复制,这是一种独特的数字货币特点,被称为“双重支付”或者“双花”。

对于印刷货币,伪造始终是一个问题,但是通常,一旦您在商店中花费20元,该账单就由店员掌握,不存在“双花”问题。

但是,对于数字货币,情况就大不一样了。数字信息可以相对轻松地进行复制,因此,使用比特币和其他数字货币,存在这样的风险,即消费者可以复制自己的比特币,然后将其发送给另一方,同时仍然保留原始信息。

让我们假设用的是印制货币,也就是说有人试图复制自己的20元钞票,为了能够在杂货店里同时消费原始货币和伪造的货币(即40元)。

如果店员知道客户在重复付款,他们所要做的就是查看账单中钞票序列号。如果数字相同,那么业务员就会知道钱已经被重复使用了。这个类比类似于比特币矿工在验证新交易时所做的事情。

如果有人要成功地双倍花费其比特币,他们将需要占据网络中51%的采矿能力。随着比特币的增长,要实现这一目的越来越困难。

矿工与挖矿奖励

一天中会发生多达500,000笔买卖,因此,验证每笔交易对于矿工而言可能是一件繁重的工作,这里的比特币矿工与微信,支付宝之间存在另一个重要区别。

作为对他们努力的补偿,每当矿工向区块链添加新的交易块时,他们都将获得比特币,也被成为比特币的“挖矿奖励”,以此来激励网络中的矿工持续维护网络交易的正常记录。

大约每隔四年,区块奖励会减半一次,即每产生210,000个区块左右。

2009年奖励为50个BTC,2013年为25个BTC,2018年为12.5个BTC,到2020年为6.25个BTC。比特币于2020年5月11日完成其第三次挖矿奖励减半。

从那时起,大约需要经历1458天,会进行下一次减半,即每个新区块仅能开采3.125比特币,作为挖矿奖励。该系统将持续到2140年左右,所有比特币将被挖出。

届时,矿工只能获得交易费用作为奖励。这些费用确保了矿工仍然有动力进行交易打包并保持网络运转。

个人认为,对交易费用的竞争将使它们在减半后仍然保持较低的水平。

挖矿如何运作?

为了使比特币矿工能够从验证交易中实际赚取比特币,必须发生两件事。

首先,他们必须验证价值1兆字节(MB)的事务,理论上该事务可以小到只有1个事务,但通常有几千个,具体取决于每个事务存储的数据量。其次,为了向区块链添加交易块,矿工必须计算解决一个复杂的数学问题,也称为“工作量证明”。

他们实际上正在尝试寻找一个小于或等于目标哈希的64位十六进制数字。

基本上,矿工的计算机会根据单位每秒散列数(MH/s),每秒千兆位散列(GH/s)或什至每秒兆兆散列(TH/s)的速度去寻找符合条件的值,猜测所有可能的“哈希”直到找到解决方案为止。

换句话说,这是一场猜大小的赌博。

在撰写本文时,最新区块的难度级别超过13万亿。也就是说,计算机产生低于目标的哈希值的机会是13万亿分之一。从一个角度来看,与尝试一次就正确命中哈希值相比,单张彩票获奖的可能性高出约44,500倍。

幸运的是,专用挖矿计算机系统单位时间内获得哈希值的数量是巨大的。尽管如此,挖掘比特币还是需要大量的电力和复杂的计算设备,而且以后还会需要更多。难度级别会每2016个区块或大约每2周调整一次,以保持采矿速率恒定为目标。

也就是说,有更多的矿工竞争解决方案,那么计算的问题将变得更加困难,反之亦然。

一个有用的类比解释,假如我现在是一个五岁的孩子:“我告诉三个朋友我脑中想到一个1到100之间的数字,

然后将该数字写在了纸上并将其密封在信封中。我的朋友们不必猜测出确切的数字,他们只需要有人能够猜测出一个数字小于或等于我写在纸上的数字,这个人就将获得奖励,而且不限制猜测的次数,他们可以一直尝试(即挖矿)直到有人成功。

比方说,我想了一个数字19。如果朋友A猜21,他们就输了,因为21>19。如果朋友B猜16,而朋友C猜12,那么理论上他们都得出了可行的答案,因为16<19并且12<19。即使B的答案更接近目标答案19,但也不会多给B额外的奖励。现在想像一下,我提出了’猜我在想什么数字’这个问题,但是我不是在问三个朋友,也不是在问一个介于1到100之间的数字。

相反,我是在问数百万个的比特币矿工,我在找一个64位的十六进制数字,这个数字是上一个区块的计算结果+随机数后进行哈希计算且符合以17个0开头,比如说小于

0000000000000000057fcc708cf0130d95e27c5819203e9f967ac56e4df598ee的值。

现在你会发现这很难猜测正确的答案,必须大量设备的尝试计算才可能找到,如果是找18个0开头的值那么难度就会更大了。

矿工之间的竞争

如果说计算正确结果概率是13万亿分之一听起来不那么困难,那么更困难的是比特币矿工不仅必须提出正确的哈希,而且还必须是第一个这样做的人。因为比特币的挖掘本质上是猜测,所以说一位矿工找到正确的答案几乎与计算机产生哈希的速度有关(即单位时间内尝试的次数)。

就在十年前,比特币的挖矿还可以在普通台式计算机上进行。但是,随着时间的流逝,矿工们意识到视频游戏中常用的图形显卡GPU对挖矿更加有效。

2013年,比特币矿工开始使用专门设计用于尽可能高效地开采加密货币的计算机,称为专用集成电路(ASIC)。这些矿机可以从数千元到数万元不等,但它们在开采比特币方面的效率更高。

如今,比特币挖矿竞争如此激烈,以至于只有使用最新的ASIC才能盈利。使用台式计算机,GPU或较旧型号的ASIC时,能耗成本实际上超过了产生的收入。即使拥有最新的设备,一台计算机也很少能与众多矿工所组成的“矿池”竞争。一个采矿池是一组矿工,结合自己的计算能力组成的,最后按照算力比例分配获得的奖励。

现状是,拥有大量矿池的公司在比特币的计算中占有很大的比例,比如中国的比特大陆。

比特币扩容之争

在13万亿分之1的概率下,在难度级别递增以及庞大的用户验证交易网络中,大约每大约10分钟验证一次交易。比特币网络每秒可处理约7笔交易,每10分钟将交易记录在区块链中一次。

相比之下,Visa每秒可以处理约24,000笔交易。但是,随着比特币用户网络的不断增长,在10分钟内完成的交易数量最终将超过10分钟内可以处理的交易数量。

届时,除非更改比特币协议,否则等待交易的时间将开始并持续更长的时间。

比特币协议的核心问题称在于“扩展容量”。尽管比特币矿工普遍同意必须采取一些措施来解决规模扩张问题,但人们却很少达成共识。提出了两种主要解决方案来解决缩放问题。

社区的开发人员提出了不同的建议:

(1)为比特币创建第二个“离线”层,以允许更快的交易,之后再被区块链验证。

(2)增加每个区块可以存储的交易数量。

解决方案1减少了每个区块要验证的数据量,将使矿工的交易更快,更便宜。解决方案2将通过允许增加块大小每10分钟处理更多信息来达到扩展效果。

2017年7月,代表比特币网络计算能力约80%至90%的比特币矿工和采矿公司投票决定合并一项程序,该程序将减少验证每个区块所需的数据量。也就是说,他们采用了解决方案1。

矿工投票添加到比特币协议中的程序称为“隔离见证”,即SegWit。该术语是“隔离”(Segregated)和“见证”(Witness)的合并,表示“比特币交易的签名”。

因此,隔离证人意味着将交易签名与区块分离,并将它们作为扩展区块附加。虽然在解决方案中似乎没有能将单独的程序添加到比特币协议中进行修改,但据估计签名数据最多占每个交易块中处理数据的65%,还是能达到一定的扩容效果。

不到一个月后,即2017年8月,一群矿工和开发人员发起了一次硬分叉,离开了比特币网络,使用与比特币相同的代码库创建了新的货币。尽管该小组同意采用方案1解决扩展的问题,但他们担心采用隔离见证技术无法完全解决扩展问题。

所以,他们采用了解决方案2。由此产生的货币称为“比特币现金”(BCH),将块大小增加到8MB(原来BTC是1MB),以便加速验证过程,每天可以执行约200万笔交易。

在2019年11月6日,比特币现金的价值约为302美元,而比特币约为9,330美元。