@bitcoinerlab/secp256k1

中文文档
2.0.0发布于 2026/08/18MITTypeScriptCommonJS近 30 天下载 148.2万

一个用于在secp256k1曲线上进行椭圆曲线操作的库. 它旨在融入BitcoinJS & BitcoinerLAB生态系统,并使用被审计的贵族曲线库. 它与不支持WASM, sU的环境兼容

中文使用文档
文档目录11 节
  1. 特征
  2. 安装
  3. 使用量
  4. API 密码
  5. 实例
  6. 使用反应原生
  7. 作者和贡献者
  8. 从源头建楼
  9. 测试
  10. 许可证发放
  11. 承认

第256k1节

@bitcoinerlab/secp256k1是一个用于在secp256k1曲线上执行椭圆曲线操作的Javascript文库. 它旨在融入 比特币JS 财务报告和审定财务报表 比特币LAB 生态系统和生态系统使用 贵族曲线库,由 保罗·米勒。 。 。 .

此库与不支持Web Assembly的环境相兼容, 如 React Industrial.

特征

  • 与 BitcoinJS 兼容 喜闻乐见 财务报告和审定财务报表 第32页 工厂功能.
  • 根据已审计代码 @ noble/ 曲线。 。 。 .
  • 可用于不支持WASM的环境,例如React Introduct.
  • 使用与 微秒256k1。 。 。 .

安装

要安装软件包, 请使用 npm :

npm install @bitcoinerlab/secp256k1

2版本需要Node.js 20.19或更新. 该软件包保留其通用JS切入点,同时只使用无害环境管理 @noble/curves 第2版依赖.

使用量

API 密码

这一实施遵循了微秒256k1 API. 请参考 微秒256k1 关于方法的文件.

  • xOnlyPointAddTweakCheck:此方法尚未实施. 它没有用于 ecpair 或者说 bip32。 。 。 .

  • signSchnorr: 从1.2.0版本开始,此函数偏离精确的行为映射 bitcoinjs/tiny-secp256k1 并且不再初始化辅助随机数据参数(e)默认为零填充数组。 相反,它要求呼叫者在需要时明确提供随机性. 如果省略,基础执行使用加密安全随机性(通过 crypto.getRandomValues) (中文(简体) ). 关于这一变化的更详细情况,见讨论 这里 和结论 这里。 。 。 .

实例

您可以使用在线游乐场演示来测试本节中的实例 https://bitcoinerlab.com/modules/secp256k1 (中文(简体) )。 。 。 .

import ecc from '@bitcoinerlab/secp256k1';
import { BIP32Factory } from 'bip32';
import { ECPairFactory } from 'ecpair';
const BIP32 = BIP32Factory(ecc);
const ECPair = ECPairFactory(ecc);

const keyPair1 = ECPair.fromWIF(
  'KynD8ZKdViVo5W82oyxvE18BbG6nZPVQ8Td8hYbwU94RmyUALUik'
);
const node = BIP32.fromBase58(
  'xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi'
);

使用反应原生

@noble/curves 使用 Javascript BigInt,在 iOS 上的 React Industrial 中完全支持。 然而,为了在Android上使用它,你必须确保使用Hermes Javascript引擎,从 RN-0.70 发布。 。 。 .

贵族用途 crypto.getRandomValues 用于施诺尔辅助随机和斯卡尔盲等操作. 不提供反应的土著环境必须安装兼容的多填充器,例如 react-native-get-random-values。 。 。 .

作者和贡献者

该项目最初是开发的,目前由 何塞-路易斯·兰达巴索欢迎其他开发者的贡献和帮助.

以下是一些帮助您开始捐款的资源:

从源头建楼

要下载源代码并构建项目,请遵循这些步骤:

  1. 清除仓库 :
git clone https://github.com/bitcoinerlab/secp256k1.git
  1. 安装依赖性 :
npm install
  1. 构建工程 :
npm run build

这将构建工程并生成必要的文件 dist 目录.

测试

在实施任何代码之前,确保通过运行来通过所有测试:

npm run test

许可证发放

这个项目根据麻省理工学院的许可证获得许可.

承认

感谢保罗·米勒创立和维护了这个图书馆所基于的贵族-曲线图书馆.

感谢BitcoinJS团队创建和维护了BitcoinJS生态系统,包括ecpair和bip32图书馆,这个图书馆是设计与它们融合的.

感谢小-secp256k1团队创建和维护了小-secp256k1库,这个库用于测试.

版本与发布记录

@bitcoinerlab/secp256k1 共发布 10 个版本,首次发布于 2023/01/09;过去 12 个月发布了 1 个版本。

版本发布日期距今
2.0.0latest2026/08/182 个月前
1.2.02024/12/131.9 年前
1.1.12024/02/102 年前
1.1.02024/02/092 年前
1.0.52023/07/103 年前
1.0.42023/06/283 年前

关于 @bitcoinerlab/secp256k1 的常见问题

@bitcoinerlab/secp256k1 是什么?

一个用于在secp256k1曲线上进行椭圆曲线操作的库. 它旨在融入BitcoinJS & BitcoinerLAB生态系统,并使用被审计的贵族曲线库. 它与不支持WASM, sU的环境兼容

如何安装 @bitcoinerlab/secp256k1?

在项目目录运行 npm install @bitcoinerlab/secp256k1,或使用 pnpm add / yarn add / bun add。

@bitcoinerlab/secp256k1 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bitcoinerlab/secp256k1 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@bitcoinerlab/secp256k1 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@bitcoinerlab/secp256k1 可以商用吗?

@bitcoinerlab/secp256k1 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bitcoinerlab/secp256k1 的下载量有多少?

根据 npm 官方下载统计,@bitcoinerlab/secp256k1 在 2026/10/08 – 2026/11/06 这 30 天内被下载 1,481,598 次,日均约 49,387 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bitcoinerlab/secp256k1 还在维护吗?

最新版本 2.0.0 发布于 2026/08/18(2 个月前);至今共发布 10 个版本,其中过去 12 个月发布了 1 个;首次发布于 2023/01/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。