通过Stratum V2协议,Slush Pool计划对中心化的比特币挖矿进行改造

与独立挖矿相比,为了获得更可靠的收入来源,今天大多数比特币矿工通过选择接入矿池进行比特币挖矿。而几乎所有采矿池使用的开源“Stratum”比特币挖矿协议,该矿池协议由Slush Pool设计,并在近七年前首次公布。

现在,Slush Pool背后的公司Braiins准备发布Stratum V2:第二代Stratum挖矿协议。这家位于布拉格的矿业公司两年前开始研究它,认为它已经在几个关键方面改进了第一个Stratum协议(现在称为“Stratum V1”),使新版本明显更好。

“它解决了历史上的技术和安全问题,它通常效率更高,它允许一些高级用例,如工作状态选择或更方便的矿池管理,”Braiins联合首席执行官Pavel Moravec告诉比特币杂志。“这真的应该在几年前就完成’’

传统的Stratum V1协议

作为简要回顾,Stratum V1是起初合并挖矿的工作方式。

首先,一个哈希用户(矿池的用户,有时也简称为“矿工”)将他们的矿机(通常是具有ASIC芯片的专用机器)连接到比特币矿池。或者,更具体地说,他们将矿机连接到由矿池操作员操作的计算机。

然后,比特币矿机从矿池池操作员请求部分“区块模板”。这个部分区块模板本质上是一个不完整的比特币块,没有使其具有有效的工作证明。重要的是,此区块中的交易由矿池池操作员选择。交易本身实际上并没有发送给哈希运算;事实上,所有交易都是只有Merkle路径 生成了一系列哈希值。

最重要的是,矿池操作员可以选择包含哪个“版本位”。这可能与激活软叉协议升级有关。

然后,哈希计算者在部分区块模板上开始散列计算,希望其中一个散列将产生有效的区块头,满足比特币网络的工作量证明要求。如果哈希计算者找到了有效的区块头,则将其返回给矿池操作员,后者将其添加到块的剩余部分并将其广播到比特币网络。然后,矿池运营商根据每个矿机的工作量,在池中的所有参与者之间分配块奖励。(这是通过让哈希运算者也发送“几乎有效”的区块头来证明已经执行了的哈希工作。)

因此,Stratum V1为矿池操作员提供了相对强大的地位。他们不仅负责分发奖励,还决定哪些交易包含在一个区块中,以及包含哪个版本位。如果他们想要,矿池运营商可以决定审查某些交易,或阻止某些协议升级。

Stratum V2协议的灵感来自BetterHash

灵感来自BetterHash,去年由Chaincode Labs工程师和比特币核心贡献者Matt Corallo提出的提案,Stratum V2可选择将Stratum V1协议置于其区块头上。而不是让矿池操作员向嵌套器发送(部分)区块模板,而是可以选择将区块模板发送到矿池操作员。这种“工作选择”允许哈希运算者自己选择交易并选择区块版本。

为了完成这项工作,Braiins(在Corallo的帮助下)必须解决一些BetterHash更实际的问题。最重要的是,矿工可能会在无效的区块模板上进行挖掘(例如,因为它包含无效的事务)。即使矿工能够找到有效的散列值,区块本身仍然是无效的,因此,没有帮助池 - 而相同的矿工仍将受益于其他矿工发现的有效区块。

该问题的一个解决方案是矿池操作员在让他进入矿池之前首先检查哈希区块模板是否有效。但是在一个大型的公共池中,这一步也会遇到技术困难。

“想象一下,当在比特币网络上找到一个新块时,会发生什么,并且池中的每个矿工都想开始处理新的区块模板,”Moravec解释道。 “他们每个人都可以有一个稍微不同的内存池版本[未经证实的交易],并且可能有不同的交易选择规则......他们都希望立即开始挖矿。让他们都将他们的区块模板发送到矿池中以供批准,这基本上是在网络爆块之后的第第一秒DDOS服务。该机制需要扩展才能在实践中发挥作用。”

Braiins通过让矿池操作员异步检查新区块模板的有效性来解决了这个问题。一旦哈希提交了一个区块模板,他就可以立即开始哈希模板。在此期间,矿池操作员开始检查所有区块模板。

Moravec补充道,“如果后来发现阻止区块模板无效,则可以相应调整挖矿者的奖励。因此,他有动力研究适当的区块并及时提供所有数据。然而,他可以毫不拖延地继续处理他的模板。”

新挖矿协议的安全性,效率和灵活性

除了交易选择的变化,Stratum V2还将包含更多改进,其中一些可能至少对许多矿工来说同样重要。

在Stratum V1中,没有加密数据验证,以确保矿机真正与矿池操作员的计算机以及池操作员的计算机单独连接。这为中间人攻击打开了大门:例如,攻击者可以拦截矿机和矿池操作员之间的通信,并使其在攻击者提供的区块上工作。攻击者可以将此区块支付的块奖励发送到他们自己的地址之一,有效地“劫持”了矿机的哈希计算能力。

Stratum V2通过让矿池操作员对部分区块模板进行加密签名来对抗此攻击。如果一个矿工知道挖矿池操作符的公钥,他们可以检查部分块模板是否带有有效签名,因此实际上是由矿池操作员提供的。

Stratum V2也比它的前辈更有效。在通过JSON进行Stratum V1通信的情况下,Stratum V2通信以二进制代码完成。 Moravec认为,结合一些消除协议级别数据的数据,这将把矿池操作员之间共享的数据减少一半到三分之二,从而使通信更快,更便宜。

此外,Stratum V2具有用于“多路复用”的内置机制。这意味着矿工可以在同一连接上具有独立的通信通道,允许其机器共享关于温度,芯片电压或其电源行为的数据,例如。挖矿池可以根据此信息提供额外服务,或者矿机可以与其他服务或服务器共享。

Stratum V2还允许矿池“猜测”下一个块将是什么。每次找到新块时,挖矿池需要花费一些时间来确定哪个交易包含在该块中,因此哪些交易不能包含在下一个块中。今天,许多矿池开始挖掘空块:它们在几秒钟内根本不包括任何交易,以确保它们不包括双重花费(这会使区块无效)。

使用Stratum V2,矿池操作员(或者如果他们是选择交易的那些,则可以根据所有未经证实的交易,对将包括哪些交易进行有根据的猜测)。在开始的第一秒,他们可以开始挖掘他们认为可能是有效的下一个区块。特别是当每个区块交易补贴变成区块奖励的一小部分,当最终被费用费用取代时,这种小的效率提升可能会使矿工受益。

未来的改进

最后,Braiins团队表示还会有一些尚未公布的改进措施。虽然该公司有一个运行原型,但协议规范尚未最终确定。

“我们现在希望收集人们的反馈意见,以便在内部完成提案,然后将发布比特币挖矿协议改进提案。我想这将引发另一轮讨论......与此同时,我们将把Stratum V2部署到Slush Pool,并将其作为Braiins OS测试版的一部分发布,以获得真实的体验,“Moravec说。 “我们正在尽快实施它,以便让所有人尽快参与其中。”

相关文章