Skip to content

Performance: GPU batch ecrecover via UltrafastSecp256k1 — 3.21 M/s recoverable sign, batch sender recovery #898

Description

@shrec

What this is

UltrafastSecp256k1 is a zero-dependency MIT-licensed secp256k1 engine
with a GPU batch ecrecover API that might be relevant to Otterscan's
transaction sender recovery pipeline.

https://github.com/shrec/UltrafastSecp256k1

Relevant numbers (RTX 5060 Ti, CUDA 12, batch 16K)

Operation Throughput
ECDSA sign + recid (recoverable) 3.21 M/s
ECDSA verify 4.34 M/s
ecrecover batch ufsecp_gpu_ecrecover_batch — CUDA/OpenCL/Metal
Keccak-256 included, zero deps
EIP-55 address included

CPU ecrecover: ~27μs — honest note, slightly slower than libsecp256k1
on single-threaded CPU. GPU batch is where the gap opens.

Why it might matter for Otterscan

Block explorers recover sender addresses from every transaction.
Batch ecrecover on GPU — processing an entire block's transactions
simultaneously — is a different workload profile than single-threaded CPU.

Integration

Rust binding is available with full Ethereum support:

  • Keccak-256, EIP-55, EIP-155 sign, ecrecover
  • ufsecp_gpu_ecrecover_batch via C ABI (CUDA/OpenCL/Metal)
  • MIT license, zero external dependencies

Not asking for anything specific

Just flagging this exists. Happy to share reproducible benchmark
commands or answer questions if there's interest.

Repo: https://github.com/shrec/UltrafastSecp256k1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions