Browse Source

Fixed conflict

Conflicts:
	README.mediawiki
2015_12_bip1
slush0 11 years ago
parent
commit
65442116b4
  1. 41
      README.mediawiki
  2. 2
      bip-0010.mediawiki
  3. 2
      bip-0013.mediawiki
  4. 4
      bip-0032.mediawiki
  5. 35
      bip-0037.mediawiki
  6. 2
      bip-0070.mediawiki

41
README.mediawiki

@ -10,173 +10,214 @@ Those proposing changes should consider that ultimately consent may rest with th
!Number
!Title
!Owner
!Type
!Status
|- style="background-color: #cfffcf"
| [[bip-0001.mediawiki|1]]
| BIP Purpose and Guidelines
| Amir Taaki
| Standard
| Active
|-
| [[bip-0010.mediawiki|10]]
| Multi-Sig Transaction Distribution
| Alan Reiner
| Informational
| Draft
|- style="background-color: #cfffcf"
| [[bip-0011.mediawiki|11]]
| M-of-N Standard Transactions
| Gavin Andresen
| Standard
| Accepted
|- style="background-color: #ffcfcf"
| [[bip-0012.mediawiki|12]]
| OP_EVAL
| Gavin Andresen
| Standard
| Withdrawn
|- style="background-color: #cfffcf"
| [[bip-0013.mediawiki|13]]
| Address Format for pay-to-script-hash
| Gavin Andresen
| Standard
| Final
|- style="background-color: #cfffcf"
| [[bip-0014.mediawiki|14]]
| Protocol Version and User Agent
| Amir Taaki, Patrick Strateman
| Standard
| Accepted
|- style="background-color: #ffcfcf"
| [[bip-0015.mediawiki|15]]
| Aliases
| Amir Taaki
| Standard
| Withdrawn
|- style="background-color: #cfffcf"
| [[bip-0016.mediawiki|16]]
| Pay To Script Hash
| Gavin Andresen
| Standard
| Accepted
|- style="background-color: #ffcfcf"
| [[bip-0017.mediawiki|17]]
| OP_CHECKHASHVERIFY (CHV)
| Luke Dashjr
| Withdrawn
| Draft
|-
| [[bip-0018.mediawiki|18]]
| hashScriptCheck
| Luke Dashjr
| Standard
| Draft
|-
| [[bip-0019.mediawiki|19]]
| M-of-N Standard Transactions (Low SigOp)
| Luke Dashjr
| Standard
| Draft
|- style="background-color: #ffcfcf"
| [[bip-0020.mediawiki|20]]
| URI Scheme
| Luke Dashjr
| Standard
| Replaced
|- style="background-color: #cfffcf"
| [[bip-0021.mediawiki|21]]
| URI Scheme
| Nils Schneider, Matt Corallo
| Standard
| Accepted
|- style="background-color: #cfffcf"
| [[bip-0022.mediawiki|22]]
| getblocktemplate - Fundamentals
| Luke Dashjr
| Standard
| Accepted
|- style="background-color: #cfffcf"
| [[bip-0023.mediawiki|23]]
| getblocktemplate - Pooled Mining
| Luke Dashjr
| Standard
| Accepted
|- style="background-color: #cfffcf"
| [[bip-0030.mediawiki|30]]
| Duplicate transactions
| Pieter Wuille
| Standard
| Accepted
|- style="background-color: #cfffcf"
| [[bip-0031.mediawiki|31]]
| Pong message
| Mike Hearn
| Standard
| Accepted
|- style="background-color: #cfffcf"
| [[bip-0032.mediawiki|32]]
| Hierarchical Deterministic Wallets
| Pieter Wuille
| Informational
| Accepted
|-
| [[bip-0033.mediawiki|33]]
| Stratized Nodes
| Amir Taaki
| Standard
| Draft
|- style="background-color: #cfffcf"
| [[bip-0034.mediawiki|34]]
| Block v2, Height in coinbase
| Gavin Andresen
| Standard
| Accepted
|- style="background-color: #cfffcf"
| [[bip-0035.mediawiki|35]]
| mempool message
| Jeff Garzik
| Standard
| Accepted
|-
| [[bip-0036.mediawiki|36]]
| Custom Services
| Stefan Thomas
| Standard
| Draft
|- style="background-color: #cfffcf"
| [[bip-0037.mediawiki|37]]
| Bloom filtering
| Mike Hearn and Matt Corallo
| Standard
| Accepted
|-
| [[bip-0038.mediawiki|38]]
| Passphrase-protected private key
| Mike Caldwell
| Standard
| Draft
|-
| [[bip-0039.mediawiki|39]]
| Mnemonic code for generating deterministic keys
| Slush
| Standard
| Accepted
| Draft
|-
| 40
| Stratum wire protocol
| Slush
| Standard
| BIP number allocated
|-
| 41
| Stratum mining protocol
| Slush
| Standard
| BIP number allocated
<!-- 42-49 reserved for stratum extensions -->
|-
| [[bip-0050.mediawiki|50]]
| March 2013 Chain Fork Post-Mortem
| Gavin Andresen
| Informational
| Draft
<!-- 50 series reserved for a group of post-mortems -->
|-
| [[bip-0060.mediawiki|60]]
| Fixed Length "version" Message (Relay-Transactions Field)
| Amir Taaki
| Standard
| Draft
|-
| [[bip-0061.mediawiki|61]]
| "reject" P2P message
| Gavin Andresen
| Standard
| Draft
|-
| [[bip-0070.mediawiki|70]]
| Payment protocol
| Gavin Andresen
| Standard
| Draft
|-
| [[bip-0071.mediawiki|71]]
| Payment protocol MIME types
| Gavin Andresen
| Standard
| Draft
|-
| [[bip-0072.mediawiki|72]]
| Payment protocol URIs
| Gavin Andresen
| Standard
| Draft
|-
| [[bip-0073.mediawiki|73]]
| Use "Accept" header with Payment Request URLs
| Stephen Pair
| Standard
| Draft
|}

2
bip-0010.mediawiki

@ -26,7 +26,7 @@ This BIP proposes the following process, with terms in quotes referring to recom
# The user creating the TxDP (the preparer) will create the transaction as they would like to see it spent, but with blank TxIn scripts (where the signatures scripts will eventually go).
# The proposed transaction will be spending a set of unspent TxOuts available in the blockchain. The full transactions containing these TxOuts will be serialized and included, as well. This so that the values of the TxIns can be verified before signing (the prev-tx-hash is part of the data being signed, but the value is not). By including the full tx, the signing party can verify that the tx matches the OutPoint hash, and then verify input values, all without any access to the blockchain.
# The TxDP will have an "DP ID" or "Unsigned ID" which is the hash of the proposed transaction with blanked scripts, in Base58. This is a specific naming convention to make sure it is not confused with the actual the transaction ID that it will have after it is broadcast (the transaction ID cannot be determined until after all signatures are collected). The final Tx ID can be referred to as its "Broadcast ID", in order to distinguish it from the pre-signed ID.
# The TxDP will have an potentially-unordered list of sig-pubkey pairs which represent collected signatures. If you receive a TxDP missing only your signature, you can broadcast it as soon as you sign it.
# The TxDP will have a potentially-unordered list of sig-pubkey pairs which represent collected signatures. If you receive a TxDP missing only your signature, you can broadcast it as soon as you sign it.
# Identical TxDP objects with different signatures can be easily combined. This allows one party to send out all the requests for signatures at once, and combine them all when they are received (instead of having to "pass it around".
# For cases where the TxDP might be put into a file or sent via email, it should use .txdp or .btcdp suffix

2
bip-0013.mediawiki

@ -25,7 +25,7 @@ The new bitcoin address type is constructed in the same manner as existing bitco
Version byte is 5 for a main-network address, 196 for a testnet address.
The 20-byte hash is the hash of the script that will be used to redeem the coins.
And the 4-byte checksum is the first four bytes of the SHA256 hash of the version and hash.
And the 4-byte checksum is the first four bytes of the double SHA256 hash of the version and hash.
==Rationale==

4
bip-0032.mediawiki

@ -238,6 +238,10 @@ A C++ implementation is available at https://github.com/CodeShark/CoinClasses/tr
A Ruby implementation is available at https://github.com/wink/money-tree
A Go implementation is available at https://github.com/WeMeetAgain/go-hdwallet
A JavaScript implementation is available at https://github.com/sarchar/brainwallet.github.com/tree/bip32
==Acknowledgements==
* Gregory Maxwell for the original idea of type-2 deterministic wallets, and many discussions about it.

35
bip-0037.mediawiki

@ -148,7 +148,40 @@ Obviously, nFlags == 1 or nFlags == 2 mean that the filter will get dirtier as m
A ''Merkle tree'' is a way of arranging a set of items as leaf nodes of tree in which the interior nodes are hashes of the concatenations of their child hashes. The root node is called the ''Merkle root''. Every Bitcoin block contains a Merkle root of the tree formed from the blocks transactions. By providing some elements of the trees interior nodes (called a ''Merkle branch'') a proof is formed that the given transaction was indeed in the block when it was being mined, but the size of the proof is much smaller than the size of the original block.
The encoding works as follows: we traverse the tree in depth-first order, storing a bit for each traversed node, signifying whether the node is the parent of at least one matched leaf txid (or a matched txid itself). In case we are at the leaf level, or this bit is 0, its merkle node hash is stored, and its children are not explored further. Otherwise, no hash is stored, but we recurse into both (or the only) child branch. During decoding, the same depth-first traversal is performed, consuming bits and hashes as they written during encoding.
====Constructing a partial merkle tree object====
* Traverse the merkle tree from the root down, and for each encountered node:
** Check whether this node corresponds to a leaf node (transaction) that is to be included OR any parent thereof:
*** If so, append a '1' bit to the flag bits
*** Otherwise, append a '0' bit.
** Check whether this node is a internal node (non-leaf) AND is the parent of an included leaf node:
*** If so:
**** Descend into its left child node, and process the subtree beneath it entirely (depth-first).
**** If this node has a right child node too, descend into it as well.
*** Otherwise: append this node's hash to the hash list.
====Parsing a partial merkle tree object====
As the partial block message contains the number of transactions in the entire block, the shape of the merkle tree is known before hand. Again, traverse this tree, computing traversed node's hashes along the way:
* Read a bit from the flag bit list:
** If it is '0':
*** Read a hash from the hashes list, and return it as this node's hash.
** If it is '1' and this is a leaf node:
*** Read a hash from the hashes list, store it as a matched txid, and return it as this node's hash.
** If it is '1' and this is an internal node:
*** Descend into its left child tree, and store its computed hash as L.
*** If this node has a right child as well:
**** Descend into its right child, and store its computed hash as R.
**** If L == R, the partial merkle tree object is invalid.
**** Return Hash(L || R).
*** If this node has no right child, return Hash(L || L).
The partial merkle tree object is only valid if:
* All hashes in the hash list were consumed and no more.
* All bits in the flag bits list were consumed (except padding to make it into a full byte), and no more.
* The hash computed for the root node matches the block header's merkle root.
* The block header is valid, and matches its claimed proof of work.
* In two-child nodes, the hash of the left and right branches was never equal.
===Bloom filter format===

2
bip-0070.mediawiki

@ -112,7 +112,7 @@ A PaymentRequest is PaymentDetails optionally tied to a merchant's identity:
|-
| pki_type || public-key infrastructure (PKI) system being used to identify the merchant. All implementation should support "none", "x509+sha256" and "x509+sha1".
|-
| pki_data || PKI-system data that identifies the merchant and can be used to create a digital signature. In the case of X.509 certificates, pki_data one or more X.509 certificates (see Certificates section below).
| pki_data || PKI-system data that identifies the merchant and can be used to create a digital signature. In the case of X.509 certificates, pki_data contains one or more X.509 certificates (see Certificates section below).
|-
| serialized_payment_details || A protocol-buffer serialized PaymentDetails message.
|-

Loading…
Cancel
Save