1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-09-21 19:04:28 +00:00

4812 Commits

Author SHA1 Message Date
Jon Atack
9cf75150d2 Merge pull request #2262 from theStack/bip374_treat-e-as-scalar
BIP-374: treat challenge hash result `e` as scalar
2026-09-20 20:21:15 -07:00
Jon Atack
ae34fea045 Merge pull request #2273 from let-the-dreamers-rise/bip360-refimpl-depth-bound-and-raises
bip360: bound merkle depth at 128 and replace validation asserts in ref-impl
2026-09-20 20:14:22 -07:00
Murch
e71448c81f Merge pull request #2296 from murchandamus/2026-09-update-typos-flow
ci: Update typos action to use main branch
2026-09-18 12:02:05 -07:00
Murch
92f4b86430 ci: Update typos action to use main branch
The typos repository switched from the `master` branch to `main`.
2026-09-18 11:54:55 -07:00
Murch
658fe07449 Merge pull request #2259 from ViniciusCestarii/pseudocode-bip-324
bip324: fix handshake pseudocode errors
2026-09-18 11:49:14 -07:00
Murch
55083d36dd Merge pull request #2224 from liamgilligan/bip-low-r-grinding
BIP461: Deterministic ECDSA Signatures
2026-09-16 14:11:02 -07:00
Liam Gilligan
b24f038c78 Add BIP: Deterministic ECDSA Signatures
BIP specifying how to deterministically produce
valid ECDSA signatures using low-r grinding and
low-s normalization with RFC 6979.
2026-09-16 11:27:52 -07:00
Murch
173f386dfb Merge pull request #2290 from kriss39/fix/bip10-pre-tag
bip-10: open the example TxDP block with <pre>, not </pre>
2026-09-14 16:26:29 -07:00
Kanan
3a13d60ff2 bips 89/114/441: add missing Footnotes and references tag (#2289)
* bip-89, bip-114, bip-441: add missing <references/> tag

These three BIPs use <ref> footnotes but never place a <references/>
tag, so GitHub's mediawiki renderer drops the footnote text entirely and
the [n] superscripts link to anchors that do not exist.

Add a Footnotes section as well, so the notes are rendered.

---------

Co-authored-by: Kanan M <kanan@MacBook-Pro-Sanan.local>
2026-09-14 15:56:36 -07:00
Jon Atack
aeff23635d Merge pull request #2291 from kriss39/fix/bip433-formatting
bip-433: fix heading levels, stray '<', typos, add Copyright section
2026-09-14 14:51:11 -07:00
Kanan
e2e7a03d69 bip-433: fix heading levels, stray '<', typos, add Copyright section
- Specification was a level-3 heading and therefore rendered as a
  subsection of Motivation; Backward Compatibility, Implementation and
  Related Work were one level too deep as well.
- Drop the stray '<' in front of the testnet address tb1pfees9rn5nz.
- 'typea' -> 'type', 'ineherent' -> 'inherent'.
- Add the Copyright section required by BIP 3, matching the
  BSD-3-Clause License header.
2026-09-13 20:17:47 +04:00
Kanan
9c694c8711 bip-10: open the example TxDP block with <pre>, not </pre>
Line 57 uses a closing </pre> where the opening tag was intended, so
the example TxDP that follows (up to the real </pre> on line 90) is
rendered as prose instead of a preformatted block.
2026-09-13 20:17:07 +04:00
Murch
bfc142f2b5 Merge pull request #2271 from notTanveer/fix/sp-addr-len
BIP-352: clarify silent payment address length
2026-09-11 13:40:30 -07:00
Murch
86d96b63b0 Merge pull request #2258 from BenWestgate/bip93-checksum-boundary
BIP93: Fix checksum selection bounds and restrict `ms` sizes
2026-09-11 12:28:30 -07:00
Murch
b8a614417f Merge pull request #2282 from kriss39/fix/mediawiki-relative-link-check
script: catch relative BIP links in mediawiki files
2026-09-11 12:21:15 -07:00
Murch
2974f9f091 Merge pull request #2283 from kriss39/fix/deputies-email-domain-validation
script: allow hyphens in deputy email domains
2026-09-11 12:17:12 -07:00
Murch
adfe317fc4 Merge pull request #2284 from kriss39/fix/allow-mit-0-license
script: allow MIT-0 license
2026-09-11 12:10:15 -07:00
Kanan
3c359de780 script: allow MIT-0 license 2026-09-11 18:19:32 +04:00
Kanan
afc982a096 script: allow hyphens in deputy email domains 2026-09-11 17:26:17 +04:00
Kanan
43bd57b707 script: catch relative BIP links in mediawiki files 2026-09-11 17:16:07 +04:00
Murch
620871a7a4 Merge pull request #2278 from fametrano/bip327-portable-monotonic-clock
bip-0327: derive extra_in from secrets in the reference self-test
2026-09-10 08:25:02 -07:00
Ferdinando Ametrano
4f9567fd60 bip-0327: derive extra_in from secrets in the reference self-test
The self-test reads time.clock_gettime_ns(time.CLOCK_MONOTONIC) for
extra_in on even iterations. CPython documents both symbols
"Availability: Unix", so the attribute lookup raises AttributeError on
Windows and python3 reference.py does not run there.

Take extra_in from secrets instead, at a random length, so the self-test
also exercises extra_in of varying length. time has no other use in the
file, so its import goes too.
2026-09-10 15:55:28 +02:00
Murch
2120121c40 Merge pull request #2244 from jonatack/2026-08-bip155-add-ref-impl
BIP155: add reference implementation
2026-09-09 13:56:22 -07:00
Murch
4adea840e7 Merge pull request #2241 from pseudoramdom/staletip-bip
BIP332: Stale Tip Relay
2026-09-09 13:47:47 -07:00
pseudoramdom
8aacefed18 Add BIP-332: Stale Tip Relay 2026-09-09 12:12:14 -07:00
Murch
09e21036a4 Merge pull request #2274 from fmterrors/feature_fmterrors
docs(bip-353): fix DNSSEC proof extraction typo
2026-09-03 16:28:07 -07:00
fmterrors
58f1e33d96 docs(bip-353): fix DNSSEC proof extraction typo
Signed-off-by: fmterrors <fmterrors@outlook.com>
2026-09-03 14:32:41 +08:00
Ashwin Goyal
3c8190e11e bip360: bound merkle depth at 128 and replace validation asserts
The control block length rule in Script Validation caps m at 128, but
compute_merkle_root and compute_control_block applied no depth bound, so a
129-deep tree produced a 4129-byte control block for an output consensus
must reject as unspendable.

Structural validation also used assert, which python -O strips: a malformed
3-child branch silently returned the root of its first two leaves rather
than raising, dropping a script leaf from the commitment.

Adds negative_structure_tests covering both, run from BIP360_tests.
2026-09-02 23:38:15 +00:00
notTanveer
2ec04a0fa1 clarify silent payment address length 2026-09-03 01:05:26 +05:30
Murch
7273e178e5 Merge pull request #2270 from stutxo/bip-441-typos
BIP 441: fix typos and changelog date
2026-09-01 15:55:57 -07:00
stutxo
7e01c9822d BIP 441: fix typos and changelog date 2026-08-31 18:55:37 -04:00
Murch
2692bed479 Merge pull request #2268 from Yuri-SVB/feat/update-yuri-svb-email-on-bip-450
BIP450: Update author email address
2026-08-31 14:10:54 -07:00
Yuri-SVB
0ed23dc950 bip-450: update author contact email
The t3infosecurity.com domain is being retired, so mail to the address
listed for the first author will stop being delivered. BIP-3 ties several
process outcomes to author reachability: a Draft may be moved to Closed
unless its authors respond within four weeks of being contacted, and an
applicant asking to take over a BIP is appointed by the Editors if the
authors are unreachable or do not respond in a timely manner.

The new address is the one already behind the discussion threads linked in
this BIP's own preamble, so the contact and the discussion record now agree.
2026-08-31 14:07:56 -07:00
Jon Atack
2a783793f4 Merge pull request #2267 from guggero/bip379-malleability-caveat
BIP-379: note that the type properties assume their requirements
2026-08-30 15:06:53 -07:00
Oli
acbc7b000b bip379: note that the type properties assume their requirements
Both tables give the properties of a fragment in function of those of its
subexpressions, and both are written assuming that the conditions in the
"Requires" column of that fragment hold. Where they do not, the tables
still assign values, but the values carry none of the meaning the
descriptions of the properties give them, and implementations are free to
differ on them.

thresh is the case that surfaced this. Its rule is "e=all are s", so
thresh(2,or_i(pk(A),pk(B)),a:or_i(pk(C),pk(D))) is "e" even though each
or_i child has two unconditional dissatisfactions, giving the threshold
four, which is the opposite of the "unique unconditional dissatisfaction"
that the description of "e" promises. The threshold fails the "e"
requirement the same table imposes, though, so it is malleable and the
value is a don't-care.

Say so below both tables, so that implementations which disagree on the
type of an invalid or malleable expression are not read as contradicting
this document. Bitcoin Core (bitcoin/bitcoin#36028) and rust-miniscript
are aligning on the values the tables give, and the test vectors proposed
in #2240 leave out the properties that are not meaningful: z/o/n/d/u for
invalid expressions and s/f/e for malleable ones.
2026-08-30 19:44:35 +02:00
Ben Westgate
5117f5831b BIP93: Restrict supported master seed sizes
Restrict codex32-encoded BIP32 master seeds to 16, 20, 24, 28,
32, or 64 bytes. These sizes correspond to the BIP39 entropy
sizes and the 512-bit BIP32 seed produced by BIP39 recovery and provide
minimum six-character length gaps to reduce target length ambiguity
during optional insertion/deletion correction.

Move payload decoding out of the generic codex32 secret definition
and make it application-specific. Define the byte conversion and
length requirements under the master seed format instead.

Additionally:
- Enforce the new valid encoded lengths (48, 54, 61, 67, 74, 127) in
  the Python `ms32_decode` in-line reference.
- Remove obsolete short-checksum backward compatibility constraints and
  unsupported length test vectors.
- Add test vectors for 160, 192, and 224-bit master seeds
- Update rationale, compatibility, and reference implementation links.
2026-08-26 17:29:14 -05:00
Ben Westgate
c201536604 BIP93: Correct checksum selection boundaries
Include the expanded human-readable part when selecting the codex32
checksum. This keeps regular codewords within the 93-symbol BCH period
and rejects the 94- and 95-symbol gap before the long checksum starts
at 96 symbols.

Split regular and long checksum construction and verification so their
periods can be tested independently. Add assertions for both selection
boundaries and the long checksum upper limit.

Refs: https://github.com/bitcoin/bips/pull/2258#issuecomment-5411804501
2026-08-25 17:52:47 -05:00
Jon Atack
7fe0b034ec Merge pull request #2263 from sipa/202708_bip379_typo
Fix typo in BIP-379 malleability requirement rule
2026-08-20 10:14:27 -07:00
Pieter Wuille
25fd6bfeeb Fix typos in BIP-379 or_b and and_b malleability rules 2026-08-19 17:26:29 -04:00
SatsAndSports
eba8e50cb6 BIP-327: correct PartialSigAgg session-value unpacking and a typo (#2260)
* BIP-327: correct PartialSigAgg session-value unpacking and a typo

Co-authored-by: Jon Atack <jon@atack.com>
2026-08-19 13:53:39 -07:00
Murch
c2008a0663 Merge pull request #2215 from murchandamus/bip351-close
bip351: close due to lack of activity
2026-08-19 13:17:39 -07:00
Jon Atack
9934351d8b Merge pull request #2261 from SatsAndSports/fix-bip327-tests-mypy
BIP-327: fix reference.py type errors failing tests.sh
2026-08-19 08:18:29 -07:00
Sebastian Falbesoner
fc874dd5d3 BIP-374: add test vectors for out-of-range proof values 2026-08-19 16:02:50 +02:00
Sebastian Falbesoner
c88e295d92 BIP-374: treat challenge hash result e as scalar, bump to version 0.3.0
Note that the purpose of this change is primarily to improve clarity
for implementers and consistency with existing BIPs like BIP-340 and
BIP-327. Under the assumption that reaching a challenge hash with
`e >= n` is negligible, the newly introduced test vectors in the next
commit would also fail without the new rejection branch.
2026-08-19 16:02:37 +02:00
Sats And Sports
ccb5415095 BIP-327: fix reference.py type errors failing tests.sh 2026-08-18 18:41:24 +02:00
ViniciusCestarii
9571907539 bip324: fix handshake pseudocode errors 2026-08-18 09:13:47 -03:00
Murch
857a7debc6 Merge pull request #2243 from jonatack/2026-08-add-security_md-document
Add SECURITY.md
2026-08-17 14:33:23 -07:00
Jon Atack
5c84a15bd4 Merge pull request #2126 from ethicnology/bip85-nostr-application-86
BIP85: add Nostr application
2026-08-17 10:22:09 -07:00
Jon Atack
a30de518e8 Merge pull request #2253 from questfever/master
BIP375: correctly detect SegWit v2+ witness programs
2026-08-17 09:55:28 -07:00
Murch
d923cb825c Merge pull request #2233 from grandpig/master
scripts: validate the first Comments-URI entry
2026-08-14 17:05:25 -07:00