小明学习笔记 | 一文看懂矿池是干嘛的

Odaily星球日报 2022-05-13
小明学习笔记 
|    了解<a href=矿池是干什么的" inline="0">

编者按:区块链涉及的技术很多,从互联网底层到不明密码学,但往往

这是小明学习笔记的第六期。如果有其他有趣的问题,欢迎提交和提问。

---------这是华丽的正文分割线---------

回顾过去,小明的学习笔记已经从每周变成了每月。这篇文章可以说是最后一篇文章的季节。因为我目前的工作主要是编辑,我通常带记者出去采访和写作,很少单独写作,所以学习笔记的更新估计是无穷无尽的。

这一期要分享的是矿池,首先要感谢 xDAG 核心开发者谢锐,他也是 xDAG 官方采矿软件的设计师几年前给了我很多这方面的知识。

我第一次了解到这个行业是在 2017 年采访 ViaBTC当时杨海坡总结说,矿池就像矿工的联盟,聚在一起挖矿。这确实是对矿池的一个非常基本和流行的解释。

众所周知, 是随着比特币而诞生的PoW 共识机制,其挖矿的过程本质就是在做随机数碰撞,谁猜中者这个随机数谁就可以获得记账权、成为这轮的出块人。因为是乱猜,所以单位时间内猜的次数越多,猜中的概率就越大。

随着专业矿机等设备的出现,比特币、莱特币等货币的全网挖掘计算能力增加,大多数矿工依靠自己solo采矿很难挖到硬币,矿池出现在历史时刻。矿池就像一个联盟,将这些分散的矿工甚至矿山聚集在一起,根据计算能力给矿工收入,不仅可以增加挖掘硬币的可能性,而且可以稳定矿工的收入。同时,矿池提供的技术也有利于降低采矿效率。

矿池给矿工什么任务?

神鱼曾经总结过,矿池实际上是分配给每个人的任务。然而,我想知道更多的细节,那就是矿工在做什么?矿池如何分配任务?

本文举了一个例子来解释采矿过程:矿池将区块难度分为许多难度较小的任务,并将结果提交给矿池,称为 share。假设全网难度要求 n 值为 100,即前 100 的比例为 0。矿池可以向矿工分配任务,要求前 30 位于 0,然后从提交的所有任务中找出前 100 位于 0 的目标值。

谢瑞告诉我,理论上,矿池可以分配矿工任务:

首先,矿池只是一个节点,矿工是包装和交易的。矿池将向矿工提供任务的完整信息,包装和交易,然后广播。矿工知道完整的信息,但需要填写更多的东西,签名也由矿工签名。

第二个矿池节点直接打包,给矿工结果的中间状态或不完整的信息,矿工填写他想填写的东西。块的最终组合由矿池组成。矿工 nounce 发给矿池,签名是矿池。

唯一不会改变的是访问这个矿池的数据同步。

看阅读了以上两种方法后,显然大多数商业运营矿池都会选择第二种,采矿收入的分配是根据签名进行的。如果我既是矿工,也是矿主,两者之间没有区别,你可以选择第一个。

看上面提到的 nounce 值,你可能有点困惑,这就是我们常说的 PoW 碰撞过程中的随机数将在下面解释。

根据《精通比特币》一书,挖掘的目标是找到一个使区块头哈希值小于难度目标的 nonce。前提是选定的交易已经确定。说到这里,我们需要学习比特币的区块头结构。

小明学习笔记 |    了解矿池是干什么的

表格来自《精通比特币

在区块头中,挖掘节点基本上可以改变两件事:交易和 nounce。由于采矿的目标是使区块头哈希值小于目标,整个步骤基本上是决定你想要打包的交易并形成相应的 merkle tree 根-猜一个 nounce - 把 nounce 把哈希放在块头里——知道它是否小于目标哈希值,也就是说,它比目标难。

So,基本上,你选择的交易和 nounce,都无助于你“预知”最后的哈希值大小(nounce 值很大,区块头哈希不一定会变大变小),你只能猜每一步。其他人可能会猜一次,你猜了数万次,你唯一能做的就是比其他人同时猜更多次,这是采矿机器在做的——集中精力做一件事。

先说矿机的抗 性AISC 属性

说到矿机,我问有没有抗 ASIC 算法吗? 谢锐一般认为本质上没有抗 ASIC,但是不同的算法会使制造 ASIC 矿机成本较高。

任何 PoW 货币将有一套采矿算法/软件,ASIC 芯片将软件烧成电路。最早的芯片是专用的,比如收音机的芯片只能做收音机的东西。FPGA(Field Programmable Gate Array) 是一个可编程阵列,在硅芯片上施加电压,一个门可以变成一个非门。这种芯片应用更广泛,首先是成本比ASIC高;而且为了做得更通用,还是有冗余,没有 ASIC 高效。所以现在大家都会在电脑上设计FPGA设计,然后烧 ASIC。如此类推,GPU 甚至 CPU 可以做更多的计算类型。如果你想知道 FPGA 为什么比 ?CPU 和 GPU 更高效,请参考本文。

为什么会有冗余?假设性的例子(不准确但有助于理解),如 5 5 ,FPGA 可能没有 5 的概念,会变成 1 1 1 1 1 1 1,ASIC可直接计算 5 5。这让我想起王嘉平接受 Odaily《星球日报》在接受采访时说:在计算机领域,灵活性/通用性和效率往往存在冲突。

“ASIC 最强的是并行计算 ,FPGA稍差一点。本质上没有抵抗ASIC,只能让它反推的每一步都比较困难,比如要求把东西放在内存里,比如要算方差,要把每一个数据都放在内存里,GPU 到 FPGA 到 ASIC,(ASIC)显存芯片可能是 GPU 100 倍。(要不要开发某种货币 ?AISIC 矿机)只看成本和收入。一般来说,可以理解为开发以太坊 ASIC 矿机比研发比特币 ASIC 矿机更难,同时开发的芯片与普通 相比CPU/GPU 效果没有明显改善。比特币可能增加了几千倍,以太可能增加了几倍到几十倍,效果不值得。

类似的分析也可以在公共数据中看到,比如耳朵财经的段落:

“Ethereum使用了Ethash算法,前身Dagger算法(Vitailk目的是抵制发明)ASIC矿机。如何抵制ASIC采矿机呢?将采矿与内存带宽捆绑,即降低其它硬件的运行优势,从而实现采矿设备平等的理念。

Ethash算法没有阻挡ASIC矿机的出现只是延迟了出现的时间。

绑定内存带宽意味着可以通过提高内存带宽速度来提高计算能力,或者降低相同内存带宽速度的功耗,但目前内存带宽价格过高ETH价格过低,从成本上考虑,ASIC矿机相较GPU来得不够划算。

Litecoin使用密码学家和程序员Colin Percival论文于2009年发表Stronger Key Derivation via Sequential Memory-hard Functions上所发明的scrypt算法。原理和Ethash相似之处在于提高挖掘过程中内存的使用成本和延迟ASIC矿机的出现。

2014年,Zeusminer专门针对研发scrypt算法的ASIC矿机。这也说明没有办法通过绑定某个硬件(如内存)来提高挖掘的使用成本ASIC矿机。”

现在大部分都叫抗 ASIC 采矿算法将内存和计算捆绑在一起。

以太中文网也整理了不同 PoW 算法部署 ASIC 开采效率提高倍数:

SHA256 约1000倍

Scrypt和NeoScrypt 约1000倍

X11和X16R 约1000倍

Equihash 约100倍

Cuckoo Cycle 约100倍

CryptoNight 约50倍

Ethash 约2倍

矿池收入分配模式

最后,简要介绍了矿池的收入分配模式。事实上,有很多文章解释了这一点。矿池有两种分布模式:

第一种是实际的块情况:在时间周期内,矿池挖多少块,根据计算能力比例分配矿山收入。

这种方法的时间周期一般根据挖块的时间分配收入,即两次挖块时间内的计算能力分布比;也可以每天结算。如果你的矿池爆了几块,当天的收入会很高。如果矿池一天不挖任何块,今天大家都没有收入。这叫 PPLNS(Pay Per Last N Shares)。

第二种是根据理论价值分货币:在时间周期内(通常是一天),理论上,矿池可以获得多少收入,根据计算能力比例给矿工钱,与上一种相比是稳定的。

借用本文文章中的一个例子:如果某个 10分钟内为某个矿池提供 1 T 计算能力,当时矿池计算能力为 100 T,全网算力 1000 T,平均比特币网络每 10 分钟出一块,出一块奖励 12.5 个 BTC,矿池占全网总算能力的十分之一,矿池收益预期为 1.25 个 BTC,你的计算能力占矿池计算能力的百分之一,无论矿池是否挖块,你的收入都是理论收入 1.25 BTC。这种称为 PPS(Pay Per Share)。由于 PPS 模式下,矿池承担风险,成本比例较高。

到目前为止,矿池的基础知识几乎是科普的。突然想起最近(我是年前采访的……)看这篇文章,我看到以太坊的空块率要高得多。顺便问一下,为什么矿池要挖空块。答案是节省时间:挖空块的好处不需要同步数据或下载,而且上传速度更快但在短时间内)太多的块会增加难度。

如果你想知道更以参考科普入门 |    什么是空块?矿工为什么要挖空块? 这篇文章:

“挖空块技术唯一的优势就在于,因为空块只有一条信息,空块矿工省去了‘打包’大量信息的时间。这使得空块矿工挖完这个区块,直接就可以开始下一个区块的挖矿

如果是大矿甚至矿池级别的硬件,这个操作只节省了几秒钟,但毫不夸张地说,大矿池几秒钟的计算能力,几百万秒钟。

小明学习笔记 |    了解矿池是干什么的

一般来说,矿池不喜欢挖空块。毕竟节省那些时间,不值得收入的 6%~8% 啊。

最后是区块链网络维护的问题。如果大量块变成空块,需要传递的信息无法流通,也会造成区块链网络的大堵塞。堵塞导致区块链网络性能下降,可能会降低数字货币价格。

目前,以太坊的空块率越来越高,这可能与即将到来的采矿收入下降有关。我想利用一个块奖励三个以太坊,迅速挖出更多的村庄。

我是Odaily《星球日报》编辑卢晓明探索真正的区块链,请添加爆料和交流lohiuming,请注明姓名、单位、职位和原因。

第一期学习的是虚拟机(小明学习笔记 |    一文了解区块链跨链机制。),第二阶段是跨链(小明学习笔记 |    一文了解区块链虚拟机),第三期小明学习笔记 |    一文理解互联网TCP/IP协议》,第四期是《小明学习笔记 |    一文理解可以验证随机函数VRF》,第五期是《小明学习笔记 |    看不懂 BCH 算力战怎么结束?点击这里

参考文章:

FPGA与CPU、GPU、ASIC的区别,FPGA云计算中的应用方案

ASIC终结者:X16R算法异军突起

优化显卡性能,抵制ASIC,ProgPoW什么是算法?

了解加密货币挖掘的现状和秘密

科普入门 |    什么是空块?矿工为什么要挖空块?

矿池PPS模式和PPLNS哪种模式的采矿收入最高?

免责声明:世链矿业网作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链矿业网无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。

风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。

    分享文章:

  • 微信扫一扫
    小明学习笔记 | 一文看懂矿池是干嘛的