Solo Mining 指矿工凭自己的算力找到区块,并在区块被链接受后获得奖励的挖矿方式。区块是一组加入区块链的交易,而区块链就是比特币的公开历史。“找到区块”是指找到一个计算结果,使矿工能够将这组交易提交给网络中的其他参与者;其他参与者仍须检查它是否符合所有规则。其他矿工找到区块,不会给他带来持续收入。矿工可以自建基础设施,也可以使用收费的外部独立挖矿服务器。因此,“独立”主要描述奖励如何分配。
Jan 买了一台 ASIC,也就是专门进行挖矿计算的设备。面板显示它正在工作,钱包却没有收到钱。在 Solo Mining 中,仅凭这一点不能判断设备出了故障。算力带来的是找到区块的机会,而不是按小时支付的工资。普通 Mining Pool 会按规则在参与者之间分配奖励;独立挖矿时,Jan 等待的是自己的发现。即便通过矿工通信协议 Stratum 使用服务器,也不代表他自动加入了共享收益的支付机制。 [1] [6]
为方便说明,假设矿工始终拥有全网 1% 的算力。这是用于举例的较大份额,不是对家用矿机的假设。在接下来的 100 个全网区块中,他找到区块的期望数量是一个。但至少找到一个的概率只有 1 − 0.99^100,约 63.4%。公式先算出这些区块全由其他矿工找到的概率,再从总概率中扣除,剩下的就是 Jan 至少找到一个区块的概率。可能找到多个,也可能一个都没有。等待得久,并不会提高下一次尝试的成功率:挖矿不会记住之前的失败。难度、算力占比或在线时间发生变化,也会改变这个模型的前提。 [1]
无论结果如何,Jan 都要支付电费、设备、散热和维护成本。因此,平均预期收入不是每个月都能拿来付账的钱。矿池共享收益可以降低收入波动,但不会让同一台机器拥有更高的 Hashrate,也就是每秒更多的计算次数。矿池的费用和支付规则也各不相同。对于家庭实验,Jan 可以事先设定即使始终没有找到区块也能承担的开支。别人成功的新闻,不是对自己收入的预测。 [1]
Solo CKPool 就是一种提供挖矿任务、网络连接和统计信息的服务。Jan 找到区块后的奖励,不会像普通矿池那样分给其他参与者,但服务方可以扣除服务费。使用前需要了解收款地址、条款和故障处理方式。反过来,Full Node,即验证 Bitcoin 规则的全节点,本身也不能替代 ASIC 的算力。选择基础设施与决定奖励分配方式是两回事。服务的成功区块列表展示了获胜者,却没有说明每台设备的成功概率。 [6]
机器不断计算候选区块头的 hash,也就是数字指纹。区块头是一小组关于区块的数据,将候选区块与前一区块以及所含交易联系起来。Bitcoin Core 检查它是否小于或等于网络目标 target;这个目标编码在 nBits 字段中。服务器也可以接收符合较宽松目标的结果,这类结果叫 shares。在独立挖矿服务中,share 帮助观察矿机是否在工作,但它本身不是找到的区块,也不代表一笔小额付款的权利。降低 shares 的难度会增加上报数量,不会提高每次计算达到网络目标的概率。即便是目前最好的 share,也不能证明找到了有效区块。 [2] [6]
开始搜索前,软件会准备候选区块,也叫区块模板。BIP 22 描述了 getblocktemplate 接口,它提供 previousblockhash,即前一区块的引用,以及交易和 coinbasevalue,即可用于奖励的最高金额。软件构建 coinbase,也就是支付奖励的特殊首笔交易,再构建区块头;ASIC 随后尝试不同的计算。当网络继续前进,设备需要获得最新任务。速度再快,如果奖励收款方错误或模板过时,也不能算正确配置的挖矿系统。 [3]
hash 足够小还不够。其他节点还会验证交易、coinbase 和区块与链的衔接。两名矿工可能找到相互竞争的区块,而网络最终沿另一条分支继续。落在活跃链之外的区块叫 stale,其奖励不能在这条活跃链上花费。因此,及时传播和更新任务确实重要。Jan 应确认整个区块被接受并获得后续确认,而不只是看到服务器面板上绿色的“share 已接受”提示。 [3] [4]
奖励可以包括新产生的 bitcoin,即区块补贴,以及区块内交易支付的手续费。区块高度表示区块在链中的位置。主网从高度 840000 到 1050000 之前的区块,补贴为 3.125 BTC。手续费会变化,服务方也可能扣除自己的份额。Coinbase 支付的总额不得超过补贴与这些手续费之和。此外还有 COINBASE_MATURITY:奖励只能在高度至少增加 100 的区块中被花费。这里说的是区块,不是 100 分钟。找到区块、奖励获得确认和资金可以立即使用,是不同的事情。 [4] [5] [7]
要获得更完整的理解,请将本词条与以下词条结合阅读: 挖矿, Mining Pool, getblocktemplate, Hashrate, Pay Per Share, Pay Per Last N Shares. 反向关联还来自: Mining Pool, Pay Per Share.