首页 » 通讯 » 小明进修笔记 | 一文看懂矿池是干嘛的_矿工_区块

小明进修笔记 | 一文看懂矿池是干嘛的_矿工_区块

神尊大人 2024-11-14 07:22:52 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,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模式哪个挖矿收益最高?

标签:

相关文章