Framework
ZKP
Swift bindings for Blockstream’s secp256k1-zkp fork of libsecp256k1, adding zero-knowledge proof primitives — range proofs, surjection proofs, ECDSA and BIP-340 adaptor signatures, MuSig2 half-aggregation, and Bulletproofs++ — that drive Blockstream’s Liquid Network.
Mentioned In
Overview
ZKP wraps the BlockstreamResearch/secp256k1-zkp fork of upstream bitcoin-core/secp256k1. The fork adds zero-knowledge proof primitives that the upstream library deliberately scopes out: range proofs (Confidential Transactions), surjection proofs (asset-swap unlinkability), ECDSA and BIP-340 adaptor signatures (atomic swaps and scriptless scripts), MuSig2 half-aggregation, and Bulletproofs++ (bppp trait). Blockstream’s Liquid Network — the canonical consumer — depends on the fork for its confidential-asset transaction format.
ZKP shares the same vanilla cryptographic surface as P256K via the package’s SharedSourcesPlugin build-tool plugin: every type in Sources/Shared/ (ECDSA, BIP-340 Schnorr, BIP-327 MuSig2, ECDH, recoverable signatures, SHA-256, tagged hashes) is compiled into both products. The two products differ only in their underlying C library (libsecp256k1 vs libsecp256k1_zkp) and the set of opt-in traits each enables. Read Choosing Between P256K and ZKP to decide which product fits your application.
Note
The ZKP-exclusive zero-knowledge surface is C-only at present — Swift wrappers for range proofs, surjection proofs, adaptor signatures, and MuSig2 half-aggregation will be added incrementally. The shared surface listed below is fully supported today.
Where to start
Picking between ZKP and P256K? Read Choosing Between P256K and ZKP for the decision boundary and the trait-by-trait breakdown. The shared cryptographic surface (ECDSA, Schnorr, MuSig2, ECDH, recoverable signatures, hashing) is documented in P256K’s catalog — see Getting Started for a task-oriented walkthrough that applies equally to both products.
Topics
Guides
Essentials
ECDSA
BIP-340 Schnorr
BIP-327 MuSig2
Recoverable signatures
ECDH key agreement
Hashing
Errors
Protocols
Structures
Type Aliases
Enumerations
Extended Modules