BCC的EDA原理(附9月EDA触发过程详解)

——本文原理部分为引用,已注明来源;计算部分为原创
——如需要转载或引用本文,请注明本文标题、作者姓名、网址来源

BCC的EDA原理(附9月EDA触发过程详解)_第1张图片
BitcoinCash Classic. It's money.

BCC是BCH原链,BCH是从BCC硬分叉得到的链条。

BCC和BCH同样采用EDA机制,用于平衡出块难度,保持矿工参与挖矿的积极性。

1.EDA机制概述

EDA机制是BCH(比特币现金)在启动分叉时能够成功持续出块的关键技术,也是BCH原链BCC能够持续出块的关键原因。

采用EDA机制的理由如下:
1)BCH复制了分叉前的比特币区块数据,区块中包含了相同难度系数;
2)难度系数很高,除非30%以上的比特币算力挖BCH,否则出块困难;
3)为了降低巨大的算力成本,通过EDA机制,可以让难度迅速下降,在低算力下实现出块。

2.EDA的运行机理

EDA原理:连续六个块出块时间差超过12个小时,难度系数下降20%(即×0.8)

触发难度下降的时间差计算,并非由区块的时间戳决定,而是由区块的时间戳中位时间MTP(median time)决定,计算过程如下:

MTP为本区块之前的(含本区块)连续11个区块的中间区块的时间(即第6个区块)
MTP1 = 当前区块的MTP时间
MTP2 =(当前区块高度-6)的MTP时间
如果(MTP1-MTP2)> 12个小时,则难度系数下降20%,在生成下一个区块时触发下降。

因为是基于MTP计算时间间隔,难度的下调会有一定的滞后性,比如说,有1个块在上一个块的12小时之后产生,包含这个块在内的连续6个块,都不会触发难度下降,而在第7~12个块,每一个块都会下降20%,在12个块难度系数下降为原来的26%(0.8^6=0.26=26%)。

EDA机制还有以下特点
1)EDA下降难度系数是单向的,也就是在一个(2016块)周期内只降不升。
2)在一个(2016块)周期内可以无限次触发难度下降。
3)2016个块的难度调整以最后1个块的难度为基数,上调最高系数为400%(比特币固有机制)

因为这些特点,矿工如果采取统一行动可以,先降低算力,使间隔超过12个小时,之后自动触发让区块难度不断下降,然后加大算力,在几天、几小时内挖完2016个块。这个实验在BCC上不断被验证,甚至出现了几分钟挖完2016个块的情况(这方面的情况会在BCH原链出块历史报告中进一步研究)。

附: 9月BCC触发EDA的原理和计算过程

截止目前,9月一共发生3轮EDA的触发,发生的区块高度如下:
高度为586945的区块,本轮为单次触发EDA;
高度为590698至590700的区块,本轮是连续3次触发EDA;
高度为590804至590806的区块,本轮是连续3次触发EDA;

区块586945触发EDA的原理、计算过程

对于高度586945的EDA触发,我们标注上相关区块的难度值、高度、时间戳等信息,如下图所示:

BCC的EDA原理(附9月EDA触发过程详解)_第2张图片
高度586945触发EDA的原理、计算过程

由于难度触发是在下一个区块发生,所以通过对区块586944的时间差分析,可以判断区块586945是否触发EDA,引用第2部分中的定义和公式,可以得到计算过程如下:

MTP1 = 区块586944的中位时间 = 区块586939的时间戳
MTP2 = 区块586938的中位时间 = 区块586933的时间戳
MTP1 - MTP2 = 24 + (0:25 - 11:39) = 12小时46分 > 12小时

根据以上计算,判断出区块586945将触发EDA。
上一个区块586944的难度值是19.15亿。

所以区块586945的难度值将调整为:19.15亿 × (1-20%) = 15.32亿

区块590698至590700触发EDA的原理、计算过程

对于高度590698至590700的EDA触发,我们标注上相关区块的难度值、高度、时间戳等信息,如下图所示:

BCC的EDA原理(附9月EDA触发过程详解)_第3张图片
高度590698-590700触发EDA的原理、计算过程

通对过区块590697、590698、590699的时间差分析,可以判断区块590698、590699、590700是否触发EDA,引用第2部分中的定义和公式,可以得到计算过程如下:

首先分析判断590698是否触发EDA,
MTP1 = 区块590697的中位时间 = 区块590692的时间戳
MTP2 = 区块590691的中位时间 = 区块590686的时间戳
MTP1 - MTP2 = 24 + (7:44 - 18:04) = 13小时40分 > 12小时
根据以上计算,判断出区块590698将触发EDA。
上一个区块590697的难度值是53.65亿。
所以区块590698的难度值将调整为:53.55亿 × (1-20%) = 42.92亿

再来分析590699是否触发EDA,
MTP1 = 区块590698的中位时间 = 区块590693的时间戳
MTP2 = 区块590692的中位时间 = 区块590687的时间戳
MTP1 - MTP2 = 24 + (7:47 - 18:07) = 13小时40分 > 12小时
根据以上计算,判断出区块590699将触发EDA。
上一个区块590698的难度值是42.92亿。
所以区块590699的难度值将调整为:42.92亿 × (1-20%) = 34.34亿

类似地,重复上述计算过程,可以判断出区块590700将触发EDA,它的难度值将调整为27.47亿。

区块590804至590806触发EDA的原理、计算过程

对于高度590804至590806的EDA触发,我们标注上相关区块的难度值、高度、时间戳等信息,如下图所示:

BCC的EDA原理(附9月EDA触发过程详解)_第4张图片
高度590804-590806触发EDA的原理、计算过程

这一轮EDA的连续触发和590698-590700情况类似,读者可按上面计算实例自行验算和推导

笔者计算结果为:590804至590806都会触发EDA,它们各自的难度值将分别调整为 21.98亿、17.58亿和14.06亿。

如本月后续还有EDA触发,会及时更新到本文。

参考

图片来源:
https://busy.org/@jakson/bitcoincash-calculator-and-profitable-pc-software-tool-with-earn-daily-bch-coin
文字来源:
https://bitcoincashcn.github.io/2019/05/22/bcc-eda/

END

BCC的EDA原理(附9月EDA触发过程详解)_第5张图片
BCC,牛逼

——本文原理部分为引用,已注明来源;计算部分为原创
——如需要转载或引用本文,请注明本文标题、作者姓名、网址来源

你可能感兴趣的:(BCC的EDA原理(附9月EDA触发过程详解))