Author

Topic: Bitcoin ABC关于2017年11月硬分叉协议升级的公告 (Read 168 times)

full member
Activity: 168
Merit: 100
11月1日或者之前,Bitcoin ABC将发布已经更新难度调整算法(DAA)的新软件版本。
这是一项对比特现金协议规则的更改,但是这项更改在11月13日之前不会激活。这是一项硬分叉,因此交易所、钱包和其他软件需要在11月13日之前升级。
我们一直在与比特现金矿工沟通,他们很期待这次升级。
比特现金最初的“EDA”让比特现金作为一个小算力链活了下来 ,但是导致算力波动很大。这是有问题的,因为它使用户无法始终获得快速确认,并彻底改变了比特现金的发行计划。
这里有几个改善DAA的提案。我们非常感激大家提出的这些方案,并全部进行了评估。经过仔细考虑,我们决定采用Bitcoin ABC首席开发者Amaury Sechet提出的方案(下面是关于该提案更多的详细内容)。
我们做出决定选出一个特定方案并不容易,因为比特现金有几个独立的开团队,不同团队的开发者们之间进行了大量的商议和讨论。
我们对参与讨论的所有开发者充满了敬意,但是我们只能选择一种算法,并且需要及时作出决定。
因此,我们决定采取一个科学的方法并利用两个公正且与此毫无关联的测试团队:Bitprim和nChain。这两个团队分别进行了测试,并对于哪种算法是最合适的得出了相同的结论。
将来,协议层面上的更改需要进行更多计划和一个促进多团队沟通的流程。我们期待在接下来几个月或几年与其他团队合作制定和完善这一流程。
经过测试后排名前三的算法是Neil Booth的“D578”、AmaurySechet的“D601”和TomHarding的“D622”。
这三个算法在我们自己的测试中结果都是相似的,这三个算法的平均出块时间都约为600秒,极大改善了现有代码。
以下是Bitprim和nChain的结果概要:
BitPrim:“Tom和Amaury提案在表现上非常相似。 Amaury的提案在达成网络共识上表现的更优秀。”
nChain:“D601是合理的选择。 D622在大部分情况下(比其他方案)好3.1% (+/- 1.2% at 95%CI) ,但是有些极端情况下不利于网络。例如,大矿工可以引起时间的波动。”
我们承认D601(Amaury Sechet的提案)可能不是表现得最好的,但是由于3个方案都有相似的表现,我们选择了D601,因为显然D601的风险最小。
算法
新DAA算法将完成以下目标:
依据算力波动来调整难度值,使区块平均出块时间间隔为600秒。
避免在算力在很稳定的时候,难度值突然发生变化。
当哈希率变化过快时,迅速调整难度值。
避免算力和难度影响带来的(出块时间)震荡。
能从攻击中迅速恢复过来,例如操纵时间戳。

这个算法建立144个区块为周期的简单移动均线的基础之上。每个区块的难度值都是根据过去完成144个区块的工作量和实际运算时间来进行调整的。
为了计算难度,我们从最顶端的三个区块开始,然后根据这三个区块的中位数时间戳(median timestamp)选择一个区块。接着,这个过程对区块144、145和146进行重复(区块144-146的高度小于当前高度),然后再从这三个区块中选择一个中位数时间戳区块。
这两个区块之间大约相差144个区块,我们定义W是两个区块之间已完成的工作量,T是两个区块之间的实际运算时间。使用高低过滤器(hi-low filter),这样T就拥有一个最大值两天,和一个最小值0.5天。这可以防止难度值变化太过突然。(通常144个区块需要约1天的时间)
然后我们可以计算:
Wn = W * 预计区块时间 / T .
G = (2^256 / Wn) - 1
这是我们的难度值目标。最后,使用最终过滤器(finalfilter)强行设置一个最大目标值。
新的协议规则将在基于时间戳1510600000之后出现区块的中位数时间戳上激活,即格林威治标准时间11月13日 下午2:06 。激活代码已经融合。
协议升级的具体时间将取决于这个时间戳之后挖出的区块的时间戳。
网络升级
Bitcoin ABC将会采取行动联系交易所和钱包供应商。我们欢迎大家对此提供协助。你可以帮助联系交易所、钱包供应商和其他生态系统参与者,让他们知道他们应该进行软件升级,或者运行新版本的Bitcoin ABC或他兼容的软件。
最后一点,Bitcoin ABC忠于去中心化发展的价值观。我们努力成为领先的软件实现,并推动创新和进步,但是我们不希望成为领导者,因为我们认为不应该出现一个单独的权威机构。
虽然这次向矿工提出的方案是Bitcoin ABC的提案,但是我们相信将来,其他开发团队的想法也会得到实现,因为我们是作为一个团结的集体共同向前发展。
Jump to: