比特币并非由某个机构印制,而是通过全球范围内的计算机相互竞争“挖掘”产生的。这个过程不仅创造了新的比特币,更是维护比特币网络安全与去中心化的核心。
比特币挖矿的核心概念
比特币挖矿是指通过计算发现新区块、验证交易并将其添加到比特币区块链的过程。每当成功发现一个新区块,该矿工便获得了填充该区块交易数据的权利。
作为投入时间和资源执行此任务的回报,获胜矿工将获得一定数量的新铸造比特币(称为“区块奖励”)以及附加在新区块中交易上的所有手续费。通过向成功矿工发放新比特币,是新的比特币进入流通的唯一方式。
为什么要进行比特币挖矿?
个人或公司参与比特币挖矿主要有两个原因:
- 有机会获得比特币区块奖励(截至2023年4月,奖励为6.25个比特币,约合17.7万美元)。新区块大约每10分钟被发现一次。
- 参与维护去中心化的比特币网络的安全与稳定。
比特币矿工如何发现新区块?
为了验证交易并将新区块添加到区块链,矿工必须使用专业计算设备相互竞争。他们使用设备生成固定长度的代码,即“哈希值”。为了发现下一个区块,矿工必须生成一个其前面零的数量等于或多于“目标哈希”的哈希值。
目标哈希是一个64位的十六进制代码(包含数字0-9和字母A-F),所有矿工都试图生成低于该值的哈希以发现新区块。
开始时,所有矿工都获取前一个区块的数据,即“区块头”——其中包含时间戳、前一个区块数据的哈希以及一个称为“加密随机数”的空位。区块头中的大部分数据是固定的,无法更改,但随机数部分除外。随机数意味着“只使用一次的数字”,是矿工可以调整的部分。需要注意的是,即使只改变输入的一个比特,也会产生完全不同的哈希。
棘手的是,哈希的生成完全是随机的,矿工在生成之前无法预知哈希值。因此,这基本上是一个不断试错的过程,直到有人找到正确的随机数值(即“黄金随机数”)。
这就是为什么矿工必须投资于高能耗计算机,特别是能够每秒生成数万亿次哈希的专用集成电路(ASIC)矿机。
一个简单的比喻是,将每个新区块想象成一个带有密码锁的宝箱。为了获得里面的免费比特币区块奖励,并赢得向其中添加新交易数据的权利(同时收取相关费用),你必须不断转动锁上的一个数字轮(随机数),直到破解密码(目标哈希)。
以下是一个目标哈希的示例:
0000000000000000057fcc708cf0130d95e27c5819203e9f967ac56e4df598ee
可以尝试使用在线的哈希生成器,在文本框中输入任意内容,看看能否生成前面超过17个零的哈希值,亲自体验一下生成低于目标哈希的难度。
什么是哈希?
哈希是一种密码学数学函数,可将任何消息或数据输入转换为固定长度的代码。可以将其视为一种加密技术,将消息通过数学方式转换为一串固定长度的数字和字母序列。
输出设置固定长度是为了让人无法猜测输入的大小。例如,单词“hi”的哈希值与整本《哈利·波特》文本的哈希值长度完全相同。
这些哈希函数是不可逆的,这意味着无法将哈希值还原为原始输入。相同的输入也总是生成相同的字母和数字序列。例如,“hi”的哈希值每次都是相同的代码。每个生成的代码也是完全唯一的,这意味着不可能用两个不同的输入产生相同的哈希。
就比特币而言,区块链使用安全哈希算法256(SHA-256)来生成256位或64字符长的输出,而不管输入的大小如何。
比特币挖矿的收益如何?
对于添加到区块链的每个新区块,协议(编程到比特币中的一套规则)会向成功的矿工释放固定数量的新铸造硬币。这种区块奖励系统兼作比特币的分发机制。
作为中本聪引入的编程措施的一部分,为了逐步减少随时间释放的比特币数量,奖励给矿工的硬币大约每四年或每210,000个区块削减一次,这个过程称为“比特币减半”。2009年,区块奖励为50 BTC。2013年,这个数字减少到25 BTC。最近的减半发生在2020年,区块奖励从12.5 BTC降至6.25 BTC。
需要注意的是,比特币具有2100万枚的最大供应上限,目前已有1890万枚在流通。一旦2100万枚BTC全部释放到市场,将不再分发区块奖励。一旦发生这种情况,矿工将只能通过比特币交易费获得奖励。
即使有这两种收入来源的组合,也并非每个矿工都能产生利润。为了收支平衡,矿工的收入必须超过电力消耗以及矿机购买和维护的支出。此外,随着挖矿难度的增加,大型矿场被迫扩展或升级设备以保持竞争优势。对于大多数无力投资昂贵设备的普通矿工来说,有机会与全球其他矿工合并资源。每个矿工同意根据各自贡献分享奖励。这些矿工网络称为“矿池”。
不过,也有一些罕见的情况,个体矿工在家中独自成功挖出区块。
比特币挖矿难度
关于比特币的一个重要知识是,中本聪创建协议时,设定了10分钟的目标区块发现时间。这意味着矿工成功创建获胜代码以发现下一个区块应该需要大约10分钟。
那么网络如何确保每10分钟发现新区块呢?
比特币协议能够根据区块发现的速度自动增加或减少挖矿过程的复杂性。
每两周,比特币协议自动调整目标哈希,使矿工发现区块变难或变易。如果耗时过长(超过10分钟),难度会向下调整;如果少于10分钟,则向上调整。更具体地说,协议会增加或减少前面的零的数量。这听起来可能不多,但仅仅在目标哈希前添加一个零就会使代码难以破解得多,反之亦然。
2021年中国对挖矿活动的打击导致比特币网络难度经历了历史上最大的下降。这随后导致剩余的比特币矿工报告挖矿收入显著上升。
通过这个系统,比特币协议能够将区块发现时间尽可能保持在10分钟左右。
为什么比特币挖矿消耗如此多的能源?
比特币最大的缺点之一是挖矿新币、验证交易和保护其网络消耗的大量能源。截至发稿时,比特币的哈希率( dedicated 于挖矿新币的全部计算能力的度量)为183 exahash (Eh/s)。这意味着比特币矿工集体尝试每秒破解下一个新区块的目标哈希183 quintillion 次。
根据剑桥比特币电力消耗指数(CBECI),这项活动每年消耗约131太瓦时(TWh)的电力——超过乌克兰国家同期的耗电量。
这种极端消耗的主要原因是,每次比特币价格上涨,都会鼓励新矿工加入争夺新币的战斗,并迫使现有矿场购买更多矿机或升级设备以保持竞争力。当这种情况发生时,用于挖矿的计算能力量增加(哈希率增加),这反过来导致比特币协议提高难度,以便区块继续以每10分钟的稳定速度被发现。
这种竞争加剧的自然副产品是更高的能源消耗——用于挖矿比特币的机器越多,集体能源消耗就越高。
常见问题
比特币挖矿的基本原理是什么?
比特币挖矿是通过计算竞争解决复杂数学问题,从而验证交易、创建新区块并维护区块链网络安全的过程。成功挖出区块的矿工获得比特币奖励和交易手续费。
现在个人还能在家挖矿吗?
从技术上讲是可能的,但极其困难。由于当前网络算力极高,个人使用普通计算机几乎无法竞争得过专业的矿场和矿池。加入矿池共享算力是个人参与挖矿更可行的方式。
比特币挖矿为什么耗电?
高耗电源于其工作量证明(PoW)机制。为了保持约10分钟出一个区块的速度,随着更多矿工加入和算力提升,网络难度会自动增加,导致需要更多、更强大的计算机进行运算,从而消耗巨大电能。
所有的比特币挖完以后怎么办?
预计到2140年左右,所有的2100万个比特币将被挖完。此后,矿工将不再获得区块奖励,其收入将完全依赖于验证交易中所收取的手续费。届时,网络的安全性将依赖于交易费用能否足够激励矿工继续维护网络。
什么是矿池?为什么需要它?
矿池是多个矿工将算力集中起来共同挖矿的组织。由于单独挖矿难度极大、成功率极低,通过矿池联合算力可以更稳定地获得区块奖励,然后按照算力贡献比例分配收益,降低了矿工的收入波动风险。
比特币挖矿难度是如何调整的?
比特币网络大约每两周(2016个区块)根据过去两周全网平均出块时间自动调整一次挖矿难度。如果平均出块时间少于10分钟,则增加难度;若多于10分钟,则降低难度,以此力图将出块速度维持在10分钟左右。