#zero-knowledge #bitcoin #crypto #grin #secp256k1 #extension

lnpbp_secp256k1zkp

LNP/BP fork of Grin version of Zero-Knowledge extensions of Rust bindings for Pieter Wuille’s libsecp256k1 library

3 releases

0.9.0 Jan 24, 2023
0.9.0-rc.1 Dec 26, 2022
0.9.0-alpha.1 Nov 17, 2022

#19 in #grin

Download history 20/week @ 2024-07-22 40/week @ 2024-07-29 34/week @ 2024-08-05 24/week @ 2024-08-12 21/week @ 2024-08-19 24/week @ 2024-08-26 26/week @ 2024-09-02 26/week @ 2024-09-09 30/week @ 2024-09-16 44/week @ 2024-09-23 27/week @ 2024-09-30 25/week @ 2024-10-14 21/week @ 2024-10-21 19/week @ 2024-10-28 21/week @ 2024-11-04

86 downloads per month
Used in 9 crates (via confined_encoding)

CC0 license

645KB
13K SLoC

C 7K SLoC // 0.1% comments Rust 4.5K SLoC // 0.1% comments GNU Style Assembly 748 SLoC // 0.1% comments Java 438 SLoC // 0.3% comments M4 224 SLoC // 0.3% comments Automake 182 SLoC Shell 2 SLoC

Contains (obscure autoconf code, 25KB) depend/secp256k1-zkp/configure.ac

secp256k1zkp

rust-secp256k1 is a wrapper around libsecp256k1, a C library by Peter Wuille for producing ECDSA signatures using the SECG curve secp256k1. This library

  • exposes type-safe Rust bindings for all libsecp256k1 functions
  • implements key generation
  • implements deterministic nonce generation via RFC6979
  • implements many unit tests, adding to those already present in libsecp256k1
  • makes no allocations (except in unit tests) for efficiency and use in freestanding implementations

Full documentation


lib.rs:

Secp256k1

Rust bindings for Pieter Wuille's secp256k1 library, which is used for fast and accurate manipulation of ECDSA signatures on the secp256k1 curve. Such signatures are used extensively by the Bitcoin network and its derivatives.

Dependencies

~0.4–720KB
~16K SLoC