.jpg)
一、什么是矿池
矿池是什么?
在全网算力提升到了一定程度后,单台机器挖到块的概率变得非常的低。这种现象的发展,促使一些“bitcointalk”上的极客开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”(MiningPool)。
矿池存在意义为提升比特币开采稳定性,使矿工收益趋于稳定。
矿池是如何运作?
矿池通过专用挖矿协议连接矿机,矿机通过机器内运行的挖矿软件连接到矿池指定的域名和端口。矿机在挖矿时保持和矿池服务器的连接,和其他矿机同步各自的工作,这样矿池中的不同的矿机(对应不同的矿工)拿到不同的挖矿任务,之后分享收益。矿池每天按矿工贡献支付收益到矿工的钱包地址,但因为支付有手续费,矿池都会设置最低起付金额,如果当日起付金额未达到矿池最低起付金额,矿池会将这部分金额累计,直到某天矿工待支付的收益大于矿池的最低起付金额。
图为币印矿池各币种最低起付金额。
矿池将区块难度任务(job)进行分割,发送给矿工不同难度的任务(job),每次计算完成之后,矿工便提交给矿池一个工作量(share)。当矿池验证这些share没有问题后,就会接收并统计数量。矿池在分配收益时,根据各个矿工提交的share,按占比,来分配这些新币。
矿池最大的优势在于矿池突破地理位置的限制,将分散在全球的矿工及矿场的算力进行联结,一起挖矿。矿池负责将交易打包,接入进来的矿机负责竞争记账权。理论上矿池的算力越大,越容易挖到块,但仅从概率角度说,各个矿池和矿工享有同等的出块概率。
矿池是一个全自动的开采平台,即矿机接入矿池——矿机提供算力——获得收益。
矿池的几种结算模式?
矿池将单位矿工算力进行整合,同时将挖矿的难度分成很多小任务发送给矿工,矿工根据任务进行计算,同时向矿池提交任务答案,也就是提交我们经常说的share(一个工作量)。结算收益时,就需要有一定的结算模式来分配挖矿收益。常用的模式包括PPS,PPLNS,PPS+,FPPS,SOLO等。其中部分结算模式中收益的分配会跟矿池的幸运值挂钩。
幸运值指的就是矿池的运气好坏,数值上等于实际出块数量/理论出块数量*100%。举个例子,如果看到A矿池幸运值200%,意味着过去24小时理论上可挖n个块,实际挖了2n个。
主要的分配模式:
PPS(Pay Per Share)
简单来说,PPS就是打工模式,矿工把算力卖给了矿池去获得固定收益,矿池自负盈亏,因为矿池承担了一定风险,所以PPS模式矿池费率相对要高一些。
Share即提到的矿工提交给矿池的任务答案,PPS收益模式下根据矿工提交的任务量来计算。
举个例子:矿工的算力为1T,整个矿池算力100T,全网总算力1000T,比特币网络平均每10分钟出一个块,出块奖励为12.5个BTC,矿池占全网总算力的十分之一,矿池收益期望值为1.25个BTC,矿工的算力占矿池算力的百分之一,无论矿池是否挖到区块,矿工的收益都按照理论收益1.25个BTC的百分之一获得。
PPLNS(Pay Per Last N Share)
简单来说,PPLNS成功挖到区块后,矿工根据自己贡献的share数量来分配收益。这样的结算方式和爆块(也就是上文提到的幸运值)就息息相关了,如果矿池一天挖出多个区块,矿工收益会很高;如果矿池一天下来都没有能够挖到区块,那么矿工一天收益是0。
短期来看,PPLNS模式和矿池的幸运值关系很大,和PPS相比,PPLNS更接近一种组队模式挖矿。需要注意的是,矿工加入到一个新的PPLNS矿池,这个时候会发现前面几个小时的收益比较低,那是因为其他矿工在这个矿池里已经贡献了很多个share了,新加入的矿工的贡献还很少,所以分红时新加入矿工的收益都是比较低的。这是因为PPLNS具有一定的滞后惯性和周期性,新加入的矿工的挖矿收益会有一定的延迟。
PPS+(Pay Per Share+ Pay Per Last N Share)
是PPS和PPLNS两种费率模式的结合,即对出块奖励按照PPS模式结算,而对矿工费/交易手续费按照PPLNS模式进行结算。也就是说,在这种模式下,矿工可在PPS收益模式的基础上,额外获得部分交易费的收益。
FPPS(Full Pay Per Share)
即完全PPS,对矿池理论出块奖励和过去一段时间理论矿工费/交易手续费均按照PPS进行结算。
二、比特币矿池的协议stratum
转自:
getblocktemplate协议诞生于2012年中叶,此时矿池已经出现。矿池采用getblocktemplate协议与节点客户端交互,采用stratum协议与矿工交互,这是最典型的矿池搭建模式。
与getwork相比,getblocktemplate协议最大的不同点是:getblocktemplate协议让矿工自行构造区块。如此一来,节点和挖矿完全分离。对于getwork来说,区块链是黑暗的,getwork对区块链一无所知,他只知道修改data字段的4个字节。对于getblocktemplate来说,整个区块链是透明的,getblocktemplate掌握区块链上与挖矿有关的所有信息,包括待确认交易池,getblocktemplate可以自己选择包含进区块的交易。
挖矿有两种方式,一种叫SOLO挖矿,另一种是去矿池挖矿。前文所述的在节点客户端直接启动CPU挖矿,以及依靠getwork+cgminer驱动显卡直接连接节点客户端挖矿,都是SOLO挖矿,SOLO好比自己独资买彩票,不轻易中奖,中奖则收益全部归自己所有。去矿池挖矿好比合买彩票,大家一起出钱,能买一堆彩票,中奖后按出资比率分配收益。理论上,矿机可以借助getblocktemplate协议链接节点客户端SOLO挖矿,但其实早已没有矿工会那么做,在写这篇文章时,比特币全网算力1600P+,而当前最先进的矿机算力10T左右,如此算来,单台矿机SOLO挖到一个块的概率不到16万分之一,矿工(人)投入真金白银购买矿机、交付电费,不会做风险那么高的投资,显然投入矿池抱团挖矿以降低风险,获得稳定收益更加适合。因此矿池的出现是必然,也不可消除,无论是否破坏系统的去中心化原则。
矿池的核心工作是给矿工分配任务,统计工作量并分发收益。矿池将区块难度分成很多难度更小的任务下发给矿工计算,矿工完成一个任务后将工作量提交给矿池,叫提交一个share。假如全网区块难度要求Hash运算结果的前70个比特位都是0,那么矿池给矿工分配的任务可能只要求前30位是0(根据矿工算力调节),矿工完成指定难度任务后上交share,矿池再检测在满足前30位为0的基础上,看看是否碰巧前70位都是0。
矿池会根据每个矿工的算力情况分配不同难度的任务,矿池是如何判断矿工算力大小以分配合适的任务难度呢?调节思路和比特币区块难度一样,矿池需要借助矿工的share率,矿池希望给每个矿工分配的任务都足够让矿工运算一定时间,比如说1秒,如果矿工在一秒之内完成了几次任务,说明矿池当前给到的难度低了,需要调高,反之。如此下来,经过一段时间调节,矿池能给矿工分配合理难度,并计算出矿工的算力。
矿池通过getblocktemplate协议与网络节点交互,以获得区块链的最新信息,通过stratum协议与矿工交互。此外,为了让之前用getwork协议挖矿的软件也可以连接到矿池挖矿,矿池一般也支持getwork协议,通过阶层挖矿代理机制实现(Stratum mining proxy)。须知在矿池刚出现时,显卡挖矿还是主力,getwork用起来非常方便,另外早期的FPGA矿机有些是用getwork实现的,stratum与矿池采用TCP方式通信,数据使用JSON封装格式。
先来说一下getblocktemplate遗留下来的几个问题:
矿工驱动:在getblocktemplate协议里,依然是由矿工主动通过HTTP方式调用RPC接口向节点申请挖矿数据,这就意味着,网络最新区块的变动无法及时告知矿工,造成算力损失。
数据负载:如上所述,如今正常的一次getblocktemplate调用节点都会反馈回1.5M左右的数据,其中主要数据是交易列表,矿工与矿池需频繁交互数据,显然不能每次分配工作都要给矿工附带那么多信息。再者巨大的内存需求将大大影响矿机性能,增加成本。
Stratum协议彻底解决了以上问题。
Stratum协议采用主动分配任务的方式,也就是说,矿池任何时候都可以给矿工指派新任务,对于矿工来说,如果收到矿池指派的新任务,应立即无条件转向新任务;矿工也可以主动跟矿池申请新任务。
现在最核心的问题是如何让矿工获得更大的搜索空间,如果参照getwork协议,仅仅给矿工可以改变nNonce和nTime字段,则交互的数据量很少,但这点搜索空间肯定是不够的。想增加搜索空间,只能在hashMerkleroot下功夫,如果让矿工自己构造coinbase,那么搜索空间的问题将迎刃而解,但代价是必要要把区块包含的所有交易都交给矿工,矿工才能构造交易列表的Merkleroot,这对于矿工来说压力更大,对于矿池带宽要求也更高。
Stratum协议巧妙解决了这个问题,成功实现既可以给矿工增加足够的搜索空间,又只需要交互很少的数据量,这也是Stratum协议最具创新的地方。
再来回顾一下区块头的6个字段80字节,这个很关键,nVersion,nBits,hashPrevBlock这3个字段是固定的,nNonce,nTime这两个字段是矿工现在就可以改变的。增加搜索空间只能从hashMerkleroot下手,这个绕不过去。Stratum协议让矿工自己构造coinbase交易,coinbase的scriptSig字段有很多字节可以让矿工自由填充,而coinbase的改动意味着hashMerkleroot的改变。从coinbase构造hashMerkleroot无需全部交易,
如上图所示,假如区块将包含13笔交易,矿池先对这13笔交易进行处理,最后只要把图中的4个黑点(Hash值)交付给矿工,同时将构造coinbase需要的信息交付给矿工,矿工就可以自己构造hashMerkleroot(图中的绿点都是矿工自行计算获得,两两合并Hash时,规定下一个黑点代表的hash值总是放在右边)
。按照这种方式,假如区块包含N笔交易,矿池可以浓缩成log2(N)个hash值交付给矿工,这大大降低了矿池和矿工交互的数据量。
Stratum协议严格规定了矿工和矿池交互的接口数据结构和交互逻辑,具体如下:
1.矿工订阅任务
启动挖矿机器,使用mining.subscribe方法链接矿池
返回数据很重要,矿工需本地记录,在整个挖矿过程中都用到,其中:
Extranonce1,和 Extranonce2对于挖矿很重要,增加的搜索空间就在这里,现在,我们至少有了8个字节的搜索空间,即nNonce的4个字节,以及 Extranonce2的4个字节。
2.矿池授权
在矿池注册一个账号,添加矿工,矿池允许每个账号任意添加矿工数,并取不同名字以区分。矿工使用mining.authorize方法申请授权,只有被矿池授权的矿工才能收到矿池指派任务。
3.矿池分配任务
以上每个字段信息都是必不可少,其中:
有了以上信息,再加上之前拿到的Extranonce1和Extranonce2_size,就可以挖矿了。
4.挖矿
1)构造coinbase交易
用到的信息包括Coinb1, Extranonce1, Extranonce2_size以及Coinb2,构造很简单:
为啥可以这样,因为矿池帮矿工做了很多工作,矿池已经构建了coinbase交易,系列化后在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定信息,比如coinb1包含区块高度,coinb2包含了矿工的收益地址和收益额等信息,但是这些信息对于矿工来说无关紧要,矿工挖矿的地方只是Extranonce2的4个字节。另外Extranonce1是矿池写入区块的指定信息,一般来说,每个矿池会写入自己矿池的信息,比如矿池名字或者域名,我们就是根据这个信息统计每个矿池在全网的算力比重。
2)构建Merkleroot
利用coinbase和merkle_branch,按照上图方式构造hashMerkleroot字段。
3)构建区块头
填充余下的5个字段,现在,矿池可以在nNonce和Extranonce2里搜索进行挖矿,如果嫌搜索空间还不够,只要增加Extranonce2_size为多几个字节就可轻而易举解决。
5.矿工提交工作量
当矿工找到一个符合难度的shares时,提交给矿池,提交的信息量很少,都是必不可少的字段:
矿池拿到以上5个字段后,首先根据任务号ID找出之前分配任务前存储的信息(主要是构建的coinbase交易以及包含的交易列表等),然后重构区块,再验证shares难度,对于符合难度要求的shares,再检测是否符合全网难度。
6.矿池给矿工调节难度
矿池记录每个矿工的难度,并根据shares率不断调节以指定合适难度。矿池可以随时通过mining.set_difficulty方法给矿工发消息另其改变难度。
如上,Stratum协议核心理念基本解析清楚,在getblocktemplate协议和Stratum协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。
三、区块链转行可以做什么,如何玩转区块链
那些干区块链行业的人都在干些什么?
近年来区块链相关的概念火得发紫,吸引了不少人入行,那这些真正投身区块链行业的人都在干些什么呢?
通常我们说的“区块链行业”是一个泛称,包含了相互关联又独立成型的三大支柱产业:币圈、矿圈、链圈。就目前阶段来说,“钱”景最好的是币圈,其次是矿圈,最后是链圈。
币圈
币圈主要是围绕着数字货币(也称为虚拟货币、加密货币)的发行、支付、证券等方面做工作。
最早同时也最成功的数字货币是比特币(BTC),至今匿名的大佬中本聪(SatoshiNakamoto)在2008年~2009年发布的比特币白皮书和软件标志着比特币的诞生,在这之后的数字货币发行主要有三种方式:分叉、自研、通证(Token):
1、常见币种中BCH、LTC、DCR、DASH、ZEC等均是通过分叉BTC而来,主要是在性能、隐私性、加密算法等方面有一些不一样的主张。
2、ETH、EOS等则是比较成功的自研项目,他们往往不是满足于发行一个新币,而是尝试做一套支持开发智能合约、去中心化应用的公共平台。
3、通证(Token)发行则主要是借助前述公共平台的能力,以非常快速、简便的方式发行新的币种,这些新币种通常是在业务层面有些创新或融合;通证(Token)打开了数字货币发行的新世界大门,项目众筹(I-C-O)、稳定币(USDT等)、平台币、I-E-O等轮番上演,可谓是百花齐放、鱼龙混杂。
支付是货币的基本功能,为了让数字货币更快更方便的用于交易和流通,诞生了很多优秀的产品,如支持很多币种的在线或离线钱包、支持点对点或担保交易的结算系统、支持数字货币和法定货币互相兑换的平台等。
交易所的出现,让数字货币拥有了很强的证券属性,常见的交易所通常都支持OTC(C2C)交易、币币交易、合约交易等功能,为投资者提供7x24小时实时在线的数字货币交易服务。参与交易的投资者多了,也衍生出来诸如量化、基金、借贷等的投资服务。伴随着几轮大牛市,数字货币被越来越多的人认识、接受并参与投资,证券功能相比支付功能发展得要强大的多。
矿圈
随着技术的发展和竞争的加剧,矿机、矿池、矿池及整合前三者的云算力服务成为矿圈的主要业务模式。
从通俗意义上理解,挖矿是通过计算机产生新的数字货币的过程。早期的数字货币特别是市值最大的比特币通常采用工作量证明(POW)机制来确保去中心化网络的正常运行,并给予参与者数字货币奖励。随着数字货币的价值提升,挖矿的竞争不断加剧,产生新币需要的计算能力也在不断且大幅地增加:最早期的比特币通过个人电脑的CPU即可挖矿,之后运算能力更强的GPU取代了CPU,再往后专用的矿机特别是ASIC(专用集成电路)矿机成为主角。研发ASIC矿机最重要的是专用的高性能芯片的研发,代表着最前沿的技术能力;其次是矿机的稳定性及能效比。矿机的生产通常是通过代工厂,但强大的供应链、物流管理、营销推广、售后服务等能力也是必不可少。
矿场是集中部署矿机的地方,最理想的矿场是按照数据中心的标准来建设,但因成本考虑几乎无法达到。最基本的矿场建设需要廉价稳定的电力供应、安全宽敞的场地、专业的运维团队等条件,同时需要配备机架机柜、温度调节、噪音隔离等设施。而廉价稳定的电力做为最重要的资源通常是少数人(公司)拥有的,他们通常会倒卖资源或建设矿场自营挖矿和提供矿机托管服务。
矿池的出现同样也是因为挖矿难度的不断增长,即时你有一台最先进的ASIC矿机,直接挖到币的概率也很低了。矿池能将很多矿机联合起来,形成一个庞大的算力池子,增加获取挖矿奖励的概率。主要原理是将同一个挖矿任务拆分下发给连接到矿池的矿机,并接收验证矿机提交的计算结果,符合挖矿要求则提交到链上获取奖励,同时也会统计不同矿机的算力,根据算力大小分配获得的奖励。
因为矿机、矿池、矿池的专业性和入门门槛较高,参与挖矿的往往只能是规模较大、资金雄厚的团队和机构,而云算力通过整合矿机、矿场、矿池等方面的优质资源,可以直接交付指定大小的算力,打包成简单易用的挖矿服务直接供普通用户购买,大大降低普通用户参与挖矿的资金、时间、资源、精力成本。
链圈
区块链脱胎于比特币的底层实现,从狭义上来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,是一种以密码学方式保证不可篡改和不可伪造的去中心化账本的技术。
区块链是数字货币的载体技术,同时经过十几年的发展,人们也逐渐认识到区块链技术的优点和特性可以应用到更为广阔的领域,于是就有那么一些人投身于区块链技术的研究、开发和推广,主要有三部分:造链、DAPP开发、区块链+。
区块链技术的火热,导致研发出来的区块链非常多,像BTC、BCH、ETH、EOS等数字货币的载体链,通常是发布到公网上,由开源社区维护,任何人都可以使用的区块链,可以称为公链。而由FaceBook、百度、腾讯等商业公司主导开发,内网部署,面向应用的链通常称为私链。
DAPP是指在区块链上通过智能合约等技术开发出来的去中心化应用,以公链上面向普通用户的应用居多,如电子宠物、博彩游戏、去中心化交易所、轻度游戏等。区块链+则更多是商业公司基于私链结合某个业务领域开发的商业应用,如积分系统、版权证明、去中心化存储、银行证券等。
随着区块链技术的发展,相信会有越来越多的链和基于链的优秀应用诞生。
风险提示:本文提到的所有数字货币均不做为投资建议。
原文链接:
区块链能做什么?一、信息共享
是区块链最简单的应用场景,它本身就是需要保持各个节点的数据一致性的,可以说是自带信息共享功能;其次,实时的问题通过区块链的P2P技术可以实现;最后,利用区块链的不可篡改和共识机制,可构建其一条安全可靠的信息共享通道。
二、版权保护
以版权保护为例,现有鉴证证明方式,登记时间长,且费用高。以法务存证为例,个人或中心化的机构存在篡改数据的可能,公信力难以得到保证。区块链应用到鉴证证明后,无论是登记还是查询都非常方便,无需再奔走于各个部门之间。区块链的去中心化存储,保证不会任意篡改数据。
三、物流链
区块链没有中心化节点,各节点是平等的,掌握单个节点无法实现修改数据;需要掌控足够多的节点,才可能伪造数据,大大提高伪造数据的成本。区块链天生的开放、透明,使得任何人都可以公开查询,伪造数据被发现的概率大增。区块链的数据不可篡改性,也保证了已销售出去的产品信息已永久记录,无法通过简单复制防伪信息蒙混过关,实现二次销售。
四、跨境支付
区块链的引入,解决了跨境支付信息不对称的问题,并建立起一定程度的信任机制;带来了两个好处:效率提高,费用降低:接入区块链技术后,通过公私钥技术,保证数据的可靠性,再通过加密技术和去中心,达到数据不可篡改的目的,最后,通过P2P技术,实现点对点的结算;去除了传统中心转发,提高了效率,降低了成本(也展望了普及跨境小额支付的可能性)。
五、资产数字化
资产数字化后,易于分割、流通方便,交易成本低,用区块链技术实现资产数字化后,所有资产交易记录公开、透明、永久存储、可追溯,完全符合监管需求。
区块链赚钱吗
一般来说是可以的。普通人在区块链可以赚钱的三个方向:
第一种就是区块链投资,这是一种简单粗暴的炒币方式。在你做好资产分析和配置之后,拿出一部分闲钱,买入后长久持有。也就是“屯、配置、不要看”三步走。当下区块链正处在发展风口上,很大可能你就用到这个方法从中获利赚钱呢。
第二种是区块链项目推广。这里的推广,可能更像是短期的撸羊毛行为。它的参与者可能并不看好这个项目,也可能不会自己去投资区块链。但他们会利用自身的分享机制,做一番宣传,从而谋取代币奖励或者其他福利。
第三种是区块链自媒体。虽然如今遍地都是公众号,但如果你能做出一个细分的精品号,机会还很多很多。像区块链自媒体就是一个很好的细分市场。它现在还处于早期发展阶段,在中国可能也就百万之众,所以现在做相关的自体,仍有广阔的人口红利。至于形式,可以多种多样。你可以写文章,可以录视频,可以播语音,甚至可以做直播。内容可以写投资心得、项目分析、行业快讯、福利精选、知识科普等等。总之,重点是把信息传递给大家。
拓展资料
一、区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。国家互联网信息办公室2019年1月10日发布《区块链信息服务管理规定》,自2019年2月15日起施行。
区块链到底能做哪些行业啊?区块链可以应用在很多行业,举几个例子吧
拿区块链司法存证来说,目前区块链司法存证架构已初步建立。今年7月份,司法区块链应用生态服务平台“至信链”正式发布,全国至少有7个省市法院在司法存证中应用了区块链技术。
利用区块链技术,广州黄埔区上线了“商事服务区块链平台”,利用区块链技术开启一键办公司的模式,申请者可通过“区块链+AI”平台办理的企业营业执照,用时仅需一个半小时。
京东物流打造区块链溯源平台,牛羊肉一键式可溯。
金融、学术、医疗、电子发票、司法存证等等,密码财经专注区块链信息。
区块链技术可以做什么区块链可以做的东西太多太多了。不过,区块链只是一个技术,是一个前景非常广阔的技术,就和90年代的互联网技术差不多。互联网在21世纪已经被证实是最伟大的一项技术,已经改变了人类的生存方式。
例如,区块链可以应用于P2P、票据、证券等金融领域,也可以应用于合同。当然,还可以保护知识产权,例如分布式内容发布平台DECENT.
本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/186309.html


发表回复
评论列表(0条)