Wink Pings

开源高性能secp256k1库:GPU加速达488万次签名/秒,支持12+平台

一款零依赖的C++20 secp256k1椭圆曲线库,在RTX 5060 Ti上实现ECDSA签名488万次/秒的吞吐量,支持CUDA、OpenCL、Metal、ROCm四大GPU后端,覆盖从嵌入式到服务器的12种平台。

有开发者在Reddit上分享了一个专注于异构硬件原始吞吐量的开源secp256k1椭圆曲线库。

## 核心特性

这是一个零依赖的C++20 secp256k1库,具备GPU加速功能(支持CUDA、OpenCL、Metal、ROCm),同时兼容12种以上平台,包括嵌入式设备如ESP32和STM32。

## 性能表现

在RTX 5060 Ti显卡上的内核级测试结果:

| 操作 | 吞吐量 | 单次操作时间 |

|------|--------|-------------|

| ECDSA签名(RFC 6979) | **488万次/秒** | 204.8纳秒 |

| ECDSA验证(Shamir+GLV) | **244万次/秒** | 410.1纳秒 |

| Schnorr签名(BIP-340) | **366万次/秒** | 273.4纳秒 |

| Schnorr验证(BIP-340) | **282万次/秒** | 354.6纳秒 |

| 域乘法运算 | **41.42亿次/秒** | 0.2纳秒 |

## 技术亮点

- **零依赖架构**:不依赖Boost、OpenSSL等第三方库,纯C++20实现

- **四大GPU后端**:是目前唯一在GPU上完整实现ECDSA+Schnorr签名验证的开源库

- **双安全模型**:快速路径(可变时间,最大吞吐量)+恒定时间路径(无秘密相关分支)

- **广泛平台支持**:x86-64、ARM64、RISC-V、WASM、iOS、Android、ESP32-S3等

- **稳定C ABI**:提供45个函数接口,支持C#、Python、Go、Rust等10种语言绑定

- **完整协议套件**:支持ECDSA、Schnorr/BIP-340、ECDH、BIP-32/44、MuSig2等

## 实际应用

ESP32-S3微控制器上标量乘基点运算仅需2.5毫秒,为物联网设备签名提供了可行性。库采用5×52域表示法和`__int128`惰性归约,相比传统的4×64表示法速度提升2.76倍。

## 可用性

该库已发布到npm、NuGet、RubyGems、Maven等主流包管理器,同时提供Python、Go、Rust等语言的独立下载包。

## 重要提醒

**这是一个研究项目,尚未经过独立安全审计。**对于生产系统,建议使用比特币核心的secp256k1库。如果你需要GPU/嵌入式/多平台的最大吞吐量并且理解相关风险,这个项目可能值得关注。

项目地址:https://github.com/shrec/UltrafastSecp256k1

许可证:AGPL-3.0

发布时间: 2026-02-20 08:08