Skip to content

Commit

Permalink
Fix formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
petertodd committed Oct 21, 2013
1 parent 3b0e745 commit d9e890a
Show file tree
Hide file tree
Showing 36 changed files with 129 additions and 240 deletions.
4 changes: 2 additions & 2 deletions README.mediawiki
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
People wishing to submit BIPs, first should propose their idea or document to the mailing list. After discussion they should email Greg Maxwell <gmaxwell@gmail.com>. After copy-editing and acceptance, it will be published here.
People wishing to submit BIPs, first should propose their idea or document to the mailing list. After discussion they should email Greg Maxwell &lt;gmaxwell@gmail.com&gt;. After copy-editing and acceptance, it will be published here.

We are fairly liberal with approving BIPs, and try not to be too involved in decision making on behalf of the community. The exception is in very rare cases of dispute resolution when a decision is contentious and cannot be agreed upon. In those cases, the conservative option will always be preferred.

Having a BIP here does not make it a formally accepted standard until its status becomes Active. For a BIP to become Active requires the mutual consent of the community.

Those proposing changes should consider that ultimately consent may rest with the consensus of the Bitcoin users (see also: [[economic majority]]).
Those proposing changes should consider that ultimately consent may rest with the consensus of the Bitcoin users (see also: [https://en.bitcoin.it/wiki/Economic_majority economic majority]).

{| class="wikitable sortable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
!Number
Expand Down
14 changes: 5 additions & 9 deletions bip-0001.mediawiki
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{{bip}}

<pre>
BIP: 1
Title: BIP Purpose and Guidelines
Expand All @@ -26,7 +24,7 @@ There are three kinds of BIP:
==BIP Work Flow==

The BIP editors assign BIP numbers and change their status. Please send all BIP-related email to <gmaxwell@gmail.com> (no cross-posting please). Also see BIP Editor Responsibilities & Workflow below.
The BIP editors assign BIP numbers and change their status. Please send all BIP-related email to gmaxwell@gmail.com (no cross-posting please). Also see BIP Editor Responsibilities & Workflow below.

The BIP process begins with a new idea for Bitcoin. It is highly recommended that a single BIP contain a single key proposal or new idea. Small enhancements or patches often don't need a BIP and can be injected into the Bitcoin development work flow with a patch submission to the Bitcoin issue tracker. The more focused the BIP, the more successful it tends to be. The BIP editor reserves the right to reject BIP proposals if they appear too unfocused or too broad. If in doubt, split your BIP into several well-focused ones.

Expand All @@ -36,7 +34,7 @@ Vetting an idea publicly before going as far as writing a BIP is meant to save t

Once the champion has asked the Bitcoin community as to whether an idea has any chance of acceptance, a draft BIP should be presented to [http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development bitcoin-development@lists.sourceforge.net]. This gives the author a chance to flesh out the draft BIP to make properly formatted, of high quality, and to address initial concerns about the proposal.

Following a discussion, the proposal should be sent to the Bitcoin-dev list with the draft BIP and the BIP editors <gmaxwell@gmail.com>. This draft must be written in BIP style as described below, else it will be sent back without further regard until proper formatting rules are followed.
Following a discussion, the proposal should be sent to the Bitcoin-dev list with the draft BIP and the BIP editors gmaxwell@gmail.com. This draft must be written in BIP style as described below, else it will be sent back without further regard until proper formatting rules are followed.

If the BIP editor approves, he will assign the BIP a number, label it as Standards Track, Informational, or Process, give it status "Draft", and create and create a page for it on the [[Bitcoin_Improvement_Proposals|Bitcoin Wiki]]. The BIP editor will not unreasonably deny a BIP. Reasons for denying BIP status include duplication of effort, being technically unsound, not providing proper motivation or addressing backwards compatibility, or not in keeping with the Bitcoin philosophy.

Expand All @@ -58,7 +56,7 @@ BIPs can also be superseded by a different BIP, rendering the original obsolete.

The possible paths of the status of BIPs are as follows:

[[File:BIP-0001-Process.png]]
<img src=bip-0001/process.png></img>

Some Informational and Process BIPs may also have a status of "Active" if they are never meant to be completed. E.g. BIP 1 (this BIP).

Expand Down Expand Up @@ -140,10 +138,10 @@ BIPs may include auxiliary files such as diagrams. Such files must be named BIP-

It occasionally becomes necessary to transfer ownership of BIPs to a new champion. In general, we'd like to retain the original author as a co-author of the transferred BIP, but that's really up to the original author. A good reason to transfer ownership is because the original author no longer has the time or interest in updating it or following through with the BIP process, or has fallen off the face of the 'net (i.e. is unreachable or not responding to email). A bad reason to transfer ownership is because you don't agree with the direction of the BIP. We try to build consensus around a BIP, but if that's not possible, you can always submit a competing BIP.

If you are interested in assuming ownership of a BIP, send a message asking to take over, addressed to both the original author and the BIP editor <gmaxwell@gmail.com>. If the original author doesn't respond to email in a timely manner, the BIP editor will make a unilateral decision (it's not like such decisions can't be reversed :).
If you are interested in assuming ownership of a BIP, send a message asking to take over, addressed to both the original author and the BIP editor gmaxwell@gmail.com. If the original author doesn't respond to email in a timely manner, the BIP editor will make a unilateral decision (it's not like such decisions can't be reversed :).
BIP Editor Responsibilities & Workflow

A BIP editor must subscribe to the <gmaxwell@gmail.com> list. All BIP-related correspondence should be sent (or CC'd) to <gmaxwell@gmail.com> (but please do not cross-post!).
A BIP editor must subscribe to the gmaxwell@gmail.com list. All BIP-related correspondence should be sent (or CC'd) to gmaxwell@gmail.com (but please do not cross-post!).

For each new BIP that comes in an editor does the following:

Expand All @@ -170,5 +168,3 @@ The editors don't pass judgement on BIPs. We merely do the administrative & edit
==History==

This document was derived heavily from Python's PEP-0001. In many places text was simply copied and modified. Although the PEP-0001 text was written by Barry Warsaw, Jeremy Hylton, and David Goodger, they are not responsible for its use in the Bitcoin Improvement Process, and should not be bothered with technical questions specific to Bitcoin or the BIP process. Please direct all comments to the Bitcoin editors or the forums at bitcointalk.org.

[[Category:BIP|A]]
File renamed without changes
25 changes: 11 additions & 14 deletions bip-0010.mediawiki
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
{{bip}}

<pre>
BIP: 10
Title: Multi-Sig Transaction Distribution
Author: Alan Reiner
Status: Draft
Author: Alan Reiner
Status: Draft
Type: Informational
Created: 28-10-2011
</pre>

A multi-signature transaction is one where a certain number of Bitcoins are "encumbered" with more than one recipient address. The subsequent transaction that spends these coins will require each party involved (or some subset, depending on the script), to see the proposed transaction and sign it with their private key. This necessarily requires collaboration between all parties -- to propose a distribution of encumbered funds, collect signatures from all necessary participants, and then broadcast the completed transaction.

This BIP describes a way standardize the encoding of proposal transactions, to assist with signature collection and broadcast (which includes regular, 1-of-1 transactions requiring signatures from an offline computer). The goal is to encourage a standard that guarantees interoperability of all programs that implement it.
This BIP describes a way standardize the encoding of proposal transactions, to assist with signature collection and broadcast (which includes regular, 1-of-1 transactions requiring signatures from an offline computer). The goal is to encourage a standard that guarantees interoperability of all programs that implement it.


==Motivation==
Expand All @@ -22,23 +20,24 @@ In addition to providing a general encoding scheme for transaction signing/colle

==Specification==

This BIP proposes the following process, with terms in quotes referring to recommended terminology that should be encouraged across all implementations.
This BIP proposes the following process, with terms in quotes referring to recommended terminology that should be encouraged across all implementations.

# One party will initiate this process by creating a "Distribution Proposal", which could be abbreviated DP, or TxDP
# 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 "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.
# 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
Anyone adopting BIP 0010 for multi-sig transactions will use the following format (without indentation):

<pre>
'-----BEGIN-TRANSACTION-TXDPID-------'
("_TXDIST_") (magicBytes) (base58Txid) (varIntTxSize)
(serializedTxListInHex_Line1)
(serializedTxListInHex_Line2)
(serializedTxListInHex_Line3)
(serializedTxListInHex_Line3)
...
("_TXINPUT_") (00) (InputValue)
("_SIG_") (AddrBase58) (SigBytes) (SigHexPart0)
Expand All @@ -50,10 +49,11 @@ Anyone adopting BIP 0010 for multi-sig transactions will use the following forma
(SigHexRemainingLines)
("_TXINPUT_") (02) (InputValue)
'-------END-TRANSACTION-TXDPID-------'
</pre>

The following is an example TxDP from Armory, produced while running on the test network. Its DPID is 3fX59xPj:

</pre>
-----BEGIN-TRANSACTION-3fX59xPj-------------------------------------------------
_TXDIST_fabfb5da_3fX59xPj_00a0
010000000292807c8e70a28c687daea2998d6273d074e56fa8a55a0b10556974cf2b526e61000000
Expand Down Expand Up @@ -86,8 +86,7 @@ The following is an example TxDP from Armory, produced while running on the test
456298a566aa76fefeab8a7cb7a91e8a936a11757c911b4c669f0434d12ab0936fc13986b156156f
9b389ed244bbb580112be07dbe23949a4764dffb
-------END-TRANSACTION-3fX59xPj-------------------------------------------------

</pre>

In this transaction, there are two inputs, one of 150 BTC and the other of 12 BTC. This transaction combines 162 BTC to create two outputs, one of 160 BTC, one 1.9995 BTC, and a tx fee of 0.0005. In this TxDP, both inputs have been signed, and thus could broadcast immediately.

Expand All @@ -97,7 +96,5 @@ A party receiving this TxDP can simply add their signature to the appropriate _T

== Reference Implementation ==

This proposal has been implemented and tested in the ''Armory'' Bitcoin software for use in offline-wallet transaction signing (as a 1-of-1 transaction), and will eventually use it for multi-signature transcations. The source code for this implementation be found in the [https://github.com/etotheipi/BitcoinArmory/blob/qtdev/armoryengine.py Armory Github project]. Specifically, the [https://github.com/etotheipi/BitcoinArmory/blob/qtdev/armoryengine.py#L4704 PyTxDistProposal class] implements all features of BIP 0010. It contains reference code for both
This proposal has been implemented and tested in the ''Armory'' Bitcoin software for use in offline-wallet transaction signing (as a 1-of-1 transaction), and will eventually use it for multi-signature transcations. The source code for this implementation be found in the [https://github.com/etotheipi/BitcoinArmory/blob/qtdev/armoryengine.py Armory Github project]. Specifically, the [https://github.com/etotheipi/BitcoinArmory/blob/qtdev/armoryengine.py#L4704 PyTxDistProposal class] implements all features of BIP 0010. It contains reference code for both
[https://github.com/etotheipi/BitcoinArmory/blob/qtdev/armoryengine.py#L5095 serializing a TxDP] and [https://github.com/etotheipi/BitcoinArmory/blob/qtdev/armoryengine.py#L5143 unserializing a TxDP].

[[Category:BIP|D]]
4 changes: 0 additions & 4 deletions bip-0011.mediawiki
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{{bip}}

<pre>
BIP: 11
Title: M-of-N Standard Transactions
Expand Down Expand Up @@ -58,5 +56,3 @@ https://github.com/gavinandresen/bitcoin-git/tree/op_eval
== Post History ==

* [https://bitcointalk.org/index.php?topic=46538 OP_EVAL proposal]
[[Category:BIP|C]]
4 changes: 0 additions & 4 deletions bip-0012.mediawiki
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{{bip}}

<pre>
BIP: 12
Title: OP_EVAL
Expand Down Expand Up @@ -83,5 +81,3 @@ https://bitcointalk.org/index.php?topic=46538
"Bitcoin Address 01" BIP

M-of-N Multisignature Transactions BIP 11

[[Category:BIP|W]]
14 changes: 5 additions & 9 deletions bip-0013.mediawiki
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{{bip}}

<pre>
BIP: 13
Title: Address Format for pay-to-script-hash
Expand All @@ -8,6 +6,7 @@
Type: Standards Track
Created: 18-10-2011
</pre>

==Abstract==

This BIP describes a new type of Bitcoin address to support arbitrarily complex transactions. Complexity in this context is defined as what information is needed by the recipient to respend the received coins, in contrast to needing a single ECDSA private key as in current implementations of Bitcoin.
Expand All @@ -30,7 +29,7 @@ And the 4-byte checksum is the first four bytes of the SHA256 hash of the versio

==Rationale==

One criticism is that bitcoin addresses should be deprecated in favor of a more user-friendly mechanism for payments, and that this will just encourage continued use of a poorly designed mechanism.
One criticism is that bitcoin addresses should be deprecated in favor of a more user-friendly mechanism for payments, and that this will just encourage continued use of a poorly designed mechanism.

Another criticism is that bitcoin addresses are inherently insecure because there is no identity information tied to them; if you only have a bitcoin address, how can you be certain that you're paying who or what you think you're paying?

Expand All @@ -52,9 +51,6 @@ See base58.cpp1/base58.h at https://github.com/bitcoin/bitcoin/src

==See Also==

* [[BIP 0012|BIP 12: OP_EVAL, the original P2SH design]]
* [[BIP 0016|BIP 16: Pay to Script Hash (aka "/P2SH/")]]
* [[BIP 0017|BIP 17: OP_CHECKHASHVERIFY, another P2SH design]]
[[Category:BIP|D]]
[[Category:Security]]
* [[bip-0012.mediawiki|BIP 12: OP_EVAL, the original P2SH design]]
* [[bip-0016.mediawiki|BIP 16: Pay to Script Hash (aka "/P2SH/")]]
* [[bip-0017.mediawiki|BIP 17: OP_CHECKHASHVERIFY, another P2SH design]]
4 changes: 0 additions & 4 deletions bip-0014.mediawiki
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{{bip}}

<pre>
BIP: 14
Title: BIP Protocol Version and User Agent
Expand Down Expand Up @@ -89,5 +87,3 @@ They should not be misused beyond what is specified in this section.
== Timeline ==

When this document was published, the bitcoin protocol and Satoshi client versions were currently at 0.5 and undergoing changes. In order to minimise disruption and allow the undergoing changes to be completed, the next protocol version at 0.6 became peeled from the client version (also at 0.6). As of that time (January 2012), protocol and implementation version numbers are distinct from each other.

[[Category:BIP|C]]
Loading

0 comments on commit d9e890a

Please sign in to comment.