与独立挖矿相比,为了获得更可靠的收入来源,今天大多数比特币矿工通过选择接入矿池进行比特币挖矿。而几乎所有采矿池使用的开源“Stratum”比特币挖矿协议,该矿池协议由Slush Pool设计,并在近七年前首次公布。
现在,Slush Pool背后的公司Braiins准备发布Stratum V2:第二代Stratum挖矿协议。这家位于布拉格的矿业公司两年前开始研究它,认为它已经在几个关键方面改进了第一个Stratum协议(现在称为“Stratum V1”),使新版本明显更好。
“它解决了历史上的技术和安全问题,它通常效率更高,它允许一些高级用例,如工作状态选择或更方便的矿池管理,”Braiins联合首席执行官Pavel Moravec告诉比特币杂志。“这真的应该在几年前就完成’’
传统的Stratum V1协议
作为简要回顾,Stratum V1是起初合并挖矿的工作方式。
首先,一个哈希用户(矿池的用户,有时也简称为“矿工”)将他们的矿机(通常是具有ASIC芯片的专用机器)连接到比特币矿池。或者,更具体地说,他们将矿机连接到由矿池 *** 作员 *** 作的计算机。
然后,比特币矿机从矿池池 *** 作员请求部分“区块模板”。这个部分区块模板本质上是一个不完整的比特币块,没有使其具有有效的工作z明。重要的是,此区块中的交易由矿池池 *** 作员选择。交易本身实际上并没有发送给哈希运算;事实上,所有交易都是只有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说。 “我们正在尽快实施它,以便让所有人尽快参与其中。”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)