mirror of
https://github.com/bitcoin/bips.git
synced 2025-06-24 15:53:02 +02:00
* Draft payjoin v2 BIP
* Include mailing list feedback
* Include TABConf feedback
* Include padding
* Include production reference implementation
* Adopt BIP-77 for payjoin v2
* Distinguish payjoin directory from OHTTP Relay
* Detail OHTTP Key Configuration mechanism
* Fix punctuation
* Make base64URL references consistent
* Reference standardized Secp256k1 DHKEM for HPKE
* Add Comments-URI
* fixup: Format and spell check
Co-authored-by: spacebear <144076611+grizznaut@users.noreply.github.com>
* Add BIP 77 to README
* Add Payjoin V2 overview diagram
* Add Oblivious HTTP Sequence Diagram
* Correct links and spelling
Co-authored-by: thebrandonlucas <38222767+thebrandonlucas@users.noreply.github.com>
* Wrap <code> blocks
* Fix basic scheme actors
* Fix dead samourai links
* Orient motivation around a problem
* fix links
* Keyconfig s/should/must/ be provided
* Fix typos
Co-authored-by: thebrandonlucas <38222767+thebrandonlucas@users.noreply.github.com>
* s/pubkey/public key
* Incorporate jonatack's suggestions
* Incorporate more jonatack suggestions
* Incorporate satsie's suggesetions
* Rename "Async Payjoin"
* Replace BIP21 params with fragment params
* Revise document to describe Payjoin Sessions
Enrollment was a less clear than sessions
* Revise Sequence Diagram
* Spell initialize
* Update the bip to represent the stable protocol
* Spell according to Type Checks's job
* Mention the format of the ohttp fragment
* Reference BIP 78 attack vectors
* Remove straggling text
* Specify authorization mechanism
The specifics of a credential issuance are left out, however
* Use implicit session initialization
* Specify cryptographic handshake based on Noise IK
Co-authored-by: Yuval Kogman <nothingmuch@woobling.org>
* Add Spacebear's clarifications
Co-authored-by: spacebear <git@spacebear.dev>
* Document subdirectory Short IDs
* Require uppercase URL
bech32 fragment prefixes are case sensitive, and
alphanumeric mode only works on capital letters.
* Specify bech32 fragment parameter definitions
* Uppercase URL specifically only after subdirectory
* Note payload uniformity via padding and ellswift
* Include Message Byte Representations
This is the most straightforward way to explain the various padding
requirements.
* Document HPKE `info` strings
* Truncate lines to 120 characters
* Receiver's Original PSBT, not proposal
* Specify no mixed [output script]
* Remove extraneous pipe character
* Require BIPS 21, 78, 174
* Update checklist MUST/MUST NOT sections
MUST NOT contained MUST details. Move them to MUST.
* inputs ⇒ input
* Clarify BIP 78 payjoin version 1 connection
* Fix backwards compat language
* Payjoin version 2 URIs
* Reference Binary HTTP RFC
* Payjoin version 1 Proposal PSBTs
* Oblivous -> Oblivious
* Rm reference to 'production relays'
* Repeat the active agent by name
* Add Post-History
* Title 'Async Payjoin'
* Check spelling
* directory -> mailbox
* Move ohttp= fragment param to link to frag spec
* Mention URI keys as bootstrap mechanism
* Mailbox Discovery
* Remove superfluous word
* Clarify motivation
* Revise backwards compatiblity section for clarity
* Remove related protocol details
* Mv copyright out of flow
* Fix grammar (should be plural)
* Weaken language around addressing CIOH
"solves" implies this is the end of the story. Clarify that the problem
is the sole *explicit* problem mentioned in the paper.
* Simplify overview
- describe happy path protocol sequence
- introduce non-obvious key terms inherited from BIP 78
- no need for technical details that are clarified in the specification
* Describe optionality in overview
* Nitpicky sequence diagram fixes
* Clarify receiver's initial message in sequence diagram
* Simplify Basic Scheme section
* Mention OHTTP abbreviation on first mention
* Move sequence diagram up
* fragment parameter encoding corrections
- base64url was replaced by bech32
- formatting fixes
- some clarifications
* Use SHA-256 at independent mentions for consistency
* bootstrap grammar fix & correction
bootstrap would use a tor exit node, not a hidden service
* clarify proposal PSBT encryption layers
clarify which key is used for which layer of encryption (payjoin v2 e2ee vs.
OHTTP)
the message is not "authenticated" by the sender, rather it is tagged, it can be
authenticated during decryption.
* format original/proposal PSBT terms using italic, not <code>
* HRP of short ID is an implementation detail
it doesn't matter what is used since it's stripped after encoding
* Clarify checklist requirements
* "by intersection" unclear and unnecessary
* the fragment doesn't follow the pj param, it's part of it
* fix message diagram line intersections
* Correct encapsulated OHTTP diagram
The binary HTTP request is encrypted, and the AEAD tag is at the end, not the
beginning
* Clarifications for HPKE keys
Remove noise protocol framework mention. The IK pattern is not accurate, the
closest patterns are N or possibl NN, but neither is a perfect fit (N defines the
key as static, which it isn't, and NN is an interactive pattern)
* Remove note about forward secrecy
This is inaccurate, forward secrecy is defined with respect to long term
sessions, so the definition doesn't really extend to the request and response
messages, each of which is encrypted with ephemeral keys.
* Clarify OHTTP-relay bypassing by use of tor hidden service
* Update HPKE mode used for sender's message
Previously the reply key was included before the HPKE ciphertext, and the Auth
mode was used using this key. Since they are delivered together that only proves
the key was usable by the sender, not that the ciphertext is authentic. With the
key included as part of the encrypted plaintext, the HPKE mode was changed to
the base encryption to a public key mode with no authentication key.
* keep mailbox, but rename mailroom back to directory
Partly reverts a4d4065fa6f736f058e9173aa852e4fd12e75650, this change is hardly
more than a find & replace of mailroom to directory, and does not revert grammar
changes etc in addition to not reverting the subdirectory -> mailbox rename
which was the main point of confusion.
* Clarify allowed_purposes mechanism
First explain RFC 9540, then explain the extension mechanism.
Make roles in the interaction more explicit by changing the heading, "Directory
Discovery" sort of implies that clients discover these, when it describes relay
to directory interaction.
Clarify centralization pressure, that is alleviated by making senders' and
receivers' choices independent of each other.
* Correct payload uniformity section
We forgot about the OHTTP header which is 7 bytes of cleartext that also
specifies the DHKEM algoritm.
Additional clarifications and some restructuring to describe the details two
classes of messages each in its own self contained paragraph.
* rewrap paragraph to fix broken link
* fix bullet list formatting
- unindent to avoid <pre>
- fix broken URLs
- fix bullet items split into paragraphs
* rewrap section to fix broken links
* rewrap more paragraphs to fix broken links
* make attack vectors level 2 heading
as level 3 heading it was displayed under rationale in the table of contents
* Grammar/style fixes
* Order Requires
* Describe 'what' in the first sentence of the abstract.
* Be more specific about motivation.
* Make goal more explicit and consise
* Standardize "Common-input-ownership heuristic"
bitcoin wiki uses this.
* Replace Request expiration with Session Expiration
* Specify BIP 78 `v` parameter as redundant.
* Separate Short ID length rationale from spec
* Clairfy key nomeclature
- mailbox key
- reply key
- receiver key
as well as ephemerality and session nomeclature.
* Place byte diagrams with there respective message description.
* Include bitcoin URI subsection
* Top half reorg
* Add Yuval Kogman as Co-author
* NO mak typo
* Fix heirarchy
* Convert mediawiki to markdown
nix shell nixpkgs#pandoc --command bash -lc '
pandoc -f mediawiki -t gfm bip-0077.mediawiki -o bip-0077.md'
rm bip-0077.mediawiki
reference bip-0077.md in README
surround bip-0077.md preamble in ``` to satisfy CI
* Strip link titles from mediawiki -> md conversion
sed -i.bak -E 's/\]\(([^ )]+) "[^"]*"\)/](\1)/g' bip-0077.md
* Strip leading/trailing spaces from inside links
sed -i.bak -E 's/\[[[:space:]]+/[/g; s/[[:space:]]+\]/]/g' bip-0077.md
* Fix spacing around inline code
* Take bitcoin URI example out of md link syntax
* Fence byte diagrams in backtics
* Replace sequence diagrams with mermaid
Better rendering and semantic source
* Collapse overview, basic scheme, and protocol sequence
These were all inconsitent levels of detail for the same thing. Leave the overview
the highest level and link to the specifics.
* Consistent short id singularity
* Remove straggling whitespace
* Link whitepaper
* Fix motivation flow
* Clarify abstract
* Clarify motivation
* Clarify overview
* Clarify bootstrapping
* Use singular to describe Payjoin URI
* Clarify mailbox endpoint
Specify that v2 mailboxes are OHTTP Targets.
Mention backwards compatibility.
* Clarify Receiver Fragment Parameters
* Revise messaging for clarity
* Add rationale for allowed_purposes
* Define ElligatorSwift according to BIP 324
* Clarify attacks, backwards compatibility
* Fix Receiver Proposal PSBT messaging header
for link.
* Add activation to sequence
* Correct #64-bit-short-id-length link
Co-authored-by: Yuval Kogman <nothingmuch@woobling.org>
* Clarify why not AES-GCM rationale
* Specify serialization of reply key in plaintext
* Specify the wire format for ChaCha20-Poly1305 ciphertext and tag
* Specify details of HPKE message wire format
Also clarifies that HPKE auth mode is used with the receiver's key,
authenticating the receiver as the sender of the encrypted Proposal PSBT.
* Correct diagram for OHTTP encapsulation
The order according to RFC 9458 and the code is is header, followed by
encapsulated key, followed by the ciphertext.
* OHTTP message encoding according to RFC 9458
* Rephrase abstract in active voice
* Deduplicate motivation word choice
- 'suitable for widespread implementation' vs appropriate, it's stronger
- 'mature solutions' to express that we chose those already based on iteration
- 'proven bitcoin primitives' to reflect the use of those battle tested like
ElligatorSwift
* Simplify output batching motivation
* Reduce verbosity of linking exemplar conclusion
* Use PSBT 'update' verb in overview
Say 'appropriate intputs and/or outputs' because outputs might be merely
replaced, not necessarily added.
* Mention mutual exclusivity of Original and Proposal PSBTs
* Capitalize Uri -> URI
* Clarify URI parameter key/value distinction
* Backwards-compatible receivers *disable* pjos
* Use bech32 character set, not bech32
* Clarify session-specific parameter encoding
* Say 33-byte compressed public key
* Clarify v2 optional sender parameters application
* Clarify receiver session initiation overview
Co-authored-by: nothingmuch <nothingmuch@woobling.org>
* Mention sender's ephemeral mailbox in overview
Co-authored-by: nothingmuch <nothingmuch@woobling.org>
* Clarify cut-through optimization
* Replace mention of v1/v2 payjoin
Instead use 'This proposal', 'BIP 78', 'BIP 77', or omit the mention.
* Mention BIP 174 for PSBTv0
* Mention sender's *corresponding* public key
* Hyphenate '16-byte'
* Clarify who can post messagese direct to mailbox
* liu -> lieu
* Simplify cut through overview sentence structure
* Replace 'Payjoin exemplar' with 'A natural application..'
* Make motivation CIOH mention easier to read
Use language from sataoshi and don't mention input batching since the next
sentence already does.
* Specify Proposal PSBT MUST/MAY input/output inclusion rules
* remove duplicate 'and'
* Remove duplicate 'preserve'
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* The HRP is used as the parameter key
Co-authored-by: Yuval Kogman <nothingmuch@woobling.org>
* Add rationale for random padding in OHTTP
* Use "zero" instead of "0"
Co-authored-by: Mark "Murch" Erhardt <murch@murch.one>
* epehmeral -> ephemeral
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* subject match tense
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* Capitalize Payjoin for protocol
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* Capitalize Payjoin for protocol
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* Capitalize Payjoin for protocol
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* Capitalize Payjoin for protocol
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* Capitalize Payjoin for protocol
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
* ("Version 2") relative to and described in ("Version 1")
Co-authored-by: Jon Atack <jon@atack.com>
* BIP78's requirements for Payjoin Version 1
Co-authored-by: Jon Atack <jon@atack.com>
* Include missing period
Co-authored-by: Jon Atack <jon@atack.com>
* which -> that
Co-authored-by: Jon Atack <jon@atack.com>
* Separate independent clauses with a semicolon
Co-authored-by: Jon Atack <jon@atack.com>
* Remove duplicate "at"
Co-authored-by: Jon Atack <jon@atack.com>
* Hyphenate "short-lived"
Co-authored-by: Jon Atack <jon@atack.com>
* Fix Attack Vectors URL
Co-authored-by: Jon Atack <jon@atack.com>
* which -> that
Co-authored-by: Jon Atack <jon@atack.com>
* Include colon to reference Oblivious HTTP Relay impl
Co-authored-by: Jon Atack <jon@atack.com>
* consist -> consists
Co-authored-by: Jon Atack <jon@atack.com>
* Remove double "the"
Co-authored-by: Jon Atack <jon@atack.com>
* Remove double "the"
Co-authored-by: Jon Atack <jon@atack.com>
* Correct Padded BHTTP Response length
144 bytes not 104
See: 87042266d1/payjoin-directory/src/lib.rs (L30-L31)
* which -> , which
* Note TLS is not available in Bitcoin Core
* Link to BIP21 forwards compatibility `reqparam`
* Require rev. lexicographical frag. param. order
A specific order might create a fingerprint for a specific wallet, imposing a privacy
risk. It seems impossible to impose an order on BIP21 parameters, but BIP 77 clients
may error on out-of-order fragment parameters to at least avoid some fingerprint there.
Reverse lecicographical ordering was chosen because that is how the existing implmentation
serializes the parameters already, so that no breaking change needs to be made.
Co-authored-by: nothingmuch <nothingmuch@woobling.org>
---------
Co-authored-by: spacebear <144076611+grizznaut@users.noreply.github.com>
Co-authored-by: thebrandonlucas <38222767+thebrandonlucas@users.noreply.github.com>
Co-authored-by: Yuval Kogman <nothingmuch@woobling.org>
Co-authored-by: spacebear <git@spacebear.dev>
Co-authored-by: spacebear <144076611+spacebear21@users.noreply.github.com>
Co-authored-by: Brandon Lucas <thebrandonlucas@gmail.com>
Co-authored-by: Mark "Murch" Erhardt <murch@murch.one>
Co-authored-by: Jon Atack <jon@atack.com>
…
…
…
People wishing to submit BIPs, first should propose their idea or document to the [https://groups.google.com/g/bitcoindev bitcoindev@googlegroups.com] mailing list (do <em>not</em> assign a number - read <a href="bip-0002.mediawiki">BIP 2</a> for the full process). After discussion, please open a PR. 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 Final or Active. 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 !Layer !Title !Owner !Type !Status |- style="background-color: #ffcfcf" | [[bip-0001.mediawiki|1]] | | BIP Purpose and Guidelines | Amir Taaki | Process | Replaced |- style="background-color: #cfffcf" | [[bip-0002.mediawiki|2]] | | BIP process, revised | Luke Dashjr | Process | Active |- style="background-color: #ffffcf" | [[bip-0003.md|3]] | | Updated BIP Process | Murch | Process | Proposed |- | [[bip-0008.mediawiki|8]] | | Version bits with lock-in by height | Shaolin Fry, Luke Dashjr | Informational | Draft |- style="background-color: #cfffcf" | [[bip-0009.mediawiki|9]] | | Version bits with timeout and delay | Pieter Wuille, Peter Todd, Greg Maxwell, Rusty Russell | Informational | Final |- style="background-color: #ffcfcf" | [[bip-0010.mediawiki|10]] | Applications | Multi-Sig Transaction Distribution | Alan Reiner | Informational | Withdrawn |- style="background-color: #cfffcf" | [[bip-0011.mediawiki|11]] | Applications | M-of-N Standard Transactions | Gavin Andresen | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0012.mediawiki|12]] | Consensus (soft fork) | OP_EVAL | Gavin Andresen | Standard | Withdrawn |- style="background-color: #cfffcf" | [[bip-0013.mediawiki|13]] | Applications | Address Format for pay-to-script-hash | Gavin Andresen | Standard | Final |- style="background-color: #cfffcf" | [[bip-0014.mediawiki|14]] | Peer Services | Protocol Version and User Agent | Amir Taaki, Patrick Strateman | Standard | Final |- | [[bip-0015.mediawiki|15]] | Applications | Aliases | Amir Taaki | Standard | Deferred |- style="background-color: #cfffcf" | [[bip-0016.mediawiki|16]] | Consensus (soft fork) | Pay to Script Hash | Gavin Andresen | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0017.mediawiki|17]] | Consensus (soft fork) | OP_CHECKHASHVERIFY (CHV) | Luke Dashjr | Standard | Withdrawn |- style="background-color: #ffffcf" | [[bip-0018.mediawiki|18]] | Consensus (soft fork) | hashScriptCheck | Luke Dashjr | Standard | Proposed |- style="background-color: #ffcfcf" | [[bip-0019.mediawiki|19]] | Applications | M-of-N Standard Transactions (Low SigOp) | Luke Dashjr | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0020.mediawiki|20]] | Applications | URI Scheme | Luke Dashjr | Standard | Replaced |- style="background-color: #cfffcf" | [[bip-0021.mediawiki|21]] | Applications | URI Scheme | Nils Schneider, Matt Corallo | Standard | Final |- style="background-color: #cfffcf" | [[bip-0022.mediawiki|22]] | API/RPC | getblocktemplate - Fundamentals | Luke Dashjr | Standard | Final |- style="background-color: #cfffcf" | [[bip-0023.mediawiki|23]] | API/RPC | getblocktemplate - Pooled Mining | Luke Dashjr | Standard | Final |- style="background-color: #cfffcf" | [[bip-0030.mediawiki|30]] | Consensus (soft fork) | Duplicate transactions | Pieter Wuille | Standard | Final |- style="background-color: #cfffcf" | [[bip-0031.mediawiki|31]] | Peer Services | Pong message | Mike Hearn | Standard | Final |- style="background-color: #cfffcf" | [[bip-0032.mediawiki|32]] | Applications | Hierarchical Deterministic Wallets | Pieter Wuille | Informational | Final |- style="background-color: #ffcfcf" | [[bip-0033.mediawiki|33]] | Peer Services | Stratized Nodes | Amir Taaki | Standard | Rejected |- style="background-color: #cfffcf" | [[bip-0034.mediawiki|34]] | Consensus (soft fork) | Block v2, Height in Coinbase | Gavin Andresen | Standard | Final |- style="background-color: #cfffcf" | [[bip-0035.mediawiki|35]] | Peer Services | mempool message | Jeff Garzik | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0036.mediawiki|36]] | Peer Services | Custom Services | Stefan Thomas | Standard | Rejected |- style="background-color: #cfffcf" | [[bip-0037.mediawiki|37]] | Peer Services | Connection Bloom filtering | Mike Hearn, Matt Corallo | Standard | Final |- | [[bip-0038.mediawiki|38]] | Applications | Passphrase-protected private key | Mike Caldwell, Aaron Voisine | Standard | Draft |- style="background-color: #cfffcf" | [[bip-0039.mediawiki|39]] | Applications | Mnemonic code for generating deterministic keys | Marek Palatinus, Pavol Rusnak, Aaron Voisine, Sean Bowe | Standard | Final |- | 40 | API/RPC | Stratum wire protocol | Marek Palatinus | Standard | BIP number allocated |- | 41 | API/RPC | Stratum mining protocol | Marek Palatinus | Standard | BIP number allocated |- style="background-color: #cfffcf" | [[bip-0042.mediawiki|42]] | Consensus (soft fork) | A finite monetary supply for Bitcoin | Pieter Wuille | Standard | Final |- style="background-color: #cfffcf" | [[bip-0043.mediawiki|43]] | Applications | Purpose Field for Deterministic Wallets | Marek Palatinus, Pavol Rusnak | Standard | Final |- style="background-color: #cfffcf" | [[bip-0044.mediawiki|44]] | Applications | Multi-Account Hierarchy for Deterministic Wallets | Marek Palatinus, Pavol Rusnak | Standard | Final |- style="background-color: #ffffcf" | [[bip-0045.mediawiki|45]] | Applications | Structure for Deterministic P2SH Multisignature Wallets | Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia | Standard | Proposed |- | [[bip-0046.mediawiki|46]] | Applications | Address Scheme for Timelocked Fidelity Bonds | Chris Belcher, Thebora Kompanioni | Standard | Draft |- style="background-color: #cfffcf" | [[bip-0047.mediawiki|47]] | Applications | Reusable Payment Codes for Hierarchical Deterministic Wallets | Justus Ranvier | Informational | Final |- style="background-color: #cfffcf" | [[bip-0048.mediawiki|48]] | Applications | Multi-Script Hierarchy for Multi-Sig Wallets | Fontaine | Standard | Final |- style="background-color: #cfffcf" | [[bip-0049.mediawiki|49]] | Applications | Derivation scheme for P2WPKH-nested-in-P2SH based accounts | Daniel Weigl | Standard | Final |- style="background-color: #cfffcf" | [[bip-0050.mediawiki|50]] | | March 2013 Chain Fork Post-Mortem | Gavin Andresen | Informational | Final |- | [[bip-0052.mediawiki|52]] | Consensus (hard fork) | Durable, Low Energy Bitcoin PoW | Michael Dubrovsky, Bogdan Penkovsky | Standard | Draft |- | [[bip-0053.mediawiki|53]] | Consensus (soft fork) | Disallow 64-byte transactions | Chris Stewart | Standard | Draft |- | [[bip-0054.md|54]] | Consensus (soft fork) | Consensus Cleanup | Antoine Poinsot, Matt Corallo | Standard | Draft <!-- 50 series reserved for a group of post-mortems --> |- style="background-color: #ffcfcf" | [[bip-0060.mediawiki|60]] | Peer Services | Fixed Length "version" Message (Relay-Transactions Field) | Amir Taaki | Standard | Rejected |- style="background-color: #cfffcf" | [[bip-0061.mediawiki|61]] | Peer Services | Reject P2P message | Gavin Andresen | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0062.mediawiki|62]] | Consensus (soft fork) | Dealing with malleability | Pieter Wuille | Standard | Withdrawn |- | 63 | Applications | Stealth Addresses | Peter Todd | Standard | BIP number allocated |- style="background-color: #ffcfcf" | [[bip-0064.mediawiki|64]] | Peer Services | getutxo message | Mike Hearn | Standard | Obsolete |- style="background-color: #cfffcf" | [[bip-0065.mediawiki|65]] | Consensus (soft fork) | OP_CHECKLOCKTIMEVERIFY | Peter Todd | Standard | Final |- style="background-color: #cfffcf" | [[bip-0066.mediawiki|66]] | Consensus (soft fork) | Strict DER signatures | Pieter Wuille | Standard | Final |- style="background-color: #ffffcf" | [[bip-0067.mediawiki|67]] | Applications | Deterministic Pay-to-script-hash multi-signature addresses through public key sorting | Thomas Kerin, Jean-Pierre Rupp, Ruben de Vries | Standard | Proposed |- style="background-color: #cfffcf" | [[bip-0068.mediawiki|68]] | Consensus (soft fork) | Relative lock-time using consensus-enforced sequence numbers | Mark Friedenbach, BtcDrak, Nicolas Dorier, kinoshitajona | Standard | Final |- style="background-color: #ffffcf" | [[bip-0069.mediawiki|69]] | Applications | Lexicographical Indexing of Transaction Inputs and Outputs | Kristov Atlas | Informational | Proposed |- style="background-color: #cfffcf" | [[bip-0070.mediawiki|70]] | Applications | Payment Protocol | Gavin Andresen, Mike Hearn | Standard | Final |- style="background-color: #cfffcf" | [[bip-0071.mediawiki|71]] | Applications | Payment Protocol MIME types | Gavin Andresen | Standard | Final |- style="background-color: #cfffcf" | [[bip-0072.mediawiki|72]] | Applications | bitcoin: uri extensions for Payment Protocol | Gavin Andresen | Standard | Final |- style="background-color: #cfffcf" | [[bip-0073.mediawiki|73]] | Applications | Use "Accept" header for response type negotiation with Payment Request URLs | Stephen Pair | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0074.mediawiki|74]] | Applications | Allow zero value OP_RETURN in Payment Protocol | Toby Padilla | Standard | Rejected |- style="background-color: #cfffcf" | [[bip-0075.mediawiki|75]] | Applications | Out of Band Address Exchange using Payment Protocol Encryption | Justin Newton, Matt David, Aaron Voisine, James MacWhyte | Standard | Final |- | [[bip-0077.md|77]] | Applications | Async Payjoin | Dan Gould, Yuval Kogman | Standard | Draft |- | [[bip-0078.mediawiki|78]] | Applications | A Simple Payjoin Proposal | Nicolas Dorier | Standard | Draft |- style="background-color: #ffcfcf" | [[bip-0079.mediawiki|79]] | Applications | Bustapay :: a practical coinjoin protocol | Ryan Havar | Informational | Replaced |- | [[bip-0080.mediawiki|80]] | | Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets | Justus Ranvier, Jimmy Song | Informational | Deferred |- | [[bip-0081.mediawiki|81]] | | Hierarchy for Colored Voting Pool Deterministic Multisig Wallets | Justus Ranvier, Jimmy Song | Informational | Deferred |- style="background-color: #ffcfcf" | [[bip-0083.mediawiki|83]] | Applications | Dynamic Hierarchical Deterministic Key Trees | Eric Lombrozo | Standard | Rejected |- style="background-color: #cfffcf" | [[bip-0084.mediawiki|84]] | Applications | Derivation scheme for P2WPKH based accounts | Pavol Rusnak | Standard | Final |- style="background-color: #cfffcf" | [[bip-0085.mediawiki|85]] | Applications | Deterministic Entropy From BIP32 Keychains | Ethan Kosakovsky, Aneesh Karve | Informational | Final |- style="background-color: #cfffcf" | [[bip-0086.mediawiki|86]] | Applications | Key Derivation for Single Key P2TR Outputs | Ava Chow | Standard | Final |- style="background-color: #ffffcf" | [[bip-0087.mediawiki|87]] | Applications | Hierarchy for Deterministic Multisig Wallets | Robert Spigler | Standard | Proposed |- style="background-color: #ffffcf" | [[bip-0088.mediawiki|88]] | Applications | Hierarchical Deterministic Path Templates | Dmitry Petukhov | Informational | Proposed |- style="background-color: #cfffcf" | [[bip-0090.mediawiki|90]] | | Buried Deployments | Suhas Daftuar | Informational | Final |- style="background-color: #cfffcf" | [[bip-0091.mediawiki|91]] | Consensus (soft fork) | Reduced threshold Segwit MASF | James Hilliard | Standard | Final |- | [[bip-0093.mediawiki|93]] | Applications | codex32: Checksummed SSSS-aware BIP32 seeds | Leon Olsson Curr, Pearlwort Sneed, Andrew Poelstra | Informational | Draft |- style="background-color: #cfffcf" | [[bip-0094.mediawiki|94]] | Applications | Testnet 4 | Fabian Jahr | Standard | Final |- | [[bip-0098.mediawiki|98]] | Consensus (soft fork) | Fast Merkle Trees | 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 | Rejected |- style="background-color: #ffcfcf" | [[bip-0100.mediawiki|100]] | Consensus (hard fork) | Dynamic maximum block size by miner vote | Jeff Garzik, Tom Harding, Dagur Valberg Johannsson | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0101.mediawiki|101]] | Consensus (hard fork) | Increase maximum block size | Gavin Andresen | Standard | Withdrawn |- style="background-color: #ffcfcf" | [[bip-0102.mediawiki|102]] | Consensus (hard fork) | Block size increase to 2MB | Jeff Garzik | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0103.mediawiki|103]] | Consensus (hard fork) | Block size following technological growth | Pieter Wuille | Standard | Withdrawn |- style="background-color: #ffcfcf" | [[bip-0104.mediawiki|104]] | Consensus (hard fork) | 'Block75' - Max block size like difficulty | t.khan | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0105.mediawiki|105]] | Consensus (hard fork) | Consensus based block size retargeting algorithm | BtcDrak | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0106.mediawiki|106]] | Consensus (hard fork) | Dynamically Controlled Bitcoin Block Size Max Cap | Upal Chakraborty | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0107.mediawiki|107]] | Consensus (hard fork) | Dynamic limit on the block size | Washington Y. Sanchez | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0109.mediawiki|109]] | Consensus (hard fork) | Two million byte size limit with sigop and sighash limits | Gavin Andresen | Standard | Rejected |- style="background-color: #ffffcf" | [[bip-0111.mediawiki|111]] | Peer Services | NODE_BLOOM service bit | Matt Corallo, Peter Todd | Standard | Proposed |- style="background-color: #cfffcf" | [[bip-0112.mediawiki|112]] | Consensus (soft fork) | CHECKSEQUENCEVERIFY | BtcDrak, Mark Friedenbach, Eric Lombrozo | Standard | Final |- style="background-color: #cfffcf" | [[bip-0113.mediawiki|113]] | Consensus (soft fork) | Median time-past as endpoint for lock-time calculations | Thomas Kerin, Mark Friedenbach | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0114.mediawiki|114]] | Consensus (soft fork) | Merkelized Abstract Syntax Tree | Johnson Lau | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0115.mediawiki|115]] | Consensus (soft fork) | Generic anti-replay protection using Script | Luke Dashjr | Standard | Rejected |- | [[bip-0116.mediawiki|116]] | Consensus (soft fork) | MERKLEBRANCHVERIFY | Mark Friedenbach, Kalle Alm, BtcDrak | Standard | Draft |- | [[bip-0117.mediawiki|117]] | Consensus (soft fork) | Tail Call Execution Semantics | Mark Friedenbach, Kalle Alm, BtcDrak | Standard | Draft |- | [[bip-0118.mediawiki|118]] | Consensus (soft fork) | SIGHASH_ANYPREVOUT for Taproot Scripts | Christian Decker, Anthony Towns | Standard | Draft |- | [[bip-0119.mediawiki|119]] | Consensus (soft fork) | CHECKTEMPLATEVERIFY | Jeremy Rubin | Standard | Draft |- style="background-color: #ffcfcf" | [[bip-0120.mediawiki|120]] | Applications | Proof of Payment | Kalle Rosenbaum | Standard | Withdrawn |- style="background-color: #ffcfcf" | [[bip-0121.mediawiki|121]] | Applications | Proof of Payment URI scheme | Kalle Rosenbaum | Standard | Withdrawn |- | [[bip-0122.mediawiki|122]] | Applications | URI scheme for Blockchain references / exploration | Marco Pontello | Standard | Draft |- style="background-color: #cfffcf" | [[bip-0123.mediawiki|123]] | | BIP Classification | Eric Lombrozo | Process | Active |- style="background-color: #ffcfcf" | [[bip-0124.mediawiki|124]] | Applications | Hierarchical Deterministic Script Templates | Eric Lombrozo, William Swanson | Informational | Rejected |- style="background-color: #cfffcf" | [[bip-0125.mediawiki|125]] | Applications | Opt-in Full Replace-by-Fee Signaling | David A. Harding, Peter Todd | Standard | Final |- | [[bip-0126.mediawiki|126]] | | Best Practices for Heterogeneous Input Script Transactions | Kristov Atlas | Informational | Draft |- | [[bip-0127.mediawiki|127]] | Applications | Simple Proof-of-Reserves Transactions | Steven Roose | Standard | Draft |- style="background-color: #ffffcf" | [[bip-0129.mediawiki|129]] | Applications | Bitcoin Secure Multisig Setup (BSMS) | Hugo Nguyen, Peter Gray, Marko Bencun, Aaron Chen, Rodolfo Novak | Standard | Proposed |- style="background-color: #cfffcf" | [[bip-0130.mediawiki|130]] | Peer Services | sendheaders message | Suhas Daftuar | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0131.mediawiki|131]] | Consensus (hard fork) | "Coalescing Transaction" Specification (wildcard inputs) | Chris Priest | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0132.mediawiki|132]] | | Committee-based BIP Acceptance Process | Andy Chase | Process | Withdrawn |- style="background-color: #cfffcf" | [[bip-0133.mediawiki|133]] | Peer Services | feefilter message | Alex Morcos | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0134.mediawiki|134]] | Consensus (hard fork) | Flexible Transactions | Tom Zander | Standard | Rejected |- style="background-color: #ffcfcf" | [[bip-0135.mediawiki|135]] | | Generalized version bits voting | Sancho Panza | Informational | Rejected |- | [[bip-0136.mediawiki|136]] | Applications | Bech32 Encoded Tx Position References | Велеслав, Jonas Schnelli, Daniel Pape | Informational | Draft |- style="background-color: #cfffcf" | [[bip-0137.mediawiki|137]] | Applications | Signatures of Messages using Private Keys | Christopher Gilliard | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0140.mediawiki|140]] | Consensus (soft fork) | Normalized TXID | Christian Decker | Standard | Rejected |- style="background-color: #cfffcf" | [[bip-0141.mediawiki|141]] | Consensus (soft fork) | Segregated Witness (Consensus layer) | Eric Lombrozo, Johnson Lau, Pieter Wuille | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0142.mediawiki|142]] | Applications | Address Format for Segregated Witness | Johnson Lau | Standard | Withdrawn |- style="background-color: #cfffcf" | [[bip-0143.mediawiki|143]] | Consensus (soft fork) | Transaction Signature Verification for Version 0 Witness Program | Johnson Lau, Pieter Wuille | Standard | Final |- style="background-color: #cfffcf" | [[bip-0144.mediawiki|144]] | Peer Services | Segregated Witness (Peer Services) | Eric Lombrozo, Pieter Wuille | Standard | Final |- style="background-color: #cfffcf" | [[bip-0145.mediawiki|145]] | API/RPC | getblocktemplate Updates for Segregated Witness | Luke Dashjr | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0146.mediawiki|146]] | Consensus (soft fork) | Dealing with signature encoding malleability | Johnson Lau, Pieter Wuille | Standard | Withdrawn |- style="background-color: #cfffcf" | [[bip-0147.mediawiki|147]] | Consensus (soft fork) | Dealing with dummy stack element malleability | Johnson Lau | Standard | Final |- style="background-color: #cfffcf" | [[bip-0148.mediawiki|148]] | Consensus (soft fork) | Mandatory activation of segwit deployment | Shaolin Fry | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0149.mediawiki|149]] | Consensus (soft fork) | Segregated Witness (second deployment) | Shaolin Fry | Standard | Withdrawn |- | [[bip-0150.mediawiki|150]] | Peer Services | Peer Authentication | Jonas Schnelli | Standard | Deferred |- style="background-color: #ffcfcf" | [[bip-0151.mediawiki|151]] | Peer Services | Peer-to-Peer Communication Encryption | Jonas Schnelli | Standard | Replaced |- style="background-color: #cfffcf" | [[bip-0152.mediawiki|152]] | Peer Services | Compact Block Relay | Matt Corallo | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0154.mediawiki|154]] | Peer Services | Rate Limiting via peer specified challenges | Karl-Johan Alm | Standard | Withdrawn |- | [[bip-0155.mediawiki|155]] | Peer Services | addrv2 message | Wladimir J. van der Laan | Standard | Draft |- style="background-color: #ffcfcf" | [[bip-0156.mediawiki|156]] | Peer Services | Dandelion - Privacy Enhancing Routing | Brad Denby, Andrew Miller, Giulia Fanti, Surya Bakshi, Shaileshh Bojja Venkatakrishnan, Pramod Viswanath | Standard | Rejected |- | [[bip-0157.mediawiki|157]] | Peer Services | Client Side Block Filtering | Olaoluwa Osuntokun, Alex Akselrod, Jim Posen | Standard | Draft |- | [[bip-0158.mediawiki|158]] | Peer Services | Compact Block Filters for Light Clients | Olaoluwa Osuntokun, Alex Akselrod | Standard | Draft |- style="background-color: #cfffcf" | [[bip-0159.mediawiki|159]] | Peer Services | NODE_NETWORK_LIMITED service bit | Jonas Schnelli | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0171.mediawiki|171]] | Applications | Currency/exchange rate information API | Luke Dashjr | Standard | Rejected |- | [[bip-0172.mediawiki|172]] | Applications | Define Bitcoin Subunits as Satoshis | OceanSlim | Informational | Draft |- style="background-color: #cfffcf" | [[bip-0173.mediawiki|173]] | Applications | Base32 address format for native v0-16 witness outputs | Pieter Wuille, Greg Maxwell | Informational | Final |- style="background-color: #cfffcf" | [[bip-0174.mediawiki|174]] | Applications | Partially Signed Bitcoin Transaction Format | Ava Chow | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0175.mediawiki|175]] | Applications | Pay to Contract Protocol | Omar Shibli, Nicholas Gregory | Informational | Rejected |- | [[bip-0176.mediawiki|176]] | | Bits Denomination | Jimmy Song | Informational | Draft |- | [[bip-0177.mediawiki|177]] | | Redefine Bitcoin's Base Unit | John Carvalho | Informational | Draft |- | [[bip-0178.mediawiki|178]] | Applications | Version Extended WIF | Karl-Johan Alm | Standard | Draft |- | [[bip-0179.mediawiki|179]] | | Name for payment recipient identifiers | Emil Engler, Luke Dashjr | Informational | Draft |- style="background-color: #ffcfcf" | [[bip-0180.mediawiki|180]] | Peer Services | Block size/weight fraud proof | Luke Dashjr | Standard | Rejected |- | [[bip-0197.mediawiki|197]] | Applications | Hashed Time-Locked Collateral Contract | Matthew Black, Tony Cai | Standard | Draft |- style="background-color: #ffcfcf" | [[bip-0199.mediawiki|199]] | Applications | Hashed Time-Locked Contract transactions | Sean Bowe, Daira Hopwood | Standard | Rejected |- | [[bip-0300.mediawiki|300]] | Consensus (soft fork) | Hashrate Escrows (Consensus layer) | Paul Sztorc, CryptAxe | Standard | Draft |- | [[bip-0301.mediawiki|301]] | Consensus (soft fork) | Blind Merged Mining (Consensus layer) | Paul Sztorc, CryptAxe | Standard | Draft |- | [[bip-0310.mediawiki|310]] | Applications | Stratum protocol extensions | Pavel Moravec, Jan Čapek | Informational | Draft |- | [[bip-0320.mediawiki|320]] | | nVersion bits for general purpose use | BtcDrak | Standard | Draft |- | [[bip-0321.mediawiki|321]] | Applications | URI Scheme | Matt Corallo | Standard | Draft |- | [[bip-0322.mediawiki|322]] | Applications | Generic Signed Message Format | Karl-Johan Alm | Standard | Draft |- style="background-color: #cfffcf" | [[bip-0324.mediawiki|324]] | Peer Services | Version 2 P2P Encrypted Transport Protocol | Dhruv Mehta, Tim Ruffing, Jonas Schnelli, Pieter Wuille | Standard | Final |- style="background-color: #ffffcf" | [[bip-0325.mediawiki|325]] | Applications | Signet | Karl-Johan Alm, Anthony Towns | Standard | Proposed |- | [[bip-0326.mediawiki|326]] | Applications | Anti-fee-sniping in taproot transactions | Chris Belcher | Informational | Draft |- style="background-color: #cfffcf" | [[bip-0327.mediawiki|327]] | | MuSig2 for BIP340-compatible Multi-Signatures | Jonas Nick, Tim Ruffing, Elliott Jin | Informational | Active |- style="background-color: #ffffcf" | [[bip-0328.mediawiki|328]] | Applications | Derivation Scheme for MuSig2 Aggregate Keys | Ava Chow | Informational | Proposed |- | [[bip-0329.mediawiki|329]] | Applications | Wallet Labels Export Format | Craig Raw | Informational | Draft |- | [[bip-0330.mediawiki|330]] | Peer Services | Transaction announcements reconciliation | Gleb Naumenko, Pieter Wuille | Standard | Draft |- | [[bip-0331.mediawiki|331]] | Peer Services | Ancestor Package Relay | Gloria Zhao | Standard | Draft |- | [[bip-0337.mediawiki|337]] | API/RPC | Compressed Transactions | Tom Briar | Standard | Draft |- style="background-color: #ffcfcf" | [[bip-0338.mediawiki|338]] | Peer Services | Disable transaction relay message | Suhas Daftuar | Standard | Withdrawn |- style="background-color: #cfffcf" | [[bip-0339.mediawiki|339]] | Peer Services | WTXID-based transaction relay | Suhas Daftuar | Standard | Final |- style="background-color: #cfffcf" | [[bip-0340.mediawiki|340]] | | Schnorr Signatures for secp256k1 | Pieter Wuille, Jonas Nick, Tim Ruffing | Standard | Final |- style="background-color: #cfffcf" | [[bip-0341.mediawiki|341]] | Consensus (soft fork) | Taproot: SegWit version 1 spending rules | Pieter Wuille, Jonas Nick, Anthony Towns | Standard | Final |- style="background-color: #cfffcf" | [[bip-0342.mediawiki|342]] | Consensus (soft fork) | Validation of Taproot Scripts | Pieter Wuille, Jonas Nick, Anthony Towns | Standard | Final |- style="background-color: #cfffcf" | [[bip-0343.mediawiki|343]] | Consensus (soft fork) | Mandatory activation of taproot deployment | Shinobius, Michael Folkson | Standard | Final |- style="background-color: #ffcfcf" | [[bip-0345.mediawiki|345]] | Consensus (soft fork) | OP_VAULT | James O'Beirne, Greg Sanders | Standard | Withdrawn |- | [[bip-0347.mediawiki|347]] | Consensus (soft fork) | OP_CAT in Tapscript | Ethan Heilman, Armin Sabouri | Standard | Draft |- | [[bip-0348.md|348]] | Consensus (soft fork) | CHECKSIGFROMSTACK | Brandon Black, Jeremy Rubin | Standard | Draft |- | [[bip-0349.md|349]] | Consensus (soft fork) | OP_INTERNALKEY | Brandon Black, Jeremy Rubin | Standard | Draft |- style="background-color: #cfffcf" | [[bip-0350.mediawiki|350]] | Applications | Bech32m format for v1+ witness addresses | Pieter Wuille | Standard | Final |- | [[bip-0351.mediawiki|351]] | Applications | Private Payments | Alfred Hodler, Clark Moody | Informational | Draft |- style="background-color: #ffffcf" | [[bip-0352.mediawiki|352]] | Applications | Silent Payments | josibake, Ruben Somsen | Standard | Proposed |- | [[bip-0353.mediawiki|353]] | Applications | DNS Payment Instructions | Matt Corallo, Bastien Teinturier | Standard | Draft |- style="background-color: #cfffcf" | [[bip-0370.mediawiki|370]] | Applications | PSBT Version 2 | Ava Chow | Standard | Final |- style="background-color: #cfffcf" | [[bip-0371.mediawiki|371]] | Applications | Taproot Fields for PSBT | Ava Chow | Standard | Final |- | [[bip-0372.mediawiki|372]] | Applications | Pay-to-contract tweak fields for PSBT | Maxim Orlovsky | Standard | Draft |- style="background-color: #ffffcf" | [[bip-0373.mediawiki|373]] | Applications | MuSig2 PSBT Fields | Ava Chow | Standard | Proposed |- | [[bip-0374.mediawiki|374]] | Applications | Discrete Log Equality Proofs | Andrew Toth, Ruben Somsen, Sebastian Falbesoner | Standard | Draft |- | [[bip-0375.mediawiki|375]] | Applications | Sending Silent Payments with PSBTs | Andrew Toth, Ava Chow, josibake | Standard | Draft |- | [[bip-0379.md|379]] | Applications | Miniscript | Pieter Wuille, Andrew Poelstra, Sanket Kanjalkar, Antoine Poinsot, Ava Chow | Informational | Draft |- style="background-color: #cfffcf" | [[bip-0380.mediawiki|380]] | Applications | Output Script Descriptors General Operation | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #cfffcf" | [[bip-0381.mediawiki|381]] | Applications | Non-Segwit Output Script Descriptors | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #cfffcf" | [[bip-0382.mediawiki|382]] | Applications | Segwit Output Script Descriptors | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #cfffcf" | [[bip-0383.mediawiki|383]] | Applications | Multisig Output Script Descriptors | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #cfffcf" | [[bip-0384.mediawiki|384]] | Applications | combo() Output Script Descriptors | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #cfffcf" | [[bip-0385.mediawiki|385]] | Applications | raw() and addr() Output Script Descriptors | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #cfffcf" | [[bip-0386.mediawiki|386]] | Applications | tr() Output Script Descriptors | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #cfffcf" | [[bip-0387.mediawiki|387]] | Applications | Tapscript Multisig Output Script Descriptors | Pieter Wuille, Ava Chow | Informational | Final |- style="background-color: #ffffcf" | [[bip-0388.mediawiki|388]] | Applications | Wallet Policies for Descriptor Wallets | Salvatore Ingala | Standard | Proposed |- | [[bip-0389.mediawiki|389]] | Applications | Multipath Descriptor Key Expressions | Ava Chow | Informational | Draft |- | [[bip-0390.mediawiki|390]] | Applications | musig() Descriptor Key Expression | Ava Chow | Informational | Draft |- | [[bip-0431.mediawiki|431]] | Applications | Topology Restrictions for Pinning | Gloria Zhao | Informational | Draft |- | [[bip-0443.mediawiki|443]] | Consensus (soft fork) | OP_CHECKCONTRACTVERIFY | Salvatore Ingala | Standard | Draft |} <!-- IMPORTANT! See the instructions at the top of this page, do NOT JUST add BIPs here! -->
Description
Languages
Wikitext
91.4%
Python
7.9%
Go
0.2%
Perl
0.2%
TeX
0.2%