编者按:区块链涉及到的技术很多,从互联网底层到不明觉厉的密码学,可是往往关注币价者多而研究技术的人少。牛市的时候,大家为了炒币也会努力学习,熊市的时候,反正也没啥事,我觉得可以更加努力学习。作为一个文科生,我当然会有很多理科生看起来觉得很白痴的问题。作为一个记者,我不难找到业内懂的人用人话给我解释,而且他们往往不会当面嫌弃我。这是小明学习笔记第六期,如果有其他有趣问题,欢迎投稿和提问。---------这是华丽丽的正文分割线---------回顾过往,小明学习笔记已经从周更变成月更,这一篇距离上一篇可以说是季更了。由于我现在的工作主要是编辑了,所以一般是带着记者出去采访和写稿,很少自己单独写稿,所以学习笔记的更新估计也是绵绵无绝期。这期要分享的是矿池,首先要感谢xDAG的核心开发者谢锐,同时他也是xDAG官方挖矿软件的设计者,年前给我科普了很多这方面的知识。我最早了解这个行业是在2017年采访ViaBTC微比特,当时杨海坡总结,矿池就像矿工的联盟,把大家聚起来挖矿。这个确实已经是矿池非常本质而且通俗的解释。我们都知道,随着比特币而诞生的PoW共识机制,其挖矿的过程本质就是在做随机数碰撞,谁猜中者这个随机数谁就可以获得记账权、成为这轮的出块人。因为是乱猜,所以单位时间内猜的次数越多,猜中的概率就越大。随着专业矿机等设备出现,比特币、莱特币等币种全网挖矿算力增加,大部分的矿工靠自己solo挖矿已经很难挖到币,矿池应运而生。矿池就像一个联盟,把这些零散的矿工甚至是矿场集合起来一起挖矿,按算力占比给矿工收益,这样既可以增加挖到币的概率、也可以稳定矿工的收入,同时矿池提供的技术也有利于降低挖矿效率。矿池究竟把什么任务给到矿工?
神鱼也曾经总结,矿池其实就是在分派任务给大家算。不过,我想知道得更细节,就是矿工们究竟在算什么?矿池又是怎么分配任务的呢?《浅谈矿池和矿场》这篇文章举了个例子说明挖矿的过程:“矿池将区块难度分成很多难度更小的任务下发给矿工计算,矿工完成一个任务后将结果提交给矿池,叫提交一个share。假设全网难度要求n的值为100,即前100个比特位为0,矿池可能会给矿工分配一个任务,要求前30位为0,然后再从所有提交的任务中,寻找有没有凑巧前100位为0的目标值。”谢锐告诉我,理论上,矿池给矿工分配任务的方式可以有两种:第一种,矿池只是一个节点,打包交易的还是矿工。矿池会把任务的完整信息给到到矿工,矿工打包交易、然后广播。矿工知道完整信息,但是需要填的东西比较多,签名也是矿工签的。第二种矿池节点直接打包,给到矿工的是结果的中间状态,或者说非完整信息,矿工填完他要填的东西。块最后的组合由矿池来做。矿工把nounce发给矿池,签名是矿池。“唯一不会变的是,你接入这个矿池的数据同步方式。”看完上面两种方式,显然大部分商业运营矿池会选择第二种,挖矿收益的分配就是按照签名。如果我既是矿工也是矿池主,两种没有区别,大可选择第一种。看到上面说的nounce值,你大概会有点懵逼,这其实就是我们常说的PoW过程中要碰撞的那个随机数,下面还会解释。根据《精通比特币》一书,挖矿的目标是找到一个使区块头哈希值小于难度目标的nonce。前提是选取的交易已经确定,说到这里,我们就需要来学习一下比特币的区块头结构。表格来自《精通比特币》在区块头里面,基本上挖矿节点能改变的东西就两个:交易和nounce。既然挖矿的目标是让区块头哈希值小于目标,整个步骤基本上是:决定你要打包的交易并形成对应merkletree根——乱猜一个nounce——把nounce放到区块头里面哈希一下——才知道有没有小于目标哈希值,即大于目标难度。So,基本上你所选的交易和nounce,都无助于你“预知”最后的哈希值大小,你每一步都只能乱猜。别人一次可能就猜中了,你猜了几万次都还没有中,你唯一能做的就是比别人在同一时间里面猜更多次,这就是矿机在做的事情——把自己所有的精力都集中起来做一件事。再说说矿机的抗AISC属性
说到矿机,我问真的存在抗ASIC的算法吗?谢锐总体认为本质上没有抗ASIC,不过不同的算法会让制造ASIC矿机的成本更高。任何PoW币种都会有一套挖矿算法/软件,ASIC芯片就是把这个软件烧成电路。最早的芯片都是专用的,比如收音机的芯片只能做收音机的东西。FPGA(FieldProgrammableGateArray)则是可编程阵列,在硅芯片上施加电压,一个与门就可以变成非门。这类芯片应用范围更广,首先上头成本比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,需要的显存芯片可能是GPU的100倍。只看成本和收益。”通俗来说,可以理解为研发一台挖以太坊的ASIC矿机比研发比特币ASIC矿机更难,而且同样时间下研发出来的芯片,对比起普通CPU/GPU效果提升不明显。比特币可能是提升了成千上万倍,以太可能提升了几倍到几十倍,效果划不来。类似的分析也可在公开资料看到,比如耳朵财经的这段话:“Ethereum使用了Ethash算法,前身为Dagger算法,其目的是为了抵制ASIC矿机。如何抵制ASIC矿机呢?通过将挖矿和内存带宽相捆绑,即降低其他硬件的运算优势,从而达到挖矿设备平等这一理念。Ethash算法没有阻挡ASIC矿机的出现,只是拖延了出现的时间。绑定内存带宽意味着可以通过提高内存带宽速度来提高算力,或者在相同内存带宽速度下降低功耗,只不过目前内存带宽价格过高以及ETH价格过低,从成本上考虑,ASIC矿机相较GPU来得不够划算。Litecoin使用的是密码学家兼程序员ColinPercival于2009年发表的论文StrongerKeyDerivationviaSequentialMemory-hardFunctions上所发明的scrypt算法。原理和Ethash较为相似,都是提高挖矿时内存的使用成本,延缓ASIC矿机的出现。2014年,Zeusminer研发出了专门针对scrypt算法的ASIC矿机。这也说明通过绑定某一硬件从而抬高挖取的使用成本是没有办法完全杜绝ASIC矿机。”现在大部分号称抗ASIC的挖矿算法,都是将内存和计算捆绑。以太中文网还整理了一下不同PoW算法部署ASIC之后挖矿效率增长倍数:SHA256约1000倍Scrypt和NeoScrypt约1000倍X11和X16R约1000倍Equihash约100倍CuckooCycle约100倍CryptoNight约50倍Ethash约2倍矿池的收益分配模式
最后简单提下矿池的收益分配模式,其实这个已经有很多文章解释过。矿池的分配模式大类有两种:第一种是实际出块情况分币:时间周期内,矿池挖到多少块,就按照算力比例分配所得挖矿收益。这种方式的时间周期一般按挖出块的时间为止,即两次挖到块的时间之内的算力分布比例分配收益;也可以每天结算,如果你所在的矿池爆了好几个块,当天的收益就很高,如果矿池一天都没有挖到什么块,那么所有人今天都没有收益。这称为PPLNS。第二种即按理论值分币:时间周期内,理论上矿池能得到多少收益,按照算力比例给矿工分钱,相比上一种稳定。借用这篇文章里的一个例子:假如在某10分钟,你为某矿池提供了1T算力,当时该矿池算力共为100T,全网算力1000T,比特币网络平均每10分钟出一个块,出块奖励为12.5个BTC,矿池占全网总算力的十分之一,矿池收益期望值为1.25个BTC,你的算力占矿池算力的百分之一,无论矿池是否挖到区块,你的收益都是理论收益1.25BTC。这种称为PPS(PayPerShare)。由于PPS模式下,矿池承担风险,所以费用的比率会更高。大概在2018年8月,鱼池上线了新的ETH矿池,采用PPS+分配模式,跟PPS有点不同,手续费2.5%,这种模式是固定块收益采取了理论收益模式+转账手续费采用了挖多少分多少的模式。行文至此矿池的基本知识科普得差不多了。突然想起最近看文章看到以太坊的空块率多了很多,我又顺便问了一下矿池为什么要挖空块,得到的回答是省时间:“挖空块的好处,不用同步数据,也不用下载,而且上传更快,出块太多会提升难度。”想知道得更详细,可以参考《科普入门|空块是什么?为什么矿工要挖空块?》这篇文章:“挖空块技术唯一的优势就在于,因为空块只有一条信息,空块矿工省去了‘打包’大量信息的时间。这使得空块矿工挖完这个区块,直接就可以开始下一个区块的挖矿。如果是大矿场甚至矿池级别的硬件,这一操作说起来只是节省了几秒钟的时间,不过大矿池几秒钟时间的算力,秒秒钟几百万上下真是一点也不夸张啊。一般情况下,矿池是不喜欢挖到空块的。毕竟节省那点时间,也值不到收益的6%~8%啊。最后就是区块链网络维护的问题了,如果大量的区块变成空块的话,需要传递的信息流通不了,也会造成区块链网络的大堵塞,堵塞带来的区块链网络性能下降是有可能降低数字货币价格的。目前以太坊的空块率变高,可能是和即将到来的挖矿收益降低有关的,想着趁一个区块还奖励三个以太坊赶紧多挖点屯着。”我是Odaily星球日报编辑卢晓明,探索真实区块链,爆料、交流请加lohiuming,烦请备注姓名、单位、职务和事由。之前第一期学习的是虚拟机,第二期是跨链,第三期《小明学习笔记|一文看懂互联网TCP/IP协议》,第四期是《小明学习笔记|一文看懂可验证随机函数VRF》,第五期是《小明学习笔记|看不懂BCH算力大战怎么才结束?点这里》参考文章:FPGA与CPU、GPU、ASIC的区别,FPGA在云计算中的应用方案ASIC终结者:X16R算法的异军突起优化显卡性能,抵制ASIC,ProgPoW算法到底是什么一文读懂加密货币挖矿业现状和秘密科普入门|空块是什么?为什么矿工要挖空块?矿池PPS模式和PPLNS模式哪个挖矿收益最高?
编者按:本文来自碳链价值,作者:福布斯记者RachelWolfson,受访者:艺术家VesaKivinen,翻译:氪-12、Diana,Odaily星球日报经授权转载.
导读由于产生时间、技术特性等因素,不同公链的DAPP分布与活跃度呈现出较大的差异。ETH依靠DAPP数量众多、分类齐全等独占鳌头;EOS与TRON则多凭借极具吸引力的投机类DAPP在用户活跃度上.
译者丨Moni原地址:https://www.coindesk.com/the-coming-bifurcation-of-bitcoin对于许多身处在比特币社区的人来说.
2月20日,李国庆宣布离开当当,全心投入到CRYSTO这一“内容产业+区块链”的项目,这并不奇怪。毕竟,有一批互联网人在互联网“混不下去”了,都走向区块链.
编者按:本文来自Diar发布的最新报告译者:星球日报茶凉据研究机构Diar最新报告,不知名的矿商于去年12月关闭矿场,打包了高达22%的区块,算力占据比特币全网的22%.
编者按:本文来自区块链大本营,作者apddd,Odaily星球日报经授权转载。日前,加拿大加密货币交易所QuadrigaCX表示,因其CEOGeraldCotten在印度旅行期间突然去世,导致无.