Skip to content

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

@shrec

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions