summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.mediawiki20
-rw-r--r--bip-0011.mediawiki2
-rw-r--r--bip-0039.mediawiki4
-rw-r--r--bip-0099.mediawiki2
-rw-r--r--bip-0104.mediawiki2
-rw-r--r--bip-0105.mediawiki2
-rw-r--r--bip-0106.mediawiki2
-rw-r--r--bip-0107.mediawiki2
-rw-r--r--bip-0341.mediawiki10
9 files changed, 26 insertions, 20 deletions
diff --git a/README.mediawiki b/README.mediawiki
index b488b10..8e613cc 100644
--- a/README.mediawiki
+++ b/README.mediawiki
@@ -441,13 +441,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Mark Friedenbach, Kalle Alm, BtcDrak
| Standard
| Draft
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0099.mediawiki|99]]
|
| Motivation and deployment of consensus rule changes ([soft/hard]forks)
| Jorge Timón
| Informational
-| Draft
+| Rejected
|- style="background-color: #ffcfcf"
| [[bip-0100.mediawiki|100]]
| Consensus (hard fork)
@@ -476,34 +476,34 @@ Those proposing changes should consider that ultimately consent may rest with th
| Pieter Wuille
| Standard
| Withdrawn
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0104.mediawiki|104]]
| Consensus (hard fork)
| 'Block75' - Max block size like difficulty
| t.khan
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #ffcfcf"
| [[bip-0105.mediawiki|105]]
| Consensus (hard fork)
| Consensus based block size retargeting algorithm
| BtcDrak
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #ffcfcf"
| [[bip-0106.mediawiki|106]]
| Consensus (hard fork)
| Dynamically Controlled Bitcoin Block Size Max Cap
| Upal Chakraborty
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #ffcfcf"
| [[bip-0107.mediawiki|107]]
| Consensus (hard fork)
| Dynamic limit on the block size
| Washington Y. Sanchez
| Standard
-| Draft
+| Rejected
|- style="background-color: #ffcfcf"
| [[bip-0109.mediawiki|109]]
| Consensus (hard fork)
diff --git a/bip-0011.mediawiki b/bip-0011.mediawiki
index e5052eb..8375f55 100644
--- a/bip-0011.mediawiki
+++ b/bip-0011.mediawiki
@@ -23,7 +23,7 @@ A couple of motivating use cases:
* A wallet secured by a "wallet protection service" (WPS). 2-of-2 signatures required transactions will be used, with one signature coming from the (possibly compromised) computer with the wallet and the second signature coming from the WPS. When sending protected bitcoins, the user's bitcoin client will contact the WPS with the proposed transaction and it can then contact the user for confirmation that they initiated the transaction and that the transaction details are correct. Details for how clients and WPS's communicate are outside the scope of this BIP. Side note: customers should insist that their wallet protection service provide them with copies of the private key(s) used to secure their wallets that they can safely store off-line, so that their coins can be spent even if the WPS goes out of business.
-* Three-party escrow (buyer, seller and trusted dispute agent). 2-of-3 signatures required transactions will be used. The buyer and seller and agent will each provide a public key, and the buyer will then send coins into a 2-of-3 CHECKMULTISIG transaction and send the seller and the agent the transaction id. The seller will fulfill their obligation and then ask the buyer to co-sign a transaction ( already signed by seller ) that sends the tied-up coins to him (seller).<br />If the buyer and seller cannot agree, then the agent can, with the cooperation of either buyer or seller, decide what happens to the tied-up coins. Details of how buyer, seller, and agent communicate to gather signatures or public keys are outside the scope of this BIP.
+* Three-party escrow (buyer, seller, and trusted dispute agent). 2-of-3 signatures required transactions will be used. The buyer and seller and agent will each provide a public key, and the buyer will then send coins into a 2-of-3 CHECKMULTISIG transaction and send the seller and the agent the transaction id. The seller will fulfill their obligation and then ask the buyer to co-sign a transaction ( already signed by seller ) that sends the tied-up coins to him (seller).<br />If the buyer and seller cannot agree, then the agent can, with the cooperation of either buyer or seller, decide what happens to the tied-up coins. Details of how buyer, seller, and agent communicate to gather signatures or public keys are outside the scope of this BIP.
==Specification==
diff --git a/bip-0039.mediawiki b/bip-0039.mediawiki
index bd70558..2b95c51 100644
--- a/bip-0039.mediawiki
+++ b/bip-0039.mediawiki
@@ -156,6 +156,9 @@ JavaScript:
* https://github.com/bitpay/bitcore-mnemonic
* https://github.com/bitcoinjs/bip39 (used by [[https://github.com/blockchain/My-Wallet-V3/blob/v3.8.0/src/hd-wallet.js#L121-L146|blockchain.info]])
+Java:
+* https://github.com/bitcoinj/bitcoinj/blob/master/core/src/main/java/org/bitcoinj/crypto/MnemonicCode.java
+
Ruby:
* https://github.com/sreekanthgs/bip_mnemonic
@@ -165,6 +168,7 @@ Rust:
Swift:
* https://github.com/CikeQiu/CKMnemonic
* https://github.com/yuzushioh/WalletKit
+* https://github.com/matter-labs/web3swift/blob/develop/Sources/web3swift/KeystoreManager/BIP39.swift
C++:
* https://github.com/libbitcoin/libbitcoin-system/blob/master/include/bitcoin/system/wallet/mnemonic.hpp
diff --git a/bip-0099.mediawiki b/bip-0099.mediawiki
index 1496557..8882e00 100644
--- a/bip-0099.mediawiki
+++ b/bip-0099.mediawiki
@@ -4,7 +4,7 @@
Author: Jorge Timón <jtimon@jtimon.cc>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0099
- Status: Draft
+ Status: Rejected
Type: Informational
Created: 2015-06-20
License: PD
diff --git a/bip-0104.mediawiki b/bip-0104.mediawiki
index 00db9a3..1244b3e 100644
--- a/bip-0104.mediawiki
+++ b/bip-0104.mediawiki
@@ -5,7 +5,7 @@
Author: t.khan <teekhan42@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0104
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2017-01-13
License: BSD-2-Clause
diff --git a/bip-0105.mediawiki b/bip-0105.mediawiki
index 125d852..3643562 100644
--- a/bip-0105.mediawiki
+++ b/bip-0105.mediawiki
@@ -5,7 +5,7 @@
Author: BtcDrak <btcdrak@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0105
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2015-08-21
License: PD
diff --git a/bip-0106.mediawiki b/bip-0106.mediawiki
index f622907..193d4cd 100644
--- a/bip-0106.mediawiki
+++ b/bip-0106.mediawiki
@@ -5,7 +5,7 @@
Author: Upal Chakraborty <bitcoin@upalc.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0106
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2015-08-24
</pre>
diff --git a/bip-0107.mediawiki b/bip-0107.mediawiki
index 84cd6a6..b82db61 100644
--- a/bip-0107.mediawiki
+++ b/bip-0107.mediawiki
@@ -5,7 +5,7 @@
Author: Washington Y. Sanchez <washington.sanchez@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0107
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2015-09-11
License: PD
diff --git a/bip-0341.mediawiki b/bip-0341.mediawiki
index 564071f..6c71b8d 100644
--- a/bip-0341.mediawiki
+++ b/bip-0341.mediawiki
@@ -13,6 +13,7 @@
License: BSD-3-Clause
Requires: 340
Post-History: 2019-05-06: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016914.html [bitcoin-dev] Taproot proposal
+ 2019-10-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-October/017378.html [bitcoin-dev] Taproot updates
</pre>
==Introduction==
@@ -104,16 +105,17 @@ If the parameters take acceptable values, the message is the concatenation of th
** ''nLockTime'' (4): the ''nLockTime'' of the transaction.
** If the ''hash_type & 0x80'' does not equal <code>SIGHASH_ANYONECANPAY</code>:
*** ''sha_prevouts'' (32): the SHA256 of the serialization of all input outpoints.
-*** ''sha_amounts'' (32): the SHA256 of the serialization of all input amounts.
+*** ''sha_amounts'' (32): the SHA256 of the serialization of all spent output amounts.
+*** ''sha_scriptpubkeys'' (32): the SHA256 of the serialization of all spent output ''scriptPubKey''s.
*** ''sha_sequences'' (32): the SHA256 of the serialization of all input ''nSequence''.
** If ''hash_type & 3'' does not equal <code>SIGHASH_NONE</code> or <code>SIGHASH_SINGLE</code>:
*** ''sha_outputs'' (32): the SHA256 of the serialization of all outputs in <code>CTxOut</code> format.
* Data about this input:
** ''spend_type'' (1): equal to ''(ext_flag * 2) + annex_present'', where ''annex_present'' is 0 if no annex is present, or 1 otherwise (the original witness stack has two or more witness elements, and the first byte of the last element is ''0x50'')
-** ''scriptPubKey'' (35): ''scriptPubKey'' of the previous output spent by this input, serialized as script inside <code>CTxOut</code>. Its size is always 35 bytes.
** If ''hash_type & 0x80'' equals <code>SIGHASH_ANYONECANPAY</code>:
*** ''outpoint'' (36): the <code>COutPoint</code> of this input (32-byte hash + 4-byte little-endian).
*** ''amount'' (8): value of the previous output spent by this input.
+*** ''scriptPubKey'' (35): ''scriptPubKey'' of the previous output spent by this input, serialized as script inside <code>CTxOut</code>. Its size is always 35 bytes.
*** ''nSequence'' (4): ''nSequence'' of this input.
** If ''hash_type & 0x80'' does not equal <code>SIGHASH_ANYONECANPAY</code>:
*** ''input_index'' (4): index of this input in the transaction input vector. Index of the first input is 0.
@@ -123,11 +125,11 @@ If the parameters take acceptable values, the message is the concatenation of th
** If ''hash_type & 3'' equals <code>SIGHASH_SINGLE</code>:
*** ''sha_single_output'' (32): the SHA256 of the corresponding output in <code>CTxOut</code> format.
-The total length of ''SigMsg()'' is at most ''209'' bytes<ref>'''What is the output length of ''SigMsg()''?''' The total length of ''SigMsg()'' can be computed using the following formula: ''177 - is_anyonecanpay * 52 - is_none * 32 + has_annex * 32''.</ref>. Note that this does not include the size of sub-hashes such as ''sha_prevouts'', which may be cached across signatures of the same transaction.
+The total length of ''SigMsg()'' is at most ''206'' bytes<ref>'''What is the output length of ''SigMsg()''?''' The total length of ''SigMsg()'' can be computed using the following formula: ''174 - is_anyonecanpay * 49 - is_none * 32 + has_annex * 32''.</ref>. Note that this does not include the size of sub-hashes such as ''sha_prevouts'', which may be cached across signatures of the same transaction.
In summary, the semantics of the [[bip-0143.mediawiki|BIP143]] sighash types remain unchanged, except the following:
# The way and order of serialization is changed.<ref>'''Why is the serialization in the signature message changed?''' Hashes that go into the signature message and the message itself are now computed with a single SHA256 invocation instead of double SHA256. There is no expected security improvement by doubling SHA256 because this only protects against length-extension attacks against SHA256 which are not a concern for signature messages because there is no secret data. Therefore doubling SHA256 is a waste of resources. The message computation now follows a logical order with transaction level data first, then input data and output data. This allows to efficiently cache the transaction part of the message across different inputs using the SHA256 midstate. Additionally, sub-hashes can be skipped when calculating the message (for example `sha_prevouts` if <code>SIGHASH_ANYONECANPAY</code> is set) instead of setting them to zero and then hashing them as in BIP143. Despite that, collisions are made impossible by committing to the length of the data (implicit in ''hash_type'' and ''spend_type'') before the variable length data.</ref>
-# The signature message commits to the ''scriptPubKey''<ref>'''Why does the signature message commit to the ''scriptPubKey''?''' This prevents lying to offline signing devices about output being spent, even when the actually executed script (''scriptCode'' in BIP143) is correct. This means it's possible to compactly prove to a hardware wallet what (unused) execution paths existed.</ref>.
+# The signature message commits to the ''scriptPubKey'' of the spent output and if the <code>SIGHASH_ANYONECANPAY</code> flag is not set, the message commits to the ''scriptPubKey''s of ''all'' outputs spent by the transaction. <ref>'''Why does the signature message commit to the ''scriptPubKey''?''' This prevents lying to offline signing devices about output being spent, even when the actually executed script (''scriptCode'' in BIP143) is correct. This means it's possible to compactly prove to a hardware wallet what (unused) execution paths existed. Moreover, committing to all spent ''scriptPubKey''s helps offline signing devices to determine the subset that belong to its own wallet. This is useful in [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017801.html automated coinjoins].</ref>.
# If the <code>SIGHASH_ANYONECANPAY</code> flag is not set, the message commits to the amounts of ''all'' transaction inputs.<ref>'''Why does the signature message commit to the amounts of all transaction inputs?''' This eliminates the possibility to lie to offline signing devices about the fee of a transaction.</ref>
# The signature message commits to all input ''nSequence'' if <code>SIGHASH_NONE</code> or <code>SIGHASH_SINGLE</code> are set (unless <code>SIGHASH_ANYONECANPAY</code> is set as well).<ref>'''Why does the signature message commit to all input ''nSequence'' if <code>SIGHASH_SINGLE</code> or <code>SIGHASH_NONE</code> are set?''' Because setting them already makes the message commit to the <code>prevouts</code> part of all transaction inputs, it is not useful to treat the ''nSequence'' any different. Moreover, this change makes ''nSequence'' consistent with the view that <code>SIGHASH_SINGLE</code> and <code>SIGHASH_NONE</code> only modify the signature message with respect to transaction outputs and not inputs.</ref>
# The signature message includes commitments to the taproot-specific data ''spend_type'' and ''annex'' (if present).