47 / 736ASIC

ASIC Miner

专门用于比特币挖矿的机器

ASIC Miner 通过大量计算尝试寻找新块。这里解释它的算力意味着什么、为什么需要耗电,以及为什么开机并不等于有收入。

ASIC Miner 是配备比特币挖矿专用芯片的设备。它反复计算候选块头的数字指纹,寻找符合挖矿规则的结果。块头是一份简短的数据记录,包含块的主要信息。算力越高,每秒尝试的次数越多,但并不保证获得奖励。设备还需要电力、散热、控制软件和挖矿任务来源。

Mining:运营结果模型按输入的算力、功耗和矿池费率,比较预期区块补贴份额与电力成本。

安娜看到电脑旁的一台小矿机,想知道自己的笔记本能否完成同样的工作。普通电脑确实能做这些计算,但 ASIC 就是为这项任务设计的,通常能用同样的能量完成更多尝试。ASIC 是 Application-Specific Integrated Circuit 的缩写,意思是专用集成电路。日常交流中,人们也用 ASIC 指配有这类芯片的整台矿机。 比特币矿机使用 SHA-256 寻找合适的数字指纹,也就是哈希。它并不知道正确答案,而是改变输入数据,不断重新尝试。正是这种专用设计,让普通 CPU、图形处理器 GPU 和可编程电路 FPGA 逐渐退出有竞争力的挖矿。不过,SHA-256 挖矿芯片也不能简单地改成一台通用电脑。 [6] [8]

假设一台矿机的算力为 100 TH/s,输入功率为 3 000 W。这只是示例,不是某款产品的参数。TH/s 表示每秒一万亿次哈希,因此这台机器每秒进行一百万亿次尝试,这个速率称为 Hashrate。电表记录的则是能量:如果功率一直为 3 kW,运行 24 小时就消耗 72 kWh。用这个电量乘以每 kWh 的价格,才能算出电费。 比较矿机时还会用到 J/TH,即每一万亿次尝试消耗多少焦耳。示例中,3 000 / 100 = 30 J/TH。数值越低,完成相同工作的能耗越少。但测量方式和运行设置必须可比,不能直接拿单颗芯片的数据,与整台机器在插座处测得的耗电相比较。 [7] [8]

矿机消耗的能量几乎最终都会变成热。因此,安娜选择摆放位置时还要考虑散热,以及某些机型的风扇噪声。小型家用矿机和工业矿机的需求可能相差很大。ASIC 这个名称本身并不说明设备尺寸或功耗。 除了芯片,机器还包括电源、电压调节器、控制器,以及装有挖矿芯片的算力板,英文称为 hashboards。风扇或液冷系统负责带走热量。灰尘、风扇故障、不合适的供电或过高的运行设置,都可能造成计算错误和停机。因此,要看整套设备的实际运行,而不只是厂商广告中最大的那个数字。 [7] [8]

连接到 Mining Pool 后,安娜的矿机就从协调矿工的服务中接收任务。矿池有独立的软件和运营方,并不是芯片的一部分。独立挖矿时,安娜需要自行安排相应的基础设施。Firmware 是设备的控制固件,负责向芯片分发任务并发送结果。 首先必须有人组织交易,形成候选块,也就是 Block Template。Full Node 或其他模板提供方负责提供它。Full Node 是独立按照比特币规则验证块和交易的程序。BIP22 描述 getblocktemplate 接口,BIP23 则为它增加矿池相关扩展。Stratum V2 将通信分为分发任务的 Mining Protocol、申报自选工作的 Job Declaration 和提供模板的 Template Distribution。矿工能否选择交易,取决于系统结构及这些组件是否受到支持,芯片本身不会选择交易。 [1] [2] [4] [5] [9]

安娜在矿池面板中看到已接受的 shares,但她的机器并没有找到比特币块。Share 是满足矿池较宽松要求的计算结果,可用于统计证明已经完成的工作。矿池根据自己的规则,将这些工作计入付款计算。Share 不是另一枚币,也不自动代表某个块的一部分。 只有稀少得多的结果,才同时满足比特币网络更严格的要求。有了这种结果才可以提交块,但块仍须通过其他所有检查。调整 share 难度会改变矿机提交 shares 的频率,本身不会增加机器的真实算力,也不会改变网络挖矿难度。 [4] [6]

找到结果只是向网络提出候选块,并不是命令其他参与者接受。Full Node 会独立检查比特币规则,即使块来自算力很强的矿工,也会拒绝无效块。ASIC 不能让奖励超出上限,不能未经授权花费他人的币,也不能强迫节点采用另一套规则。 运营者仍有重要选择:使用什么固件、连接哪个矿池,以及在系统支持时选择哪些交易。运行中可以把机器显示的算力与矿池较长时间的估计进行比较,并留意被拒绝的 shares、温度和实际功耗。矿池估计的短期波动,本身并不能证明设备故障。 [5] [10]

两台相同的矿机,经济结果可能完全不同。一台散热良好、电价较低,另一台经常停机且电价更高。购买成本、设备折旧、矿池费用、比特币价格、网络难度和块内交易手续费,也都会影响结果。因此,技术效率并不承诺回本。 专用化还提高了芯片制造和大型矿场运营的要求。讨论挖矿集中度时,应区分芯片厂商、设备所有者、实际地点和矿池。一个矿池的算力占比高,并不能证明其中所有设备都属于同一家公司。 [6] [8]

频率决定芯片的工作节奏,电压则帮助维持计算可靠性。即使同型号芯片,也可能需要不同设置,因为制造过程会带来细微的电气差异。固件可以为具体芯片或算力板寻找合适的设置,这就是 Autotuning。 降低频率并配合适当电压,可能改善 J/TH,即使总 Hashrate 随之下降。相反,超频虽然可能增加算力,却可能带来更大比例的功耗和发热增幅。效果取决于硬件、散热和设置,因此能达到的最高算力未必是最合理的长期运行状态。 [7]

计算的基础是 80 字节的块头,它简要记录块的基本信息,包括版本、前块哈希、汇总交易的 Merkle Root、时间戳、编码后的难度目标 nBits,以及 32 位的 Nonce 字段。SHA-256(SHA-256(header)) 表示连续使用两次 SHA-256,其中 header 就是块头。 得到的哈希会作为一个数字解读。为了满足所需的工作量证明,它不能大于目标:hash ≤ target。芯片可以复用不变输入部分的中间结果来加快计算。但节点检查的是结果和正确的目标,而不是厂商如何安排内部电路。通过这项检查,并不能代替其他块有效性规则。 [6] [10]

Nonce 提供 2^32 个可能值。高速矿机很快就能尝试完,因此系统还必须改变其他数据。Extranonce 是 Coinbase Transaction 中的辅助值;后者是块中第一笔特殊交易,包含挖矿奖励。改变该值会改变交易及随后的 Merkle Root,从而为下一轮计算提供不同输入。 系统也可以在允许范围内改变时间字段 nTime,或使用适当的版本位。BIP320 提案描述了为通用用途保留一些位,并不允许忽略网络规则。Stratum V2 要求分配不同的搜索工作,避免设备重复计算同样的候选项。这些机制让芯片不断获得新的尝试机会,而不是提高单个块的奖励。 较新的 BIP323 提案计划取代 BIP320,为此保留 24 个版本位。当前的 Stratum V2 规范已经引用 BIP323,但其状态仍为 Draft,即草案。发布一份提案本身不会改变比特币规则。 [3] [4] [11]

要获得更完整的理解,请将本词条与以下词条结合阅读: 挖矿, Hashrate, SHA-256, Block Header, Nonce, Extranonce. 反向关联还来自: Mining Pool, Hashrate, Nonce, Braiins.

DOC · 001BIP 22 — getblocktemplate fundamentals规范 DOC · 002BIP 23 — getblocktemplate pooled mining规范 DOC · 003BIP 320 — nVersion bits for general purpose use规范 DOC · 004Stratum V2 — Mining Protocol specification规范 DOC · 005Stratum V2 — Protocol overview规范 DOC · 006Bitcoin Developer Guide — Mining文档 DOC · 007Braiins OS — Autotuning文档 DOC · 008Bitaxe — open-source ASIC miner hardware一手来源 DOC · 009Bitcoin Core — getblocktemplate RPC文档 DOC · 010Bitcoin Core v29.0 — CheckProofOfWorkImpl一手来源 DOC · 011BIP 323 — 24 nVersion bits for general purpose use文档
修订日期: 来源优先 · 非投资建议