引言
在传统的中心化比特币矿池中,运营方通常负责选择交易、核算矿工的工作量并管理支付。去中心化方案可以将交易选择权转移给矿工,而诸如 P2Pool 这样的点对点设计还会分散奖励协调的职能。对矿工而言,实际发生的变化取决于哪些职能被转移:拥有更多的模板控制权并不自动意味着更低的手续费、更低的收益波动,或非托管式支付;而运行本地挖矿基础设施则会增加运营责任。
因此,这种区分并非非此即彼的二元问题。本文将拆解矿池所执行的各项职能,并对比由矿工自行选择模板的方式与点对点矿池设计之间的差异。
矿工为何加入矿池
比特币的开发者文档将矿池挖矿描述为一种机制,相比单独挖矿,它能让矿工获得金额更小但更频繁、波动更低的收益,因为矿工提交的是"份额"(shares),即使没有找到完整区块,这些份额也能证明其部分工作量。一个有效的份额满足的是矿池自身设定的份额目标,而不一定满足比特币网络的区块目标。矿池将其份额目标设定为比网络目标更容易(数值上更高)的水平,正是为了让矿工能够足够频繁地产生可被计量和补偿的份额,尽管真正找到区块的情况很罕见。(developer.bitcoin.org)
正是“份额”与“区块”之间的这一区别,构成了围绕矿池“控制权”大部分困惑的根源。矿池并不决定某个区块在比特币共识规则下是否有效;它决定的是其算力所挖的候选区块是什么,以及如何将提交的份额转换为收益分配。
传统矿池中捆绑的四项职能
一个典型的矿池安排将四项独立的职责捆绑在一起:
- 区块模板构建 —— 选择哪些交易进入候选区块,并组装矿工据以进行哈希运算的区块头。
- 份额验证与收益核算 —— 接收提交的份额,验证其是否满足矿池目标,并根据矿池的分配公式计算每位参与者的贡献。
- 支付管理 —— 根据矿池的结算规则,对余额进行记账并处理提现。
- 挖矿基础设施 —— 运行 Stratum 端点、代理、监控及故障切换系统,以保持算力的连接。
在传统的 Stratum v1 矿池中,矿池通常掌控全部这四项职能。比特币的开发者文档指出,与 getblocktemplate RPC 不同,使用标准 Stratum 协议的矿工无法查看或向其正在挖的区块中添加交易——矿池提供工作任务,矿工的硬件只是针对该任务搜索有效的 nonce 值。(developer.bitcoin.org)
去中心化矿池模式实际改变了什么
有些方案将区块模板构建去中心化,但仍将收益核算与支付保留给运营方。另一些方案则同时分散了份额与收益的协调职能。对矿工而言,这些是截然不同的变化。
Stratum V2 任务声明协议(Job Declaration Protocol,JDP)。 根据该规范,矿工或矿场可以运行一个任务声明客户端(Job Declarator Client),该客户端从模板提供方(Template Provider,通常是本地运行的比特币核心节点)接收候选模板,并将该自定义任务声明给矿池端的任务声明服务器(Job Declarator Server)。矿池仍可按照其现有的支付规则继续验证份额并分配收益。这一设计使得一个矿场级客户端能够服务众多下游 ASIC 设备,而无需每台设备各自运行节点。(stratumprotocol.org)
DATUM。 该实现将模板构建与区块提交转移到由矿工运营、并与矿工自有比特币节点配对的网关上,而兼容 DATUM 的矿池仍负责协调收益分配。根据该项目的官方代码仓库,矿工保留交易选择权,但联合挖矿的工作仍必须满足矿池的核算要求,包括用于收益分配所需的特定生成交易(generation-transaction)输出。该代码仓库目前将该软件描述为公测版(public beta),这是任何评估生产环境使用的矿工都应注意的相关限制。(github.com)
P2Pool。 这种点对点设计超越了仅由矿工选择模板的范畴。节点维护一条共享的工作量证明份额链,称为“份额链”(sharechain),并验证提议的工作是否包含所需的支付内容。当找到一个比特币区块时,其 coinbase 交易会按照份额链的收益分配规则向参与的矿工付款,而不依赖中心化运营方来记账余额和处理提现。运行本地 P2Pool 节点同样需要一个比特币节点。这不仅改变了模板构建方式,也改变了收益协调机制与支付路径;但这并不能保证更低的收益波动性。(P2Pool 项目文档,P2Pool 代码仓库)
哪些方面不会自动改变
矿工获得对区块模板的控制权,并不会自动获得:
- 更低的矿池手续费;
- 非托管式的支付路径;
- 更低的收益波动性;
- 矿池作为收益核算对手方角色的消除;
- 更少的运营责任。
一个提供支持的矿池仍然可以要求特定的 coinbase 输出、强制执行模板规则、验证每一个提交的份额,并与此前完全一样地运行其结算系统。收益核算与支付管理是与模板控制权相互独立的产品决策,矿工不应想当然地认为,采用一种模板去中心化的连接方式就会改变收益支付的方式或时间。
ViaBTC公布的BTC收益计算规则很好地说明了这种分离。PPS+方式对区块奖励部分采用PPS逻辑、对交易手续费部分采用PPLNS逻辑,两部分分别收取不同的手续费;PPLNS方式则对两部分均采用PPLNS逻辑。根据ViaBTC的PPLNS计算方式,矿工的奖励份额基于最近五个难度轮次中所贡献算力份额计算,结算在矿池所挖出的区块达到六次确认后进行。这些都是ViaBTC特有的政策,而非通用的协议规则,而且这些规则都没有说明由谁来构建区块模板——那属于连接架构层面的问题,与所选择的收益计算方式无关。(support.viabtc.com)
实际对比
P2Pool一栏描述的是通过矿工自行运行节点参与的方式。
| 决策领域 | 传统矿池 | 支持矿工自选模板的矿池 | P2Pool点对点设计 |
|---|---|---|---|
| 区块模板构建 | 矿池端 | 矿工或矿场端,通过本地节点或模板提供方 | 本地节点 |
| 交易选择策略 | 遵循矿池策略 | 可在矿池要求范围内遵循矿工自己节点的策略 | 遵循本地节点策略,但须符合有效的共享链(sharechain)工作量 |
| 份额验证 | 矿池端 | 通常仍由矿池端完成 | 本地验证及对等节点对共享链份额的验证 |
| 奖励核算 | 矿池端 | 通常仍由矿池端完成 | 通过共享链规则分配 |
| 收益发放管理 | 矿池记录余额并处理提现 | 可能仍由矿池端处理,视矿池而定 | 通过所挖出区块的coinbase交易支付奖励 |
| 区块提交 | 通常由矿池端完成 | 可能通过矿工自己的节点提交 | 通过参与的节点提交 |
| 运维复杂度 | 对矿工而言较低 | 较高:需要节点、网关/代理、监控及软件兼容性 | 需维护比特币节点、P2Pool软件及对等节点连接 |
这里的实际结论是:收益发放设计与模板控制权是两个相互独立的决策。矿工可以根据手续费结构和对收益波动的容忍度来选择收益计算方式,同时单独评估某个矿池是否支持矿工自选模板,以及运行节点、网关并对该连接进行监控所带来的额外运维负担,对其自身运营而言是否值得。
矿池归属数据并不能证明模板控制权
矿池归属数据描述的是已挖出区块被归属到哪个矿池。它本身并不能说明每个区块中的交易是由谁选择的,ASIC矿机归谁所有,或者所贡献算力的永久控制权归属于谁。
当矿工在参与矿池奖励系统的同时自行构建模板时,这一区别就变得十分重要。例如,DATUM将模板构建保留在矿工自己的节点一侧,同时要求使用矿池提供的收益发放信息和主coinbase标签。因此,归属于某个矿池的区块,其交易完全可能是由矿工自行选择的。(DATUM Gateway文档)
若要评估模板控制权的集中程度,区块归属数据还需要额外的证据,以说明这些区块的模板究竟是如何构建的。仅凭矿池排名数据本身无法证明这种集中程度。
如何评估一个矿池
相较于简单地将“中心化还是去中心化”当作一个单一标签,矿工在比较矿池选项时,不妨将评估拆分为几个独立的问题:
- 奖励方式与手续费。 该矿池采用PPS、PPS+、PPLNS还是其他方式?每一部分奖励分别适用怎样的手续费?
- 结算条款。 份额转化为已入账余额之前,需要满足怎样的确认次数要求和回溯时间窗口?
- 连接架构。 该矿池的具体接入端点是否通过Stratum V2 Job Declaration或等效机制支持矿工自选模板?还需要哪些额外的软件或硬件?仅支持Stratum V2本身并不能保证支持矿工自选模板:某个部署可能只使用了其中的Mining Protocol,而并未包含交易选择功能。(Stratum V2规范)
- 运维支持。 对于其标准Stratum接入端点,该矿池提供怎样的故障切换路由、监控机制以及历史在线率?
- 安全控制。 是否提供双重身份验证、提现地址白名单、API密钥权限等账户级保护措施,以在模板控制权之外独立保障收益发放管理的安全?
这些问题都不是仅凭某矿池是否宣称自己“去中心化”就能回答的。
结论
理解比特币矿池去中心化的最佳方式,是将其视为对传统矿池历来捆绑在一起的各项功能进行解绑,而不是给整个矿池贴上一个简单的“是/否”标签。诸如Stratum V2 Job Declaration之类的协议,以及DATUM之类的实现方案,为矿工提供了一条有据可查的途径,使其能够在继续参与矿池化奖励分配的同时,自行构建区块模板。P2Pool则走得更远,它将份额协调过程分布式化,并将奖励支付直接嵌入所挖出的区块之中。仅凭矿池归属排名数据无法确立这些差异。模板控制权本身并不决定矿池手续费、收益发放波动性或资金托管方式,而运行本地节点和网关也会增加维持挖矿连接可靠性方面的责任。矿工在评估某个矿池时,应将模板控制权、奖励核算、收益发放管理以及基础设施支持作为四个相互独立的决策分别加以考量,各自依其自身优劣作出判断。
常见问题解答
去中心化矿池是否意味着我能保有自己比特币的托管权?
并非一定如此。诸如 Stratum V2 Job Declaration 和 DATUM 等模板去中心化模式通常仍依赖矿池进行份额验证和奖励核算,而支付管理——包括资金在提现前是否由第三方托管——取决于具体矿池的规则,而非由谁构建区块模板决定。
选择支持矿工自选模板的矿池能否降低支付方差?
不能。支付方差主要由奖励核算方式(例如 PPS+ 与 PPLNS 之间的区别)和矿池规模决定,而非由谁构建候选区块模板决定。这些是相互独立的设计选择。
份额与比特币区块是同一回事吗?
不是。份额证明的是针对矿池较低难度份额目标所完成的工作量,用于奖励核算。只有在极少数情况下,当该份额同时满足难度大得多的比特币网络目标时,它才会成为有效的网络区块。
使用模板去中心化矿池模式是否需要我自己运行比特币节点?
这取决于具体实现方式。DATUM 当前的文档要求矿工运行兼容的比特币节点和网关。Stratum V2 Job Declaration 则可以在矿场层面部署,由一个任务声明客户端(Job Declarator Client)和模板提供方为多台下游挖矿设备提供服务。


