了解 · 简单回答

比特币挖矿是怎么运作的?

作者:CloudMineCrypto 团队更新于 5 分钟阅读

简短答案

矿工把等待处理的交易打包进一个区块,然后不断猜测。他们反复计算区块 80 字节的头部哈希,每次改变一个数字,也就是随机数,直到哈希值低于目标值。整个网络大约需要 10 分钟。胜出的矿工会把区块加入区块链,并获得奖励:3.125 BTC 的新比特币,以及该区块的交易费。

重点速览

  • 一个区块是一批交易,上方有一个 80 字节的头部。
  • 挖矿就是不断猜:更改随机数、计算哈希、检查结果,再重复。
  • 找到有效哈希很难,验证一个只需进行一次哈希运算。
  • 奖励是新生成的比特币和交易费,通过区块中的第一笔交易支付。

一个真实区块,一步步看

区块 969,785,最新区块

1。收集交易

矿工从内存池中取出待处理交易,优先选择费率最高的,直到区块装满。这个区块包含 3,433 笔交易。第一笔交易比较特殊:coinbase 交易,矿工通过它给自己支付奖励。

用通俗的话说,比特币挖矿是如何运作的?

定义 · 比特币挖矿

通过找到低于网络目标值的区块哈希,将下一批交易添加到比特币账本中的过程。这个过程需要进行海量猜测。获胜者会获得新生成的比特币和交易费。

想象一场用电力买票的彩票。每个矿工都会构建自己的候选区块,然后尽可能快地通过哈希运算买票。大多数票都不会中奖。大约每隔 10 分钟,世界某个地方就会有人抽中,将结果展示给所有人,然后大家又会从这个区块开始新一轮竞赛。

深入了解 · 完整指南

从头讲解比特币挖矿

奖励、减半、难度、硬件、矿池、能源,以及如今挖矿是否划算,附实时数据。

挖出一个区块要经过哪些步骤?

上方的动画会在区块 969,785 上演示这些步骤。下面用文字说明:

  1. 1

    收集交易

    从内存池中取出等待处理的交易,按费率从高到低排列,并添加一笔向矿工支付奖励的 coinbase 交易。

  2. 2

    构建默克尔根

    将交易两两配对进行哈希运算,再逐层向上处理,直到得到一个代表所有交易的哈希值。

  3. 3

    填写区块头

    80 字节中的六个字段:版本、上一个区块的哈希值、默克尔根、时间、目标值和随机数。

  4. 4

    进行哈希运算,修改随机数,再重复

    对区块头进行两次 SHA-256 运算。如果结果太大,就更改随机数再试一次。

  5. 5

    哈希值低于目标值

    低于目标值的哈希就是工作量证明。其他节点只需计算一次哈希就能验证。

  6. 6

    领取奖励

    区块加入区块链,coinbase 交易支付区块补贴和手续费。所有人接着处理下一个区块。

当 4.3 十亿个可能的 nonce 都试完后,矿工会改动 coinbase 交易中的一个备用字段。现代机器不到一秒就能试完这些 nonce。这样会生成新的默克尔根,也就有了一组新的 nonce 可供尝试。

比特币挖矿为什么这么难?

因为 SHA-256 无法预测。只要改变头部中的一位,哈希值就会完全改变,所以没有捷径。要找到胜出的哈希,唯一的办法就是不断尝试,而目标值的设置让整个网络大约需要 10 分钟。

811 EH/s

全网算力

实时,每小时更新

4.9 × 1023

平均每个区块的哈希次数

哈希率 × 600 秒

~10 分钟

平均区块时间

难度目标值

2,016

难度调整之间的区块数

大约两周

如果有更多矿机加入,区块会在一段时间内更快产生。等到下次调整时,目标值会变得更难达到。如果矿工退出,目标值就会变得更容易达到。难度指南会实时追踪下一次调整。

我可以试着自己挖一个区块吗?

可以,就在这里。这个简化区块会在你的浏览器中进行真实的双重 SHA-256 运算。将难度设为 5 或 6 个前导零,看看需要的时间会增加多少:

互动 · 在浏览器里挖一个区块

真实 SHA-256d 工作量证明,简化版区块头

区块 #1上一个哈希0000000000000000000000000000000000000000000000000000000000000000Nonce(随机数)0

区块哈希(双重 SHA-256)

改一下交易内容,只改一个字母,哈希就会完全变掉。

尝试次数:0

你的算力:n/a

用时:0.0 s

每多一个前导零,难度就会增加约 16 倍。实际区块需要约 19 或 20。想了解哈希计算本身、如何逐字节编辑区块头,以及发动 51% 攻击需要什么,请看工作量证明。

比特币为什么需要挖矿?

比特币没有银行来决定哪笔付款先发生。挖矿负责这项工作。每个区块都会按顺序记录一批交易,而且每个区块都建立在前一个区块之上,因此要更改一笔较早的付款,就得重新完成此后所有区块的工作。这就是已确认的付款难以撤销的原因。

挖矿也是发行新比特币的方式,发行计划固定,每四年减半一次。奖励机制详见区块奖励和减半。

你能自己挖比特币吗?

如果你有专用 ASIC、廉价电力和一个 矿池,可以,但利润空间很小。手机或笔记本电脑的速度慢了数百万倍,根本起不了作用。

The easy way to start is the CloudMineCrypto app. You mine for free with the free plan, ads, games, offers and daily check-ins, with no hardware, noise or power bill, and withdraw to your own wallet over Lightning, Bitcoin on-chain or BNB Smart Chain. Paid plans are an optional boost and usually mine less than they cost. Rewards are estimates based on live network data and aren’t guaranteed.

深入了解 · 完整指南

从头讲解比特币挖矿

奖励、减半、难度、硬件、矿池、能源,以及如今挖矿是否划算,附实时数据。

常见问题

简单来说,比特币挖矿是如何运作的?

矿工把等待处理的交易打包成一个区块,然后不断尝试一个数字,也就是随机数,直到区块哈希值低于目标值。最先找到符合条件哈希值的矿工会把区块添加到区块链,并获得区块奖励。

矿工到底在解什么问题?

没什么技巧。他们要找的是一个区块头,使其双重 SHA-256 哈希值低于目标值。找到它的唯一办法,就是不断更改随机数并重新计算哈希,每秒数万亿次。

挖出一个区块需要多久?

整个网络平均大约需要 10 分钟。难度每经过 2,016 个区块就会调整一次,以维持这个速度,不受总算力影响。

矿工挖出一个区块能获得什么?

区块补贴,自 2024 年 4 月起为 3.125 BTC,外加区块内所有交易的手续费。大多数区块由矿池挖出,奖励由矿池中的矿工共享。

可以在家挖比特币吗?

只有使用专业 ASIC 矿机、拥有便宜电费并加入矿池才有可能做到。即便如此,通常也赚不回成本。手机或笔记本电脑的速度远远不够。CloudMineCrypto 这类应用让你无需自己运行硬件,也能免费挖矿。奖励为估算值。

来源与延伸阅读

  1. 《Bitcoin: A Peer-to-Peer Electronic Cash System》(白皮书) · 中本聪,2008
  2. 区块链指南:区块头、默克尔树与工作量证明 · 比特币开发者文档
  3. 挖矿指南:单独挖矿与矿池 · 比特币开发者文档
  4. 区块哈希算法 · Bitcoin Wiki
  5. 默克尔树 · Bitcoin Wiki
  6. 难度 · Bitcoin Wiki

本页实时数据来自 CloudMineCrypto API 或旁边标注的公共区块链数据服务,按计划定时刷新,并在页面上标明来源。本指南仅供学习,不构成财务建议。CloudMineCrypto 不是投资产品;应用中的奖励均为估算值,不保证获得。

你已经知道它怎么运作了。现在看它实际跑起来。

在 CloudMineCrypto 应用中领取一个 8 小时的免费挖矿方案,根据实时网络数据查看你的预估 BTC 不断增长。无需硬件,无需银行卡。