+0.02%
市值 | $ 20,613.79 亿 |
---|---|
24小时涨幅 | +0.02% |
全网算力 | 714.60 EH/s |
日产出 | 0.00000061 BTC / T |
全网减半时间 公链会有减半的周期,保持币的价值提升,历史上的减半后行情都有大涨。 |
已完成 |
全网算力收益波动 全网算力是因矿机的增加与减少,从而影响平均分配的收益,算力减少,平均收益会增加,算力增加则平均收益减少。 |
+436.12% |
0.00%
市值 | $ 3.43 亿 |
---|---|
24小时涨幅 | 0.00% |
全网算力 | 2.35 KH/s |
日产出 | 0.21580310 DCR / G |
全网减半时间 公链会有减半的周期,保持币的价值提升,历史上的减半后行情都有大涨。 |
暂无减半预期 |
全网算力收益波动 全网算力是因矿机的增加与减少,从而影响平均分配的收益,算力减少,平均收益会增加,算力增加则平均收益减少。 |
-99.66% |
-0.02%
市值 | $ 85.70 亿 |
---|---|
24小时涨幅 | -0.02% |
全网算力 | 1.55 PH/s |
日产出 | 0.00000251 LTC / M |
全网减半时间 公链会有减半的周期,保持币的价值提升,历史上的减半后行情都有大涨。 |
暂无减半预期 |
全网算力收益波动 全网算力是因矿机的增加与减少,从而影响平均分配的收益,算力减少,平均收益会增加,算力增加则平均收益减少。 |
-99.70% |
+0.04%
市值 | $ 109.28 亿 |
---|---|
24小时涨幅 | +0.04% |
全网算力 | 3.69 EH/s |
日产出 | 0.00012253 BCH / T |
全网减半时间 公链会有减半的周期,保持币的价值提升,历史上的减半后行情都有大涨。 |
已完成 |
全网算力收益波动 全网算力是因矿机的增加与减少,从而影响平均分配的收益,算力减少,平均收益会增加,算力增加则平均收益减少。 |
-55.70% |
+0.20%
市值 | $ 11.58 亿 |
---|---|
24小时涨幅 | +0.20% |
全网算力 | 8.74 GH/s |
日产出 | 0.00025329 ZEC / K |
全网减半时间 公链会有减半的周期,保持币的价值提升,历史上的减半后行情都有大涨。 |
已完成 |
全网算力收益波动 全网算力是因矿机的增加与减少,从而影响平均分配的收益,算力减少,平均收益会增加,算力增加则平均收益减少。 |
+45.18% |
0.00%
市值 | $ 6.74 亿 |
---|---|
24小时涨幅 | 0.00% |
全网算力 | 2.68 PH/s |
日产出 | 0.00018864 DASH / G |
全网减半时间 公链会有减半的周期,保持币的价值提升,历史上的减半后行情都有大涨。 |
已完成 |
全网算力收益波动 全网算力是因矿机的增加与减少,从而影响平均分配的收益,算力减少,平均收益会增加,算力增加则平均收益减少。 |
-52.98% |
+0.14%
市值 | $ 64.24 亿 |
---|---|
24小时涨幅 | +0.14% |
全网算力 | 207.70 TH/s |
日产出 | 0.00006248 ETC / M |
全网减半时间 公链会有减半的周期,保持币的价值提升,历史上的减半后行情都有大涨。 |
暂无减半预期 |
全网算力收益波动 全网算力是因矿机的增加与减少,从而影响平均分配的收益,算力减少,平均收益会增加,算力增加则平均收益减少。 |
+14.70% |
比特币主链上,平均每十分钟会出一个块。随着数字货币的发展,参与的miner数量与日俱增,挖矿技术发展日新月异,全网的算力也是以惊人的速度增长。BTC中为了保证主链平均的高度增加速度依然维持最初设定,进而设置了挖矿难度调整的功能。深入理解挖矿难度的概念,以及挖矿难度调整。这是很重要的知识,因为挖矿难度设置不合理可能会导致全网出块速度极不稳定。下面将详细介绍BTC&BCH挖矿难度及调整方案,我们先从PoW算法讲起。
1.PoW算法
PoW(Proof-of-Work)算法工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。
PoW算法具有:去中心化,单向,随机性,目标难度易调整等特点,所以现在包括BTC,BCH在内的很多币种都采用了PoW共识机制。
从实现上来说,PoW算法的输入为任意长度,输出为固定长度,比如通常使用SHA256算法对应输出256-bit。在挖矿过程中miner用PoW算法计算整个块头的hash值,由于SHA256的特性:块头任意一位发生变化,得到的hash值会变得完全不一样,而且大小变化方向不确定。于是,我们比较hash值是否小于某个值(实际上这个值是保存在块头中的nBit“解压后”的current_target值)来判断是否满足要求;如果小于,则广播这个区块;如果不小于,则按照当前挖矿节点的规则改变块头中可以改变的值,然后再次计算块头hash值,以此往复,直到结果小于目标值。
由此可知,current_target值越小,满足挖矿要求的概率就越小,挖矿难度就越大。
2.块头&Coinbase交易
块头的生成:当miner开始新一轮打包之后,首先会创建一个空的块,块结构分为块头以及块信息两部分。先打包块信息,再根据块信息填充块头。
首先看一下已经成功打包的块。下图是写本文稿时截取最新的BTCblock详情。
块信息存放的是从mempool里取出来的一系列交易信息,miner并以此创建了一个MerkleTree,交易信息作为leaf,最终生成的MerkleRoot将填到块头里。值得注意的是,交易列表中的第一个是一个非常独特的交易:CoinbaseTransaction。
CoinbaseTransaction与普通交易主要的区别有:
1)CoinbaseTransaction不消耗UTXO2)input只有一个,叫做Coinbase3)output的addresss为miner的btc/bch地址4)value由挖矿奖励和交易费组成5)更值得注意的是input中没有Unlocking-script,取而代之的是CoinbaseData(这部分数据包含ExtraNonce,在挖矿难度非常高时,将起非常重要的作用)
3.挖矿难度及难度调整
理解了PoW运算以及运算结果可能受哪些个因素影响,接下来了解一下我们要满足的难度要求是什么。挖矿难度的描述可以认为有三种形式,difficulty(难度值,浮点数),current_target(当前目标值,256-bit),nbits(32-bit);形式不同其实实质是表达的同一个难度要求,而且这个难度要求在每个块打包前就确定了。
difficulty不写在区块中,而是以浮点数的形式展现,给人直观的感受难度程度。
创世块的current_target=difficulty_1,所以创世块的difficulty=1.0。
nbits就是区块头nBits字段的值,用长度为32-bit的数值表示256-bit的数值,是需要牺牲一定精度的,可以理解它为“压缩”后的current_target。
在计算current_target时,我们先转换为二进制然后用公式(a)来计算256-bit的current_target。(值得注意的是:current_target是一个无符号256-bit的值,之所以设置一个Sign字段,是为了与bitcoind代码保持一致,保留符号位参考的是IEEE浮点型表示法,其实是无用的)
4.BCH难度调整
BCH诞生于区块高度478558,两条链都采用相同PoW共识算法(平均10分钟生成一个块),所以miner可以任意在BTC与BCH间切换,但由于通常BCH全网算力只占有BTC的7%左右,当BCH获利大于BTC的时候,大量原BTCminer(尤其是大的矿场)会切入BCH,一段时间后随着算力提升,难度值也会提升,miner会纷纷离开切回BTC,算力降低,难度居高不下将导致接下来出块十分困难。倘若继续沿用BTC的难度调整方案,BCH将无法保证出块速率稳定在平均10mins/block,事实上BCH的难度值调整算法已经先后经历了两种,第一种是紧急难度调整规则(EDA),目前使用的是难度调整规则(DAA)。
紧急难度调整规则(EDA)
EDA是在沿用BTC难度调整算法的基础上,增加了一个EmergencyDifficultyAdjustment处理方案,主要是针对于出块缓慢情况及时降低难度。算法具体逻辑是:对于高度为2016倍数的就拿到此高度前2016块的blocktime,沿用BTC难度调整方案;对于高度非2016倍数的块,则计算生成前六块的块总共耗时是否超过12h,如果超过则降低挖矿难度20%。
所以优化BCH的难度调整方案的刻不容缓,在得到几大矿池的稳定算力支持后,17年11月13日,BCH再次升级,就是为了优化EDA。BCH开发团队(并非社区)收到几份DAA,最终采用了BTCABC开发团队AmaurySechet的DAA提案。这份proposal的ieda可以用一句俗语来形容“魔高一尺,道高一尺,魔有天花板”,根据前一天的算力为基准从而预测需要设置多少工作量才能耗掉十分钟。其实现逻辑如下:
➊新算法将在高度504031开始生效
➋假设需要得到target_height的目标难度
➌(prevBlock-1)至(prevBlock-1-2)这三块的ntime,排序,取ntime在中间的那块为lastNode
➍取(prevBlock-1-144)至(prevBlock-1-144-2)这三块的ntime,排序,取ntime在中间的那块为firstNode备注:bch的目标是10分钟产生一块,一天产生144块
➎根据最近的144个区块的链上累计工作量(ChainWork)可以推算出满足当前算力的所需工作量work:work=10*60*(indexLast.ChainWork—indexFirst.ChainWork)/actualTimeSpan可以得出当前10分钟的算力值work
➏再通过算力值得出目标难度。
我不属于古巴、朝鲜、津巴布韦、中国大陆、利比里亚、苏丹、委内瑞拉、克里米亚、伊朗和叙利亚的居民,以及根据适用的贸易制裁和出口合规法律,受到限制的任何实体或个人。如我使用RHY网站服务导致的所有法律风险和责任将完全由我独立承担。