diff options
author | Robert Spigler <RobertSpigler@ProtonMail.ch> | 2021-04-25 23:57:34 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-25 23:57:34 -0400 |
commit | 4794d70c5e6a42c7f3705052395ac80616ceae19 (patch) | |
tree | c8270e12b6bbce7b969208e503878c48592f753c /bip-0341.mediawiki | |
parent | 7ae9e025e809a870c1d1c9077c2ebc4515734365 (diff) | |
parent | 40b10c83db225b891c3b5153d69aedb5c7297aed (diff) | |
download | bips-4794d70c5e6a42c7f3705052395ac80616ceae19.tar.xz |
Merge pull request #3 from bitcoin/master
Update local
Diffstat (limited to 'bip-0341.mediawiki')
-rw-r--r-- | bip-0341.mediawiki | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/bip-0341.mediawiki b/bip-0341.mediawiki index 0f8d32a..586bb39 100644 --- a/bip-0341.mediawiki +++ b/bip-0341.mediawiki @@ -284,9 +284,7 @@ The reason for this is to increase leaf entropy and prevent an observer from lea == Test vectors == -Examples with creation transaction and spending transaction pairs, valid and invalid. - -Examples of preimage for sighashing for each of the sighash modes. +The test vectors used in the [https://github.com/bitcoin/bitcoin/blob/3820090bd619ac85ab35eff376c03136fe4a9f04/src/test/script_tests.cpp#L1718 Bitcoin Core unit test framework] can be found [https://github.com/bitcoin-core/qa-assets/blob/main/unit_test_data/script_assets_test.json?raw=true here]. == Rationale == @@ -294,7 +292,43 @@ Examples of preimage for sighashing for each of the sighash modes. == Deployment == -TODO +This BIP is deployed concurrently with [[bip-0342.mediawiki|BIP342]]. + +For Bitcoin signet, these BIPs are always active. + +For Bitcoin mainnet and testnet3, these BIPs will be deployed by "version bits" with the name "taproot" and bit 2, using [[bip-0009.mediawiki|BIP9]] modified to use a lower threshold, with an additional ''min_activation_height'' parameter and replacing the state transition logic for the DEFINED, STARTED and LOCKED_IN states as follows: + + case DEFINED: + if (GetMedianTimePast(block.parent) >= starttime) { + return STARTED; + } + return DEFINED; + + case STARTED: + 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; + } else if (GetMedianTimePast(block.parent) >= timeout) { + return FAILED; + } + return STARTED; + + case LOCKED_IN: + if (block.nHeight < min_activation_height) { + return LOCKED_IN; + } + return ACTIVE; + +For Bitcoin mainnet, the starttime is epoch timestamp 1619222400 (midnight 24 April 2021 UTC), timeout is epoch timestamp 1628640000 (midnight 11 August 2021 UTC), the threshold is 1815 blocks (90%) instead of 1916 blocks (95%), and the min_activation_height is block 709632 (expected approximately 12 November 2021). + +For Bitcoin testnet3, the starttime is epoch timestamp 1619222400 (midnight 24 April 2021 UTC), timeout is epoch timestamp 1628640000 (midnight 11 August 2021 UTC), the threshold is 1512 blocks (75%), and the min_activation_height is block 0. == Backwards compatibility == As a soft fork, older software will continue to operate without modification. |