From 9fffc5e973a8e6158ef6a33b11ca795afb1349bd Mon Sep 17 00:00:00 2001 From: Andrew Groot Date: Wed, 19 May 2021 11:57:38 -0400 Subject: [PATCH] Added missing hard forks and ASERT documentation. --- home.md | 13 +- .../difficulty-adjustment-algorithm.md | 81 +++- protocol/forks/2020-05-15-ifp.md | 44 ++ protocol/forks/2020-05-15-op_reversebytes.md | 161 +++++++ .../forks/2020-05-15-sigchecks-plotblocks.png | Bin 0 -> 38878 bytes .../forks/2020-05-15-sigchecks-plotinputs.png | Bin 0 -> 148576 bytes protocol/forks/2020-05-15-sigchecks.md | 167 +++++++ .../forks/2020-11-15-asert-test-vectors.zip | Bin 0 -> 156307 bytes protocol/forks/2020-11-15-asert.md | 428 ++++++++++++++++++ protocol/forks/bip-0009-states.png | Bin 0 -> 30632 bytes protocol/forks/bip-0009.md | 229 ++++++++++ ...05-multiple-op-returns-for-bitcoin-cash.md | 205 +++++++++ ...-05-unconfirmed-transaction-chain-limit.md | 141 ++++++ protocol/forks/hf-20200515.md | 72 +++ protocol/forks/hf-20201115.md | 67 +++ protocol/forks/hf-20210515.md | 22 + 16 files changed, 1613 insertions(+), 17 deletions(-) create mode 100644 protocol/forks/2020-05-15-ifp.md create mode 100644 protocol/forks/2020-05-15-op_reversebytes.md create mode 100644 protocol/forks/2020-05-15-sigchecks-plotblocks.png create mode 100644 protocol/forks/2020-05-15-sigchecks-plotinputs.png create mode 100644 protocol/forks/2020-05-15-sigchecks.md create mode 100644 protocol/forks/2020-11-15-asert-test-vectors.zip create mode 100644 protocol/forks/2020-11-15-asert.md create mode 100644 protocol/forks/bip-0009-states.png create mode 100644 protocol/forks/bip-0009.md create mode 100644 protocol/forks/chips/2021-05-multiple-op-returns-for-bitcoin-cash.md create mode 100644 protocol/forks/chips/2021-05-unconfirmed-transaction-chain-limit.md create mode 100644 protocol/forks/hf-20200515.md create mode 100644 protocol/forks/hf-20201115.md create mode 100644 protocol/forks/hf-20210515.md diff --git a/home.md b/home.md index fe437b8..7fa619d 100644 --- a/home.md +++ b/home.md @@ -31,7 +31,18 @@ [Bitcoin Keys (Public/Private)](/protocol/blockchain/cryptography/keys) — [Signatures (ECDSA/Schnorr)](/protocol/blockchain/cryptography/signatures) — [Multisignature (M-of-N multisig)](/protocol/blockchain/cryptography/multisignature) ### Network upgrades -[Bip-16](/protocol/forks/bip-0016) — [Bip-34](/protocol/forks/bip-0034) — [Bip-37](/protocol/forks/bip-0037) — [Bip-65](/protocol/forks/bip-0065) — [Bip-66](/protocol/forks/bip-0066) — [Bip-68](/protocol/forks/bip-0068) — [Bip-112](/protocol/forks/bip-0112) — [Bip-113](/protocol/forks/bip-0113) — [Bip-133](/protocol/forks/bip-0133) — [Bip-157](/protocol/forks/bip-0157) — [Bip-158](/protocol/forks/bip-0158) — [Bip-159](/protocol/forks/bip-0159) — [BCH-UAHF (BUIP-55)](/protocol/forks/bch-uahf) — [HF-20171113](/protocol/forks/hf-20171113) — [HF-20180515](/protocol/forks/hf-20180515) — [HF-20181115](/protocol/forks/hf-20181115) — [HF-20190515](/protocol/forks/hf-20190515) — [HF-20191115](/protocol/forks/hf-20191115) + +**Pre-BCH:** [Bip-9](/protocol/forks/bip-0009) — [Bip-16](/protocol/forks/bip-0016) — [Bip-34](/protocol/forks/bip-0034) — [Bip-37](/protocol/forks/bip-0037) — [Bip-65](/protocol/forks/bip-0065) — [Bip-66](/protocol/forks/bip-0066) — [Bip-68](/protocol/forks/bip-0068) — [Bip-112](/protocol/forks/bip-0112) — [Bip-113](/protocol/forks/bip-0113) — [Bip-133](/protocol/forks/bip-0133) — [Bip-157](/protocol/forks/bip-0157) — [Bip-158](/protocol/forks/bip-0158) — [Bip-159](/protocol/forks/bip-0159) + +**2017:** [BCH-UAHF (BUIP-55)](/protocol/forks/bch-uahf) — [HF-20171113](/protocol/forks/hf-20171113) + +**2018:** [HF-20180515](/protocol/forks/hf-20180515) — [HF-20181115](/protocol/forks/hf-20181115) + +**2019:** [HF-20190515](/protocol/forks/hf-20190515) — [HF-20191115](/protocol/forks/hf-20191115) + +**2020:** [HF-20200515](/protocol/forks/hf-20200515) — [HF-20201115](/protocol/forks/hf-20201115) + +**2021:** [HF-20210515](/protocol/forks/hf-20210515) ### Network protocol diff --git a/protocol/blockchain/proof-of-work/difficulty-adjustment-algorithm.md b/protocol/blockchain/proof-of-work/difficulty-adjustment-algorithm.md index b76ebc8..403146b 100644 --- a/protocol/blockchain/proof-of-work/difficulty-adjustment-algorithm.md +++ b/protocol/blockchain/proof-of-work/difficulty-adjustment-algorithm.md @@ -1,22 +1,83 @@ # Difficulty Adjustment Algorithm In order to correct for changes in the Bitcoin Cash network's total hashing power (i.e. as hardware improves or nodes are added to or removed from the network), the amount of work required to mine a block must change in tandem. -Bitcoin Cash solves this by adjusting the difficulty according to an algorithm that looks at recent block timestamps, infers the hashing power that led to those timestamps, and adjusts the difficulty for future blocks accordingly. +Bitcoin Cash solves this by adjusting the [target](/protocol/blockchain/proof-of-work#target) according to an algorithm that looks at recent block timestamps, infers the hashing power that led to those timestamps, and attempts to change the [difficulty](/protocol/blockchain/proof-of-work#difficulty) of mining future blocks accordingly. +The calculation used is referred to as the Difficulty Adjustment Algorithm, or DAA, and has changed a number of times. +In order to validate the blockchain, however, the difficulty must be verified using the DAA that was in use when that block was mined. +Consequently, the historical DAAs remain relevant to node implementation that wish to validate historical headers. -The current Bitcoin Cash difficulty adjustment algorithm attempts to ensure that the difficulty of new blocks is always closely tied to recent block difficulties. +The algorithms used, from newest to oldest, are: + + - [ASERT](#asert) + - [CW-144](#cw-144) + - [Emergency DAA](#emergency-daa) + - [Legacy DAA](#legacy-daa) + +## ASERT + +Absolutely Scheduled Exponentially Rising Targets (ASERT), more specifically [aserti3-2d](/protocol/forks/2020-11-15-asert), was implemented as a part of [HF-20201115](/protocol/forks/hf-20201115). +It uses an [exponential moving average](https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average) approach that should theoretically always target a correction toward a 10 minute average block time. +ASERT bases it's calculations on the following components: + + 1. The **fork block**: The first block mined with the ASERT DAA + 2. The **anchor block**: The parent of the fork block + 3. The current head block + +Though this is not used directly in practice, the exponential form of the calculation of the target for the next block is: + +``` +exponent = (time_delta - ideal_block_time * (height_delta + 1)) / halflife +next_target = anchor_target * 2**(exponent) +``` + +where: + +- `anchor_target` is the unsigned 256 bit integer equivalent of the `nBits` value in + the header of the anchor block. +- `time_delta` is the difference, in signed integer seconds, between the + timestamp in the header of the current block and the timestamp in the + parent of the anchor block. +- `ideal_block_time` is a constant: 600 seconds, the targeted + average time between blocks. +- `height_delta` is the difference in block height between the current + block and the anchor block. +- `halflife` is a constant parameter sometimes referred to as + 'tau', with a value of 172800 (seconds) on mainnet. +- `next_target` is the integer value of the target computed for the block + after the current block. + +In order to avoid subtle platform-dependent floating point issues, however, ASERT is instead calculated using fixed-point integer arithmetic with a cubic polynomial approximation of the exponential. +See [ASERT:target computeration](/protocol/forks/2020-11-15-asert#target-computation) for the Python reference implementation and additional details on where new implementations of the algorithm must be cautious to ensure full compatibility. + +## CW-144 + +CW-144 attempts to ensure that the difficulty of new blocks is always closely tied to the amount of work done on recent blocks. +The name referes to the fact that it evaluates the difference in [chainwork](/protocol/blockchain/proof-of-work#chainwork) (CW) across the most recent 144 blocks. Put into place as a part of [HF-20171113](/protocol/forks/hf-20171113), it performs the following calculation to determine the difficulty of a block, Bn+1, with block height `n+1`: - Select Bnew: The block with the median timestamp of the blocks Bn, Bn-1, and Bn-2 - Select Bold: The block with the median timestamp of the blocks Bn-144, Bn-145, and Bn-146. - Calculate `t`, the difference between the timestamps of Bnew and Bold. If this difference is less than `72 * 600`, use `72 * 600`, if it is above `288 * 600`, use `288 * 600`. - - Calculate `W`, the difference in [chainwork](/protocol/blockchain/proof-of-work#chainwork) between Bnew and Bold. + - Calculate `W`, the difference in chainwork between Bnew and Bold. - Calculate `PW`, the projected work for the next block, as `(W * 600) / t`. - Calculate `T`, the target difficulty, as (2256 - PW) / PW. In 256-bit two's-complement arithmetic, this is equivalent to `(-PW) / PW`. - If `T` is greater than the maximum target of `0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF`, use the maximum target. Otherwise, use `T`. In other words, for any given block the projected work is be equal to the difference in chainwork multiplied by an adjustment. The adjustment is 600 seconds (the goal timeframe for a block to be mined) divided by the difference in timestamps between the median block (by timestamp) of its prior three immediate ancestors and its 144th, 145th, and 146th ancestors (bounded by `72 * 600` and `288 * 600`). The projected work is then converted into the target by subtracting it from 2256 and then dividing the result by the projected work. Then minimum of that calculated value and the maximum target is then used as the target for that block. -## Legacy Difficulty Adjustment Algorithm +## Emergency DAA + +As a part of [BCH-UAHF](/protocol/forks/bch-uahf), due to the anticipated decrease in hashing power, the following adjustment to the legacy difficulty adjustment algorithm above was put into place: + +>In case the MTP of the tip of the chain is 12h or more after the MTP 6 block before the tip, the proof of work target is increased by a quarter, or 25%, which corresponds to a difficulty reduction of 20% . +> +> RATIONALE: The hashrate supporting the chain is dependent on market price and hard to predict. In order to make sure the chain remains viable no matter what difficulty needs to adjust down in case of abrupt hashrate drop. + +That is, if the block height is not divisible by 2016, the target may still be adjusted if the current MTP is more than 12 hours after the MTP from 6 blocks prior. In this case, the target is multiplied by 1.25. + +This algorithm was superseded by the current difficulty adjustment algorithm as a part of HF-20171113. + +## Legacy DAA Prior to [BCH-UAHF](/protocol/forks/bch-uahf), the original Bitcoin difficulty adjustment algorithm was used. To determine the difficulty of a block, Bn+1, with block height `n+1`: @@ -30,15 +91,3 @@ To determine the difficulty of a block, Bn+1, with block - If `T` is greater than the maximum target of `0x00000000FFFF0000000000000000000000000000000000000000000000000000`, use the maximum target instead. Otherwise, use `T`. This boils down to a possible change in difficulty every 2016 blocks, where the new target (for the next 2016 blocks) is calculated by dividing the time taken for the last 2015 blocks by the time expectation for 2016 blocks (bounded by 0.25 and 4) and multiplying that ratio by the existing target. - -## Emergency Difficulty Adjustment Algorithm - -As a part of BCH-UAHF, due to the anticipated decrease in hashing power, the following adjustment to the legacy difficulty adjustment algorithm above was put into place: - ->In case the MTP of the tip of the chain is 12h or more after the MTP 6 block before the tip, the proof of work target is increased by a quarter, or 25%, which corresponds to a difficulty reduction of 20% . -> -> RATIONALE: The hashrate supporting the chain is dependent on market price and hard to predict. In order to make sure the chain remains viable no matter what difficulty needs to adjust down in case of abrupt hashrate drop. - -That is, if the block height is not divisible by 2016, the target may still be adjusted if the current MTP is more than 12 hours after the MTP from 6 blocks prior. In this case, the target is multiplied by 1.25. - -This algorithm was superseded by the current difficulty adjustment algorithm as a part of HF-20171113. \ No newline at end of file diff --git a/protocol/forks/2020-05-15-ifp.md b/protocol/forks/2020-05-15-ifp.md new file mode 100644 index 0000000..e51d394 --- /dev/null +++ b/protocol/forks/2020-05-15-ifp.md @@ -0,0 +1,44 @@ +# 2020-05-15 IFP + + layout: specification + title: Infrastructure Funding Plan Specification + category: spec + date: 2020-04-10 + activation: 1589544000 + version: 0.1 + author: Antony Zegers + +## Infrastructure Funding Plan + +The purpose of the Infrastructure Funding Plan (IFP) is to provide funding to development projects working on common Bitcoin Cash infrastructure. If activated, it enforces that 5% of the block reward is spent to one of a set of specified addresses. + +## IFP Destination Addresses + +The IFP contains four destination addresses, each associated with a separate BIP 9 activation `bit` as follows: + +| Name | Destination Address | BIP 9 `bit` | +| ---------------------------- | ------------------------------------------ | ----------- | +| MinerFundDestination | pqv2r67sgz3qumufap3h2uuj0zfmnzuv8vqhqfgddk | 0 | +| MinerABCDestination | qzvz0es48sf8wrqy7kn5j5cugka95ztskcanc9laay | 1 | +| MinerBCHDDestination | qrhea03074073ff3zv9whh0nggxc7k03ssh8jv9mkx | 2 | +| MinerElectronCashDestination | pp8d685l8kecnmtyy52ndvq625arz2qwmu42qeeqek | 3 | + +## Activation + +Activation is triggered separately for each destination address via [BIP 9](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki), with the following parameters: +* `activation threshold` is set to 1344 (which is ~66.6% of the 2016 block retarget periods) +* `starttime` is set to 1573819200 (Nov 15, 2019 12:00:00 UTC) +* `timeout` is set to 1589544000 (May 15, 2020 12:00:00 UTC ** note:** this is the same time as the May 15, 2020 upgrade activation) +* `bit` is set according to the table above. + +## Enforcement + +If activated, the IFP enforcement begins once the 15th May 2020 upgrade is activated. + +If one or more IFP destination addresses are activated, then the coinbase transaction in each block must contain an output sending 5% of the block reward to one of the activated addresses. + +## References + +[1] [BIP 9](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki) + +[2] [Sample implementation](https://reviews.bitcoinabc.org/D5282) \ No newline at end of file diff --git a/protocol/forks/2020-05-15-op_reversebytes.md b/protocol/forks/2020-05-15-op_reversebytes.md new file mode 100644 index 0000000..e9e3399 --- /dev/null +++ b/protocol/forks/2020-05-15-op_reversebytes.md @@ -0,0 +1,161 @@ +# 2020-05-15 OP_REVERSEBYTES + + layout: specification + title: OP_REVERSEBYTES Specification + category: spec + date: 2019-05-29 + activation: 1589544000 + version: 0.2 + author: Tobias Ruck + +## OP_REVERSEBYTES + +OP_REVERSEBYTES reverses the bytes of the top stackitem. + +### Rationale + +Bitcoin's protocol almost exclusively uses little-endian encoding [[8]](#references), and Script provides various tools for using integers encoded in little endian, such as `OP_NUM2BIN` and `OP_BIN2NUM` [[11]](#references). Using covenants [[2]](#references), sophisticated smart contracts can be created, and Script already has a great arsenal of arithmetic operators (opcodes 139 to 165) to enforce e.g. how input and output amounts of transactions have to be related. + +However, many protocols do not use little endian encoding, and it is by no means clear that one is superior to the other. Both AMQP [[12]](#references) and Apache Thrift [[13]](#references), for instance, use big-endian encoding. The Simple Ledger Protocol (SLP) uses big-endian encoding as well [[1]](#references). Bitdb, when using the `hN` elements, returns stack items in a format that can be directly interpreted as base16 big-endian encoded numbers, and to use this feature, it has to be possible to encode values as big-endian. + +Further, now that oracles using OP_CHECKDATASIG are possible, likely used to retrieve numeric data, it would be unnecessarily limiting to assume all oracles will use little-endian encoding. + +Among the mentioned protocols, SLP tokens are likely the most important ones. Various new use cases combining the power of covenants and looping transactions [[5]](#references) emerge, among them: + +* Decentralized exchanges (such as SLP Agora or SLPDEX) [[3, 4, 6]](#references) +* Donation mintable tokens +* DAOs, which charge a fee for services and distribute revenue proportional to shares [[7]](#references) +* Native tokens (not yet possible) + +Note that values can be converted to big-endian encoding if the size of the encoding is both fixed and not too large. Currently, Script only supports 32-bit integers, and they can be encoded in big-endian using OP_SPLIT, OP_SWAP and OP_CAT: + +``` +// initial: // +// convert to little-endian +PUSH 4 // 4 +OP_NUM2BIN // + +// split into individual bytes +PUSH 1 // 1 +OP_SPLIT // +PUSH 1 // 1 +OP_SPLIT // +PUSH 1 // 1 +OP_SPLIT // + +// reverse individual bytes and concat +// results in 4-byte big endian +OP_SWAP // +OP_CAT // +OP_SWAP // +OP_CAT // +OP_SWAP // +OP_CAT // +``` + +However, if with OP_REVERSEBYTES, this becomes trivial: + +``` +// convert to bytes +PUSH 4 // 4 +OP_NUM2BIN // +OP_REVERSEBYTES // +``` + +That's 11 bytes (9 operations and 3 pushdata) saved. + +There are multiple reasons why the second version would be preferable: + +* Covenants and looping scripts usually take the script code of the preimage [[9]](#references) as input, which means every operation counts twice: Once for the stack item containing the script code, and once for the P2SH script stack item [[10]](#references). For a conversion to 8-byte big-endian, this would save 32 bytes per conversion, and if there's, say, three of those conversions in a script, it would already amount to 96 bytes - a non-trivial number of bytes for a transaction. +* The cognitive load of developing scripts using the larger snippet above is increased unnecessarily. Developing scripts, by hand or by using tools such as macros or Spedn, already puts a lot of cognitive load on developers, and errors can be devastating to the community. A prominent example of such a failure is the contentious hard-fork on the Ethereum blockchain that was caused by a bug in The DAO smart contract. +* The first version assumes that Script uses 32-bit numbers, however, once integers with larger width are implemented, the script gets linearly longer (4 bytes/byte) with each additional byte. For 256-bit numbers, it would require a whopping 124 bytes (93 operations and 31 pushdata) to convert to big-endian. As the opcode limit currently is 201, that wouldn't leave much room for other operations. In contrast, ` OP_NUM2BIN OP_REVERSEBYTES` always encodes integers as N-byte big-endian number, with a constant script size independent of N. + +Also, suppose an oracle returns an ordered list of 1-byte items (e.g. indices), however, if the script requires the bytes to be in the reversed order, then OP_REVERSEBYTES would allow to do this trivially. + +### A Note On Signs + +For unsigned integers, the behavior is always the expected one: the number will be encoded as unsigned big-endian integer. However, as integers in Script are encoded rather curiously, signed integers might result in unexpected behavior: + +`-1 4 OP_NUM2BIN OP_REVERSEBYTES -> {0x80, 0x00, 0x00, 0x01}` + +Here, the sign bit is the first bit of the resulting stackitem. Usually, negative numbers are encoded in two's complement, and the number should be `{0xff, 0xff, 0xff, 0xff}`. However, as long as developers are aware of this quite Script specific encoding, there's no issue at hand. + +## OP_REVERSEBYTES Specification + +This specification uses the same syntax for the stack/stackitems as [[11]](#references). + +### Semantics + +`a OP_REVERSEBYTES -> b`. + +OP_REVERSEBYTES fails immediately if the stack is empty. + +Otherwise, the top stack item is removed from the stack, and a byte-reversed version is pushed onto the stack. + +Examples: + +* `{} OP_REVERSEBYTES -> {}` +* `{0x01} OP_REVERSEBYTES -> {0x01}` +* `{0x01, 0x02, 0x03, 0x04} OP_REVERSEBYTES -> {0x04, 0x03, 0x02, 0x01}` + +### Opcode Number + +OP_REVERSEBYTES proposes to use the previously unused opcode with number 188 (0xbc in hex encoding), which comes after the most recently added opcode, `OP_CHECKDATASIGVERIFY`. + +### Name + +The naming of this opcode turned out to become a bit of a bikeshed. In a previous proposal, this opcode has been named `OP_REVERSE`. After that, it has been renamed to `OP_BSWAP`, as that is a more technically accurate term, which is commonly used for reversing the byteorder of integers [[14, 15]](#references). However, after some more consideration, it has been renamed to `OP_ENDIAN_REVERSE` following Boost‘s nomenclature [[16]](#references), then to `OP_REVERSEENDIAN` and finally to `OP_REVERSEBYTES`, which are both more consistent with Script‘s opcode naming system. However, as, “endian” is usually used for numbers which are a power of two—which isn‘t the case for this opcode—`OP_REVERSEBYTES` is the prefered choice here. + +`OP_REVERSEBYTES` is preferable to `OP_BSWAP` because `OP_BSWAP` is lexically very similar to the already existing `OP_SWAP` and would make Script harder to read. Also, while the technical term for the instruction is indeed `bswap`, it isn‘t well known for developers of higher level languages and could thus spark confusion that would be avoided by using the name `OP_REVERSEBYTES`, which is more self-descriptive. + +### Activation + +The opcode will be activated during the 15th May 2020 hardfork. + +### Unit Tests + +The following unit tests are used by the ABC implementation of the opcode as of Feb 17th 2020. +- ` OP_REVERSEBYTES` fails if 15th May 2020 protocol upgrade is not yet activated. +- `OP_REVERSEBYTES` fails if the stack is empty. +- `{} OP_REVERSEBYTES -> {}` +- `{99} OP_REVERSEBYTES -> {99}` +- `{0xde, 0xad} OP_REVERSEBYTES -> {0xad, 0xde}` +- `{0xde, 0xad, 0xa1} OP_REVERSEBYTES -> {0xa1, 0xad, 0xde}` +- `{0xde, 0xad, 0xbe, 0xef} OP_REVERSEBYTES -> {0xef, 0xbe, 0xad, 0xde}` +- `{0x12, 0x34, 0x56} OP_REVERSEBYTES -> {0x56, 0x34, 0x12}` +- for all n ∈ [0; 520]: `{i mod 256 | i < n} OP_REVERSEBYTES -> {(n - i - 1) mod 256 | i < n}` +- for all n ∈ [0; 520]: `{(if (i < (n + 1) / 2) then (i) else (n - i - 1)) % 256) | i < n} OP_DUP OP_REVERSEBYTES OP_EQUAL -> OP_TRUE` + +## References + +[1] SLP Token specification: https://github.com/simpleledger/slp-specifications/blob/master/slp-token-type-1.md + +[2] Spending constraints with OP_CHECKDATASIG: https://honest.cash/pein_sama/spending-constraints-with-op_checkdatasig-172 + +[3] SLP Agora: https://github.com/EyeOfPython/slpagora + +[4] Sample SLPDEX transaction: https://blockchair.com/bitcoin-cash/transaction/2e69f47a985673c5a645e20ad09025a0892321f096224679657f98e6152c845c + +[5] Let's play chess on the BCH Blockchain: https://tobiasruck.com/content/lets-play-chess-on-bch/ + +[6] SLPDEX (discontinued): slpdex.cash + +[7] DAO: https://en.wikipedia.org/wiki/Decentralized_autonomous_organization + +[8] Bitcoin protocol documentation, common structures: https://en.bitcoin.it/wiki/Protocol_documentation#Common_structures + +[9] BIP143: https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki + +[10] BIP16: https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki + +[11] May 2018, reenabled opcodes: https://github.com/EyeOfPython/bitcoincash.org/blob/master/spec/may-2018-reenabled-opcodes.md + +[12] AMQP specification, page 14: http://www.amqp.org/sites/amqp.org/files/amqp.pdf + +[13] Apache Thrift binary protocol: https://github.com/apache/thrift/blob/master/doc/specs/thrift-binary-protocol.md + +[14] https://docs.rs/bswap/1.0.0/bswap/ + +[15] https://www.npmjs.com/package/bswap + +[16] https://www.boost.org/doc/libs/1_63_0/libs/endian/doc/conversion.html#endian_reverse \ No newline at end of file diff --git a/protocol/forks/2020-05-15-sigchecks-plotblocks.png b/protocol/forks/2020-05-15-sigchecks-plotblocks.png new file mode 100644 index 0000000000000000000000000000000000000000..96aff1ccbf042db47f1f5f2daaeabed31180a17d GIT binary patch literal 38878 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
f%_F7Kx@J|n9L^GuB zbbiy;)YH?Z$JhPjum5q_@VLz9wMRcZpI`s)m~{T0kH@4{RaIMCTbtQFpd*cIfOuVr4e{(JK4lf@4hz$=;X|K<@v!ifP%l?b@h9YUrY`k{A-)t^e z^6ekr2BZ|r3SPAaTGP^{z0TszhQpgSZ4#P4;fpW(2WNg;k-8spRWBA6Jn1#RccZhs zao^{2*5!|47qIioy@^FE&8n_r2p8Y$*v!WJ@AdwFuR#H3{>%2vOk?#wAMRE>?tOUT z+1c5L+nMW~=QD#g=^t?fkNKD}-7xwxgCpVF6NY)l>3*dbXV0Bm`)1?udlip+KR-XO zudV%CY~Rcy(a!e^kIQy8x677Ah`3r>TAtiEDtP=Eg)BW=(i z*T28Nm(SZ&`T5zLIde3+_z)W}E+c1J@Wu;Rkgcp`l!?1Br{i85uk^R~_x~@O4I1YG zjR0-`Gv7AhK*NW_-w$!?tMK(no9oHw=;-+TP2@e#&o5!H;FRxi+47i*KJ%~7cWl^T zP;>C(X<_Z|jm56aIWV9lbrz_F;=~Q2c)xl{nVg zN1f_w|J|ofo3<_gzFpU%W4+Sq_p-DVKWe?u%H5N2unD|6s?X+=2U5MM&0KMDk?Yf^ zPw(H0HW>WzyH1|Y^lGta``-|cNf;j?+5MN0QDp9mdD4%#aUPs zK00zG7&MA=ZmxB^HIKB}o1f3;>+9+5`*=)x^XAQqHEw0E-#bk&HVdhiO=YORU4OLX zg+S=~+}qoVpPlinel)`{Ica0WD@|rLo)zyjpY}?dtHlM+)q!o+XwTn|zF7knxq=67 zrylJR6;}5HE$!S@`uf_c(A8(ooO$!+&7M7b4mPv<&ooLs+{SA<$GRTp#*L3SHf}6< z7JO}eynWuC9dfo+CV6*u)cyVS`|bAos?%dW-K%~NZ~8IKuvKgT?X-!`+qty<|G(VZ z+t$YKulxJ!>+Nm1xA)iokIviq^s>KwsVBUE|6Tm8g<+mWVNzLH+0=eVu6zO6{^OfB zZ+^e?xg5%hoig?hH#Q~<-@Uz~@NwPWUvtZDWrAX1f8Adx^Sn744+|e3+ljIYg4Fr` zlJz&4nIhhUR+sPZXSAvL@gYLz+NRXg-|yG&-}SrZ!$J17QCqu?KYl*99Ca8;n|Vj@ za=(uif41GuTm3UnSk0&7XwqD(QuIFl_4V=ga{c--J2pJqtsAq$K&;y|g%hck3Y_tGw0*uO1dU|>) zY~(-_3qP9q?Oq&08XLRvh+*BDH8sy>rr+9@EB!lOu}%1Y{%o_{v@y&>^%)%SOE=Yzog-R18S54ZWwHe0)9%^6j2j{-6hanl(-wf^t{9EY2WHn!_7Ymvn z-JUdY;zLN+d~pk?Z+7Jr1E}CU(8#>H=3QVZmN78@`d`5vx38^@jxRha+Hd>q#^>|) z|C2B}@1S`Z9kJK9w!TiEU;C^OI^@Tl@aFu@Wab^9UP1+EZVldVg!t>*ABMPHB`e{b zP}^VDr@*6!pn;PL8@uv%G5otAmEVo3FXdCf-THocdpoi2*rJoF=%zhk`1fk{dOn*E z2dcilIy>9^JbITnHTCIn`T9G{{pas0ef{s-_WiNDN?tDWogKr#&BJgv8!|X@OZLFW zS4WdJ{@9k1l7gDT6dID_{cSKNu>ZfyMqO&-2s#=`p`jPD0R+|=1&vnr!G;h)^X=eM z5+JiepiMnUDM0W5xLY8>2vP<<*nlG;8SFgpsY~caLy`^nXaJ@g5)aj3yOBUELO{`s zyAujcXj5RDazJa~P+W~_G?DHBcakx^I$_spu>%kT1rLbLU}b~*19VhU1A`ev4(yMu zh2go7o;P^&8OsJdJ@3zFSwDPNK|}W;a&|04tQ9If=`fuy963p$I_KSB`DY_ zOgHey!wsadV9-SY1<~4^dMT?A# z#M7$PoI{ytNAfIe_!P1$n5LuWR25&w&&d~Dk_pP%ek>Odb?rru{E)~ zuR#WhAp1$)79A0Ece!f)xX0Km|K6N$N4mPY5)Zd6wavbi8U&t6sBY$&wvADh{=9=HA-EXm_qTevByw|_Zp@Akeb(L%RiUfll{x4f zt+vPg_Wvfj%Ylx3nfiF?(xr2)%lYgpSFUfZ`~7yibN#m$7n2_!>+O6jZI<)m;$ruX ztD@RrA(q*vrf5Fo?vpTFbSnHbcmsa$a=+Bn)X;NMRwWr0*|)Z2o;<$XceYsH{L*WY z;7kr)zu?C3e$UIx%iHJg0qt!+<*V%0!vQ)!Cw%A19Xl-UlpJIg580Xd|L^zyMJqff zt4W*XtSGvCV`K8+$bQ>z5uZMqW?xH5NpT4b2?&_*OIA!oq-A;E^)-?3MXjI}41Q7D z^J0ITwEp+w@#OySkdPK}kLS;yFSjk+|My$>q7}Kfx1HS2xu@pmrw>=pS-;-{-I^e4 zl;ZK}qvvF`*2lri{d{d#Z`fdP$13xZ3b>uR@3|@@Rm}bVa{2tW`FlVE5kG%`dQ;#f z(zb>lpGCai^V#pwgC{2^A3k{K(4j5qt>H1-@f}8mXbf7v{CHfR-@bDH-?#ab`|UrU zF@E?Xcl+IG-;Qt!tF>64nPI40_+is&J#O~tda<*-@2?{VKS&?# zl`>uRZZ^+;n>(A+{lP8yjoOvF!3FWY? zn%|rm78R#7m$x)8UAi>$yp&~8%8tXJv&fDd{P6F5?C!F)?|#3zwKZGBb#3(ad-GbS zgn4>)!izMs4OPe=uhW2(Z>;;cFGCZpmKL8r! z`7vejG~MWB`wo68y&fxGr}X^X+}Yp0kg)&fD$@QRP+)uTG05} zvU>}s*)hLSy}$q|2tn(5{@({}@0&eadR}ntpO42c-&;Nn+)afRqoDJs>Os?deX`bV z+mq@ZG_tSSeH-Tr1VKLVy_nSMbDl9QEamUwr)$ibSE@;b{v{}xL3(NiIe{crP4CJ2I z1nr*LQD0bCI2E*J=`bi)t|$tgt``eg2h_$Zz3Prh*_#{S6XsU66jms|XliP@lD~Mt z0)?(c6*lv}{Y*qobpPvTo9EkoyODg@|He`A_&sye_kO(={jhiv&RsE<+8?!EOjLGP zlaJq+sHf`FZm984c8vE3C`!Y~b!Y^xe1-XRI1uYdj)PMb=yZql@uh;LN zcrH4B@6@VCPp8Mr`MtTf_xF{R!Q#46CZ(^gyt})*y&1f-MKgMPp0CYSn~Dz)Zf;K3 zkJ<6zob~&ho10QAl**r-nYl8(_QOGT-KZ@bfwom&UMvEGi;Lacnes0#I(j`uLQDc$ zfwLIg?`G)R=G@LF8|1H}uW$eR&F0JZ{==sJk58R8?c1B1#$TtbS+mA-vRdeO-+iA> zX|Ijm?q|EY^!2s%dp<$dc7sRg1P|O#U|=^+J0oFHkdT*`2O2%gdv~Cb`LbR2>@{oF zyji#Voz+b3&1uln82)6;ZU|6FtF(xuhw_x);M<~wl?1pYnbuLrH2 zS&v$wK?e3gsSMK4hI#`uiwiEF@mK!PP3Le;*jo(X4es#z1!~VbQ%HLU+(dxnt&R5X z4B)8~q8oeYEwXL)+aWvOITDh~3_8m*HiGti6KGE^s77t7x-q=Jq4h0%4!pB*=A8Iq z*fw)$9{&wKLX?2NLCs2}7AtZ~>E=s@bqf_i4IB>0Za-)P2NE54T6>^^3ckb{qzP%o z^BFy!2Y1c%L8d}mf@jPp9RW=vVzw}0Ax>QL8fmBav)h@;;Evc0aHhj>4|LCd$$I>r z*Z>dR9&ph1fGZEft((9-GpO^Cq+GiV!5%RXlW2HndJGb+5ecAD8MFkPqJ&fSoZ+8X zR0sp~m&ZGwxY!6iOSzzpY@nx9~S8FtFMU z?g*fyKya@>p#kc6P+&5c9edLy1e)MQo8-%$3Oa!3*O!;qV~TzM|NA@JG+V6hRvVw} zE?eAZxN4@RrV6Y3y}7+T|MRo6pl#CAr<>RO_+Wm&X7jVnpml#~XJ+Kx-Szaz6O)`9 z8=|-8B_HdF++DU768)fq_89KH`@gMZo8$peQPIO~yx!ICHY6U_($ZS>`bON|s-^RS zw&&eFIaxjYd-~KVQ{L?Tes5*^(`V20qPCo1Viq`XY{q-7hVsf~T%fZaK5Q2`@b=bL z>u)!bw;Mwi8lT7AjD9WXE+hD^;F72M*;%I94-d7L-zjuIJxzD9#;Fr0X4qDjy^35N zwiYxNFXB3L=FG)zy|c{o@9nAl?A9wab>>V-*TB_bYs1z?r9zX68-sGgcFdfgras;Me&23e#y{U~=ePfR13$+x=f;J_?)?I*wZqn|D7pqZ%~f2U_|se&b9!#( z#>?u0yS=+tzU2WgGu|yKE>2eSIadVSe0JU&4b5Dj7EdfVHga!m>0G2?Z*Tur_S^0J z{Tf}jw&l+LGyA~l>H7TfKlgk-=WUz%_0`pf*A$)GROIKIWCmG)_K;rL%*D-pc4w?B^{W_Y_=vb#-;H|IhFH|I6mtem-NYYrw#m(*tQf>G3^CpI51N=lQnVdEV9S zB(;w@VeMlF2I*uL15h)toB7AP-S7FnSAMzZe)-$vYU4@TN!azah&X&yJTbtc_r9|ItsQCEk$iZJlN*01cOz0D{yz?C`@S;=LlpVf?d~;{o!1@Oz5(_V!(i zKqr8QgsAZC1GNIR=a=8BT)BKr++M3YRkt#itIF?xKCk-F$Cbg$m(2@}h>*zJ`+Q!t z4r-L2I(6#vd3*aiYj^C}amx4T(W4KSf!68oT5pR_<)daFE6X#N&N8O;O6x6aXShg&Mm)p zb5rW+4=(S{%rp)@|LZ|Bf7F%?!9`VA4qV-7fC#O9`iwRuFD_(62c6e~wMl=%+N9|i zZBkh*ZBlqb`Nzg=F~czV*nvjo;^N}Xn>G~{7qj!p%=i|0CnYsCwft`B^@r{9_tr#i zuKN0_^v#WrcZ$!)Zp(>03$h1vQX;!dfkPPxd;?9rfyQ&d$FMXom_hQ11UC;Tz3tn~ zaBpV;{170}7?=dK?Fd#0YN8@H03bE=nRj2eMSxlg(4j2Q;Y;ALIDrGlB*5(!sPS1B z*Rz9DD`dU_MGmx-1w3j9E?=OdlUc#hB3c*DjbO$cnR!D0J ztR2?40gaZy>RgaB!F$?3z1#<~J3JX~Lk^BFS#JoEgLz?w?b2RWXxj-CNHFI>@*32o za0h@FH-NnjS*G({im(H~tsmG~M_}jcG`xkJJZ`;Bo; zHKeftiVtuaieR`6TjdK?2p%#l>wYH+i6XFD1r9)M69=sh2D4%9+Jy5Q3DGs+wivi= z18SGuyypR0!31qZg5n>v+UUS`xdYZ;PPrxbz{8p`r^k@#24uS{*g4QNbs$gZz%j7* zU>3rI3KY&g4BH@wZ-FdBZm`0vf}~zhniQMi4my7(c?!7O10Gt3TmRs9NY(xMQ;b|Qba}$<&$jO`)GzqE9UR@@q`2_>p5pplNO|DE zIrb0c+tq*1V%%f9SF54du-bv){ik}pBaoA^n0A!0d^q=3&~&ZgvCBt6X++nc;jUFf z`Om%!dN;v-1~s1>816AM-;hY&w|)KeZ}z#Mgw1`1iFw~dhHo=>9g}!$nFu*nYs2%B z_2P=s$!F#X9#Faov0_&^gLHDwbkFV-NXLldLH?)DHa&*NI1(UP78KOSDrRnhwE98G zDtXUrDDTEyrW+E;KDj&zsyX!#pXc-#f{ux{4nOqkCS;{CNXZ$wAF~fL-9QNRJnw~^ zbOs82iO+j^9>``rw$)$q7JTCa*v>Z(8TS;AFTTShV{HD;z{PHX zU4Osb&VPDps+a`Wq8YK5jxk9v{*nFt`~Ls9{dIpex;AazoWJ8?8!NZinYq^A?-ZZs zcd-~WG)iJ4`CAt+%A z9@rY~>FF84aJZd+eNk{_WhG=J=F*ar({!VC48W<>kV%3uraQLs>C{BVJ)cf#uiV}z zYi)MND*c=cHxD?}LC0KOPpbX>t#=XVSkKhd)Ro)yA~q=K^cyB0i%0+mB&ZRzLoEB= zo=Oo{cDag#ThX9Vj14w*-!{*WL{hR1H01Q-C1|fQd}bw9r@_SbDW+d3uek>!&~ zlP2*uzF%$j{C<9q;jtNJ&+q@A`@g^Fk!=I$;0H&QhW+t&Kc7tgaJl}J=JJs8`O|cx z-2zJvFtX=77Gh#x*y`@-*{L9O;J!X+r}2-M_K$mvSMB!SUG{d7#;Mb%g%2<=C^QHj zn8o9YG7?tm{ZFME4=fi~&feK=Jvt~1tqXOo`NI)!x#dW*Doc<=fBZnr8J%r?sv za$&mhp5gtI_YCi!{aII^`)Uh76~N?E`6Th}5DYwO>~r1N$3^y>coeBRD0Ep{#a`MJ6K z|9tYsF#evf&EGGVEiElq&hNXsv-tV;`*pYD%|YJZ(X>th6lhEp=Re-7eh->xoNHaa zE`ERA<72(mUtSpI-Pyq_ZB~(jdCw1Vm-g&#|9-#z|0Qqzv**u)P7#=_=3DjcP37ma z=J_`^98})Cd(D3-*~%vqug*i-pg=dkTpuBf)%{h-5kT3cK9|2&)DXYr_G&z?PV=FG7weYGXy z;-eGF{W9ixcW!OX&bBB&*u)AtOQD@l_SLnuw|AAkZfa^ebm&m-zs}ayR?r@<*Vop* zzP9%ELg)6&{`Px!?6}b?a9{&3=q`%IZoNVO*^~GG{T98mXzB6g)7T1NcbwEi=APuP z=07*eHEt+>=e0I=_qOo$aVwW!SsPvc>B-4;N4J-;mRCLBn{*UZZs~vh*DGZ@%P_eu zdt))k#Zv2zN~X`*Sot~abiw)EP17E}d%W}cywwk#O!Dv5e0y^<)Bg|j*ld5xhb_Wp zxwoc#o8mj$?C%qGdrw=?L8Rq(OV_nBv}OJM`@S9&ui$-(pe12VtlZDe%>^A!(YD{^ z)926E*G4}Nyyg4tDQJ0`^h?lXD=U}BR6d>ha1GYJxy`EkF?L(CufMyI+<*5R!@W-J zt);K89Wnd3WU}8Z)9h=9TDjlvc-#jrJ*G^Y7U*MFc*<8ZRs`uQ(fqP!jzgnpU>Op z-`PeJP@nvX}11RptBpMi7;x#z9=9}WzkYr}(r zg#P`Ku&b$Hh+)`V7kV{p0^*j%Be;*j5eDrqDyH zkAlucyQlc)RPgO>xqsC@l+X6JE?+uLKVEL%r%J^ABhGC+g`#EW!3z#8o-Ui6=e5@~ zFeW^%a_Q;~+-sw^>)C8LE?>VVb%%Pa#{Z&NgokPyF)k?(Jl~hJ~y4)&6!1yt2Ttd5iw# zs0|5@Kja$>laE!b$qEE*_TIEh{af>q>b*<;K26-WwdU4NZBx*3nEy7~aOjKV+~2o% z^@eJ;52n{+g71FrojP@DYHBL4lu5^;7ahud1)^mO{q6snd~EVOUEsf~XORx3BUL^T=|bC%$)hsw1-Jz zRTf&KwfM69lGTw^XKyXesPng9Ab zfdiR;zbv=^`>0!g()*h4cgx#n%hi6lxF!BAY?x}%@o(1PMv%gSOF5 zdpNHIl$V1`#h-3Et>^tOw<&USTI*x;`!&V4)^Ezygxk z(QKY9e&9nrXh+$@{Pti!%cZ-1xAYfVJZNCHiMhY_*Votct6r@HU3Cx`c=6Iw@8@S` z7GDhw2i?-}G5_94{ZF2I<{w!Tx%pDvR?v>9`i{Gb^UL0OwU+ga9$R*^{{Q#-=~FZB=dHw|cSQO8K0bX1P&2zP{W2-tTwmzmNU( zOZExIKI(n_@8|jYWwx)^?SA*kt%OP966m}?q4_%TcWZBL%@((tcJ}bsyI#Mg)|zHt zQ?Xn2>D%pme;Lqi5{Ez+1}yuV)fqo;=f7XCZMWS|w0nDJs@1O-iw_^XQm)42n1Cy|_|t zo~pj*$D{6t(|JIL@7X;*Wproqx&^5_Zoi8@)Nau3e^t&TBjAR=-+VjUpLzUtKN2eD zsQb^G^X;`toi}JU(o@Ff_nXa!4^Gt%UuLWQG5Xg@{q1fH&FKx_S+v8~ojG-?Yf;Ai z+V8$HUw8^~PpbRdzGY;LX$Ebze5n2BA%DGx-Mf{`^Dl2oJw3}LQ|O-Sx1-|mTX??j z(aw;(CI+%kN38q!d>~Wz*X&4V|8QKs zUM8-w@{Hke75VR{+wac;9VTIJZeA1d;&H!yp5(iU;TMe7xE`|CHp#f~VDou9ZudWY zAR}j&H{N6Z^KJWn-svlsEK!jGoqS&2xK8xvmg4YNm%R1Ae%riN33QAWXglt`{kA_J zJUH0A_wSqS4?u3vFYY~>#BcMVA$7;{I8fU!D{eF9yI&>Lt5o)?N2Rj z?c;s2(s{MtZl>FY?OuCi{UTMnw;L8MQreTI0~&PK{Q2`|pa|%Im$$pyKCFETs=l}1 ztJ1D{igYNhzx7*_@Q1s39~{Zn|NnabKkc7CHlMeX-uKDZ{O**hFwkiLU%Rx|6^NFd z6OXSc{BV%{`Uiz*NO6@t5p(r=X7W~0{lWHQdVJkXiyu#?$G4d~fZE)MTQ**7IL!BX z26w`WtcQnMul_w<4)2@Z*-`k({mq7G&{3%s-KYCxt<~i1|Nr^C`uFy?NB*ztmoPlU z{A2EOkViI{fsRv4Jlv*buKMq8)~zj>>kgGmAGjW0UwdnN^!+`R#f#l~7ioab?tEqM z#4B&N=Tx@U4MouUqszs3?sMT7Pv-MYR) zy`JaN+U@sd)m)Cw-z#covdFz(PTD-rN9O*H!sLEA+e4!9`)YO`|7Lw2)bQw>9^VH) z&C|a6`O~LM|ISRj9(NFQ;>gKKs+sw->}snjnij?Ft?CRr0 z6Ww>QSSNz6V_4d6`p0Ww>W=nU$I}JdjZ#ldd38_9_T%d>zu#>3|8(icm&^W#?cGXV zTu}UJyB&IJ;gWs-EIsyc{W>D-586EiyVm9KXYmU6pyQTc$nWFv_gNW_jJ4OcZ#7W03S*P ztvd+5zwFbe)B60|QOB^AX6#+_dUgPK#9Q@V(7pcBXr<@yppDt`K`z zeEQMHA7^G7$M)qv<_b{}~{9eW5Gc%3F_2c$rTwDa&ss}36E3T%N?%xMah4%$} z7iHYokO(?_xv=nKulcY#igQit;<2{T?){|OUw4m2=cwOzUg zbo6ZYs>w$m7p{*JIj|x3{oe2QRHw&W+FAVk*VotPd3QkjUmqXq_5Qn8ZJ#h`#Sv&5 z;=jMY%R%SGTwXSF=FDDcbI?i>i<%!FwDe>AO_PuHG%~Y4d-g0XHTCJUXM8di7bXks zj%IlO1$4#<&Rf@FI`ZFg)%|=r9n@NK>yx>;I(+@Nx3@v7>$SC4hpr9-#T&2roev+6 z%U}O<9JB%9&W=LcsxKLLb`<{o_4WJh{Qcf~JD=?Rey><@-(QApJlXF-4K8i%ur)I* z3Lj}MpL1z#^mfo}Y+71cdiwLHPkH5RDo#z&G|ks}ety1v%83bOZ*Qfhrh*OxoRQpD z`Qu^x_Mhr@UoJR2rn`C5rdwOH%~MWH$j$2&0Nnzs(7=e}#$(Xkv<$>vER1r0 zZ$tjMDVo8HG`beOxLbbz?%DlUL02x-tloXt{PWA@^Uboa>2xi6^ytx($L?~KDI%`! za+OQub+w<)-cbFo;q8U;(7?dL1B~o0fhG5AzyI9H#A3iORlfcY=)fD$ZAAb6{%!|V zz({PoF*oSBs#HTXj;5pb5?Y^UL1elC6HT(OTqyeEpw78@c{PFP=`1zjv6a zB0P8B{(XYVZZ3gWc9*|@|7y12f%wY}jLe6acf8;CyHDEu-OuOq<9C(31hr{XPfdyc z`zl;FdYcdLgV?;2lT@qU?=AmfW>xZ{;OEon{`2kjE?M&A>Gb${R;91j*L_`mWVQV? zz1Ustte}nZM>>TUYh+zp6IpbRnIoa${bGzBI3MeW+V6M8T|sA-t=`iR%lOM5qw@z2ZU^RKN8R_|I={eJKD^C}7rj6dqjOd8mEr9@mWf<}7g#>X?f zU$OiBKI^VUR;91j#O@AbxbAkijhDOsp82dDroUhM*GuhdzyJ4Lx#|7SOQ*+yu2ucE z2eg~R=3$HQA`Q?;?~`;PfddS0d>HcY?Xk25-Ax8MQE2B&P>aL1>Py}4x8dvK_KN97 z{rPd+p6~lg%ZAgZPW}5deZNfkokCDphJ}TJ;`iIz>f5>7b8l@~`ONpjs?gPXJD*J2 zvu97$*H@;wx4zs+?gt$$ed~SY>uYO+m-$$Nc4KeN3SI6u*R5CT?e6#cV1)(fM7x+; z=XSoe@20C;m%Ipwj06qOwEzD;H9T(RJ4fr6OC~SU$hxxPV%a{C&GGx|0!3tt&luj; zX#^dq3Azx{?)RHu$o_B8c5QAkofSp@z4dmgfNx|7T^$zsU0tr`!@)q2(sy?(e^xCG zeX0}|5@Pe~#bWijB|*2h<$?z9b`(CIXImXtez$aG{#ubeU#~@r#}qhTUl%KFk};to zc*W*(R@twvtjwIh$mi=JZvB?`Pg=#}H1zf7n`B-}Y?lSCKmGOfb@}USZ`-8vR{V6F zXPkaczwTpq?YEoD@{qNiL|9{^%{V#j~)RenhdR?~Uf+P4^r3_F( zS3jARmG$ABw}1L?&8yd{db{;H=;pjTckb*eeZ4LF`aALcKaQ?mzi-wLL04{dHH?L~dTQX3gI3_kJG{_W$$#|G)QA zexU1(K8YOvMt=?7@@S@Am)y_hG`m z@AsS8ceDh}W`E`lW`#}Sh-|yS!W|Y3V zlKJz~)2q2>ySuuC_V1hV=GpB0bw#IkmA?Mmgjc7uHMHJ)Xe?`$!-t}UQ#p0ZpI(&yK1tN;IRW&CpQ>3W&X zWq*HteR!06<)+P>m;29;i)GM{-&Zrg_M7Lv|7Oe%DAu2z1Zdt@7l$cRQcYGS82@ z+kfO6%ZIt;_auY<&q(fz++SBaH5xRI(5nCS05kuO)p7zij?cNkz#!J|>Eal2fZQlx0p`Eh6ioZc_&VuCo85#L0GJ1O+@A=iolQv%Vvj&aK#O|pm zEG+!^cKiK%pzF!vH&%Rnw8ft1?yl0+!OPFJipTx9Q+!@GZVzZ{?$^w3TE}`Mh0ndc zy!<@qGCfn~9V=F7?0Fkgar{~3=Vzd89_Q=-72n>LyLr>5UFGlRNga5oZq~KvL-jvv z!2{M?PHAatKR+`QeB;VRyWek&^X}{bl@TW=sa{_058B*$xV-3+r+TR6)1S}h^Pj(y zmXh-4)Aao{k2=*sOEi9deh%7A2rAR&T9s~-JOJ8lEBt@b*2>S%uKb_Y)z$UE_W!H! z{hz{Z6&e_CJY;xxVWG2#E9myJ$^8GGneXR}UwBHrFX!ea)sJGASKj^w8Y+F5yCQsD zOypDl$W1Ap9ZNyUqEuLB+wai03(+AVBJ(&v17DN+w`X71>sq9>aP|jKB_?ygG-u!B z?;jtoX_u?g_)#pDTh{{J{`KPf+ITTW!ggFAQb zJdxvgA1&s3@z2lCt82FEMsM4aaZ%|H^TBU6BAlS|_=lXBZdAzAW#8{r>+g|y@a3|< zzsww)$|BzLU-E8k$+V7_pU3e)qpOWqI_&AS;&YbjcR-_Vnm>Q&ZoeZm&&aoy6*R+e z4SYE_==PK?{SG#A^NrKb@vU9?{eHduA7#H4*CzW}y#yua!otF{>pRxzH5~2_2n!3F zdiwjv+9>o_GzHz3uv3mCsuXeSt9!${Qqr4Ge4o z2mbHB9$#;J$JjD*|F2i8)qH2QsGkbjzEHmIN8+QUvrpds1v(8&rsmbk<(K|NE_Unn zx_eN4+q2C1vb^*C?(D7penn`<-*30KKVNubC&RiGD{hqEuMM6rv3|`OP>bZS_#A`8 zLuGM&-1>VA=1lq~x%LS==-Tm>3+GR+_pJW=>#Jf<@O<{)pxUAUe1YU|<{ewMnC$V} zy^HFaNAZhqvy=jY4&t^c%o zIp=Zt`kGhU{_)rUaIW~Yd{_C4%4ajv4@I8zXKD2<0GI3!h2!SkT@kqWN%KS2b)YLT zdzZ$Ff||;p`yVSR-~N8Te}0XPjc?R)zqxPgW#52ys>{us<*gvrJ$2f&W%quaRG;7S z{KYC8YpHwFLEB10<=Q{k)O3sK3a!t*H;>`p?fd`4@?!T^mEN+}iQcAjC-L5%%7-40 zB44P_uPK_&@}X5cZpJshhsPDV79GiF0v$&1(4(-h@D^xexcs{h51RRx*)bJAKX-R$ z{?}%HI|<98l*`L}gX?#1Eqr`z<^HL&%o+}RbuN1GzW#spEBTG3udjV*`uv0;ZfjPk z#nMy7x2#1#We@071?`$=!KLw^L7S8IUzuPbROh>^?(eVLn++ykf3VDVw$T2h*t_eu zs(bI5v42;6Ad|oW1}2NWAD*0ladGivezkcgJ(u{2cHY12eeasO-Qv{QUS3|Sa+*MA zCVt}wFKFZr3+8W&x0SUldh)p6KF+!OT?qr|Sg}85k4vw|PPh1RH9Wrchv(n7$E8}t zdqJn;KNIrE>(l}rR@m~)-!393Xwt2U&ivoz`+uG-vlDUrvGw8Gi4{s!Z*OgVxZN;$ zW5oWtziK`+Kx;8&YnvZEVetFM@A>TjGk=St`u%FHN&h3&_hcUs zbeGxaeE;e}cKMnkg6=K(59U?ByEzZM=}+sw0+T`mBg==e9A|v)u^!3W^_G4%ACG8sfsWuT=DhOZ;+xPqZe*3~}dn!NQ+LAfBCfm>NoTvKSDZlv6 z+!hA4?EI?RKe#;&6!D#FwbhF$H~5qLGc~!!xhuX%>BQ~%@!>E(fBa6*$!efGNY66L z*ac?3-}`;tJMK28dr$W>@Agox|a zS`%?_0hifww-U6!^NT~p*L)Gz&T`jvk3eJhcdvbabyd4-k^G+r?D;v~pWJ7^abaKw zU7d6_JpS(P^7l{rAD%pSZr!J%JL`oHTwd4&Amm`uL-Z$MU~v zpkp~+?Q^Qg31+tVvnWkRtor%f@(?7;YiG}%zTT@8bV?Jb zoiIVsStwsxPDDf`=ec*{WP3Kvx3XzxXN9UZxcAG=-C<%{zy0L?L%YsyXS|*H`uckQ z{U&iw!`GK5GSvSqZ@l*}bX(@-Wd%>3+yDP*Rxh`T<-^M5^L9Dk552xF7Buwn;n>B_ z*U_6l7zT#k3zl+VVCHy`%ksffeJ-ST7x?tYxxFk^2O1b3s!j~GTbFh{?`&}HogE){ zKA&g(dd=oT?%P1;x1H4Q`D4Yn2b7J!q*X|SuZ`M^d}q@u$<{<30;G@MG*vtNUg2?B&<@dfP|NEpAM1y2 z`&p{~{P_6rgqi)m4EOpuWl@i&{yeF_>t3jS<2s*TU)GcE4Vj`Sa+nT=6hofPuxJfni-1Xi!u)ck=yciyO~o zC$w&lT(xQKe$YnP_=kUVSqct;ruXKm`_9^Oc74H>K=)kZ2I2pKyiz6++w)>84sX!t znx-GW&w2Xeh3#^yeikEh` zUHSgi4-fA7ey=(>{^6ct&^;e5Vzez!-R z_WLc2HGjWeZwDV%{rkM$%KWC#nP2o?v&)uT=-by)tsWK$I<>_AUzuI+{1=zzRtT^8 zu-^Nj=9e>P&Zy6;SoBQz^XJdyCg&Jg3=Vv^Z8-cs6x5wJohBsTTynvYed)fe@~f*t zJHutw^Ir?UKWUP1py9nrLwxnytyj+Lt$U~4B5r*BL-zKA*6;TSKl%*19H(MZ*6;Zb zyg-vym+B_vPGw)Xt3S-k=Jw2A{-RT-P6h3#+)?`L%gcw&6VKUvKC`9%l&|?+k#{q{ zEzSldjJnfb4lwiIS@`_JWzYqT6^>u|SPMY?aeJ$ZzrVhMj&lDL_jI;dF4udvYr9Hc zZ`r#4H1m#K)7Pu3*scGu|Nrm(*?bRJxy9bRIIf^7o+jc78reU4|ID7s&qC|F?(Ynp z_9OMv6ZI|G(|(vwnfpUx$p)W8=?d3Z1~1>$AH@BCkI=LyX7Vfy;PIXMhnxND{ydgn zzW1y7{-3@-xIjaec5z{0Wp@gXtJa-2u8fZVxj(;L#`WS1!{k-JkIB{jc(`8p!2G&j zFN6JUr*3o0+xPQX!E?~U8?*C~>2pQzxmV3j6t?4ER{Hu{{BzDre6m(oCM@e@$h)+} zbE>)A@8kCWF0Ke%{GsXmE4weMQz{=>uX!i=;|O;r=z7U5d&pkk%zS(MpFh;+ z*9a*Y&~k>l+w&amxRx9tZ7efBAS$s`n>lr<@>$r_SvBI;OA|>gDw$1IY||C2JzbM_o~hq9#2V0;gPfX@tUO| z<9F@1o6kX&GU)E3Q`+lw;`UVh`tlMqF!es;?zY_9Ph?iDs}wpP_V?HI{c(FLKHdf` z{kxsN|NFh_mG=){Ss5%`IqlcN-M2OWwB_F3mV5bIS%rXA>8mR%0v8|amF}0d-nIh- zK=;lptXr&6^=9MoRlgr~E-zaQT2;7O?7O@C?S4kaGKh17nyK|k75{!dKddP!DY^g8Q+?2ke|UUt z>A@z};AK8PZ=SCUdn(G9xgT_xtNx#C(D7KHBk_OTZ8K-czqF*2pOFnz_(fHuUwQlI zz$8#FMg}yISQ=k&b5m-ky6EJ&rPm^_=Dt4s&vfGPOb{pDzG3y{Wxlgjy{F}ze^z&Q zS83<+TS7tei&w8%b7xOwafOyn*CNnWY|q#EJ$k!x(tJbjS^>}vo*$k$pM3PO;?w%6 z%c3@?`L5{G=mISdlX~~_^ZfrdUmd;obLb-MQz0Z@zo z`~CX*inEoQ&YU?@{eJKF9^-Q!zn9(bR4x1S@%Z%*b3qf`<@@ItI$az-9?aeJ8+6oT0^M5b51GgH#u@zL< zFMkrh%IEcEe|uTetdQk?b3yA4_f&qa`}?a^+~E3#wd>ccS+imVXqlFu?bj=y#uDgy zr{Lv&-D0{`-~au;wR?Yf*>8)!$J5vEl+aENGTX1TMAiGuq)A4FK7MN={LI4m!lq1C zm2OpD@`HU&!7gS~H5a9_MJDQ#nKuR59{mQ z=HJ7^!w(-meD&(pi)Vf&G4#18g{=;)I(YBiz2*D?v9WivTi49vKlJkD%9}ZQnwo;H zhW7URSFhHd=yd#2@ynGfS5BWkJ%7)emoGD`s-o6kPft&GSJ!>azv%d5!`Wv=MMb$< zozx~jefG@E#Ds^Jcjw)A&!0}u%g?`l?V665cWv!nx5a|4fqK)!!@|CO|Nj2X8x=dF ziwt{q?v&(e6%!ZdWor&vdFITSH7i#ZTFw2)-8|pg#%4>@+NiZ=*4EK#lQpM$&Gj=k zFxaqbm(=E4mM4`W8XXccGf$=%y)4-^XO7HFAGPVHuV$4-N6$X}bk~j@9rdSghj*QS z{`&3P(A8HLX=Itqnm2FW-@kuP+~-{p|0Y$mw4lJi%4*g1*W6rOE`cE$BB`mVckkXk zefspr?nRR$Gyi}1uwlc73l}dc)&{t_xdjFWR#)#n{j_SW|BttC-#&Sg5*$3)YpIvF z_vH+e-rnBiXa)$+|+FQ>IVn zZb~qkDbXbnwA66%#S;MxV8cplYjw~5%gxU>mU?exZQY%p|Cw`PfXC{q$3#~C6MFsn z_4{?gY7F(_7qecizsmD}D^p{`mkU4IXW26|FiJ3Zl%(^uC)d>cS$x-}UVY`xJU6#v zXV3ah+Fi8!Zj-`_kX65b|JMK0=C(LcOZe}XFD?xK^#0V<|2dXm5D^`%J+;B>U(N4C z9kFf&4#Utd3=IrC3=W&*es;WO?_HY`oE*O!u!@!8N|26o7S z>n@w7OcB`{m1{KfU;AXgAclXRpZj}ycAib+W^1;8@V+fxv|(@D`n!44xiXe7U!IqlY&Qb~0|#jSl7T@0G=s?ijsOPGR3;lp4aoN( zno$BoIxt`nB*8SO6+bfnG1VoBcPO8$NM>MQP%UwdC`m~yNwrEYN=+F|@EUHM24_*ETS)GBDU+-)xPdAvZrIGp!Q0hJ#7g?F^$`m6@{7{-EgG!Xf_(4k>gTe~ HDWM4fXQ^_* literal 0 HcmV?d00001 diff --git a/protocol/forks/2020-05-15-sigchecks-plotinputs.png b/protocol/forks/2020-05-15-sigchecks-plotinputs.png new file mode 100644 index 0000000000000000000000000000000000000000..0417e1e00ab0013d12c1c2842e160695f4ce964c GIT binary patch literal 148576 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

X7vP?WR}LXvx{nfzxlkr z@}{!1$v+G0@}0L@IyW8PFFZ@5`j7R(&P~U63UAY%QLP>3!131c{=V8?$LUk1NXS2Y zD0L{$MGzGIYwWkjZH#Hm=1BEiyzJuH`)BPgH-q;S%`7nE+@Q@t>&L) z?yZ#dy(__M_|iY8Wt;Y=tDAU#t|)WbY|G-QoggV zZ`%XC#h;&@Jsj)CSWr;5B~IKd{r>7(96nf-9O83rN>zX3a=S<{*QukF zgOOp{Mf(-?iPexZvbvP!&(FJ;mF=-ycr@$yY~iRiWighC=}#FIw+QE6|95wP{r}tgtgYd3 zl}BMkn(F%f|8`BD9K1em@2&aPCBMJrKK|`9*J|r#{n@8__RAV3v9t&_`jfPx~Qn?<)#$giH*}3!Q+U@s>ii(N~3wK^lth}{tvs?O^85jS3+_Ps7v`#eN|I>H5a-#r~0&|<3 zY}DPDUYRHE2fj9}58l7+YuL8j#YejZ&8iQ9YNp-(o{fAl;DLwTVrTSTe4R4E!PC=B z+;W?r#-bA&OPvH=`xXk9Me_(aUHtJ>zy9Yb?e%A7nQCijyg1a#Eh#DK>FN1aeA)l& z`~O|Nb?euW)nfW_Ie*?t=kE~|5-R%n>FIL0$rLd zch`KdtN8H1Z~9tu37*Ht``>?26;|_kk@fZGs#UA@|9zV;8~^D_u>V`Z$GZeL6d7uS zW{K`n&Sfu}@N{Bq{kgF1Vw#|Z5PUKVE-v<5?|!3aXG!Oty>IPQS*<3__SO}+$_U&pzeI2ihC1pXcT+x~rG^BDma(010^?7h18 zYTn;-FW(lfk#SwG68q1G zwKsMz+j&gv{hF})^yXvoTcs*DFI>`cue!ghdm>BntJfzlPhJd%3u(?xu^gmoJ+H9p$*^up}_4AHyJAKM3KK;-+@gFzyip%yLIA1n<^JmsNvs-g!vP(fsWPolT zc+#HVkzeV&Q}^D^EmK0YqIQ3~7`a$aZ%euUr!)s==CAL3B_%z;yP;&gI5~TKOq7}? zP2RZ!wCv{86R`!`ZfH!7Zs^(<_?h1jJe@OvLA*=9X4)Ugq6w0j-!G>fJ-g|sb$IyX z+0sv+2-H?j4?M$bbkIVz^c!fW=s}0%&h z8p|yt9;3UrOD5&m@8kFM*9re$wW*Em)2BsWN?6WF%msDK*2GCmbR?u~PTxFRaew9H zMT>q!8O0r8+z<;Q4YoK6vM0PuYy~ei_)~5S+L6Y{-F3SAOxGFDz{xK4x37hL`nb?I zUBJNm)TtLwJf-aBI5`QhRZr7f$}26AyL(kvpZxQ4ko7kr*%D`R1EwTK6goi0D_G7v zeEg$-V)GdZVKcSuR^fNPUwN7FqoAwTb(cm~El*45#9E{ThW^dMJY4n@F>_!ttitUc4*^VvbjWRRf%e~Ol*cliO zo||aM2JJp@@pIrSTC`(b#fyszAMJZC9)IE1){bem(c32lbxJyYQ&GJL+Jb6yt0wpD zy$}8^NS`c|yc;z~9U!CE4&b|$n&&qg;CJ1kSoVNU~zwk%i?fJ`F zxhHCacAI|5xV2Y0+urEeBiB#gmOV>zn|(b?)9RO@=)*f~zVa&1%`$!|SZ;R|X4j01 zg{-<+_tEan-9_1se47^TS$IeNhWin79*zYogC%2CS#M38%DlNi(|KwO?<}Jb&l?H-&Z1jk?)zk5RH9NeLAZO8*jz0e)oZ(5!JAf& zi!NJ(*zSJvwDQz0E$y4V3hM3G*8E&oK79gjnSBE1&4lmF(~YAA5PEH zu68miyzcQc;Bw4m^$qajd*AE3 zpk+5F+n(fX&<1T_D|^*qwn7^`f^tBg*_q8Qr?x{T<#1Q9_M>-4IzNR$cECe6n=yGB zEY5xC-r5wlHp!fCZeLQeroo5Z_x8SZcLL3s-2U%zg3a10@wYtZ%>;M#EsoHj^jn#| zQW`uk)5hl8d|Z(~a2b34U8VB!Rcl>W^l0j;PVMUIn!sXg5%t5+bZSzP)l0A&K}&<+ zZd`N?n)IeDkaoNu^Ow!?L>upObD906cYb}>)KLi!_wn4geAlcycQn-5JvX#WZv=hvM_2ku!*a+K`CoGHx@A%h_id4FUnjfilW$hmiLkXaHiG6XF=_XQ znbi#4tHeqSt-pMCS=vpGV0W3!HbSX!|=WcL+l;771fPA zR3!i#l-Z;rs{ST!n#z-wyX<RXbbarDkZ)92@-FXAU0FAC z9)+8mi&WRfc1zqS{-EGH+bv1wK@uw)v#R>#PT^%)LZJ0EYMzHUeLH8>t8dAN88<`L z{CC<>-zN&pERLY9u`4pS++cftc5&=(0hQ`)xr|xd224v{^It<)qd+Y{dl@M?Bc7d9usZb`7Tb;Y_a!x zHpj-ZnQda&=_(n}I@2AhSx1%&&syzv$75rd`dNn(faosebylY?<1%#~Hbxb*4UB0=g=SolY<5a8}=<6LD|O zg+~c%S3~o)`20D4o?P1NeZrAVMO>x6=#%hiP@Sf!sTTk~Ed#Mt{?(28v(C%?0)2Wy zt&a2yM=f@av0P|6@zdj$FgMt|euF-Aufqh!zs6qwoMC2RgatSyc&{b}^|WwWN{HxZEuUaq2|9!-Wx$p(!EP2S%um>E_ZOTi|ZQYa|ymcT>_;?mJ z7J4D?b1&g*Q{pK3rjvVLZy#tGPwqlnpE(!AF5bM)nJY4P=0nKBkGy|hxi>d>%ljw8S$AT7z0!{61g+*NJCvNRz9lx} zTZz-`wlqH%NDV5!ZFwF)Xzy~6I%HMy=D46RH!ab-d%HhKT)yG4xBBwc)!=5<-v4$- zkA5_qwaaSu8Qxp>Idj)ql@&WhA5WE6-{Ksj#tvEgUa_z~;J=#gI=RUJ;d9I{N;#&%y;SXv>a;`1FZ@}^xANKa_)F8{l?=YIuw9y>xxw+>6t)G%u;V@#})|fnbA!x@GT< zOc4=xalN=A(8kx(QfuYPCvSay|LE+ve8(qx`=x7Zdv=#)mvqQWZwYGuvC%QR>FFu9 z-5g@zG+>~nXrB0Y=hqXCm)2PBR#UQGbbPt2ozG2bj6)Lo^o;_ z;m6N5@UU@lF7%zf6OQjZPdSB4%h_3@%z-Jh8b1wD zk~Z3Ic0=(=wRIUJL#9cvfEpuD6f(EP-I6L%Uh(_+94l8lyBU*`&aaIIZ&SlISwcHhayG<1fTSMP&wgi4Yn*oAyOjF=>fZY?f0xZxhwPraqM&tb%G8Ol zjj$#G@9#~Sckc2Gmc~PeG<16IuiIN4IjM{Hn}&DL#)I#Yr%&LmlePx;1rlzwfaZ^V zcbcj`5T5I}+-k+87rSkQzr2eD<#yzwFMj^GFw=MrueP!?)31w=#XEs&nc$VtmeMAA z){T%gt6?$v`|UvcqbKOK=gZtH%Zv`+ud9E2iikL5f9}pEm5BPrMc{4q(>5oDh6V;q zF!{20vG6<4+UPe|IKRK24qD0M1YXlKhc^kl0lY!=bnvwKJFD3&Jw%!l3O<)-Uo$KJ zb^BISQTg&UI!}&BJf3ppeF8=fD&)-GGW6tul(u2t)V8|A+zt6h9}*rUl-JN(it(?7hgpZVU}6*@`l zYN3}`mvFZ1a;v3g8?QYLS$;(=2i*N*kT#olUjnqN+GC1vrMgwDz6*3KKIg{m2Y-If zeC`L`itqHVEi~F&+RWoq%IQ8cjX?D`6^~Yn%-wKVIDTmuw7bQ7uYGTH>Dm*Hi@w<2 z`R;hRxlhQb(ukE!N$y+CPu1F=s<7?&ckX&cE?>OC!1LQX+5BwHqqB?4_AFmvl7H^z z$qh>@E?=KAr5ZY$dEnj@^C|s2vYj$2r*1CV{MrA^`;2C8u?u~&9qqQ(<(HaR|9Eyh z7L@c{>^5=UVeX~+F$;EBy!`qumN%lv@5ajp)#oj-yb(>MrTIs>z+sq>UlxC}_RF)t zCklaVZ9F<_^=ls;yt+E`s#eP3d57CGKc(DIsJ@aVWii1->YrO!z=yk1UxZ%W-7UYW zWzL4#3%yQo?v`J51Q za$Nc4-89}#XZ0-!9x_%7Q=KO{#U_Gt;DL1}*|UGMes$&xQrWMz|L@+!^>Ih1h=||W zd-~&)DawJt&UtxL=AM1}VAd=Roi`i3*?+#jyH=7X+%Mx}!j2-RY_`L-&^GdJp_#%v zK|8J$T$j1{?~JRv`{Vx2n@^s#X=;9hZUIK@=0ElH0S}v(&k|wvC0BMw+w=I%xo`@! z%I6w?^LuFbqAWG$$c{z3l%6Q)-n;Yn*?IGSe}1ptcRxFLy?Ocm%sG>^w4DulR<4De z$dL&?9He&E^^d730U=YSRF!XJJ8*~7Rg$4tT_l@92HJDmAaB*YuG}I2iGpQS?yIL; z?wtJbxtn({Xy>7eR!?Tm61&~(8dn5wLs(v>P$3&1 zDk^KQH}l?IyQ&0s^(}|h-aKgecF}JhwEJ_TQ&oNXl6(HHe3uqEUjA@>{hhgUTFewn zij=lW9o&!z+Az#zxIx`u!ZM$SH`qWUURyp~a{T@M-8Y-Y3(F3rZTIw;%{ANB-{Na00J?i!M z-rgsVKAm9u{?65ahl6X8=j4RuH=dq~@$r{3EaZ~>_*&b&7ni4RDUvuWs6Qr zuRf}40UdNn;NNHSITf^LdxDs<`TJLUUn~f8I(5op?Xf!w(%_PyZ}}3LHgFp!E9Xf? z$JVWjVy!Y>-<$i^=&6#H%;BYct|1m}-m*mj(8!hh!uMjW@rwz~EgT$|{v~bnT6|fF zD@;PwMyIEyX2n*~N&_|R?mKr^ZkzTvN>gvy42et~zJu4;TtzI~%s}%NTOIjekum4d zu16aMlP5N}bo4H*_xX0eE>nF`g6r+fU0kfSe@#EZP5?SrzShF}@|&ANFYZ=ua11Qz z+sO->pShv%8k$$l(r+)#ooG4ngrn9ROK0X9p7*i^xfi!8@TyIjYWwO#p|ZRmUpuH7 zo}#;8p0SPm3B>A2*wK zzr!SAVOa3*Qo9XT*qxyxElY#7XPbY%z58=ov)F3caI=h!w?3vdzk&H}+Nx!%5|6hj zvU^T|Ztba%`IK?NL_r|z&JIT|)-;ZrkYfm+avgV0F?G&xR6e(yH%g&G=GFq%rsKmB>A zlj=|2{5iq){QUDR<DS%GO zGP$lGtY%_5al3i!KA)DQb~6@1&hpZ2)h}{#)-;)7mcQ-woduD;mjBH%7QHFVYgRiY z_unkzJ1ioWI9`4r{H9sPV)?qhJ9l3`^Ho|j<uE+?Tg27V`}O}q5x=a$L;Rl|AMtO}cigm=EXyEL`=ZpZwV zoDI?+Cr{(OwGo!$O~T_EF>2p5Ng(3yU*}UyuWYSJl?WZ^^-s=Kn$#+s?6XcQD&2Q_b&5KkbiPO_n79& zj*jEz;XJeM?cNSu&LWZvTifzB2%7rBjyyk> zZ?T`z@g)1wcy#Ie!8FUV2*Q}P5H|J-WemN@M(WojE{bS?KnTHPV+)=V&^}W5d z*WW!?x0QZ#1+?Qa*YCyi?>G89&avgj!wiLO6aSI&G3nN}w;SEv+I!EfJ?CmvcI20 z`Ih>Ils7&F29T}4D}%pG-|vy~@c0>@uCAgR!M_VmY4}MV)m#iVz#_V&Eb^4mlLLyo z%P-Hd^!GY(=h}ErGv*ht{*`Lqk!RtPnXP;u= zP-K{tn0M$-cIx#B%=s-X7g{(|3~at71jb(6kbGF6&(^ZI4P5?s8bBK%Zd}Q^;K3`u zvL{a&H@sn)Huu0LVUTl71XvFKov^#X_@RZeUSAvU>lCl7v^Qt8Rl_fB>)XY^(7@p7 z;utca|L%^eseAUUSjgyU@a$bIsEHIK^?%i+mBAwN?;mh?fY(~|w}Ow^%A625&G7vZ zn{ePVl!Xq!cbpIUda2m;`2=S7u6d4otIO?Fw<;7KoVhz)U}7zJ zlizRCcQOsoo=PXr_Fc2Ct$)6y+dz8x0PG`-kz5)zKb>pFeRwYW1Po!utCP+;kVqP;>E9Co%?m>S=Rf*_c~74g@jC4 ztt~2|z~#sPX5$)tpyIDcjLppYpgZgXaPKYVEO?VZ^6 z2avTBQ-z~qm&L9KaPKWeck%sw_97Y>;M10Kh^8$sj1q%{Zpn) zsi>%sm}_8XC+F1B@6T{%segieZ(Os?jO00!PMvx4iSzZjwcMw%e<%Ws%zSI^Xz@z z=~cI+_Re$bUv|Pn<>0(l?#$zSFL}b3FTQa@eRh;wRe4}ZAG^AU>vPb$b=8L-N>z&$ zzkK}~sx|fBzkhe_-#$3l%+;E7pn);BKj-Eq*M$LpUWM;(5_lvm!m#;9Y322e(Z?q+ zM{kLeGU@P}_vW4D?cnX~ar`b}X08HACoP1nophx`Klarg{q)2x0~sTEk6WU59ri1 z)k>K}Evh9_0e)#aNt^4BZEBIEGu*p8!q}eTg8FTV$wVMgDcb`8Dp=dMoX7hXD(f`L_?%2eO~3Vw-d9kuhSIilK=C7UBIcP zk14@wtM1n3ejYbI9zm8_c5|z&^jp3yeSf<+mH*Ku&DYm1ZlC^~c^V7r#U-ATHXS?$ zJ{4rv`g?cXKBd*GZ<)B~=1tDr5Qe^}a3k?U@qb^1do3;c_U7hY``l}5BDq>0ZM`0s zUG1_q?D3R94n>A%LIt*xvKUx+B3NyPSFe&;X3+#-}k*6 zHt4-q7MGHG_2|)}5Uu6Dv#))7(8en*!gX~2zpwfnigvz?26Mmn@BP2vC1X*-(O+M; z~nI5I7CU)9t_i+{el`&J?6TcMLR$81@% z#P;TQ6`&-fqoq~#Zs+r!?6drmMk-obtClQrS$_Ft$*xJ0CY?BO;$Sno_EfJ{r;mR= zpBEPu-MaTfe*N#+K`Uc+m1wpI$gg0S;jww!&iDZPCkMK0t6wbcubMZ>h=a|%e!E(( zu+V0~!a~q7F$I-s>`70by7u-?lKS%Z_uW{l6HCgs!`Ca!&I7Gi;0p`?6yI)OX!w!c z{zqeB>_I=nIPDwTp0Nl%efo6o_j}dv_kNFab7N}}n7@)?hKCDew?DIRpWM=qk9}uN z>N?XIQ=4Wgv{?|myF6(2q)E!qV;OEp7*;4H6nQZ{EC!`P{j4%xpX-PM<#9&fX%xpe-qFxNXNe3CkPve^gZc zubsSX35(+k*$cbZE#+Hyv*}C8tGlzM3MR*16A_*0<(is0NovbM2T#wEM=b7pttUq} z+)7&PlgFs_%WdWzrYniBPARrr@bL6J`S5W2be%|}(pOhj1~1o(+@xY)uwls(miaOQ zP7G_@q3cS17r%oXP@!gPscHXm^ON%evvhYr_KHe*8Z2AX1nRI(xwT_`{PGhXeO2Y4 zWe>YELF5h)Y2_AcIRQLeuZ$${_N-}J5!Eu+_K{yVy}O}+Bih;ib|)yn+*yDEh}4ZvlyrmAb!V=?eS zU5(T4&7HjNE_fY87+;&PbV{Q} zdxbe=#6%yudGlwdyU&up+@Oni8GO%5uW&ft|M}AH;u~9|p=%`yGnzN8TU~wd;3grb#f)|z zJ36=2gG}dWIC*!*gSr#3FA5z?6xd+f$?mP*q_z2&Ymal4(jxG|JA#cW7C)S_1at4} zoy`|nv?%Ac{Oo(Xi*Ik84LY&p!kUML+0CE8i{4MVbNJVKA9wd*nXfJ2#Bk2IT=b_UHdE%~N%^l0J5 z-NpB|&bIS7mwVxeV^LnS(c0D3r>8w!W&~=~JzZn9S8J&OtK|);=Eh?^3oit0j*kck z2Ca)=5}By#o$)&C$N@Qf`&ri0RVvF4&9xR0Jm~sfuXEj9@EIo6GOJW_0{Wocjx~!w zXA(HJ%j9$^T0H=Dd<55v)< z^K!p_Bp+hke5SK^>BGaG>PPbzl~{FkCSFh~e{)y$`qpw)X>g|_pvX*P{jOcl-@jkr zBq1tlTJJ@V|o+JdDHqKb{(q~tZQJ(u@%-9vk-u5h_kG{{o|TR5kujSSN5f7~w;8mYW!q!$UN!FJ zOIFQV^^5(hd)p!bdH=(0p2c2Xao{s_u3S(!dr@2@AVMO3?{1`JB9k^d?z}SfOl!fv zKR>xzlU`g{_*Q;T-QQh7D^2uFKVI_Im;C?uX8QcS)!+5(G8I}FX86IjAHB6G>p9l9 zwZ`k!<|pUdt6Njp-#2ZE z`_d&B{{8KL+aa>`+KM3X9@>?1e4XGX$Nzut|4;FHI?uNHmc2#ktB}Q9Qs+hX*8Kc* zT7UnV5G`^2xE_9K4n>A#pU+;+Z^~m)WS0gX#xW@@`{C)=QLn1lza0BD;o9Vhicd8) zB?CiTv_z*)^D6#QWqb5^aF9^BaJJCgNv|q4EfraAWo>&is4IBxrS+gnd41hi?WIAL z&(6&J#=q~^tJPjhKYc!LpI@DFb5kl;>!Y>X?;U#1+akblS+XQ0Al6&9Xano>^TGS; z!hAhzE1!AC+{?7xp6^}h<>dw~4?W7*_2Sd)(=YAI{{C6n-hQQ3Vzu<0{qd8wAA4D0 zJ?)$Dyh}w+k)W{ua5H^=sMgf$>*MpQRrK}!7Y1ldJ=N3GvyI(e=f~g{)W5`rhJ(>(5&HH?>9jg;+ zUM4Ize?H|!uCDdH;E=BETi=+}Xx`Hc)hjK{Kh9^#{qXz#|9{ofIQV5O76fR-)qFhq z&Hwa?69F0`{`Fm#eq!Qm_p^^96T^a)77O>h z@_OcEk#vNk)#>B({ePCOT-n+2>GS8_;L*C+b|SkJ#;hIEIFX z{$AcIYaO;Qphv=xN#0(-iNOc7Uw#?)>k{a#!AU<#S(@ELqj8wKlHXL)Urr z(u2(}Rl;5;^eSA~lKJGl{?l3w?Zp=Y?(Ht~{PJ!Yx6paNjIa|n)(d4`dp)}@Aarq# zWpR%-@3ytJJBpv5`{tjKnOXVqsQ6T`r~m%`aFcZ6Xz=vunG+EZ+#qx05NN}26Gy&i zf$f9WSJn%zOqJjPpK+kf`AsLz=k_+wO7{#iOL;3%h*HgO@LVK5Um)E4L8-e`2EY{y$Ik>%Xp!cdP@Yr>1)gzVm!=;Y(V0 z_0j~zDKj+M&U3JZ*I!S|H4fU!;J852_{9T9m4ow2UuPWU>J*<0+9EUQ<*l7>?}8?i zL91XYi=BR6o9YanUQ$p>e>X3(FpITFfVH{N?#~1#=cAR|FRZ!n_4zgB(9=Jj2>*Je zedNGA+v<#SGLyc|(!9QIc|!KIf=_V7#bzP;r-+ic^@yGMf* zp6%To!FA*sr)$r|wZc{ou_xm>rg|;ybXpOj^)Zu0k!3;kCGX46=g;VuS(AQQ?bjP) z!}}M0ZzwM;>*h=9~5Tai;el2cw=|Bw*8tp z0bf9iW|FUnwoK^IFgF)B25mR@d071QxphkapMD*6%ve&I(>VmDlT4Bq}19}_FnAs+*;=v&>bEdBInrq z|NZS<FWAmm> zyDI&XlOL}LTr9$MR62i8W4|hgBE#K+=LhGmycj&OITh&)>dw#SAPbS54y6@>i&)#d zgNJ89Pg!}id*Rifk}s2GH`i8`N3ZU?TU8znU2L;LTl$EqvtrF!SvSR+uUEt4UpIla zbR0eEx-vv->ZzsP(;rRdbmDL@Ut_)foy$GWCkc{SU(3xh{sgW*TKW8Y|K9kR@Sc{l zKe8V4?c8~>ncbtwaOzahILW>*-=F;XdCoe@gHMJ1lTPcdNeczEbRNCkem^fK=SaJ7 zi$Fu(3*j5?i?1uNpZ4%mYjye~c?hyhSzx{8|3j0#TwzthL&upjFWsN~=a2hzzDFh= zbJ#jBXD^KmHxfCt@vXr*fnUFV^}X#We0fS3 z69fC4jhaIopUp-oi{s8Y-YW)-~aty_ha>bJ>`<3uU{R!^C~7{ zSLE8=KFgM<^o4mhvt2wn`OXaEC ze}4rA2^|7mUDP94@?n8a*|HTKPR?)d?%w?Nmg}3lH*YP7NHp5+cx9?bpv5!+uBHjo zr%#^-2Gggvzh+ZxVVH4ZVRk!Tnv4ry+Qmywe}7&4`FUH_|C@!IFTY!^`21aF^zVx| zBe%RZYdl)>iL>_WRGn{2HcmWr$Ybrc?DyxKuj_feKiA9~C9kP&*0D=SnZ;f3(2gBD z>i+(+{eGwTRGH29JH>y0eeLehg!N?>|U>n7t7w>t$ck;_ubvf&5oxZJ-xsd7=8^@RbEIi`1AYzf3sB& zg8gl;u8-e8RXhCMy}h^3pU;1KYU3mT)4}H41HTuHt z&za57+Rm)yU9@h^3Q#k!Pu99;-}9$WOaK4-+vmTd{(s$kyV{=fH+L4R+ig*3VJLah z{DJ?S{hodqpXn2NrE_<8PF)^$?C!yv|7<^;H8-g?dwWy)->v=wI^eUTJeN;Cdd|c= zxMGLubiSxNCqCWTI{WJG&pFM@+|TahU9?W;?wm8NALRf4Xm?upDxb?C%UOuRB}i8zbjfyZ`+i z?A@(Xb}V7RlN77MLv?$t|Htm`+-v>cEW_);qz#T&L|Zl}>+ku{6tt3ulk?@jO!q#S zKn)T7Js+6tb}6(l*f<8&UAnb7dt$TZoBRI8>9_u9t>gtS#+Jz}Kiny7QlgQ$)uYJ} zdf43Q)OsUhO|4UPdv}NI`X*OhzVb%G_l@2s*aE`^4ypfm$X~xAMC9c+GUsJc}-_xQr>c7clUnEiU| zH8nFYZTq&kX5H-^$gIV-;P?CL_kY>-&9C}9`1~Q+xfjm&|M{~dy?KQ;N20W}Sx$h4 zh_ZX%n}3cuHjOeQ|O)!*c>+%K?ZPi%F$X4zZW>hjK83GV7sR`4!br_kbNB6W6l z{=S=g->i+_AGa`I&(CMGrFz-srwBMP+yY&_b@kHf6APuG8<#K0-L{%gc;Njed87A_ z?&k)rd|~&l?ewe{88_GdoiW*2P_XP()ouUUoSRB}*X>gSH9P&*l!7@@ueh8%T#m7_=^ndzQ_`t} zzv97$l(3XKk^h24FS;fP1+6@h_um7$P`qQWGC%0>p4k0;DiVvqEy*b=i?cblMs;;< zn#^4C=9cQM-Q_lpfn9z#UUGH?l{j4yZMmS)a&19~mSW3~9(KOdr-HTpMdvy3&HV)0 zvvp~%b=j>s;3HV1O?y55an72(60{AO5xl0K-)_N$3-155+qcTILawAR+rD+mqqCOQ z_kIU1GJpQYB1iMy9N|({#hk|rt~zjhG~}0=c8_uIS2o+C7aq_(#NTcweR=yr|9nm7 zllccMRHx49P`R=C@|l?>4;uD-(=wla=y0T7jrz`edoMG3pX1yuwc*Je0odTkk`3Dm zoSv{exiE2>*sJUP=jLus->wUqKHhpo@y|C2o-YsE!8=93Lmf)%V^^)-e0gc}-R!oO zs_%Jip!1RHRtOb=0s&OhZJ4JkzWvCZK1V+P1(z>gSa{{~t#wM1VQFtCs&eX!^hX zn*@(Zo{X$**88{L_+Q0e4Qc&z`}588Et2Io9ya9fTX=J`r`mRto8G~yCaz&U*kM0E3w_LW7noF>rzx(wD&E2tgP15Z_c5};IifW zt9uX5Bs{q=FZFcBVK%ngvPC5xp0%8x@{>V_YIy4f2L(Ml!YO4nWlPk~H~mq6=kiL` zo8>=Sn*DrR`F7}vsz(<%1H;3vOkLBmA@}M*@F?U%g%$>Ziwl&S<+jZ1(ORodSZ4c?AFxGEPBqjbJwM2_D#1p{{F71)8piv`8iGQ zIor-xcVP>y&de1kRXqmXFxPMR=toD_F|H>LF6yAm2G1;8a?HKw{HimD0u?0vJw4wa zo*1IFt3JNW`Wooa+9hG$3$oMi?e5+IT50uenWUBCE3YNZ+Qo`CwZFc+yuAGVot@47 zhM+;83yZQ}R`1X+Qds0YeMNqJR$kiXue-N`&c*Iq?BD`9nJ1#W*)$Y#GS8;lhRu!O zBWzEWyydAbzi58y2q$v-(_X4M5IC{;eS{6KDusaFrmO7nzJ407|yF&XJpHCka zw7O0|wBoy7*o_$@zC@3k`dh)%yZnHOU7QU4ST9$QX z>I(L#XHGxST>(G2K6Tw8NaY$wvn}I0Tq)gcFcGx@ofH#`gJenG|P8@j`5oEa>|q?7qT)> z2zdESdAx7ymJ8S8FE8`m_Ui82#q4D-?!Mi?X>GBvcFScxcG=R@=4QQO#h4uh3n9}# zc9#@d7`~iXc_>)he{IPVmY(3C?fJ&C&X=3(9RJGf5s8j^Vy&vG$pbmmYwF{DoJ^`} zmyY#r%Ubicl4+r@boOpvv6~?`-c%;7^5wUEb;_(g?wM0WSlGA6^8bIdipQNebLI%U zG^n-uQ{&&_GhE02ZeIkxaIlBx*x`s(akFMje{rI8#nnp}78=c+G-;M0xP&@g@_o}L z4Wmn8Z@2!{(3EQ;gZwe-6ncwuuv(VhNXJgbIrc%|Fpbp8tZ@047@BMbmzwVRp4oV;yz z`?}aE+h$i@*Xug>F`;>d_RA|%|EvceidFUGTl4M9$;+%C^y$a@y}n*-C&lquLj|S6{cfqWAmv?ed^}(BScTVz z_r^VL*gAcROEddvu=V@>=FJO<*U!HHw&LZ2ue}!YV|TOmTC~UR2CraSv~I`x)z$z0 z8G+k#ixw@qcJ11_c^58SN~-DGaobdar~dct`*Y^Zsrz+#ewlL1{F+alAGhc4`RGUa9qqodUEkFF@%jm{W79s}J>0~^#Vx$Q z{Q1so^VPD?w`H4qf3Dc(ct!L+c*VFS_rsf;(?z+Ca_jF22oAn{wKyv)YhL}o%JlT- zSFVHzn(s|LEvBx%{Ca$S?a4{1v7Cu{dFu+fK7!AKxGrd7YP$F9wP-&-KRrFY%F0Ur zJ+BTlG9NRaV^{l2`2Dv--1-)lmVe)s@4x&KbRx6Qlh;?)AKr9GCcS?0wJCw)F13z^T*EqZ^h{(4?g@VUzCd5hkB%x_+y-S_&{ zy-le_VuxlLr)!CH@!P$4xcmRch$T!zo$%b0pDh=X&%0>dd2nN8XHyB&O5uk zmuA1;Xgb~H`aSSLT!GAfFU$y#ihDVda7rqy<_oLnigoXz>X^B3(AO7sh z^~uZCWB2R5p1Y@J=Ay-}@9r+Wy0!fB0`C>s@7?|^No`)Ct@rxXyVpT1#11W=Ul+A9ByMlj*5Aux_f~~246yn8h*|9Tqf7|MU_E{gO2i!JDE`dfuw=PXo9 z-%9=a0qGKzJZf1}zG-FWp+jf(m25Z;+SVNvTYdaqY!`TQH|Wl*725Y&0`8sm`||3l z_sS4C>#{Y!m&;n0`78|h^XIw!_PXxLYQ9B9MZccg|G!x_FFo98NA`8S$B$!q-{07n zd`$hv&!1auEpl!cJZ=t+jj1w9KF0G{xTvVeM{vKNr?+>r0MpIQ-(ST|pQ`6~dTvbE zt~Yykg&(Vq0^KcI^4qMO**dzU%<&P^aZONg?=1fDIJpOO)I*T}+Qu*CMurpp<_K&q z&%giX*H6#&+3&ZMPoKlP&2r)V`^nZymeQcU!rSk6i|_CAT3U2sg5q8K+z$^9amzubiLiYZr!?L?7VEw%h&(<^Z9(QzeV*oofd(Hbphfl zZs%P1u~;wQbiR3XbmjpDqlfa$Y%!WUjf~5dHD8%s=(XxKzfywzG`*!|_cxvTD!tx_ zi}&ctT8mVX+D?X?K^ht_?zF|-TnN`%*Ws*N%cQZ$Cquc z*sCdV^!@(-zxU7IQPKZg(rJznmyDSE48BPB}tfNmhJ3s z?~cxwt=^Wi(BFRQZ@+DjyA>WkgRU#xb;vhWZsNp=AOCzlFa4Zhs@K!?bzfI+zhC!z z{{KJEK@+i$mAP6U{d_*(fBUUcvf*Kc63S?+Na> zc=4jxoz#+hdn$LF)?ipNV{GXAIR!}f>r_v#963!Zwjdi{&Z z{vWO%n|C4L*8}EPkCM103qLQLF`X}ou~5gSzxCxtgS|N|7fy5vtEZix2ReK4cYi&o zW$@!TXhoxZ?U#!uC#xUL%(MG*;baOIH#g^N0j2{Y%?TfPK1_LiZ*7cc_VrKJd;ZM& z6S#1(%)&E#G7BV)pV+CYvQ7e>fO;wG>Av})p(THI*zPLJ{QAyz+p|e8?t&M+D!%GE zy{kw;am(B7cb|dUC+qio>Y6^{RbPc}l?rdqzi+nh2M)#;ZQMu2?ZWHzPRHKf)+?s_s3a%Rd}6o1`{A;A z`F_p!Qrz5&4U=UOyt=BP=cq=$`+f74*TjjSO%F-I=jz{sE7JF%iu8TU3hlVpufW&Q z+`e?xw8h0F_m;`y^?Gr8Zaiduv*=^^<>mhMkHU{t&)oOrk~i|1gInLFl?ga0R6m

#kZfPkZcWy!U^PT0} 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%0A6sYX72a#GT(7e*f|I zyK$rs-!YbKsV(4@!+h@1rO;9_;$)V~$B#PSoL~+CuO2`R;nd4pc7S$WzUjXV zzA0f>58vIuIDr>;%U|Bk@BFvtl*Ti*tIOWyd3gptyX3h0+LC=C%&Fe&Z`Un7_SmR!Tld|i= z{^n2EoHKNV?ah)ck6zpo&b}%C{G_$|^fZ0hFR50L{reUhR$W^e>{If~@hrQ(Tz10e zgAp3%f^R=)!tFxx&ajAUuxV+~Wl0>30d<^B1~yqc4*WSQ8RuJ9+OS$i z-ey4qgO>K;k0HDB?k?JzE&8rC?-pqO-}+mVCTRZu=0{XFxR$JacZ)@}#V%^~oQf7_$3J+NpEPo}{Q&FYK7+6xpvjZE3)rjkv=;8AL4HB^=wza`FHY37yZ31FJD^p$Sru3bSZ19&Z8=-q%2rm;O38@WjNf|{F5KBEBHVoV1>>rsKw^3EG%59lDI>fGBi3`6K^*zWwvhed37b(N$!3%E|BC zn9N@LLy>Pm`idnjLBWYq2~r7ekU@RW?OjeBElSz%TlcoFlS!&~x4GlEZtJ$3rhv3YDS7d5b^C9-;x`h#^8U8A z7FBWzjtl z4-cJx{rkVm>eJ`NtF&ZH&QE}}hBYp5&wSPN?gn?+ovE{1Q;)-I zo}^~*`jP;Xv)*&VZ^oQ_c0&iU+|MZDybKS=g4fpzkJz}G=LZ#SV%j_5pxz7k-1{9+ zzaHEnWrK$3#G6TceSB$U6(6rZGM|6T$7SwZ5h17N=O1@e_C!Uq?|;2OWbcHVdN0;o zO}HGpGa$w6F5HNvJ6HYtl?|?}Smv&<+Gtg8x>}uwt1+-q)>iiJU6VW+S^K`jPYsP` zYS_l6_&@N_Puat5m1hxA7VbB7Rw}&VXE{>R{96_pk_#(S&R{(Ksh^=fjGJO$r+xI@^-11Lq4m`W@ zDgSx>l-+Ose$TwFC!^sXuIm_1QoH{vit9To>>2`!UKbaN7BwGbI?uG}HOmN*`V6mb2 z`?0?R=!q!@Nc!*$-n#02B+_d z>@|52xvSj&kT?5V&_-mbg*lNSU)=A{U$H&!>G{~NRcrQD3kn{5{Sc+vFIvc}Zk}@g zR9ZoTbzh9+wv>4{dz_zmzIwH2iAtuvtjrh4r221R{eJt9+kUbIR*cXkkdVgo6IW%v zo)?DSH<+#ZQ}gTR?ak}1-aW$jNg+~a%53kOH@W72IK24yrqb{^RXVqYPgbB+ba5e< z<34*`(q7ZMYDLGt@;hf=x~Dy4sGO!3zwAng>h#XXg&VDRpFZ+&$BnsfrE2FucNjB; zKk$0yAR!4}WxHz~WP_oB>5@x9TpSC+A3d9TNBCk4a?I*_rE)46k1rxEy=#Fq1w7o z?}V#<3FvwW9rpI)J78lp1xsbZuS%PNS2^irW!<^L{)=6wXUXQtZaoV=Kkw|YJM;5H z#nnO?S^vOb;iJcmud_Kf(DqrO3D$p3JfRjRrYwR&lctlEg`t$e7 z`~Upu;==!h-%U=YbMa%%S1%V{37IL?ll^w)!MGQ3VZ0E-!c$D7o%vcc=CRrTXxR7f*Y0$)d3R3S@)cC{e8#pm z^TMwWA18kM)|_OTe6)ID1T&~9V#IJ1(G*F86dCw z?!Tg0xcmA}L6&p%UkJFid%>f<0e5`0Uu<-_v!zK6UXw!)=31ALctX-aKS+8Y3#YInK6LJ46A^yD1B(@GIcim;0~TI%+bqUtb^Non`VeQEkdQDW{iF>(A^B*md^gn~k7t76^l? zA*~y~)f;wwn7qe-%B`v>Dc|{iX`hw--C{a!)Yh5v_5Qkg(Q)CzEv4GEA6eJNp1yo% zfzsZ9SG*^mZ3Nv_jWBC6)U4Ns=kRxDcZ=Tq^6{}ro=j=E{ih}18&uw#l|H_(A|}mv z>GI3w_dRZNKh4~3^u?+2)>65P1s7l~myM7;Suf_WI0n4B#&`56_!x_Rd--Ug z-D?Y^`FekahPXtn-O}rIPPjdha`tvaP|JGWZsX@!T2gSKO+CteQ93e3M)y)dY|synYuBvJy_ zL7Mu!5Zny4TK?cg!seqo&&A$DE>6FFZa#}6ho!)!tc;_Dft#T_m^q`TZ`%G>bfdUd z_3d~;-HA=x`Jk&93SjGI{9cruetSJQZhCPyxXg&%o%VmdyLMmQtnZqA-KR=FDrIgJ zGBZfsy`W=nKxDbs^GpS#s9Nt{Aft*x#fwR}j;#7jsiOp;0$;~oo?2~={ zopt&9d3E})ZDmAEPbYx4DozOH8m6JE;!dQAmn_`4@#VT010Nnl zr8@5*B%)V<8ok%W7gl~d zwrO|KDKo>@@McOS19-*RLTAt}z>11REtmTr!Zvj8C~V&Iqw4Y3>yzRSI|i=ZwOdm) z^@BHiYSC_1w4KwnpjJzdN;V?xSB;BAQNrf?ud3}FQmk2&W7ysQ~mXU zTU#mZ`5bZQC1-uZw3t=zr5z~#!y;N?g11KsB z@%4ETv!kYQS%j|GoUW&}b4mFysX+68BDCKR_o-agD%Fkv{(>{&U+b7_rK0>sFG4XgC>l%J99x>w0D0x#yp+>jm>UhpH*H}wyLU~l`j{Z*6rOI_oB!< z8N4rd#wU0hvVrvZF6?`^_3rGsCec&+e|?Lt`W{=9*ckv@?UoQ^yD36Lzkk!_sqdTC ze04JS6|$B)?K}BM2fRrLD+<4D{ru+KkxMS$?bRXMHuZFUCP&QL@$rcp!%8jCK|@;F zu@mMZ=BGpuV_`OsYiKX*J9ez+tx?&|pNi1!n(Ow23$!eFvEbXgGKQ6Mrl6sN=-3IZ zh$$)&L=zuYLG;PJkoW1G{pwk}2xwc>mAh{r-QJv+w$^GJm&q#kyLYF6PQpG@>X=%+ z@WnI_&3@HgszFEKqiV3K%DQWhh-9hesk#0;Dke5HuUvfitG`5P!4>Ae%okP&aWXx9 z9-OAOI5uEqoW?}SN%xaIQ`%C#A;K22to=ftn*7W=Yx2u}zJ=_BDo{QHY2-I_XQZ$OZ=3TUqe+sS9}wtA%&q-c2j>di|TY2#~8x8H~C$9#QF0<^;F z{R;Ljt-#{V8RfE576zWY%$;iB06PU4*5`V95R%UNwHKNsUf&tJZtwShwV%E(KjpQZ zEg&R#i$$%WMM!5=mB(t)=iPDJ=IbI)QB5y#2KVa=Sl8Li1`iK>DBL^gi%JCmCubW!$o4VyWqPv23!wL;1JmFLDl*J)RTYZt>D z1DQeiF=JDHYQDwJgEz}1drbxnRy;U65i&a^RDPN3 zUWxY+U)b0Wbo_Shy({}(=Exb(2HimHCzkjcG*vUxLYQThqnfa+-5&#iU6;A1?hRcB z+CD3GMv2eCv0U{L-*xf0FND5kgMgh#nK==yn{yGCEwFdA$!&~l#3Du%vK~=kU?+y5M7X4Cozqy?GA&_XWD=H;$`IH#ae1suj&#KzWcVdr^N9)`(Y395|nAH2VRgviw?d2;&_f- zJWJo=->+Wj%&S_3X1xw8>ROy@=en^-kyVcFK!)>D1kTE z4ovlcZ<}>-34gU-=VZ*I2i?$(l!Cdh&*#)VQuaZ33NA46k~*Vmc3oer@9g&9*2CUVQcEs`@HFi%+M{_{=iv^-;TMc6Uv_TxG$M z$CD=uEQah8i+$bNQ|@@2{bYrB3Fw?+_<+WPQ@QZ*q0Ww`#m#5MJ}=M*?Rx4{ZFW54 zyZ&VS&-LKFeWA!3O|H&e5E29v-T?>?*pTgHi?O+Oj2Wd|V35J@5pYxq* z{o*wAeqr(A%d)nzju#zg$UTV`MGcCxt4oX z_uAAxxPAw6nnUA>+4pL)ivMh_2spkSJXCSLTCqHK!~VDvvEpymR~A2qw*?!u!{x6| zoCr1sbnNQwE4Bx?-+`}HUny9*n{Bcpc*VMd?D19Wm$$HNuS$I1yjU;eHurBk3-Fqv z_suAd65}WYb+0$P9a$wlB z*Sbsc|92owXI;AAYks5N#l>cmvdt|QG&945lhn7A-;URCgYKpD+_wAwqkkI~8GJal z5ww`W^~_|Sia(v#zqM!i)j!&53*HZlW{B6?wrid3>bK?}G`_UNv*gPPmD{G#XBa0k zGRN=WFkHJ#t*c-BxzU$>_Fq0-<^ElE5OTI~^4HRELBSY3Q$~2;gGcT4UR;>!T;28k zhF$)~3u_{$%+R=6)*oXlRAnWy;p3`#a$dfr8^7L)_3k~M`Y7jm(BqPs7PlXL-r*wy z4k^%Z_|qtbKcF$t6N{N2e);i|cP?+gEp#iT{#7?t(4jSN-n?YViSdG*3FPv+>F?Ic zeY+kkus+efTdIQHvIr>?GJ{T`o8Zpw)O^z5*M*GR&%s+MRqo{7>fNH>SI>BE>;Q`j?N8!~WQ+OU|=C86u!AIBoZrG2CPq(*phOL`YQspU8nBdaA zkabDn%4uTa`m!Y(Y&YEJmfa{D^To;C>+C*w1A%qj9nk)bPcIxS)GPf$y+iM(A3FSU zZn=km%AFP9OUR27jxFtR^YSiUdfMu$M8vyR&}>)rLX_DqrtrMt)@%;N^Smu;-I^9w zJKh_+_g$D{nX=Ji_uY+#$+_#JT7F!3d3jxo)e9%@gw5hs*`_nzww{|d-M1e;-5b++ zP&7=k)y7;vZg=gP_pLRNktU^DGgbC^|C#y9*xP7&gP~q%q-SSmQHi5j^}=km=7VuB zq7oxN!z*@Bv8E{CG*6o2{<(_ZQHM=m|F zt5%;p-=CHB8~T`o5sO0Wro46ZA#4H+WUT=RqHMH8Cj( zILS$IFfV3${XY87-WSmiaYK(c3S9SF`QSk&ay$J+WAuJ>cV#)!~|^qTZ8}GmCV5q35bRI3)}kH?&a| z$h+sG9TpHAe)-Cdm78+6tlh0^VHF|3;&8NAN?OxyUbCJ?p8k=u-SDm0pj%#hSREBw zY?K7v-E_|1@7v_?Tkl=>J{jHHW!J^mO#l2PJn z&2FL9Gr$cZP~kdt52)4oiod0>@XM|2l#K#{zIH}Ck6utZU-s4Q?}rr+#SStp`Y}P_ z!pFx`W}XZdFWE1?=>n@OXjbdg-${_IJ)kL}O`xgNl{Nxt>6fQyrkDr`mVPVg>y}i% zy==eL=c@~~+Z%++Wdkz)RDmEa4n26J{|#1nn+1 zk>uh3Z~QOnkGbpp6PsVk75CRK*?%*M&97#~&Y5O;B`YKiZm`B?vw_BZPM@B&yJ+nm zgr}T9o?6A*GF?9ylvC@!pE+}6=GM1cKjqZ=f1GD~wEBRMypdGqdAVDgQa?;PkRx8Q zO?AUf)>sXr+3!x>R6?{oPk~wtD|H2~fyR55`%T<$Z)$35lxqIy07vDqgiSO4DF3ZK zW1G;)9}^U;sh9WR*ntZ1l0AkS?y%0)GClq7)W;x%SzVwKV5OEo8+-|lw7K1<%oH5=SO3CW1vfsnZltX>R(x$=DxG8&aZt@!v8;I+l=N#%}*rVK7D=imG!lw zVEvAkwp;n4cS;Zbi(-wBEog{4F@5)|^G&e1T_(t3^p!_=9-g#T4}TGM!hp?D0J8GL zL6CjNj~_O6&KbA44Ddoz$0#fPc->T1od{a;3f)q0Ky*ja3~d%C58K8GzhXq5 zfi@Z6xBXxD?YH=Ay;BAabD}Ljsra9Wy}Q$yTg>K6%e8Ed->+NelsVpxJCQ8D0T#(^c8~+N6prk&vepEhK=0+T;6lLf z?~AWz$^X1{HS6c=rfcr^=L>Dmd%B+c+qXk#vtz95BtVs9P_)99t51KOexJHm{cs!C zI}x3;aa?r~(;){ZKfdE%X!CDD#&^gp+279Tm*rQ%Mz9;Tzk%}o6?u+ux#-A(54)!gE4>(4s^O6!@QtrNc`i!?6=i=3y81)o=*ooQ~o^xmnhZP~?> zo;S!WOWko8mTtOl)4h<(!}^VP|n?WC)|Ov!{8#A1;LU6mjYo3bC;)wgT9aNM+qYpzIg8aMD> z25*nqzDq%T?}d*K4exQw%E&!Ns<|J5R)~0 z6BH47lAsW?uV&}hspswg*ZBCH*;)KNDJf|lc>luunopge{R^Mv|Nn4*&8_A)XU5E# zmEYdnT)*$vtC!2?U&{d9_!}7+$Z{kTUl+dk_V#vJ&KC3hdtbhOy_#X7 zzwgJQxb^RA_pM(2`lxvPl?;=8`}S?myIb`p_V>59o9liYYUP&yy+s{zx8vRWf9IY| z`SiqLh50LYc`4nOYEeA8p!w{4F7cp_NH zp>(PYPYdYw)O~9+EOe=jVTC-P?UOBrNQk z-Olp&ajz#E8XA_}|N6cD|97e0XVdrpS$dq!X)|M-C%xA=m4~chc>1_GD zR^5O1)P>@wF6X7bXf?`lYHLPRsvpmTt@|)Lf8WM^YI=I--f=&A^k|Jf2RHZY+M-)q zGOwviOTX1$xHIFT63SLWKjuWVn|nLA35AJl`~Rp;MPDp5)U~tIYu*Iq%*B&Fx5#)( zPtCF4=T!x{LJiz#2`y-KSdpS|XGh`Uucm+RHrpvHAO6*JcDDIodb?vx1*R&x(cf8%{+-IM((@r%k-KR=ZeVuUU4 zhwho_>NUG4~)!*gzmjv9@(@0_t-p1W^ zj;a9AeyIa} z^Z1_VZv(B@yQDmw57f-fOx7uJ47@etQEUMG%;T6wZPOxfbRDVXaJ@cVeczNvyBt?v zI(_;2ll6}OlDr|~M`qoz7tW>~^Aj)GJk#(J>)j*FpaBDL?-o4I<;CXYC@`<~TV$`> z=R3vcZ`K|xK5x7HVn!REtQLpU`^liaV0E8n=kLq>J#E)6tJm?%{pY`HY&3Y{&~Y+p z(xb_&;F;ky`ED%9-jKa9u@|0BI~FBgvU927Ro2)x*xne?9YOlw-0Gwh1=@?3+S=OM z|99nv4Htfac1zoRTVDU?c>R?O6Z>Bm`*-cyCHMRCuF}_Q-dhzt=~&Ks$a-ygoOhk? zB7Xa_-!qn&?{1F?thH5D*>I0FHX|pe%u!rQx;gd&YY43G)TkX=94af>2};j<3Lm$v zU%%dMaplLO;$N$3=dWJ$1yl^XE&llRtFFF&{hL_GPP-NFKZ8o*Pbbw)rOs|hJnW-( zUHy~=Z_DlTIsTg76JH!YeynHj{YrVk9!2Q78<`Tv<+r3Ev#dGdC0r7qv;uDSdA)_K z-qD!F#l`jQZ{%#V+)ZKM`0IZh-eH-FiH`>psi>`@sI1Tg`XYl&MoozrDFB zYh7jo*-d}@wzabI;kmL8O$7SvOrr9ycz-;Z{(f$)_2XO@gEkfLsF;{}?1h7B$3ac@ zlZN+LWsk7IqaAenLHIfs1rguP>F4FXguUPPep7@_@v}14_cDP@d!V?%T(Y_Dp^> z`Sk2l>8j_Lgw}Wnyg0&nYva?o)zNah>| zb++0Zen7TDEvkPr_nLL^<7G|kVc;{hGg?41zVI*rFBbSQcbD&7W&XY?k0y&R*VkL6 z$;9t-B4f!G6RRqb<){Qeq_yz!3N>)3(@ zb(F!y_QKZNehxM4PMeR)h{&q^I&OEtUZS)>#3R88bk22y^ruf3S$Do}h5KUa@#0qL z%g#0IhnlQeSNE+I`kNds8$Gqum|MkQ!jH34COSq&HgB)4)UY4=zUkiXnEJ>&=X2iY@pthFu`sG=tY4($zJn%j zAMd^3n1D#bTZ{39_CAe!5mKGJQ{3w6 zy%}#?{T9L(AjYhmwHkZ^Wyf`gijD6c{l59W`}fSM#dhF9^@henuU;+sQE_YU?VZPt zrRjqfeca@Z&B)>T<|MAb2p^NZavGF?3S~ILUxdxsQyg^X{GH0O=Z&Y?4>TOw6ro`~ zyXzYuNUg1c$`f9S*m* z@4k2D#>>_`Gvl(Vg|pB0OpJSh*hzR`suXAW?H@Ahse2VHIHka+d# z#cjFowi$|5E!4>EX^qqHk`CS@-qpkc5B;T9piWa9^TT74rH}44Zn>HC?e_cYxv$t5 zyiO%7xVt;^w3wjOj7@t3j<7Au(HGg+sCk3iwFSO>U`G(>Xbpk&jRi*<1#O?n3ECSh zQ%Q?{XeLvus>(5Cj*ql?*R@?!UbQaTuD7&m;fuB26XP_j*bu3w3)I2g!PBz!?N(#q z^sXO`;0v=Zq`ocWbY8!bHSvhczhe6V20 zeuo?2)tj3-+vlfE%JbMZ|1hG1 ze-0FRKe$^iPG9^z_Kx}^_C7n4T^m;m9*;GQ-RF~i{ZwIMbIIO-XV3{)GmkBnGxcX6 zl3oSqAhAdK0)D--Z(X^na&7tCUDdDluK8YYVe0G;xyyQ`pGN=k>55x%;!-+jf8f&d zpf!Nr@cn^I;dem8O@(3{U)}!Ba87plbD*MGN)X?p_nG^zsDbw5DYsy@;Y0G)(=SMAn{Wyk&3=d3#-819yu zx+SrhDK=nD+=>cuk!*>sa>u~7g*)JDl3;o@1*Fa%o4~A?R2!A){Brfl^^Xd)7hemz zwJUU^-itc@lqKA|>?PcGEtuV$cqA54Udw>I{!xUZA97>E8vkn3pI2Y^UN77sI^m?t z@9)80U5Da#>w!AXtal}af@3c{RWy7G9We$CMco4>p9-#)?n~lRO{aB!3Y>a&>gC7F zA4g~}-ec3%o%|^Kdh7Z?w%rS|nUgng?=mo8L#&H0I4TO7k~MDxwQ?6T9sRY1HIrNK zTI`XHVGg3AB_9-=<9GYj&NRBsI#*V1bL@qc50Ms#HEP#^tlq)dlD_J^j{UBfDgCQ5 z*Uv1e5aQdy^y4OERlceCQlRpY_fM>5nSPuT} z&w7(3^8MPk35&I~l-5prnSbx!zBtIN=wdyK0}aU4jOb_3$ZHMDp={pk_s&&-)~Tqx zpS)Pqy>QCYFkfC(m4Xjvvwy3e22F;F7hPw43))@>ZnlAfz2K-BDCp!HKYV^XUw(J( znZM^VO}DVQvv(U^=CA~xOB1oDq~Jo_jqe8oLBoBu@-n54x8rX7esBUQ`guTO(H{jl znin_wicS7K|MSyM{ovC(BTK-#aTkq^d%r-*?4f&W7 zL%pxgd1Cpl-Y?xh-64fx8T(W4{=!e+&#t~|_v!5EA6NUCZ6I6sZtuK0>&xBl4vsi} zc6b4HR08A`_Qrzfhh}ei*EZ{m=``)UtP}BO$-cF%(aGLPGj)G6D5u9T_wLy@@6h3^ zADWex+kd<@FXhl<|2<{?agRQ#$H6Q7E?ZD($j9{X1!#}Z;RX7ycU%el<@NI8dwKh1 zmSul_ANP*ee7oby#oyOqhm4&`ILIz%d0Hyv$=$nKvc+?69*Wd|bDI@B{CYj^#&&Ku zmx7%t4R1fO)z-gYh1YloKrNkL4mU2`{1EiVyLsQ5e*v}o^8Xp0-MFv6=Kh~w&R?&I z*Hr(z-N7x$6IOj;qVZ}+H$9FiQ(dLa3a)YIimQTWNw>D1y%Wj6;Plqh#WCbcMU2|H zypNSJYVd7SJHVGWcYJl&vAp8^LhW|8xyv{Cs_p%`ep&ku*(}`&d)wCDKmNV{=lk#1rN6GZT6tlj{QrN2X4hv();#fl z(K2VT%~vP)Tg>8nFH8*De4krZ#}vuHJD{>W$x1+OUsc8TpLdz}AG?z&r@@=mxAx!h ztFKF6ORo96K-qqoW!gKF&sLv!>Z%q#?rr=S_o8BAlD9e$qa%RQ* z73JyMyp~_wYw`Q2S*`T+&pCh23DmuxG2ytUe#tgfgWKG5b@gZOz0mpzF;Da06nMdV z8FS+HmDNuUPRxrtzwP1wyofL7l;YMOdHh}KP=a68!tApRkjd27t$N~ONY<|dm8=`3 zIWC{R?Cjre_30F2*q%S10% zq^NotBq+e4SjPNt&y~vU(RtQCl6HSTa{J%wx82+HllI)w+QI)&)Ax|8?+Z=eCR5&P z^{1TmOZGDwT;jf~ug1MMU`i6QUw#HD2srhyf!ee(vTxqZ34Qq{==IjzyoZHFD>6LjOHcq_$@48g?v33)w?qkcpnR~O(l1^DJ-u3nB`U-uK)jg-a zISHNyUsMNfls9Utb2m9~7)o*Uhs(y#-G8gqoJ;KBolG&ELp!UVi!IlGw&KlR<>#GK zcUgVwJ#qRF7>|owl%2!=;>?ROZBGP>fuj7;n4ht9ho#%aYT6P)ZGNd*o z=+5kpqYe@hq8WlZdV4;$=EqCyN`3Kt|DS)CXV0s9cw4+cLv;$|pyuAo_61Rbe%jEu z0JSGT2V5rU2~0Dex_@Qu<*ncO?iz(`_DZhhxoafS9^@3e&u8Vz9S$k5oKpK zsO)^k^ssHRbWz?@1p%YAzpA$T2~2(aTF!g2ai{}gHkK;}d};fU7zLTagqDjrE($5( zY|KlS1jNa`-Ya0PpSDW;(X*rQR;DO;PeTstp;_N%g-?nr{Q34;Hpg227-x-6=-!^a z;##*^UH`la-^Se)>T`6r0#aQ5(o|zoJQAkx=hvOU4rQ3!)OZ zy7;N9LW=}fOW^cHO8Tyg{^>v$u*`VZ3L5i?VwxR$;ii)DZDiM7U48;``RPU>j^#2l zKRNto_?jLF>Sv!R(NEdQ4PGwN)Hi+BM?IuWw%UIBuBxYAEKVJr4mVQYNEK)Bbe&%m z6{TS}?`7Nx&^U_ihWo6tnik@*uniNSa)0ASjurvuMuUweh0kx!)vzlzlG3!D+j;F$ z{Nx8qx%qCXRJ?3ro<4Umid8ovSe!bhI#^g|e%rgPTEni`sy1q-H@oZ`@UnK$wB`oz zLM=o{*v!+8apo`-3}L{iilB?cm!{E(4fn{M=uDXKObAQ|jnR{Hf^w`U!@@3PmEF!q2B}$gYVr=qi9YHV}aF&!+QOkb46M^7a#xIZwM?{1lxO#0ZN6UmmjRqE0H*yRYKRb0gVZmJMm$&n0 z{ytaqM|IbJ)FAQc*-X?BkZID*2h*TQZc<$9_NwR-pLpdbzX{oU{ho~zk@u}hybMUq z1@L|8nqnO4NBlBg=Q(ek8Uj9e;_F<{IkRtCmGYtv#%a8Ro-+&S0f5u5QR9ZSyK|l1 zuuO^a1fA1s6Ma82C?{lMoW?KE^jA=h2$Cf|pfwtr!W_w7Nr$=*2WA~jF_{!*ed79r zGxsAe<@!B~)42F7yFMPcxvfgpYkMh!e1>YGT)2QtViq|K6EkCz^wzvOh*|nzO-JQZ; zDS*)Gr$h)LE0`zHT9clCF8V9L&`kS!gCALlO3 z5eE+_vAX6YoGNof@|h-R4?4zZ93yO&?5Oi?+swE0~< z*i?oXZ<9>z&IjvlIsy=<=eOB3=q8`YuFBFT6Kn3+laSms`7KyWNQ^M6i zyDav6x*xd*ytPX_w%|h8ac>k`Vn7{oBi2LJx!=>&&${KN20<@rK6F14vYE?0wx9tt zn2#KGI#6A6)63Oj{he~3PEZJ_vrA3W`ZIUw)lb)1-)^&g2de&7fH;Wqwm{Vuw1ms2 zvEa-?!`NebSHk$FP7U3v%_rbsu=s7IJMa1nRM$6y%t_Yt}NEnN5dI zEqs>tQ&0BId+XKjw}(bZ)W=@P19jHFeLDochjBM@wXUrRPQe^4zxChs?-FS}

| z+@&nhJe!P`j23t;2ReQNbkX9Q)tc_hOkU3pj5w(;tD~`?hi8sfb8u?GDjuZNEx@4| z#*~=u|9r=c!WFBY?5dnRX>y^Vt=_WZM-iipAQM52B+jLryU)FK3SAnSz53I1zNDSG zX}cAs-9`+AfjiY93Uj7ftX{U4Ep%#tn()%)+Bee*oa4UjegNJ@g;b)0sw@kx7Tag@ z1lipdEV;C5L%_-WEspyqRlEf4l+uF^xFgj)+L1e)6k3+>w%pvl$$Z|Oj!9lCR%v

XyTgW#7)u=FeNSBxvR0W+5Su<;lNp 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 KT-G@yGywo8jj`?k literal 0 HcmV?d00001 diff --git a/protocol/forks/2020-05-15-sigchecks.md b/protocol/forks/2020-05-15-sigchecks.md new file mode 100644 index 0000000..0053d26 --- /dev/null +++ b/protocol/forks/2020-05-15-sigchecks.md @@ -0,0 +1,167 @@ +# 2020-05-15 SigChecks + + layout: specification + title: 2020-MAY-15 script SigChecks counting and limiting specification + date: 2020-03-05 + category: spec + activation: 1589544000 + version: 0.2 (DRAFT) + author: Mark B. Lundeberg + +# Summary + +Bitcoin Cash's SigOps counting and limiting system will be replaced with a new system, referred to as SigChecks. + +# Motivation + +Since early days, Bitcoin has had a SigOps counting rule for limiting the amount of CPU usage possible in a given transaction or block, based on the principle that signature verifications are by far the most CPU-intense operations. + +Although partly effective, there are well known issues with sigops, which mainly stem from the fact that SigOps are judged by parsing scripts, rather than executing them. +Bitcoin splits scripts into two transactions (the scriptPubKey of the transaction that creates a coin, and the scriptSig of the transaction that spends it), yet the actual CPU work of verifying a transaction solely happens in the spending transaction, and this leads to some paradoxical situations: a transaction/block that contains high sigops might involve very little CPU work, and conversely a transaction with low sigops may require very high CPU work. + +The essential idea of SigChecks is to perform counting solely in the spending transaction, and count actual executed signature check operations. + +# Specification + +## Counting rule + +The SigChecks count for a given script is discovered during execution of the script. + +- Executing OP_CHECKSIG / OP_CHECKSIGVERIFY / OP_CHECKDATASIG / OP_CHECKDATASIGVERIFY increments SigChecks by: + - +0, if signature is NULL. + - +1, if signature is non-NULL. +- Executing an M-of-N OP_CHECKMULTISIG / OP_CHECKMULTISIGVERIFY increments SigChecks by: + - +0, if all M signatures are NULL. + - +M, if at least one signature is non-NULL and the verification is in [New/Schnorr mode](/protocol/forks/2019-11-15-schnorrmultisig) (dummy element is non-NULL). + - +N, if at least one signature is non-NULL and the verification is in Old/ECDSA mode (dummy element is NULL). + +Here NULL means a script stack element that has length 0; passing NULL in place of an expected signature is the canonical way of cancelling the signature check, i.e., making the signature checking opcode fail / return false (and the only way permitted way to cause this result ever since NULLFAIL rule activated). + +## Per-block limitation (consensus rule) + +After activation, any block where the total number of SigChecks accumulated (during all script executions - scriptSig, scriptPubKey, and P2SH redeemScript - in all inputs excepting coinbase) violates the following limit based on the maximum block size shall be rejected: + + block_SigChecks <= max_Blocksize // 141 + +Here, max_Blocksize refers to the consensus limit that is enforced on the full serialized block size (including block header, transaction counter, and all serialized transaction). + +Currently, `max_BlockSize` = 32000000 so the maximum allowed `block_SigChecks` would be 226950 for all blocks. However, in future block size increases, it should be assumed that the SigChecks limit increases proportionally. + +## Per-transaction limits (consensus rule) + +After activation, any transaction where the total number of SigChecks accumulated (during all script executions - scriptSig, scriptPubKey, and P2SH redeemScript - in all inputs excepting coinbase) violates the following limit shall be rejected: + + transaction_SigChecks <= 3000 + +## Per-input limitation (standardness rule) + +For a given transaction input, the number of SigChecks accumulated during all script execution (scriptSig, scriptPubKey, and P2SH redeemScript) is to be limited according to the byte-length of the scriptSig, `len_scriptSig`: + + txin_SigChecks <= (len_scriptSig + 60) // 43, where // indicates floor division. + - or equivalently - + len_scriptSig >= 43 * txin_SigChecks - 60 + +Any transaction that contains an input violating this limit should be rejected from nodes' mempools and not relayed. However, blocks may contain inputs that violate this limit. + +This is only a non-consensus standardness (transaction relay) rule, meaning that transactions within blocks do not need to obey this rule. Nodes should only enforce this rule starting at the activation time, and if any transactions in mempool violate this rule at precisely the time of activation, they should be ejected. + +## Removal of SigOps + +After the activation, nodes shall disable the all consensus rules and all standardness rules relating to the old SigOps counting mechanism. There are four such rules: + +- The consensus limit of 20000 sigops per MB of block shall be disabled. +- The consensus limit of 20000 sigops per transaction shall be disabled. +- The standardness limit of 4000 sigops per transaction shall be disabled. +- The standardness limit of 15 sigops per P2SH input shall be disabled. + +## Notes + +- The question of whether all signatures are null is not precisely the inverse of whether the opcode returns true/false to stack: consider the case of 0-of-N OP_CHECKMULTISIG, which always returns true, yet also has "all null" signatures. Also, historically pre-NULLFAIL opcodes would return false for non-null invalid signatures, instead of failing. + +# Rationale and commentary on design decisions + +## Counting rule + +The proposed counting rule is easy to implement, but it's not the simplest / most obvious approach. There is one primary design feature we wanted to ensure: *The proposed counting rule means that the sigchecks count can be evaluated by executing a script with a 'dummy'/deferred signature verifier, i.e., without performing any CPU-intensive elliptic curve math.* + +We currently have the NULLFAIL rule, which means that signature check opcodes will either: +- fail with error, because the non-null signatures were not valid, or there was a mixture of null / non-null signatures, or because the checked public keys were incorrectly encoded, or some other reason. +- return true, if all signatures are non-null and valid, or, +- return false, if all signatures are null and there is at least 1 signature. + +Right now, nodes can optionally use this fact to defer public key and signature checks until after script execution, simply placing true/false on stack depending on whether the signatures are null or not, and continuing execution as if the checks were done. +Later, after the script has finished executing successfully, the deferred checks can be finally executed to determine whether the script should in fact be failed entirely. +This deferment allows some efficiency advantages (like allowing Schnorr batch validation, fast rejection of some invalid blocks/transactions, etc.). + +The simplest imaginable rule would be to only count signature check function calls that are actually done. +The main problem with this approach is that M-of-N ECDSA multisig verifications perform a variable number of signature checks, at least M but as many as N. +Some of these checks fail, some succeed. The count would then be only determinable by actually performing full signature checks. +With the deferment mentioned above, this would mean that any limits on sigchecks could not be accurately enforced before actually carrying out the signature checks. + +A secondary aspect of counting is that when all signatures are null, we assign a sigchecks count of 0. +This is a rare case since most scripts want only valid signatures anyway. +However, it does increase accuracy of the count, and it can be useful in smart contracting to use null signatures instead of booleans to control branching flows (booleans pushed from scriptSig can be malleated). +Since it is easy to implement the 0 sigchecks counting and it's more accurate that way, we decided to include this. + +## Why have limits? + +The SigOps and SigChecks limits exist solely to limit the impact of denial of service attacks. There are a variety of attacks that might occur, but these are the main ones: +- An attacking miner can craft valid/invalid blocks packed full with valid and CPU-intensive non-standard scripts that would require huge amounts of time (perhaps hours) to validate. +- Anyone may flood the mempool with valid but CPU-intensive transactions. Since these are valid, they will be propagated to all nodes 'for free' and load down the network. + +While these might sound bad, it's worth noting that the disruption would be temporary. +The mempool and block attack vectors are essentially decoupled since efficient nodes use transaction validity caching: if they have accepted a transaction already, they don't need to re-verify it when they see it mined in a block. +Also, CPU-intensive blocks do not cause any kind of "permanent damage" to new nodes coming online, since again efficient nodes typically provide for an 'assume-valid' setting that only requires fully verifying recent blocks. + +*Blocks*: +Slow blocks can be made without any setup, but the slowest possible block would require a many setup blocks to be mined beforehand that generate attack outputs. +These attack outputs would then all be spent in the attack block. +Since scripts are limited to 201 opcodes and inputs are at least 41 bytes, this could achieve about 5 signature checks for every byte in the spending block, or 160 million signature checks with today's maximum block size. +As a rough rule of thumb, each signature check takes 50 microseconds, so such a block would take a couple of CPU-hours to validate (though this is trivially parallelized). +The proposed limit of 141 bytes / sigcheck cuts the worst case down by a factor of 700. +The main motivation here isn't just to ensure nondisruption with current block sizes, but also to make sure future block size increases can be made with needing to worry so much about slow block attacks. + +*Mempool*: +As far as mempool attacks go, these currently are already greatly limited by standardness rules on mainnet that 1) whitelist only certain allowed output script templates and 2) limit P2SH to 15 sigops. +If either rule were simply removed, it would permit abusive scripts that perform a large number of verifications in a tight space. +Since we are planning to remove sigops, then something needs to go in place of that P2SH sigops rule. +Besides limiting the density of CPU usage, it also makes sense to limit signature checks density in transactions as a *support* for the block limit: we don't want that the mempool can be totally filled with high-sigchecks transactions that take ages to clear out (since each block can only consume so many of them). + +It's worth pointing out some of the indirect limits that are created as a result: +- As mentioned above it is impossible for the number of SigChecks in an input to exceed 201, which is the current limit on the 'opcode count' for a single script. + - However, a mainnet standard transaction cannot have a scriptSig longer than 1650 bytes, which means an input in a standard transaction won't be able to have more than 39 SigChecks. +- The per-input rule means that the overall density of SigChecks in a standard transaction cannot exceed 33.5 bytes / SigCheck. This occurs with many inputs having each two SigChecks in a scriptSig of length 26, i.e., an input of size 26+41 = 67 bytes. + - Due to additional script template standardness rules on mainnet, it is practically not possible to produce such a short scriptSig containing two sigchecks. So, practically one can only achieve 36.67 bytes/SigCheck (three SigChecks in a scriptSig of length 69), using 1-of-3 bare multisignatures or some P2SH tricks. +- Likewise standard transactions on mainnet are limited to 100000 bytes, so a standard transaction won't be able to have more than 3000 sigchecks. + +## Choice of numbers + +The numbers proposed for the per-input and per-block limits are based on an examination of current typical uses, and an examination of the historical blockchain. + +The per-input limit is designed to support the two most extreme standard use cases, which deserve continuing support and (though rare) are still used occasionally: + +* Spending a bare 1-of-3 multisignature in ECDSA mode will have 3 SigChecks in around 73 bytes. (Bare multisigs like 1-of-4 and beyond are nonstandard to fund.) +* Spending a P2SH 1-of-15 multisignature in ECDSA mode will have 15 SigChecks in around 589 bytes. + +The proposed per-input rule is a line interpolating between those two cases, with a spare allowance of 4 bytes for each (since ECDSA signatures are variable size, and very rarely are they shorter than this in normal usage). + +Typical use cases are much much lower density than these. P2PK and P2PKH have 1 SigCheck in ~70 bytes and ~105 bytes respectively, and most P2SH multisignatures are 2-of-3 spent with ECDSA which have 3 SigChecks in a ~250 byte scriptSig. I've plotted the common standard use cases below. As can be seen + +![Input sigchecks plotted for various standard scripts](/protocol/forks/2020-05-15-sigchecks-plotinputs.png) + +The block limit is based on an examination of normal usage patterns and observations on historical blocks. Historically, the bulk (75%) of blocks have had a density of between 150 and 250 bytes/SigCheck, and the average density of the whole chain is 176 bytes/SigCheck. Only 2% of blocks have been more dense than 141 bytes/SigCheck. This matches the fact that the vast majority of inputs/outputs are P2PKH, which on the whole (considering funding and spending) have a density of around 182 bytes/SigCheck. Rarely, one sees a block that is packed full of an unusually high fraction of P2SH 2-of-3 multisignature consolidations, which pushes down to the 100 bytes/SigCheck level. Blocks more dense than 98 bytes/SigCheck have been extremely rare, making up 0.01% of blocks. + +The exact number of 141 bytes/SigCheck comes from considering a fairly common use case, which is consolidating many P2PKH inputs. If done with Schnorr signatures then each input is 141 bytes and one SigCheck. + +The choice of 141 bytes/SigCheck for a block is ~4x times more aggressive than the ~36.67 bytes/SigCheck standardness rule. It's worth emphasizing however that this block limit is based on the maximum block size. Thus, it may happen that a normally mined block has an actual density of ~36.67 bytes/SigCheck, however, such a block could not be more than ~1/4th of the maximum block byte size. + +A histogram of historical block densities is plotted below: +![Block sigchecks density historically (up to mid-2019)](/protocol/forks/2020-05-15-sigchecks-plotblocks.png) + +# Implementation + +**Implementation information to be added - TBD** + +# Acknowledgements + +Thanks to Amaury Sechet, Josh Green, Tobias Ruck, Tyler Smith, Calin Culianu, and Andrew Stone for valuable feedback. \ No newline at end of file diff --git a/protocol/forks/2020-11-15-asert-test-vectors.zip b/protocol/forks/2020-11-15-asert-test-vectors.zip new file mode 100644 index 0000000000000000000000000000000000000000..bc5e96e707f916f7fe68ceed989046c2466b5413 GIT binary patch literal 156307 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 JV`5-n001K;ARzz% literal 0 HcmV?d00001 diff --git a/protocol/forks/2020-11-15-asert.md b/protocol/forks/2020-11-15-asert.md new file mode 100644 index 0000000..cb75c9e --- /dev/null +++ b/protocol/forks/2020-11-15-asert.md @@ -0,0 +1,428 @@ +# 2020-11-15 ASERT + + layout: specification + title: ASERT Difficulty Adjustment Algorithm (aserti3-2d) + date: 2020-08-17 + category: spec + activation: 1605441600 + version: 0.6.3 + author: freetrader, Jonathan Toomim, Calin Culianu, Mark Lundeberg, Tobias Ruck + +## Summary + +Activation of a new new difficulty adjustment algorithm 'aserti3-2d' +(or 'ASERT' for short) for the November 2020 Bitcoin Cash upgrade. Activation will be +based on MTP, with the last pre-fork block used as the anchor block. + +## Motivation + +- To eliminate periodic oscillations in difficulty and hashrate +- To reduce the difference in profitability between steady miners and + those who switch to mining other blockchains. +- To maintain average block intervals close to the 10 minute target. +- To bring the average transaction confirmation time close to target time. + +## Technical background + +The November 2017 Bitcoin Cash upgrade introduced a simple moving average as +difficulty adjustment algorithm. This change unfortunately introduced daily +periodic difficulty oscillations, which resulted in long confirmation times +followed by a burst of rapid blocks. This harms the user experience of Bitcoin +Cash, and punishes steady hashrate miners. + +Research into the family of difficulty algorithms based on an exponential +moving average (EMA) resulted in ASERT (Absolutely Scheduled Exponentially +Rising Targets) [[1]](#references), which has been developed by Mark Lundeberg in 2019 and +fully described by him in 2020. An equivalent formula was independently +discovered in 2018 by Jacob Eliosoff and in 2020 by Werner et. al [[6]](#references). + +ASERT does not have the same oscillations as the DAA introduced in the November +2017 upgrade and has a range of other attractive qualities such as robustness +against singularities [[15]](#references) without a need for additional rules, and absence of +accumulation of rounding/approximation errors. + +In extensive simulation against a range of other stable algorithms [[2]](#references), +an ASERT algorithm performed best across criteria that included: + +- Average block times closest to an ideal target time of 600 seconds. +- Average transaction confirmation times closest to the target time. +- Reducing the advantage of non-steady mining strategies, thereby maximizing + the relative profitability of steady mining. + +## Specification + +### Terms and conventions + +* Fork block: The first block mined according to the new consensus rules. +* Anchor block: The parent of the fork block. + + +### Requirements + +#### Target computation +The current block's target bits are calculated by the following algorithm. + +The aserti3-2d algorithm can be described by the following formula: + +``` +next_target = anchor_target * 2**((time_delta - ideal_block_time * (height_delta + 1)) / halflife) +``` + +where: + +- `anchor_target` is the unsigned 256 bit integer equivalent of the `nBits` value in + the header of the anchor block. +- `time_delta` is the difference, in signed integer seconds, between the + timestamp in the header of the current block and the timestamp in the + parent of the anchor block. +- `ideal_block_time` is a constant: 600 seconds, the targeted + average time between blocks. +- `height_delta` is the difference in block height between the current + block and the anchor block. +- `halflife` is a constant parameter sometimes referred to as + 'tau', with a value of 172800 (seconds) on mainnet. +- `next_target` is the integer value of the target computed for the block + after the current block. + +The algorithm below implements the above formula using fixed-point integer +arithmetic and a cubic polynomial approximation to the 2^x term. + +The 'target' values used as input and output are the compact representations +of actual 256-bit integer targets as specified for the 'nBits' field in the +block header. + + +Python-code, uses Python 3 syntax: + +```python +def next_target_aserti3_2d( + anchor_height: int, # height of the anchor block. + anchor_parent_time: int, # timestamp (nTime) of the parent of the anchor block. + anchor_bits: int, # 'nBits' value of the anchor block. + current_height: int, # height of the current block. + current_time: int, # timestamp of the current block. +) -> int: # 'target' nBits of the current block. + ideal_block_time = 600 # in seconds + halflife = 172_800 # 2 days (in seconds) + radix = 2**16 # 16 bits for decimal part of fixed-point integer arithmetic + max_bits = 0x1d00_ffff # maximum target in nBits representation + max_target = bits_to_target(max_bits) # maximum target as integer + + anchor_target = bits_to_target(anchor_bits) + time_delta = current_time - anchor_parent_time + height_delta = current_height - anchor_height # can be negative + # `//` is truncating division (int.__floordiv__) - see note 3 below + exponent = time_delta - ideal_block_time * (height_delta + 1) // halflife + + # Compute equivalent of `num_shifts = math.floor(exponent / 2**16)` + num_shifts = exponent >> 16 + + exponent = exponent - num_shifts * radix + factor = ((195_766_423_245_049 * exponent + + 971_821_376 * exponent**2 + + 5_127 * exponent**3 + + 2**47) >> 48) + radix + next_target = anchor_target * factor + + # Calculate `next_target = math.floor(next_target * 2**factor)` + if num_shifts < 0: + next_target >>= -num_shifts + else: + # Implementations should be careful of overflow here (see note 6 below). + next_target <<= num_shifts + + next_target >>= 16 + if next_target == 0: + return target_to_bits(1) # hardest valid target + + if next_target > max_target: + return max_bits # limit on easiest target + return target_to_bits(next_target) +``` + +Note 1: The reference implementations make use of signed integer arithmetic. + Alternative implementations may use strictly unsigned integer + arithmetic. + +Note 2: All implementations should strictly avoid use of floating point + arithmetic in the computation of the exponent. + +Note 3: In the calculation of the exponent, truncating integer division [[7, 10]](#references) + must be used, as indicated by the `//` division operator (`int.__floordiv__`). + +Note 5: The convenience functions `bits_to_target()` and `target_to_bits()` + are assumed to be available for conversion between compact 'nBits' + and unsigned 256-bit integer representations of targets. + Examples of such functions are available in the C++ and Python3 + reference implementations. + +Note 6: If a limited-width integer type is used for `current_target`, then the `<<` + operator may cause an overflow exception or silent discarding of + most-significant bits. + Implementations must detect and handle such cases to correctly emulate + the behaviour of an unlimited-width calculation. Note that if the result + at this point would exceed `radix * max_target` then `max_bits` may be returned + immediately. + +Note 7: The polynomial approximation that computes `factor` must be performed + with 64 bit unsigned integer arithmetic or better. It *will* + overflow a signed 64 bit integer. Since exponent is signed, it may be + necessary to cast it to unsigned 64 bit integer. In languages like + Java where long is always signed, an unsigned shift `>>> 48` must be + used to divide by 2^48. + + +#### Activation + +The ASERT algorithm will be activated according to the top-level upgrade spec [[3]](#references). + +#### Anchor block + +ASERT requires the choice of an anchor block to schedule future target +computations. + +The first block with an MTP that is greater/equal to the upgrade activation time +will be used as the anchor block for subsequent ASERT calculations. + +This corresponds to the last block mined under the pre-ASERT DAA rules. + +Note 1: The anchor block is the block whose height and target + (nBits) are used as the 'absolute' basis for ASERT's + scheduled target. The timestamp (nTime) of the anchor block's + *parent* is used. + +Note 2: The height, timestamp, and nBits of this block are not known ahead of + the upgrade. Implementations MUST dynamically determine it across the + upgrade. Once the network upgrade has been consolidated by + sufficient chain work or a checkpoint, implementations can simply + hard-code the known height, nBits and associated (parent) timestamp + this anchor block. Implementations MAY also hard-code other equivalent + representations, such as an nBits value and a time offset from the + genesis block. + + +#### REQ-ASERT-TESTNET-DIFF-RESET (testnet difficulty reset) + +On testnet, an additional rule will be included: Any block with a timestamp +that is more than 1200 seconds after its parent's timestamp must use an +nBits value of `max_bits` (`0x1d00ffff`). + + +## Rationale and commentary on requirements / design decisions + +1. Choice of anchor block determination + + Choosing an anchor block that is far enough in the past would result + in slightly simpler coding requirements but would create the possibility + of a significant difficulty adjustment at the upgrade. + + The last block mined according to the old DAA was chosen since this block is + the most proximal anchor and allows for the smoothest transition to the new + algorithm. + +2. Avoidance of floating point calculations + + Compliance with IEEE-754 floating point arithmetic is not generally + guaranteed by programming languages on which a new DAA needs to be + implemented. This could result in floating point calculations yielding + different results depending on compilers, interpreters or hardware. + + It is therefore highly advised to perform all calculations purely using + integers and highly specific operators to ensure identical difficulty + targets are enforced across all implementations. + +3. Choice of half-life + + A half-life of 2 days (`halflife = 2 * 24 * 3600`), equivalent to an e^x-based + time constant of `2 * 144 * ln(2)` or aserti3-415.5, was chosen because it reaches + near-optimal performance in simulations by balancing the need to buffer + against statistical noise and the need to respond rapidly to swings in price + or hashrate, while also being easy for humans to understand: For every 2 days + ahead of schedule a block's timestamp becomes, the difficulty doubles. + +4. Choice of approximation polynomial + + The DAA is part of a control system feedback loop that regulates hashrate, + and the exponential function and its integer approximation comprise its + transfer function. As such, standard guidelines for ensuring control system + stability apply. Control systems tend to be far more sensitive to + differential nonlinearity (DNL) than integral nonlinearity (INL) in their + transfer functions. Our requirements were to have a transfer function that + was (a) monotonic, (b) contained no abrupt changes, (c) had precision and + differential nonlinearity that was better than our multi-block statistical + noise floor, (d) was simple to implement, and (e) had integral nonlinearity + that was no worse than our single-block statistical noise floor. + + A simple, fast to compute cubic approximation of 2^x for 0 <= x < 1 was + found to satisfy all of these requirements. It maintains an absolute error + margin below 0.013% over this range [8]. In order to address the full + (-infinity, +infinity) domain of the exponential function, we found the + `2**(x + n) = 2**n * 2**x` identity to be of use. Our cubic approximation gives + the exactly correct values `f(0) == 1` and `f(1) == 2`, which allows us to + use this identity without concern for discontinuities at the edges of the + approximation's domain. + + First, there is the issue of DNL. Our goal was to ensure that our algorithm + added no more than 25% as much noise as is inherent in our dataset. Our + algorithm is effectively trying to estimate the characteristic hashrate over + the recent past, using a 2-day (~288-block) half-life. Our expected + exponential distribution of block intervals has a standard deviation (stddev) + of 600 seconds. Over a 2-day half-life, our noise floor in our estimated + hashrate should be about `sqrt(1 / 288) * 600` seconds, or 35.3 seconds. Our + chosen approximation method is able to achieve precision of 3 seconds in most + circumstances, limited in two places by 16-bit operations: + `172800 sec / 65536 = 2.6367 sec` + Our worst-case precision is 8 seconds, and is limited by the worst-case + 15-bit precision of the nBits value. This 8 second worst-case is not within + the scope of this work to address, as it would require a change to the block + header. Our worst-case step size is 0.00305%,[[11]](#references) due to the worst-case + 15-bit nBits mantissa issue. Outside the 15-bit nBits mantissa range, our + approximation has a worst-case precision of 0.0021%. Overall, we considered + this to be satisfactory DNL performance. + + Second, there is the issue of INL. Simulation testing showed that difficulty + and hashrate regulation performance was remarkably insensitive to + integral non-linearity. We found that even the use of `f(x) = 1 + x` as an + approximation of `2**x` in the `aserti1` algorithm was satisfactory when + coupled with the `2**(x + n) = 2^n * 2^x` identity, despite having 6% + worst-case INL.[[12, 13]](#references) An approximation with poor INL will still show good + hashrate regulation ability, but will have a different amount of drift for a + given change in hashrate depending on where in the \[0, 1) domain our exponent + (modulo 1) lies. With INL of +/- 1%, for any given difficulty (or target), a + block's timestamp might end up being 1% of 172800 seconds ahead of or behind + schedule. However, out of an abundance of caution, and because achieving + higher precision was easy, we chose to aim for INL that would be comparable + to or less than the typical drift that can be caused by one block. Out of + a 2-day half-life window, one block's variance comprises: + `600 / 172800 = 0.347%` + Our cubic approximation's INL performance is better than 0.013%,[[14]](#references) which + exceeds that requirement by a comfortable margin. + +5. Conversion of difficulty bits (nBits) to 256-bit target representations + + As there are few calculations in ASERT which involve 256-bit integers + and the algorithm is executed infrequently, it was considered unnecessary + to require more complex operations such as doing arithmetic directly on + the compact target representations (nBits) that are the inputs/output of + the difficulty algorithm. + + Furthermore, 256-bit (or even bignum) arithmetic is available in existing + implementation and used within the previous DAA. Performance impacts are + negligible. + +6. Choice of 16-bits of precision for fixed-point math + + The nBits format is comprised of 8 bits of base_256 exponent, followed by a + 24-bit mantissa. The mantissa must have a value of at least 0x008000, which + means that the worst-case scenario gives the mantissa only 15 bits of + precision. The choice of 16-bit precision in our fixed point math ensures + that overall precision is limited by this 15-bit nBits limit. + +7. Choice of name + + The specific algorithm name 'aserti3-2d' was chosen based on: + + - the 'i' refers to the integer-only arithmetic + - the '3' refers to the cubic approximation of the exponential + - the '2d' refers to the 2-day (172800 second) halflife + + +## Implementation advice + +Implementations must not make any rounding errors during their calculations. +Rounding must be done exactly as specified in the algorithm. In practice, +to guarantee that, you likely need to use integer arithmetic exclusively. + +Implementations which use signed integers and use bit-shifting must ensure +that the bit-shifting is arithmetic. + +Note 1: In C++ compilers, right shifting negative signed integers + is formally unspecified behavior until C++20 when it + will become standard [[5]](#references). In practice, C/C++ compilers + commonly implement arithmetic bit shifting for signed + numbers. Implementers are advised to verify good behavior + through compile-time assertions or unit tests. + + +## Reference implementations + +- C++ code for aserti3-2d (see pow.cpp): https://reviews.bitcoinabc.org/D7174 +- Python3 code (see contrib/testgen/validate_nbits_aserti3_2d.py): https://gitlab.com/bitcoin-cash-node/bitcoin-cash-node/-/merge_requests/692 +- Java code: https://github.com/pokkst/asert-java + + +## Test vectors + +Test vectors suitable for validating further implementations of the aserti3-2d +algorithm are available at: + + [Here](/protocol/forks/2020-11-15-asert-test-vectors.zip) + +alternatively at: + + https://gitlab.com/bitcoin-cash-node/bchn-sw/qa-assets/-/tree/master/test_vectors/aserti3-2d + +and alternatively at: + + https://download.bitcoincashnode.org/misc/data/asert/test_vectors + + +## Acknowledgements + +Thanks to Mark Lundeberg for granting permission to publish the ASERT paper [[1]](#references), +Jonathan Toomim for developing the initial Python and C++ implementations, +upgrading the simulation framework [[9]](#references) and evaluating the various difficulty +algorithms. + +Thanks to Jacob Eliosoff, Tom Harding and Scott Roberts for evaluation work +on the families of EMA and other algorithms considered as replacements for +the Bitcoin Cash DAA, and thanks to the following for review and their +valuable suggestions for improvement: + +- Andrea Suisani (sickpig) +- BigBlockIfTrue +- Fernando Pellicioni +- imaginary_username +- mtrycz +- Jochen Hoenicke +- John Nieri (emergent_reasons) +- Tom Zander + + +## References + +[1] "[Static difficulty adjustments, with absolutely scheduled exponentially rising targets (DA-ASERT) -- v2](http://toom.im/files/da-asert.pdf)", Mark B. Lundeberg, July 31, 2020 + +[2] "[BCH upgrade proposal: Use ASERT as the new DAA](https://read.cash/@jtoomim/bch-upgrade-proposal-use-asert-as-the-new-daa-1d875696)", Jonathan Toomim, 8 July 2020 + +[3] [Bitcoin Cash November 15, 2020 Upgrade Specification](2020-11-15-upgrade.md). + +[4] + +[5] + +[6] "[Unstable Throughput: When the Difficulty Algorithm Breaks](https://arxiv.org/pdf/2006.03044.pdf)", Sam M. Werner, Dragos I. Ilie, Iain Stewart, William J. Knottenbelt, June 2020 + +[7] "[Different kinds of integer division](https://harry.garrood.me/blog/integer-division)", Harry Garrood, blog, 2018 + +[8] [Error in a cubic approximation of 2^x for 0 <= x < 1](https://twitter.com/MarkLundeberg/status/1191831127306031104) + +[9] Jonathan Toomim adaptation of kyuupichan's difficulty algorithm simulator: + +[10] "[The Euclidean definition of the functions div and mod](dl.acm.org/doi/10.1145/128861.128862)", Raymond T. Boute, 1992, ACM Transactions on Programming Languages and Systems (TOPLAS). 14. 127-144. 10.1145/128861.128862 + +[11] + +[12] [f(x) = (1 + x)/2^x for 0 + +[14] + +[15] + + +## License + +This specification is dual-licensed under the Creative Commons CC0 1.0 Universal and +GNU All-Permissive licenses. \ No newline at end of file diff --git a/protocol/forks/bip-0009-states.png b/protocol/forks/bip-0009-states.png new file mode 100644 index 0000000000000000000000000000000000000000..09312a1c0381845d10afe2ffbbec912ee1b1b1e0 GIT binary patch literal 30632 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 V8piEj#eBIiT4PV+ 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 Hr-UW|v!; + Peter Todd + Greg Maxwell + Rusty Russell + Comments-Summary: No comments yet. + Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0009 + Status: Final + Type: Informational + Created: 2015-10-04 + License: PD + +## Abstract + +This document specifies a proposed change to the semantics of the 'version' field in Bitcoin blocks, allowing multiple backward-compatible changes (further called "soft forks") to be deployed in parallel. It relies on interpreting the version field as a bit vector, where each bit can be used to track an independent change. These are tallied each retarget period. Once the consensus change succeeds or times out, there is a "fallow" pause after which the bit can be reused for later changes. + +## Motivation + +[BIP 34](/protocol/forks/bip-0034) introduced a mechanism for doing soft-forking changes without a predefined flag timestamp (or flag block height), instead relying on measuring miner support indicated by a higher version number in block headers. As it relies on comparing version numbers as integers however, it only supports one single change being rolled out at once, requiring coordination between proposals, and does not allow for permanent rejection: as long as one soft fork is not fully rolled out, no future one can be scheduled. + +In addition, BIP 34 made the integer comparison (nVersion >= 2) a consensus rule after its 95% threshold was reached, removing 231+2 values from the set of valid version numbers (all negative numbers, as nVersion is interpreted as a signed integer, as well as 0 and 1). This indicates another downside this approach: every upgrade permanently restricts the set of allowed nVersion field values. This approach was later reused in [BIP 66](/protocol/forks/bip-0066) and [BIP 65](/protocol/forks/bip-0065), which further removed nVersions 2 and 3 as valid options. As will be shown further, this is unnecessary. + +## Specification + +Each soft fork deployment is specified by the following per-chain parameters (further elaborated below): + +1. The **name** specifies a very brief description of the soft fork, reasonable for use as an identifier. For deployments described in a single BIP, it is recommended to use the name "bipN" where N is the appropriate BIP number. +2. The **bit** determines which bit in the nVersion field of the block is to be used to signal the soft fork lock-in and activation. It is chosen from the set {0,1,2,...,28}. +3. The **starttime** specifies a minimum median time past of a block at which the bit gains its meaning. +4. The **timeout** specifies a time at which the deployment is considered failed. If the median time past of a block >= timeout and the soft fork has not yet locked in (including this block's bit state), the deployment is considered failed on all descendants of the block. + +### Selection guidelines + +The following guidelines are suggested for selecting these parameters for a soft fork: + +1. **name** should be selected such that no two softforks, concurrent or otherwise, ever use the same name. +2. **bit** should be selected such that no two concurrent softforks use the same bit. +3. **starttime** should be set to some date in the future, approximately one month after a software release date including the soft fork. This allows for some release delays, while preventing triggers as a result of parties running pre-release software. +4. **timeout** should be 1 year (31536000 seconds) after starttime. + +A later deployment using the same bit is possible as long as the starttime is after the previous one's +timeout or activation, but it is discouraged until necessary, and even then recommended to have a pause in between to detect buggy software. + +### States + +With each block and soft fork, we associate a deployment state. The possible states are: + +1. **DEFINED** is the first state that each soft fork starts out as. The genesis block is by definition in this state for each deployment. +2. **STARTED** for blocks past the starttime. +3. **LOCKED_IN** for one retarget period after the first retarget period with STARTED blocks of which at least threshold have the associated bit set in nVersion. +4. **ACTIVE** for all blocks after the LOCKED_IN retarget period. +5. **FAILED** for one retarget period past the timeout time, if LOCKED_IN was not reached. + +### Bit flags + +The nVersion block header field is to be interpreted as a 32-bit little-endian integer (as present), and bits are selected within this integer as values (1 << N) where N is the bit number. + +Blocks in the STARTED state get an nVersion whose bit position bit is set to 1. The top 3 bits of such blocks must be +001, so the range of actually possible nVersion values is [0x20000000...0x3FFFFFFF], inclusive. + +Due to the constraints set by BIP 34, BIP 66 and BIP 65, we only have 0x7FFFFFFB possible nVersion values available. +This restricts us to at most 30 independent deployments. By restricting the top 3 bits to 001 we get 29 out of those +for the purposes of this proposal, and support two future upgrades for different mechanisms (top bits 010 and 011). +When a block nVersion does not have top bits 001, it is treated as if all +bits are 0 for the purposes of deployments. + +Miners should continue setting the bit in LOCKED_IN phase so uptake is visible, though this has no effect on +consensus rules. + +### New consensus rules + +The new consensus rules for each soft fork are enforced for each block that has ACTIVE state. + +### State transitions + +![State transition diagram](/protocol/forks/bip-0009-states.png) + +The genesis block has state DEFINED for each deployment, by definition. + + State GetStateForBlock(block) { + if (block.height == 0) { + return DEFINED; + } + +All blocks within a retarget period have the same state. This means that if +floor(block1.height / 2016) = floor(block2.height / 2016), they are guaranteed to have the same state for every +deployment. + + if ((block.height % 2016) != 0) { + return GetStateForBlock(block.parent); + } + +Otherwise, the next state depends on the previous state: + + switch (GetStateForBlock(GetAncestorAtHeight(block, block.height - 2016))) { + +We remain in the initial state until either we pass the start time or the timeout. GetMedianTimePast in the code below +refers to the median nTime of a block and its 10 predecessors. The expression GetMedianTimePast(block.parent) is +referred to as MTP in the diagram above, and is treated as a monotonic clock defined by the chain. + + case DEFINED: + if (GetMedianTimePast(block.parent) >= timeout) { + return FAILED; + } + if (GetMedianTimePast(block.parent) >= starttime) { + return STARTED; + } + return DEFINED; + +After a period in the STARTED state, if we're past the timeout, we switch to FAILED. If not, we tally the bits set, +and transition to LOCKED_IN if a sufficient number of blocks in the past period set the deployment bit in their +version numbers. The threshold is ≥1916 blocks (95% of 2016), or ≥1512 for testnet (75% of 2016). +The transition to FAILED takes precedence, as otherwise an ambiguity can arise. +There could be two non-overlapping deployments on the same bit, where the first one transitions to LOCKED_IN while the +other one simultaneously transitions to STARTED, which would mean both would demand setting the bit. + +Note that a block's state never depends on its own nVersion; only on that of its ancestors. + + case STARTED: + if (GetMedianTimePast(block.parent) >= timeout) { + return FAILED; + } + int count = 0; + walk = block; + for (i = 0; i < 2016; i++) { + walk = walk.parent; + if (walk.nVersion & 0xE0000000 == 0x20000000 && (walk.nVersion >> bit) & 1 == 1) { + count++; + } + } + if (count >= threshold) { + return LOCKED_IN; + } + return STARTED; + +After a retarget period of LOCKED_IN, we automatically transition to ACTIVE. + + case LOCKED_IN: + return ACTIVE; + +And ACTIVE and FAILED are terminal states, which a deployment stays in once they're reached. + + case ACTIVE: + return ACTIVE; + + case FAILED: + return FAILED; + } + } + +**Implementation** + +It should be noted that the states are maintained along block chain +branches, but may need recomputation when a reorganization happens. + +Given that the state for a specific block/deployment combination is completely determined by its ancestry before the +current retarget period (i.e. up to and including its ancestor with height block.height - 1 - (block.height % 2016)), +it is possible to implement the mechanism above efficiently and safely by caching the resulting state of every multiple-of-2016 +block, indexed by its parent. + +### Warning mechanism + +To support upgrade warnings, an extra "unknown upgrade" is tracked, using the "implicit bit" mask = (block.nVersion & ~expectedVersion) != 0. Mask will be non-zero whenever an unexpected bit is set in nVersion. Whenever LOCKED_IN for the unknown upgrade is detected, the software should warn loudly about the upcoming soft fork. It should warn even more loudly after the next retarget period (when the unknown upgrade is in the ACTIVE state). + +### getblocktemplate changes + +The template request Object is extended to include a new item: + +**template request** + +| Key | Required | Type | Description | +|------|-----------|-------|---------------| +| rules | No | Array of Strings | list of supported softfork deployments, by name | + +The template Object is also extended: + +**template** + +| Key | Required | Type | Description | +|------|-----------|-------|---------------| +| rules | Yes | Array of Strings | list of softfork deployments, by name, that are active state | +| vbavailable | Yes | Object | set of pending, supported softfork deployments; each uses the softfork name as the key, and the softfork bit as its value | +| vbrequired | No | Number | bit mask of softfork deployment version bits the server requires enabled in submissions | + +The "version" key of the template is retained, and used to indicate the server's preference of deployments. +If versionbits is being used, "version" MUST be within the versionbits range of [0x20000000...0x3FFFFFFF]. +Miners MAY clear or set bits in the block version WITHOUT any special "mutable" key, provided they are listed among the template's "vbavailable" and (when clearing is desired) NOT included as a bit in "vbrequired". + +Softfork deployment names listed in "rules" or as keys in "vbavailable" may be prefixed by a '!' character. +Without this prefix, GBT clients may assume the rule will not impact usage of the template as-is; typical examples of this would be when previously valid transactions cease to be valid, such as BIPs [16](/protocol/forks/bip-0016), [65](/protocol/forks/bip-0065), [66](/protocol/forks/bip-0066), [68](/protocol/forks/bip-0068), [112](/protocol/forks/bip-0112), and [113](/protocol/forks/bip-0113). +If a client does not understand a rule without the prefix, it may use it unmodified for mining. +On the other hand, when this prefix is used, it indicates a more subtle change to the block structure or generation transaction; examples of this would be BIP 34 (because it modifies coinbase construction) and 141 (since it modifies the txid hashing and adds a commitment to the generation transaction). +A client that does not understand a rule prefixed by '!' must not attempt to process the template, and must not attempt to use it for mining even unmodified. + +## Support for future changes + +The mechanism described above is very generic, and variations are possible for future soft forks. Here are some ideas that can be taken into account. + +**Modified thresholds** + +The 1916 threshold (based on in BIP 34's 95%) does not have to be maintained for eternity, but changes should take the effect on the warning system into account. In particular, having a lock-in threshold that is incompatible with the one used for the warning system may have long-term effects, as the warning system cannot rely on a permanently detectable condition anymore. + +**Conflicting soft forks** +At some point, two mutually exclusive soft forks may be proposed. The naive way to deal with this is to never create software that implements both, but that is making a bet that at least one side is guaranteed to lose. Better would be to encode "soft fork X cannot be locked-in" as consensus rule for the conflicting soft fork - allowing software that supports both, but can never trigger conflicting changes. + +**Multi-stage soft forks** +Soft forks right now are typically treated as booleans: they go from an inactive to an active state in blocks. Perhaps at some point there is demand for a change that has a larger number of stages, with additional validation rules that get enabled one by one. The above mechanism can be adapted to support this, by interpreting a combination of bits as an integer, rather than as isolated bits. The warning system is compatible with this, as (nVersion & ~nExpectedVersion) will always be non-zero for increasing integers. + +## Rationale + +The failure timeout allows eventual reuse of bits even if a soft fork was +never activated, so it's clear that the new use of the bit refers to a +new BIP. It's deliberately very coarse-grained, to take into account +reasonable development and deployment delays. There are unlikely to be +enough failed proposals to cause a bit shortage. + +The fallow period at the conclusion of a soft fork attempt allows some +detection of buggy clients, and allows time for warnings and software +upgrades for successful soft forks. + +## Deployments + +~~A living list of deployment proposals can be found [here](https://github.com/bitcoin/bips/blob/master/bip-0009/assignments.mediawiki)~~. + +## Copyright + +This document is placed in the public domain. diff --git a/protocol/forks/chips/2021-05-multiple-op-returns-for-bitcoin-cash.md b/protocol/forks/chips/2021-05-multiple-op-returns-for-bitcoin-cash.md new file mode 100644 index 0000000..89735ee --- /dev/null +++ b/protocol/forks/chips/2021-05-multiple-op-returns-for-bitcoin-cash.md @@ -0,0 +1,205 @@ +# CHIP: Multiple OP_RETURNs for Bitcoin Cash + + Title: Multiple OP_RETURNs for Bitcoin Cash + First Submission Date: 2021-03-12 + Owner: Benjamin Scherrey @proteusguy on Telegram + Authors: Benjamin Scherrey + Earlier concept - Jonathan Silverblood + Technical spec - BigBlockIfTrue + Type: Technical + Is consensus change: No + Status: FINAL + Last Edit Date: 2021-05-17 + +This CHIP was included in [HF-20210515](/protocol/forks/hf-20210515). + +## Discussions + +[CHIP Discussion at Bitcoincashresearch.org](https://bitcoincashresearch.org/t/multiple-op-returns-this-time-for-real/315) + +[Issues/PRs for this CHIP](https://github.com/ActorForth/Auction-Protocol/issues) + +Our team is available for chat on the [ActorForth gitter](https://gitter.im/ActorForth/community). + +## Summary + +We propose to make presence of multiple OP_RETURN outputs qualify as standard transactions subject to the existing 223 byte limit for OP_RETURNs across all outputs of the transaction. We are silent in this proposal as to whether or not the [223 byte limit](https://github.com/bitcoincashorg/bitcoincash.org/blob/1b2008d3ac2b30a2ab26193dc8d3652fc33fb798/spec/may-2018-hardfork.md) is the correct one for BCH but are content to leave that alone in order to improve the chances of getting consensus for this change for the May 2021 fork. This makes the impact on nodes and miners as minimal and risk-free as possible while allowing developers to use OP_RETURN in a manner that justifies its core benefit - experimentation of new features/protocol updates without breaking existing systems or stressing the block chain with extraneous UTXOs which is an undesirable alternative option should this improvement not be accepted. + +## Motivation and Benefits + +Quite early in Bitcoin history, attempts to inject miscellaneous data into the block chain were made that made correct parsing and identification of transactions more difficult but, most importantly, bloated the UTXOs with superfluous data that potentially had a very real negative impact on operators of nodes, miners, and wallet users. The introduction of OP_RETURN with a restricted size limit that was deemed unspendable by the protocol was the compromise that protected everyone's interests. Allowing this data to be inserted but then also ignored by all who didn't care about it gave BCH developers an excellent tool in which to try out development ideas and protocol improvements in an isolated manner without introducing backwards or forward incompatibilities. Perhaps more importantly, it gave the entire BCH community an experimental model that allowed a natural maturity for protocol proposals to mature informed by actual use on the block chain rather than depend entirely on theoretical opinions on how such a protocol change might impact the BCH chain. SLP is an excellent example of such a circumstance where, after considerable efforts and real-life trials have been made, has resulted in serious proposals such as OP_GROUP to be able to be realistically considered for incorporation into the core protocol with significantly less risk than would otherwise have been possible. + +The primary limitation of OP_RETURN is that the protocol standard only allows for one instance of an OP_RETURN output per transaction which means developers who want to build on top of other OP_RETURN utilizing capabilities must either create complex parsing scripts or divide their efforts across multiple transactions. Both of these options introduce incredible complexity and often are simply not viable for demonstrating a real-world use case for how the feature would behave on the BCH chain should it be incorporated into the core protocol. + +This proposal aims to correct this minor oversight in order to bring the full potential of OP_RETURN's experimental expressiveness to the BCH chain without incurring any additional trade-offs that were part of its original design. + +The benefits of this proposal also reach users and businesses in drastically reducing foodprint when dealing with several OP_RETURN for their given use cases. Users will be able to use OP_RETURN space more efficiently, pack information in fewer transactions, use less space in mined blocks and save fees while mempool will see fewer congestions –for this specific cause. + +## Specification + +The only technical elements we've identified are changes to the existing node systems to remove the limit of a single OP_RETURN and to enforce the existing size limit for OP_RETURN based outputs across all aggregate OP_RETURN outputs in the transaction. + +Formally, we set the rules as follows: + +* An OP_RETURN output is an output with a locking script consisting of the OP_RETURN opcode followed by zero or more data pushes. +* A transaction is non-standard if the total byte size of the locking scripts of all OP_RETURN outputs is greater than 223. +* While the [BIP113](https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki) median time is less than 1621080000 (2021-05-15T12:00:00Z), a transaction is also non-standard if the number of OP_RETURN outputs is greater than one. + +Some remarks: + +* The size of the locking script is not just the raw data size, but includes the OP_RETURN opcode and the data push opcodes. In case of a single OP_RETURN output, only up to 220 bytes of data can be stored, because you need 1 byte for the OP_RETURN opcode, 1 byte for the OP_PUSHDATA1 opcode, and 1 byte for the length of the data. More bytes are lost if there is more than one data push operation, e.g. when the [4-byte prefix guideline](https://upgradespecs.bitcoincashnode.org/op_return-prefix-guideline/) is followed. +* In case of a single OP_RETURN output, the rules are identical to the status quo. +* In the extreme case, the rules imply a maximum of 223 OP_RETURN outputs, because the locking script of every OP_RETURN output is at least one byte (the OP_RETURN opcode itself). + +## Current Implementations + +* [Full implementation of the rules in Bitcoin Cash Node, including activation logic](https://gitlab.com/bitcoin-cash-node/bitcoin-cash-node/-/merge_requests/1115). +* [Implementation of the rules in Flowee, without activation logic](https://gitlab.com/FloweeTheHub/thehub/-/blob/master/libs/server/policy/policy.cpp) (allows multiple outputs immediately instead of only after 2021-05-15T12:00:00Z). + +Both implementations introduce `"oversize-op-return"` as a new standardness error code, besides the existing `"multi-op-return"` error which becomes obsolete after multiple OP_RETURN outputs are allowed. In both implementations, the number 223 used in the rules can be overridden with the `-datacarriersize=` command-line option. + +* [Implementation of the rules in Bitcoin Unlimited, without activation logic](https://gitlab.com/bitcoinunlimited/BCHUnlimited/-/merge_requests/2453). + + +## Implementation Costs and Risks + +Evaluating the changes required across the popular nodes demonstrates that the impact in terms of lines of code affected are minor and isolated. For Bitcoin Unlimited there's an existing check that only one OP_RETURN exists which can be removed. A mechanism for counting the aggregate size of all the OP_RETURNs is quite simple to introduce in the same source file. Unit tests would be approximately twice the implementation size which we find typical of well designed C++ code. + +APIs that want to support multiple OP_RETURN are also easy to modify. + +## Ongoing Costs and Risks + +After the initial changes are made to the core node systems no ongoing costs are anticipated. Risks are restricted to other non-standard experimental development code that may depend/demand that there only be a single OP_RETURN but, unless the code serves some purpose such as a linter or tx compliance tool, it's unlikely that such code was appropriate in the first place. + +Presently the [SLP specification](https://github.com/simpleledger/slp-specifications/blob/master/slp-token-type-1.md#consensus-rules) requires its OP_RETURN to be at vout[0]. Any protocol code seeking to co-exist with SLP would want to ensure that it be in a later output to appear in the transaction in order to prevent accidental conflicts. We recommend that OP_RETURN based protocols no longer specify a positional requirement for their data but, instead, establish another mechanism for identifying which OP_RETURN belongs to them. + +Now that the limit of a single OP_RETURN has been removed, future well behaved development utilizing OP_RETURN would no longer be designed with such a presumption in mind. + +### Design & Implementation Process Timeline + +2020-09-21 [Initial comment on bitcoincashresearch.org](https://bitcoincashresearch.org/t/2021-bch-upgrade-items-brainstorm/130/23). + +2020-10-14 [Trial implementation of proposal on Bitcoin Unlimited node](https://github.com/ActorForth/BitcoinUnlimited/commit/fd10cbd9872b157d906a03d3a4ccf7c0ddd42c65). (note: this doesn't implement aggregate size limit) + +2020-10-?? Trial modifications to a [test fork of the Javascript bch-js API](https://github.com/ActorForth/bch-js) and the python Bitcash API libraries (currently in a private repo) completed. + +2021-02-24 [Proposal to be introduced for the May 2021 fork](https://bitcoincashresearch.org/t/multiple-op-returns-this-time-for-real/315). + +2021-03-21 This CHIP created. + +2021-03-24 Proposed completion for PRs to public Bitcoin Unlimited, Bitcoin Cash Node, bch-js API, and Bitcash API projects to support this CHIP. Basically T+9 days after proposal is approved. + +2021-03-13 [Flowee PR](https://gitlab.com/FloweeTheHub/thehub/-/commit/a9d3c2ee9279f2aa46890d74ce26f6e252623e72), [2](https://gitlab.com/FloweeTheHub/thehub/-/commit/45dd785f3916caa336a628d879dc7228fb73e520) support implemented by Tom Zander. + +2021-03-14 [BCHN PR](https://gitlab.com/bitcoin-cash-node/bitcoin-cash-node/-/merge_requests/1115) support implemented by BigBlockIfTrue. + +2021-03-25 [Bitcoin Unlimited PR](https://gitlab.com/bitcoinunlimited/BCHUnlimited/-/merge_requests/2453) support implemented by Nicolai Skye. + +2021-05-15 Deployment to BCH Mainnet Chain + +## Evaluation of Alternatives + +Alternatives to this proposal amount to restating original alternatives to OP_RETURN (such as the multi-sig data hack), introducing complex parsing requirements to OP_RETURN outputs, or dividing OP_RETURN dependent submissions across multiple transactions. All are more complex and risky than this proposal. + +Jonathan Silverblood identified 3 other alternative proposals considered in 2020, [BUIP149: Delimited OP_RETURNs](https://bitco.in/forum/threads/buip149-delimited-op_returns.26362/), [BUIP139](https://bitco.in/forum/threads/buip139-multiple-op_return-with-less-rules.24951/), and [BUIP140](https://bitco.in/forum/threads/buip140-multiple-op_return-with-shared-size-limit.24952/). + +BUIP149 puts multiple OP_RETURNs in a single output and requires complex parsing scripts and potentially could collide with existing protocols using OP_RETURNs already including SLP. It also proposes to change the maximum size of OP_RETURN data in a transaction. Community efforts to incorporate this option are significantly higher than this CHIP. + +BUIP139 is actually quite similar to this CHIP except it proposes that there be some fixed limit to the number of OP_RETURNs. One reason why BUIP139 should be considered inferior is because it makes it more difficult to change the op_return max bytes in the future, as it would magnify the impact, for example: + +If BUIP139 took place, and was set to 4 op_returns / transaction, then if we want to change the byte size it now has to be an even number of 4. If we naively increase by 10 bytes, then a total of 40 more bytes can be used, rather than the 10 byte intended. + +BUIP140 is similar to this CHIP but was just not taken forward. Major difference is that it debates or introduces the explicit possibility of increasing the total size of OP_RETURN data but does not require it. + +Without the aggregate size consideration, the future impact of changing the legal sizes of OP_RETURN becomes more profound and possibly difficult to predict but saves tx creators from having to track a total across all OP_RETURNs. The opinion of the author is that the days of being able to consider parts of transactions independent of others are long gone so this is not a meaningful shortcoming. Size reductions would be profound and dangerous changes and are unlikely to be practical to deploy. Size increases should be based on empirical demonstrations of value through experimental apps that push these limits while demonstrating real value to the BCH ecosystem. Regardless of the ultimate size, having that quantity come from a shared pool helps allow OP_RETURN based protocols to be expressed naturally in a manner more closely resembling what their ultimate core protocol implementations would look like rather than having to perform hacks to fit within a per-OP_RETURN limit that would necessarily be smaller. Again these are future considerations outside of the direct scope of this CHIP. + +## List of Major Stakeholders + + +## Statements + +### Full node developers + +from Tom Zander, owner [Flowee](https://flowee.org) + +> This change will have little to no cost on our ecosystem while enabling more usecases to be added over time, to be developed without touching consensus rules in the traditional permissionless manner. I fully support this proposal and have code ready to ship for this. + +from freetrader, lead maintainer of Bitcoin Cash Node + +> This is a simple and logical change that provides more flexibility for OP_RETURN users without affecting the trade-offs associated with the limit. The proposal has been implemented in a BCHN change request and a majority of BCHN maintainers supports activating this change on 15 May 2021. + +> While this CHIP arrived at a fairly late moment, we believe that sufficient awareness has been raised such that it can nevertheless be activated in May provided all major full node clients can implement it by then. + +### Major businesses + +from Benjaim Scherrey + +> My company, [Biggest Fan Productions](https://biggestfan.net), has developed a [protocol](https://github.com/ActorForth/Auction-Protocol/blob/main/proposal-spec.md) that utilizes SLP NFTs & FTs to perform on-chain tracked open call auctions for assets such as concert tickets. To fully be able to represent the state of the auction in a trustless manner it requires an additional OP_RETURN to be allowed in BCH transactions. This is notice of my support and personal interest in this CHIP. + +### Miners and pools + +I have sought out contacts for such organizations and have received no responses. Appreciate any follow up on contacting these entities. + +### Wallets and clients + +I have sought out contacts for such organizations and have received few responses. Appreciate any follow up on contacting these entities. + +An ElectronCash SLP wallet dev had no strong opinion on this CHIP (or the CHIP process) and registered no objection when asked. + +### Application Developers + +from Jonathan Silverblood: + +> I believe multiple OP_RETURNs should be adopted, it is highly valuable as it makes it possible for OP_RETURN based protocols to work together to create value. I also believe that counting the aggregate number of bytes is in line with the intent of the original functionality. + +from Joey Masterpig + +> I would like to add my support to this proposal as a Stakeholder. Founder of the upcoming SLP NFT game enter-the-sphere.com . Co-Founder of Spice Token, and a Director of the SLP Foundation. + +> I believe having multiple_opreturns will add some interesting possibilities for NFTs for Enter The Sphere, our token solution needs to be as competitive as possible, and anything that expands the chance of something innovative being done on SLP, is something I support. + +> As I understand, implementation of this change will allow multiple assets to be on a single tx, something that can be very useful for pairing NFTs with other assets. A function that allows us to link NFT items with other assets easier than current. + +> This is my personal opinion and support as a non-technical stakeholder, this is not a technical endorsement nor have i reviewed deeply about whether these changes have cons on a technical basis (as far as I understand there is none). + +Stoyan Zhekov, bch-js developer + +> I think Multiple OP_RETURN CHIP will provide a way for better NFTs - both NFT (SLP) payload and BCP payload can be parts of one transaction, which will reduce the number of queries to retrieve the external content. + +### Users + +from Leandro Di Marco + +> I see this initiative with great value for users, who will engage with the OP_RETURN resource more efficiently. And while such optimization would seem samll at the moment, it will surely become more relevant as Bitcoin Cash grows in adoption. + +## Copyright + +BSD 3-Clause License + +Copyright (c) 2018, 2020 Benjamin Scherrey, BiggestFan Productions Co. Ltd +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/protocol/forks/chips/2021-05-unconfirmed-transaction-chain-limit.md b/protocol/forks/chips/2021-05-unconfirmed-transaction-chain-limit.md new file mode 100644 index 0000000..d22eecf --- /dev/null +++ b/protocol/forks/chips/2021-05-unconfirmed-transaction-chain-limit.md @@ -0,0 +1,141 @@ +# CHIP: Unconfirmed Transaction Chain Limit + +This CHIP was included in [HF-20210515](/protocol/forks/hf-20210515). + +## Authors + +**CHIP Owner:** +Josh Green, Software Verde + +**Contributors:** + + John Jamiel, Software Verde + Doug McCollough, City of Dublin, OH + Emil Oldenburg, Bitcoin.com + Roger Ver, Bitcoin.com + Mark Lamb, CoinFLEX + +## Summary +**Version 1.2.1** + +When a transaction is first transmitted on the Bitcoin Cash network, it is considered “unconfirmed” until it is “mined” into a block. These transactions that are not yet mined are also referred to as “zero-conf” transactions. Transactions are dependent upon other transactions, such that they are chained together; the value allocated by one transaction is then spent by a subsequent transaction. + +Currently, the Bitcoin Cash network only permits transactions to be chained together 50 times before a block must include them. Transactions exceeding the 50th chain are often ignored by the network, despite being valid. Once a transaction is submitted to the network, it cannot be revoked. This situation, when encountered, can be extremely difficult to remedy with today’s available tools and simultaneously creates an unnecessary amount of complexity when being accounted for by network and applications developers. This CHIP is a formal request to remove the unconfirmed transaction chain limit=depth (50tx) and size (101kb) entirely from the Bitcoin Cash ecosystem. + +**Discussion URL:** https://bitcoincashresearch.org/t/chip-unconfirmed-transaction-chain-limit/302/32 + +**Full Change History URL:** https://github.com/softwareverde/bitcoin-cash-chips/blob/master/unconfirmed-transaction-chain-limit.md + + +## Motivations + +Transactions exceeding the unconfirmed transaction chaining limit are often ignored by the network, despite being considered a valid transaction. For these transactions, this leaves the value transferred in an ambiguous state: it has been transferred, but some (or all) of the network may not record this transfer. Once value has been transferred by a transaction, the balance may not be distributed in a different proportion or to a separate receiver (often known as a “double-spend”) due to the network’s convention to prefer the first-seen transfer rather than the newer transfer. Therefore, the only viable path forward in this scenario is to transmit the same (perfectly identical) transaction again to the network. However, if the wallet or service is connected to peers that accepted the transaction, rebroadcasting the same transaction does not cause the connected peers to retransmit it themselves--causing the transaction to be stuck with no recourse other than hoping to connect to a new peer that has not yet seen the transaction. For this reason, it is important that all nodes agree on the unconfirmed transaction chain limit. + +Additionally, determining if the transaction was not accepted by the network is a difficult to solve problem with the current available toolset. Error-responses from nodes rejecting a transaction have not been standardized, and often times nodes will silently reject the transaction--sometimes the node may not even be aware that the transaction is invalid because its dependent has not been seen yet, and the node itself cannot determine the transaction’s chain depth. + +It is also not always known to the user, service, or wallet how deep the unconfirmed transaction already is when it’s received; it’s entirely possible the coins received are at the limit, and determining that state can be near-impossible without the help of a full-node. + +The problem from a user/app’s perspective is that they have created a valid transaction and are given little indication that it will not be mined within a block. The tools for recourse are limited, and the tools for monitoring for such a situation is also limited. + + +The unconfirmed transaction chain limit is mostly an artifact of a relatively unused feature heldover from artificially restricting block size, a feature called “Child Pays for Parent”. According to research conducted by Tom Zander found [here](https://flowee.org/news/2020-07-cpfp-research/), there is very limited usage of CPfP on the BCH network. In short, in his 3 months of monitoring network activity there were only 7 valid use cases where CPfP was used to lift the transaction above the 1-sat-per-byte. This feature is not used in BCH yet still restricts the user experience and increases the complexity of development of wallets and applications built on top of Bitcoin Cash. + +Issues with transaction chaining are exacerbated by the long block times periodically seen in Bitcoin Cash, the causes of which have been discussed elsewhere and were a major motivating factor in switching to the ASERT difficult adjustment algorithm. Having a static transaction chaining limit while blocks somewhat frequently take over an hour (or even two hours) to be mined, results in a scenario where transactions could be significantly more at risk than normal. Note, though, that even without these extenuating circumstances, this is always a risk with the proof of work system. + +Given the motivations for implementing the transaction chaining limit are largely no longer relevant, the lack of sufficient tooling to allow SPV clients to account for it, and its poor interaction with the current semantics of transaction relaying, it appears that the transaction chaining limit provides little value while simultaneously increasing the difficulty of transacting on the Bitcoin Cash network. + +**Personal Impacts** + +During a Dublin Identity beta test with real users, an issue occurred causing sign-ups to periodically fail. After investigation, it was identified that users’ transactions from the server used to fund SLP token transfers were not being accepted by the network due to the transaction chain limit being enforced. This problem has since been mitigated by the limit being increased to 50, along with some process changes. + +CoinFLEX uses SLP to distribute FLEX token dividends to its users. The server distributes these dividends periodically, via chaining transactions. These distributions were found to periodically fail due to reaching the unconfirmed transaction chaining limit. CoinFLEX is mitigating this problem by using multiple UTXOs to spawn the chains, however their large user base and small limit of 50 transactions per UTXO, are causing disproportionate complexity within their system. Raising the limit combined with increasing the base number of originating UTXOs helps to limit backend complexity. Removing the limit would remove significant complexity for rejection edge-cases where a rejection was unable to be determined or was left unnoticed. + +During Bitcoin Cash meetups it is not uncommon for users of the Bitcoin.com wallet to make more than 50 transactions within the timespan of a block, especially due to the encouraged behavior of brand-new users to transfer their BCH to other members of the meetup to “try it out”. The user experience and “wow” factor of the technology is quickly doused when a new user’s transaction fails to send because their received UTXO is deeply chained. Varying block times exacerbates this problem. + +Software Verde has developed multiple applications that create and distribute transactions across the BCH network. Managing multiple UTXO pools in order to handle appropriately scaling is doable but creates additional unwanted complexity. While transactions will likely never completely be “fire and forget” on BCH, creating a balance with a larger buffer (i.e. supporting a longer chain limit) and having better available tools would allow us to produce applications more reliably and for less cost, facilitating the adoption of Bitcoin Cash to businesses and enterprises. + + +## Technical Description + +The current policy limit of 50 unconfirmed ancestors or descendants, and the 101kb chain limit, is to be removed entirely once MTP >= 1621080000 and this limit removal remains in affect even in the case of a subsequent re-org to below that MTP. + + +## Security Considerations + +Uncoordinated changes to mempool rules would likely result in a degradation of 0-conf transaction security. 0-conf transaction security is dependent on the network’s solution to circumventing double-spends. If nodes do not agree to enforce the same limits, merchants accepting transactions that have exceeded the unconfirmed transaction chaining limit would be at an increased risk of encountering and accepting a double-spend transaction. + +Example: A malicious user submits a transaction exceeding the current chaining limit, knowing the merchant is connected to a node that does not enforce the limit. The node accepts this transaction as it is considered valid and the merchant believes they’ve received a payment from a valid 0-conf transaction. Due to its unconfirmed chain depth, for this transaction to propagate the node in question must wait to broadcast the transaction to its peers until after a new block has been found. During this time a malicious user could prepare a second transaction spending the same coin. If submitted immediately after the new block has been found the two transactions will be in a race. Since the first transaction has not yet been broadcast to the rest of the network, there is an increased likelihood the second transaction could be seen by the majority of the network before the first transaction has had an opportunity to propagate. This situation is exacerbated if the node accepting the longer unconfirmed chain depth transaction does not also re-relay the transaction after a new block is mined that does not contain the transaction. + + +## Implementation Costs and Risks + +From our research and discussions removal of the Unconfirmed Transaction Chain Limit does not present any apparent risks if conducted in a coordinated manner and presents zero risk of a network split. According to the research conducted by developer FreeTrader of BCHN, there is no apparent loss of performance in BCHN with the limit removed. However, if changes to the mempool rules are not coordinated by the different node implementations, 0-conf transaction facility and security will likely suffer. + +Costs associated with implementing this change are hard to encapsulate in this proposal. At a minimum, this CHIP recognizes there is an operational burden that coordinated network upgrades place on node developers and users. Overall, this change will require a non-negligible amount of development time to implement, translating to a cost of labor, of which is bound to vary depending on the full-node implementation and route to resolution. + +Additionally, the cost of investigating solutions for the unconfirmed transaction chaining limit have been significant for those who have undertaken the task. Based on an informal survey of BU and BCHN members, General Protocols has estimated approximately 500 engineering hours have been invested in development and general investigation of increasing the chained tx limit. This commitment of hours has been useful to understand the potential limitations bounding the limit from being completely removed. After thorough investigation, no ill effect on performance has been found. + + +## Evaluation of Alternatives + +If it is deemed necessary to keep the unconfirmed transaction chain limit in some capacity then a significantly larger increase to the limit would be a reasonable alternative. + +From our research, there isn’t a resource that becomes exhausted by a deep 0-conf chain. If there is indeed a technical limit, then we would advocate for node-developers to find what a responsible value is for that limit and suggest that here. + +For the purposes of proposing an alternative solution: a 32MB block can hold approximately 135k transactions. This limit could serve as a hypothetical starting point. + + +## Stakeholders + +Stakeholders relative to this proposal include: + +Full-node implementations +Node Developers +Wallet Developers +Bitcoin Cash related businesses. + +In our previous discussion we have engaged with several key stakeholders to understand their position on the requested change. + +**Stakeholders Engaged in Discussion** + + BCHN + Bitcoin Unlimited + Bitcoin Verde + General Protocols + Bitcoin.com + Coinflex + Flowee + General Protocols + +**Stakeholders Position Unknown** + + BCHD + Knuth + +## Stakeholders Statements + +Jonathan Silverblood - Casual Wallet +>I believe that for money to be useful, it needs to be able to move at low cost and with ease. The current unconfirmed transaction chain limitation is effectively friction that makes Bitcoin Cash less useful as money, and I support a complete removal of the limit. + +John Nieri - General Protocols +>GP supports the updated recommendations of this CHIP and commits any reasonable resources toward its realization. There is still room to expand security considerations and costs which are not trivial. Although this is a non-consensus CHIP, the expansion would make it an even better precedent for the high bar that we want to establish in the BCH ecosystem. + +## CHIP Sponsors + +**Software Verde** is a custom software development company based out of Columbus, Ohio, USA that has been in operation since 2011 and working within public and crypto sectors since early 2017. Software Verde has extensive experience working with local governments to promote the adoption of blockchain technology and utilization of cryptocurrencies, and is the author and maintainer of the BCH Full Node, Bitcoin Verde. + +**City of Dublin, OH** is a municipality of approximately 50k residents that has made an investment into the adoption of blockchain technology. In turn, Dublin has built a blockchain-based digital identity management system utilizing BCH SLP tokens as a reward mechanism. In late 2019, Dublin’s identity management project moved into a beta-testing phase where Software Verde was tasked with creating digital IDs for city employees and rewarding them with tokens for their participation. + +**Bitcoin.com** is a provider of Bitcoin Cash related financial services and the owners of the Bitcoin.com wallet, one of Bitcoin Cash’s most popular non-custodial mobile friendly wallets. Their website provides important services such as a cryptocurrency exchange, reporting network related news, and providing information to help influence the growth and adoption of Bitcoin Cash and Bitcoin Cash related businesses. + +**CoinFLEX** is a popular cryptocurrency exchange service as well as the providers of the first Bitcoin Cash futures and lending exchange. CoinFLEX is the primary distributor of Flex Coins, an SLP token used to pay dividends to their users. Their business provides several unique financial services that attract cryptocurrency investors to the network, as well as foster a culture of professional trading within the Bitcoin Cash community. + +## Timeline + +This proposal is low risk and stands to provide high benefit to the network as a whole. In addition, this request is a network-change only and therefore is not at risk of causing a chain split; however, uncoordinated changes to mempool rules by different full-nodes would likely result in a degradation of 0-conf transaction security. For these reasons, it is requested that this change be implemented in a coordinated manner on May 15th. + +Choosing this date in particular is not significant in and of itself, although there seems to be no reason to deviate from history purely for the sake of it. + +## License + +To the extent possible under law, this work has waived all copyright and related or neighboring rights to this work under CC0. \ No newline at end of file diff --git a/protocol/forks/hf-20200515.md b/protocol/forks/hf-20200515.md new file mode 100644 index 0000000..3dd9196 --- /dev/null +++ b/protocol/forks/hf-20200515.md @@ -0,0 +1,72 @@ +# HF-20200515 + + layout: specification + title: 2020-MAY-15 Network Upgrade Specification + date: 2020-04-26 + category: spec + activation: 1589544000 + version: 0.4 + +## Summary + +When the median time past [[1]](#references) of the most recent 11 blocks (MTP-11) is greater than or equal to UNIX timestamp 1589544000 (May 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 SigOps counting and limiting system is replaced with a new system, referred to as SigChecks. +* A new opcode called OP_REVERSEBYTES has been added to the script system. +* Enforcement of the Infrastructure Funding Plan, subject to activation by [BIP 9](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki) miner signalling. + +The following are not consensus changes, but are recommended policy changes for Bitcoin Cash implementations: + +* The default for max number of in-mempool ancestors is changed from 25 to 50. +* The default for max number of in-mempool descendants is changed from 25 to 50. +* Automatic replay protection for future upgrade. + +## SigChecks + +Enforcement of sigops limits is removed, and replaced with new limits based on the number of signature checks that are actually executed when running a script. This new system is called SigChecks. + +Details can be found in the [full specification: SigChecks](/protocol/forks/2020-05-15-sigchecks). + +## OP_REVERSEBYTES + +This new opcode reverses the order of bytes in a string. It can be used to change endianness. + +Details can be found in the [full specification: OP_REVERSEBYTES](/protocol/forks/2020-05-15-op_reversebytes). + +## Infrastructure Funding Plan + +The purpose of the Infrastructure Funding Plan (IFP) is to provide funding to development projects working on common Bitcoin Cash infrastructure. +If activated, it enforces that 5% of the block reward is spent to one of a set of specified addresses. +Activation is triggered via [BIP 9](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki) version bits signalling prior to the May 15 upgrade. + +More detailed can be found in the [full specification](/protocol/forks/2020-05-15-ifp). + +## 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 2020. 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 1605441600 (Nov 2020 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 1605441600 +(Nov 2020 upgrade) Bitcoin Cash full nodes implementing the May 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. \ No newline at end of file diff --git a/protocol/forks/hf-20201115.md b/protocol/forks/hf-20201115.md new file mode 100644 index 0000000..f697410 --- /dev/null +++ b/protocol/forks/hf-20201115.md @@ -0,0 +1,67 @@ +# 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 addition of a new coinbase rule. + +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). + +## Coinbase Rule + +The purpose of the new coinbase rule is to provide funding to development projects working on common Bitcoin Cash infrastructure. + +The coinbase rule enforces that at least 8% of the block reward must be spent as a single output to the following Bitcoin Cash address: +`bitcoincash:pqnqv9lt7e5vjyp0w88zf2af0l92l8rxdgnlxww9j9`. + +The amount of the output must be equal to or greater than the integer `required`, calculated as follows using integer math: +``` +required = (8 * blockReward) / 100 +``` + +## 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. \ No newline at end of file diff --git a/protocol/forks/hf-20210515.md b/protocol/forks/hf-20210515.md new file mode 100644 index 0000000..b21e0cc --- /dev/null +++ b/protocol/forks/hf-20210515.md @@ -0,0 +1,22 @@ +# HF-20210515 + +The May 2021 hard fork was the first to be comprised of [CHIPs](#chips). + +## CHIPs + +A CasH Improvement Proposal (CHIP) is a change request for the Bitcoin Cash protocol. +CHIPs can be written and published by any member of the Bitcoin Cash community. +They are evaluated publicly, giving the authors an opportunity to make any clarifications or adjustments based on feedback from the rest of the community. +Once there is sufficient support for a CHIP amongst node developers, it is scheduled for release in a future hard fork. +Changes from multiple CHIPs may be included in a single hard fork. + +Along with the creation of the CHIP system, the expectation of biannual releases was relaxed. +If no CHIPs have support, there will be no hard-fork. + +## Contents + +The May 2021 hard fork is comprised the following CHIPs: + +1. [Unconfirmed Transaction Chain Limit](/protocol/forks/chips/2021-05-unconfirmed-transaction-chain-limit) +2. [Multiple OP_RETURNs for Bitcoin Cash](/protocol/forks/chips/2021-05-multiple-op-returns-for-bitcoin-cash) +