.jpg)
一、比特币矿池的协议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协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。
二、比特币的发展历史
2008年爆发全球金融危机,同年11月1日,一个自称中本聪(Satoshi Nakamoto)的人在P2P foundation网站上发布了比特币白皮书《比特币:一种点对点的电子现金系统》,陈述了他对电子货币的新设想——比特币就此面世。2009年1月3日,比特币创世区块诞生。
和法定货币相比,比特币没有一个集中的发行方,而是由网络节点的计算生成,谁都有可能参与制造比特币,而且可以全世界流通,可以在任意一台接入互联网的电脑上买卖,不管身处何方,任何人都可以挖掘、购买、出售或收取比特币,并且在交易过程中外人无法辨认用户身份信息。
2009年1月5日,不受央行和任何金融机构控制的比特币诞生。比特币是一种数字货币,由计算机生成的一串串复杂代码组成,新比特币通过预设的程序制造。
每当比特币进入主流媒体的视野时,主流媒体总会请一些主流经济学家分析一下比特币。早先,这些分析总是集中在比特币是不是骗局。而现如今的分析总是集中在比特币能否成为未来的主流货币。而这其中争论的焦点又往往集中在比特币的通缩特性上。
不少比特币玩家是被比特币的不能随意增发所吸引的。和比特币玩家的态度截然相反,经济学家们对比特币2100万固定总量的态度两极分化。
凯恩斯学派的经济学家们认为政府应该积极调控货币总量,用货币政策的松紧来为经济适时的加油或者刹车。因此,他们认为比特币固定总量货币牺牲了可调控性,而且更糟糕的是将不可避免地导致通货紧缩,进而伤害整体经济。
奥地利学派经济学家们的观点却截然相反,他们认为政府对货币的干预越少越好,货币总量的固定导致的通缩并没什么大不了的,甚至是社会进步的标志。
比特币网络通过“挖矿”来生成新的比特币。所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为区块奖励,奖励获得答案的人。
2009年,比特币诞生的时候,区块奖励是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),区块奖励减半为25个。
当总量达到1575万(新产出525万,即1050的50%)时,区块奖励再减半为12.5个。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在约2100万个。
比特币是一种虚拟货币,数量有限,但是可以用来套现:可以兑换成大多数国家的货币。你可以使用比特币购买一些虚拟的物品,比如网络游戏当中的衣服、帽子、装备等,只要有人接受,你也可以使用比特币购买现实生活当中的物品。
2014年2月25日,“比特币中国”的比特币开盘价格为3562.41元,截至下午4点40分,价格已下跌至3185元,跌幅逾10%。根据该平台的历史行情数据显示,在2014年1月27日,1比特币还能兑换5032元人民币。这意味着,该平台上不到一个月,比特币价格已下跌了36.7%。
同年9月9日,美国电商巨头eBay宣布,该公司旗下支付处理子公司Braintree将开始接受比特币支付。该公司已与比特币交易平台Coinbase达成合作,开始接受这种相对较新的支付手段。
虽然eBay市场交易平台和PayPal业务还不接受比特币支付,但旅行房屋租赁社区Airbnb和租车服务Uber等Braintree客户将可开始接受这种虚拟货币。Braintree的主要业务是面向企业提供支付处理软件,该公司在2013年被eBay以大约8亿美元的价格收购。
2017年1月22日晚间,火币网、比特币中国与OKCoin币行相继在各自官网发布公告称,为进一步抑制投机,防止价格剧烈波动,各平台将于1月24日中午12:00起开始收取交易服务费,服务费按成交金额的0.2%固定费率收取,且主动成交和被动成交费率一致。
5月5日,OKCoin币行网的最新数据显示,比特币的价格刚刚再度刷新历史,截止发稿前最高触及9222元人民币高位。1月24日中午12:00起,中国三大比特币平台正式开始收取交易费。9月4日,央行等七部委发公告称中国禁止虚拟货币交易。同年12月17日,比特币达到历史最高价19850美元。
2018年11月25日,比特币跌破4000美元大关,后稳定在3000多美元。11月19日,加密货币恢复跌势,比特币自2017年10月以来首次下探5000美元大关,原因是之前BCH出现硬分叉,且监管部门对首次代币发行(ICO)加强了审查。
11月21日凌晨4点半,coinbase平台比特币报价跌破4100美元,创下了13个月以来的新低。
2019年4月,比特币再次突破5000美元大关,创年内新高。5月12日,比特币近八个月来首次突破7000美元。5月14日,据coinmarketcap报价显示,比特币站上8000美元,24小时内上涨14.68%。
6月22日,比特币价格突破10000美元大关。比特币价格在10200左右震荡,24小时涨幅近7%。 6月26日,比特币价格一举突破12000美元,创下自2018年1月来近17个月高点。6月27日早间,比特币价格一度接近14000美元,再创年内新高。
2020年2月10日,比特币突破了一万美元。据交易数据,比特币的价格涨幅突破3%。3月12日,据加密货币交易平台Bitstamp数据显示,19点
44分,比特币最低价格已跌至5731美元。5月8日,比特币突破10000美元关口,创下2月份以来的新高。
截至12月27日19时20分,比特币报价28273.06美元。
2021年1月8日,比特币涨至4万美元关口上方,最高至40402美元。
2021年2月22日,比特币价格线上突破58000美元/枚。
2021年2月16日,比特币价格突破50000美元。
3月13日,比特币24小时上涨约6%,站上60000美元/枚,市值约为1.1万亿美元。
2021年5月19日,比特币跌幅扩大至18%,跌破35000美元/枚整数关口,日内连续跌破九道千元关口。
流通性与接受度
比特币仍然有合法或正当的用途。有多种途径使用比特币,通过电子货币交易所、比特币提款机、服务商和个人等渠道,就能兑换为当地的现金或金币或以现金或金币购买比特币;也可以直接使用它购买物品和服务,或使用比特币金融卡。
特别继维基解密宣布接受比特币捐助后,认可使用比特币的个人、组织和企业迅猛增长。
随着比特币金融卡的激活,即使商家不接受比特币,仍然可以依照比特币与法币的即时汇率,而以比特币付款,犹如刷人民币账户的金融卡支付外币(美元、欧元等)消费,仍然可以依照该外币与人民币的即时汇率;
而从人民币的存款账户扣款来完成付款,这样商家只要支持Visa或 Mastercard等信用卡或是Apple Pay等移动支付功能者皆能使用;
使用范围就能从直接接受比特币的1万商家,大幅扩大到包括网络购物、卖场购物、餐厅和咖啡厅用餐、搭乘交通工具、加油站加油等数千万个商家(Visa 2,900万、MasterCard 3,200万个),如果许可,并可使用世界各地逾3千多万台一般法币ATM,以比特币提领当地现金使用。
交易
比特币点对点网络将所有的交易历史都存储在区块链中,比特币交易就是在区块链账本上“记账”,通常它由比特币客户端协助完成。付款方需要以自己的私钥对交易进行数字签名,证明所有权并认可该次交易。
比特币会被记录在收款方的地址上,交易无需收款方参与,收款方可以不在线,甚至不存在,交易的资金支付来源,也就是花费,称为“输入”,资金去向,也就是收入,称为“输出”。如有输入,输入必须大于等于输出,输入大于输出的部分即为交易手续费。
矿工产出交易没有输入,只有输出,交易记录会显示新生成的比特币(Newly Generated Coins),除矿工产出交易外,一个输入必然是另一笔交易的一个输出,也就是一笔收入必然是其他人的支付。
一个输入没有成为另一笔交易的输出时,它是“未花费的”,也就是“账户余额”。收录此交易的区块被广播后,此交易就有了“1个确认”。矿工们平均每10分钟产生一个区块,每一个新区块的诞生会使此交易的确认数加1。
当确认数达到6时,通常这笔交易被认为比较安全、难以逆转。比特币交易为不可逆,每一笔交易都无法撤销,商家不必遭到诈骗式的拒付而遭受损失,唯一可以获得退款的方法,就是请对方再做一笔反向交易,但需要对方的配合。
区块链
区块链(Blockchain)是比特币的一个重要概念,该概念在中本聪的白皮书中提出,区块链是一串使用密码学方法相关系产生的资料块(称为“区块”,block)。
新增的资料块总能链接到上一个区块,即整条区块链的尾部。比特币点对点网络将所有的交易历史都存储在“区块链”(blockchain)中,所以区块链可以看作记录着比特币交易的账本。区块链是一群分散的客户端节点,并由所有参与者组成的分布式数据库,是对所有比特币交易历史的记录。
中本聪预计,当资料量增大之后,用户端希望这些资料并不全部存储自己的节点中。为了实现这一目标,他采用引入散列函数机制。这样客户端将能够自动剔除掉那些自己永远用不到的部分,比方说极为早期的一些比特币交易记录。
中本聪创造了比特币系统的第一个区块,即“创世区块”,并附有一句“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”,而这句是当天泰晤士报的头版文章标题。
确认一项交易的过程,是由解决一系列计算难题的工作量证明机制来实现的。
工作量证明机制要求电脑的计算能力为某个有限值的情况下,需要运算一定的时间才能解决,这就使得攻击者无法重写、修改交易历史,除非他能够拥有相对比特币点对点网络系统更强大的计算能力,从而能以更快的速度产生区块链(称为"51%攻击")。
工作量证明机制的难度由系统自动调节,所以新区块的生成平均需时10分钟。整个比特币点对点网络的节点都会自动检测交易和区块的有效性,并忽略任何违背规则的交易和区块,比如那些产生错误数量的区块,或多次发送同一份额比特币的交易行为。
参与处理区块的客户端可以得到一定量新发行的比特币,以及相关的交易手续费。
为了得到这些新产生的比特币,参与处理区块的用户端需要付出大量的时间和计算力(为此社会有专业挖矿机替代电脑等其他低配的网络设备),这个过程非常类似于开采矿业资源,因此中本聪将资料处理者命名为“矿工”,将资料处理活动称之为“挖矿”。
这些新产生出来的比特币可以报偿系统中的资料处理者,他们的计算工作为比特币点对点网络的正常运作提供保障。
有鉴于此,其他类似竞争币(Altcoin)都是用了相同的理念去处理端间交易资料,只是在工作量证明机制上进行调整,如采用权益证明(Proof of Stake)和Scrypt算法等
以上内容参考百度百科-比特币
三、狗狗币被Coinbase***Pro选中***这其中有哪些含义
风靡一时的狗狗币,席卷了整个币圈与圈外的新人们。至今为止,还能听到有人在问,能不能买狗狗币的问题出现,这说明了什么?随着比特币的出圈,加密货币市场中火热的一些投资标会被圈外的人知道,并且有着好奇心去了解。
狗狗币的热度基本上还未消散,其中有很大关系是马斯克的作用在里面。他的一举一动被持有狗狗的人奉为指路明灯,重量级喊单选手在,不怕狗狗币不涨。
而随着名声大噪,狗狗币也被多家交易所选中,用各种各样的活动在吸引流量,这本身没什么问题,都是在争取宝贵的资源。而迟迟没有动静的Coinbase也按耐不住,准备上线狗狗币交易对。
据笔者了解,Coinbase Pro正式宣布将上线狗狗币 DOGE,目前已开放存款,一旦满足流动性条件,将在北京时间6月4日零点或之后开放交易,包括 DOGE-USD、DOGE-BTC、DOGE-EUR、DOGE-GBP和 DOGE-USDT交易对。
Coinbase以下简称CB,是整个币圈第一家合规上市的交易所,它的意义与嘉楠上市一样,非同凡响。不只是因为上市本身,而是上市之后的连带效应与串联作用。加密货币市场毕竟没有具体合规的条款,也被很多国家认为是灰产的温床。上得了台面的案例不多,也是被监管不断打压的对象。
所以才能看出来,一家币圈交易所上市有多么的不容易,至少那些想参与其中的投资者可以选择一个被认可的渠道进行,也能让人放心,对于新人来说,这是最好不过的途径。
CB的筛选很严格,通常不会随意上线品种,而是经过严格的审查与观察进行。如今上线狗狗币,的确是有些趁热打铁的意思,不能让这个热点品种白白浪费了,加上狗狗币的共识优势,也成为被CB选中的因素之一。
狗狗币上线CB,加强了流动性与大户加仓的渠道,这也是互利共赢的前景。那些专业的交易机构会参与其中吗?很是期待,接下来会不会加快狗狗币走势的节奏呢,也有可能。
无论如何,CB选择狗狗币就是好事,并且会让投资者拥有更好的选择性,和庞大的资金体,还有圈外那些蠢蠢欲动的投机者们。
那么,马斯克会如何利用这个消息面做文章呢?好像他也是个蹭热点的专家吧。这波不好好利用一下不是他的风格,各位看客可以猜想一波。
(全文完)
以上内容仅供参考,不构成投资建议。
本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/190833.html


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