AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 28 Bitcoin

Merge bitcoin/bitcoin#35959: Update secp256k1 subtree to latest master

Public commit record

What the developer wrote

Authored by Ava Chow

81/100 · Strong
Merge bitcoin/bitcoin#35959: Update secp256k1 subtree to latest master

09cc345c3e323befc05bd6910704ed478f4e561e Squashed 'src/secp256k1/' changes from d2d04864ef..687155df6b (fanquake)

Pull request description:

We recently pulled the secp256k1 subtree (#35781), to get access to the recently-merged silent payments module (used in multiple PRs here). Since then, libsecp256k1 has merged more changes, and had a [`0.8.0` release](https://github.com/bitcoin-core/secp256k1/releases/tag/v0.8.0), so update to latest master again.

Includes:
* https://github.com/bitcoin-core/secp256k1/pull/1709
* https://github.com/bitcoin-core/secp256k1/pull/1776
* https://github.com/bitcoin-core/secp256k1/pull/1863
* https://github.com/bitcoin-core/secp256k1/pull/1869
* https://github.com/bitcoin-core/secp256k1/pull/1886
* https://github.com/bitcoin-core/secp256k1/pull/1896
* https://github.com/bitcoin-core/secp256k1/pull/1897
* https://github.com/bitcoin-core/secp256k1/pull/1899
* https://github.com/bitcoin-core/secp256k1/pull/1900
* https://github.com/bitcoin-core/secp256k1/pull/1901
* https://github.com/bitcoin-core/secp256k1/pull/1902
* https://github.com/bitcoin-core/secp256k1/pull/1903
* https://github.com/bitcoin-core/secp256k1/pull/1904
* https://github.com/bitcoin-core/secp256k1/pull/1906
* https://github.com/bitcoin-core/secp256k1/pull/1907

ACKs for top commit:
l0rinc:
ACK f464f6cd67e5c79c820532bba17f773928de6aec
achow101:
ACK f464f6cd67e5c79c820532bba17f773928de6aec
w0xlt:
ACK f464f6cd67e5c79c820532bba17f773928de6aec

Tree-SHA512: e7a3d0113c08fccd54f6734154aa6ed3aa06a6e52fb52eacb82c82c7079a23bfee8da9aa3934fc3c173097631394b4ba22d17ca6b73f6bf478dcb0c0a227d8d4
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This commit updates Bitcoin Core's embedded copy of the secp256k1 cryptographic library to a newer version. The update adds a new Silent Payments module, lets advanced users swap in a custom SHA256 compression function, removes some old deprecated names, and tightens one edge-case check in the ElligatorSwift key-exchange code. The change is a routine dependency refresh; nothing in the commit message or diff is described by the vendor as a security fix, and the one behavior change (rejecting certain oversized secret keys in ellswift_xdh) is explicitly called out as not being a security issue.

Recommended action

Treat as a normal dependency update. Review the upstream secp256k1 0.8.0 release notes and the listed upstream PRs for any security-relevant fixes not captured in this merge commit. Run the existing Bitcoin Core test suite (including secp256k1 tests) and verify no downstream code relies on the removed deprecated symbols. No emergency patching is indicated by the supplied materials.

Security signals we found

01

Dependency update of a core cryptographic library (libsecp256k1)

02

New runtime SHA256 compression callback with self-test/smoke test to catch mis-implementations early

03

Behavior change in ellswift_xdh to reject secret keys >= curve order (vendor states not a security issue)

04

Removal of deprecated public symbols (ABI break, not a vulnerability)

05

Silent Payments module added (new functionality, not a vulnerability fix)

Risk score

Why this scored 28/100

Our methodology →
Potential impact 5/30
Exploitability 3/25
Stealth signal 4/15
Affected reach 6/15
Confidence 7/10
Evidence quality 3/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.