You've already forked specification
56 lines
2.7 KiB
Markdown
56 lines
2.7 KiB
Markdown
# HF-20201115
|
|
|
|
layout: specification
|
|
title: 2020-NOV-15 Network Upgrade Specification
|
|
date: 2020-08-15
|
|
category: spec
|
|
activation: 1605441600
|
|
version: 0.1
|
|
|
|
## Summary
|
|
|
|
When the median time past [[1]](#references) of the most recent 11 blocks (MTP-11) is greater than or equal to UNIX timestamp 1605441600 (Nov 15th, 2020, 12:00PM UTC),
|
|
Bitcoin Cash will execute an upgrade of the network consensus rules according to this specification.
|
|
Starting from the next block these consensus rules changes will take effect:
|
|
|
|
* Bitcoin Cash's Difficulty Adjustment Algorithm (DAA) is replaced with a new system, referred to as aserti3-2d.
|
|
|
|
The following are not consensus changes, but are recommended policy changes for Bitcoin Cash implementations:
|
|
|
|
* Automatic replay protection for future upgrade.
|
|
|
|
## Difficulty Adjustment Algorithm
|
|
|
|
Bitcoin Cash's Difficulty Adjustment Algorithm (DAA) is replaced with a new algorithm called [ASERT](http://toom.im/files/da-asert.pdf).
|
|
|
|
The specific implementation is called aserti3-2d. Details can be found in the [full specification: ASERT](/protocol/forks/2020-11-15-asert).
|
|
|
|
|
|
## Automatic Replay Protection
|
|
|
|
The purpose of Automatic Replay Protection is to serve as a full node version-deprecation mechanism. It is intended to cause
|
|
full validating nodes which do not upgrade, to automatically separate themselves from the main network after the next
|
|
upgrade on 15 May 2021. Nodes which implement the next upgrade will remove this automatic replay protection, and thus all regular
|
|
wallets can continue using the default ForkID with no change to follow the main upgraded chain.
|
|
|
|
When the median time past [[1]](#references) of the most recent 11 blocks (MTP-11) is less than UNIX timestamp 1621080000 (May 2021 upgrade)
|
|
Bitcoin Cash full nodes MUST enforce the following rule:
|
|
|
|
* `forkid` [[2]](#references) to be equal to 0.
|
|
|
|
When the median time past [[1]](#references) of the most recent 11 blocks (MTP-11) is greater than or equal to UNIX timestamp 1621080000
|
|
(May 2021 upgrade) Bitcoin Cash full nodes implementing the Nov 2020 consensus rules SHOULD enforce the following change:
|
|
|
|
* Update `forkid` [[2]](#references) to be equal to `0xFFXXXX`, where `XXXX` is some arbitrary hex value.
|
|
ForkIDs beginning with 0xFF will be reserved for future protocol upgrades.
|
|
|
|
This particular consensus rule MUST NOT be implemented by Bitcoin Cash wallet software. Wallets that follow the upgrade
|
|
should not have to change anything.
|
|
|
|
## References
|
|
|
|
[1] Median Time Past is described [here](/protocol/blockchain/transaction#median-time-past).
|
|
It is guaranteed by consensus rules to be monotonically increasing.
|
|
|
|
[2] The `forkId` is defined as per the [replay protected sighash](/protocol/forks/replay-protected-sighash) specification.
|