{"id":26218698,"url":"https://github.com/ElementsProject/secp256k1-zkp","last_synced_at":"2025-03-12T14:01:13.980Z","repository":{"id":33471122,"uuid":"37116774","full_name":"BlockstreamResearch/secp256k1-zkp","owner":"BlockstreamResearch","description":"A fork of libsecp256k1 with support for advanced and experimental features such as Confidential Assets and MuSig2","archived":false,"fork":false,"pushed_at":"2024-08-02T16:50:08.000Z","size":9688,"stargazers_count":362,"open_issues_count":42,"forks_count":208,"subscribers_count":49,"default_branch":"master","last_synced_at":"2024-08-04T09:01:54.652Z","etag":null,"topics":["bitcoin","c","cryptography","elliptic-curves","musig","secp256k1","zero-knowledge"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlockstreamResearch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-09T07:19:49.000Z","updated_at":"2024-08-04T09:01:59.654Z","dependencies_parsed_at":"2024-01-07T22:50:14.318Z","dependency_job_id":"f33e46fb-783d-474d-a654-dadeaa3ade3d","html_url":"https://github.com/BlockstreamResearch/secp256k1-zkp","commit_stats":null,"previous_names":["elementsproject/secp256k1-zkp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fsecp256k1-zkp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fsecp256k1-zkp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fsecp256k1-zkp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlockstreamResearch%2Fsecp256k1-zkp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlockstreamResearch","download_url":"https://codeload.github.com/BlockstreamResearch/secp256k1-zkp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243230091,"owners_count":20257642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","c","cryptography","elliptic-curves","musig","secp256k1","zero-knowledge"],"created_at":"2025-03-12T14:00:40.957Z","updated_at":"2025-03-12T14:01:13.505Z","avatar_url":"https://github.com/BlockstreamResearch.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"libsecp256k1-zkp\n================\n\n![Dependencies: None](https://img.shields.io/badge/dependencies-none-success)\n\nA fork of [libsecp256k1](https://github.com/bitcoin-core/secp256k1) with support for advanced and experimental features such as Confidential Assets and MuSig2 \n\nAdded features:\n* Experimental module for ECDSA adaptor signatures.\n* Experimental module for ECDSA sign-to-contract.\n* Experimental module for [MuSig2](src/modules/musig/musig.md).\n* Experimental module for Confidential Assets (Pedersen commitments, range proofs, and [surjection proofs](src/modules/surjection/surjection.md)).\n* Experimental module for Bulletproofs++ range proofs.\n* Experimental module for [address whitelisting](src/modules/whitelist/whitelist.md).\n\nExperimental features are made available for testing and review by the community. The APIs of these features should not be considered stable.\n\nBuild steps\n-----------\n\nBuilding with Autotools\n-----------------------\n\n    $ ./autogen.sh\n    $ ./configure\n    $ make\n    $ make check  # run the test suite\n    $ sudo make install  # optional\n\nTo compile optional modules (such as Schnorr signatures), you need to run `./configure` with additional flags (such as `--enable-module-schnorrsig`). Run `./configure --help` to see the full list of available flags. For experimental modules, you will also need `--enable-experimental` as well as a flag for each individual module, e.g. `--enable-module-musig`.\n\nBuilding with CMake (experimental)\n----------------------------------\n\nTo maintain a pristine source tree, CMake encourages to perform an out-of-source build by using a separate dedicated build tree.\n\n### Building on POSIX systems\n\n    $ mkdir build \u0026\u0026 cd build\n    $ cmake ..\n    $ cmake --build .\n    $ ctest  # run the test suite\n    $ sudo cmake --build . --target install  # optional\n\nTo compile optional modules (such as Schnorr signatures), you need to run `cmake` with additional flags (such as `-DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON`). Run `cmake .. -LH` to see the full list of available flags.\n\n### Cross compiling\n\nTo alleviate issues with cross compiling, preconfigured toolchain files are available in the `cmake` directory.\nFor example, to cross compile for Windows:\n\n    $ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake\n\nTo cross compile for Android with [NDK](https://developer.android.com/ndk/guides/cmake) (using NDK's toolchain file, and assuming the `ANDROID_NDK_ROOT` environment variable has been set):\n\n    $ cmake .. -DCMAKE_TOOLCHAIN_FILE=\"${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake\" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28\n\n### Building on Windows\n\nTo build on Windows with Visual Studio, a proper [generator](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html#visual-studio-generators) must be specified for a new build tree.\n\nThe following example assumes using of Visual Studio 2022 and CMake v3.21+.\n\nIn \"Developer Command Prompt for VS 2022\":\n\n    \u003ecmake -G \"Visual Studio 17 2022\" -A x64 -S . -B build\n    \u003ecmake --build build --config RelWithDebInfo\n\nUsage examples\n-----------\n\nUsage examples can be found in the [examples](examples) directory. To compile them you need to configure with `--enable-examples`.\n  * [ECDSA example](examples/ecdsa.c)\n  * [Schnorr signatures example](examples/schnorr.c)\n  * [Deriving a shared secret (ECDH) example](examples/ecdh.c)\n  * [MuSig example](examples/musig.c)\n\nTo compile the Schnorr signature, ECDH and MuSig examples, you need to enable the corresponding module by providing a flag to the `configure` script, for example `--enable-module-schnorrsig`.\n\nBenchmark\n------------\nIf configured with `--enable-benchmark` (which is the default), binaries for benchmarking the libsecp256k1-zkp functions will be present in the root directory after the build.\n\nTo print the benchmark result to the command line:\n\n    $ ./bench_name\n\nTo create a CSV file for the benchmark result :\n\n    $ ./bench_name | sed '2d;s/ \\{1,\\}//g' \u003e bench_name.csv\n\nReporting a vulnerability\n------------\n\nSee [SECURITY.md](SECURITY.md)\n\nContributing to libsecp256k1\n------------\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FElementsProject%2Fsecp256k1-zkp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FElementsProject%2Fsecp256k1-zkp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FElementsProject%2Fsecp256k1-zkp/lists"}