SIMD-48: Secp256r1 Precompile

Summary

SIMD-48 outlines an implementation of the secp256r1 ECDSA verification routine as a precompile in the Solana runtime.

A current testing repo for SIMD-48 can be found here

Since Firedancer is being developed concurrently to the Solana Labs runtime, considerations towards the implementation of the precompile in C need to be made. Specifically towards the reproducibility of the verification operation. Any potential discrepancy would lead to serious security risks as well as a chain fork.

The OpenSSL implementation of secp256r1 should serve as the underlying reference point, as it’s one of the most well maintained and scrutinised cryptography implementations. As its written in C it can additionally serve as a reference point for the development of the Firedancer implementation.

Currently the test repo includes programatic analysis of test vector results of both the SIMD-48 implementation as well as the OpenSSL implementation.

This forum serves as a place to discuss the methodology behind ensuring a safe and reproducible implementation of SIMD-48.

4 Likes

An updated spec is currently under review here

2 Likes